diff --git a/.github/readme/app.png b/.github/readme/app.png new file mode 100644 index 0000000..ce8a000 Binary files /dev/null and b/.github/readme/app.png differ diff --git a/.github/readme/notification.png b/.github/readme/notification.png new file mode 100644 index 0000000..d32a767 Binary files /dev/null and b/.github/readme/notification.png differ diff --git a/.github/readme/touchid.png b/.github/readme/touchid.png new file mode 100644 index 0000000..b943978 Binary files /dev/null and b/.github/readme/touchid.png differ diff --git a/README.md b/README.md index 5976603..e31fcf1 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,33 @@ -# secretive -Store SSH keys in the Secure Enclave. Heavily inspired by https://github.com/sekey/sekey +# Secretive + +Secretive is an app for storing and managing SSH keys in the Secure Enclave. It is inspired by the [sekey project](https://github.com/sekey/sekey), but rewritten in Swift with no external dependencies and with a handy native management app. + +Screenshot of Secretive + +## Why? + +### Safer Storage + +The most common setup for SSH keys is just keeping them on disk, guarded by proper permissions. This is fine in most cases, but it's not super hard for malicious users or malware to copy your private key. If you store your keys in the Secure Enclave, it's impossible to export them, by design. + +### Access Control + +If your Mac has a Secure Enclave, it also has support for strong biometric access controls like Touch ID. You can configure your key so that they require Touch ID (or Watch) authentication before they're accessed. + +Screenshot of Secretive authenticating with Touch ID + +### Notifications + +Secretive also notifies you whenever your keys are acceessed, so you're never caught off guard. + +Screenshot of Secretive notifying the user + +### Support for Smart Cards Too! + +For Macs without Secure Enclaves, you can configure a Smart Card (such as a YubiKey) and use it for signing as well. + +## Getting Started + +### Security Considerations + +For the moment, you must build Secretive from source. For an app like this, it's critical that you trust that the app you're running is the app whose source you've checked out. To this end, Secretive has no third party dependecies, and is designed to be easy for you to audit for exploits.