I am unhappy with the state of commercial password managers (every single word here links to a problem). Vespass is an uncompromising password manager with stronger security guarantees and lower friction than anything else on the market.
Features:
- No master passwords
- Minimal cryptography and minimal package dependencies (just one)
- Fully open source (GPL-3)
- Secure and recoverable in event of device loss
- Under 5000 lines of code (Current:
1198
)1 - (In future) Support Bluetooth/NFC for communication
- (In future) Minimal TOFU
Vespass ships two modes: a low friction mode (with lower security) and a high security mode (with higher friction). In either case, your passwords are likely more secure than most other password managers in the market. More precisely, we measure cryptographic security as:
High security mode:
- Security of secrets at rest = breaking two device's hardware secure enclave
- Security of secrets in transit = breaking iCloud end-to-end encryption and breaking one device's secure enclave
Low friction mode:
- Security of secrets (both at rest and in transit) = breaking iCloud end-to-end encryption and breaking one device's secure enclave
Notice that the high security mode is much like enabling two-factor authentication, so even if a website does not support 2FA out of the box, your password to it is stored with as much security as it could add.
Vespass uses secret sharing and end-to-end encryption to hardware-secure keys to enable these properties. It ships a macOS and iOS app that works on all Apple devices that have a secure enclave (and in future, hardware authentication devices like Yubikeys, some subset of Android/Linux/Windows devices and paper keys).
Vespass uses a combination of secret sharing and encryption to hardware secure enclave keys. With some secret sharing magic, we can force a secret (password) to be split into pieces. Each piece is then encrypted to a cryptographic key attached to the secure enclave and stored by your devices separately2. When you are ready to reassemble the secret and sign in, your devices need to decrypt their individual pieces (requiring biometrics for decryption) and then collaborate with each other to re-derive the plaintext secret. After one-time use, Vespass deletes the plaintext versions from memory, so future use remains just as secure.
Most devices these days have hardware secure enclaves for handling secrets. These secure enclaves are the key to securing most of everything on your devices (such as with Apple's Touch ID/Face ID). Any attacks on the secure enclave are essentially a compromise of anything else on the device (and in practice, most attacks assume at least firmware access). If the secure enclave can be broken, so can any secret in any other software/hardware (on the OS, RAM, etc.) on the device. Thus, building a password manager that inherits the security of the secure enclave likely makes the most secure security assumptions possible.
A secret is broken into
In low friction mode, one of the secret shares is stored in the cloud (under iCloud end-to-end encryption AND secure enclave encryption) and retrieved only when necessary, so you only require one device at hand to authenticate, and in case of device loss, you can simply retract that device's iCloud access to make it useless by itself.
General secret sharing is a bit more complex, but we only require a simple version for our specific use case: 2-of-
It's not.
If a Vespa is a "motorcycle of a rational complexity of organs and elements combined with a frame with mudguards and a casing covering the whole mechanical part", Vespass is just the organs and elements right now.
Here's a WIP demo of the organs using the iOS and macOS app:
Vespass.spec.demo.mp4
Another way to put it is that Vespass is currently closer to an eprint protocol specification (code is the best spec) than it is to a usable product.
Help me build the remainder of this motorcycle. Reach out.
Footnotes
-
This minimizes surface area for bugs and simplifies auditing. Bitwarden, for comparison, has at least 500,000. I wonder what the distribution of bugs per line of code looks like. :) ↩
-
In low-friction mode, one of the secret shares is stored by iCloud servers (doubly encrypted under E2EE and secure enclave key cryptography) ↩