Repository navigation
2Secret v1.9.4
·
6 commits
to claude/busy-rubin-4vamfu
since this release
Security improvements from a review of the cryptography against a stolen
server database, a stolen device and a hostile server.
- Known keys. The apps and the command line remember the public keys of
everyone you sealed a vault key to (sharing a vault, replacing its key,
an emergency contact). When the server later reports other keys for that
person, nothing is sent to them and the app shows both fingerprints; you
can trust the new keys after comparing them (2secret account trust-keys
on the command line). Until now a server could put its own keys in
someone's place, for an emergency contact even without you doing
anything. - Replaced vault keys. A vault key that the server offers sealed to
your public key for a vault without other members is refused: only your
own devices could replace that key, and they do so with your account
key. Every replaced or refused key is mentioned after the sync. - Mac: the Touch ID key is in the protected keychain. The key that
unlocks 2Secret with Touch ID was in the login keychain, which has no
Touch ID protection of its own, so a copy of the Mac's disk opened with
the login password alone. It is now a keychain item that the Secure
Enclave releases only after Touch ID with the enrolled fingers, on this
Mac, like on the iPhone. The app moves the key on the next unlock. (On
the iPhone the key was already protected this way; if that protection
cannot be set up, the key is now not stored at all.) - Server: the database keeps a hash of each share link's proof instead of
the proof itself, so a copy of the database can neither open a link nor
use up its views. Links made before this version keep working. - Server: the per-address count of failed sign-ins is forgotten after its
window, like the other limits. docs/SECURITY.mdsays more precisely what the server stores and which
limits apply.- Dependencies: tokio 1.54.1 (RUSTSEC-2026-0386), clipboard-win 5.4.3. The
advisory on crypto-bigint 0.5 (RUSTSEC-2026-0387, timing variability in
P-256 arithmetic) waits for ssh-key 0.7; P-256 only signs on the device,
after a click or consent (seedeny.toml). - The iOS simulator check looks for the app's process directly instead of
askinglaunchctl, which once took too long on a busy runner.
Downloads
| File | What |
|---|---|
2Secret_*_aarch64.dmg |
macOS app for Apple silicon (M1 and newer) |
2Secret_*_x64.dmg |
macOS app for Intel Macs |
2Secret_*_x64-setup.exe |
Windows app (installs for your user and can update itself; removes an .msi version of 2Secret up to 1.7.0) |
*.deb, *.rpm, *.AppImage |
Linux app (x86_64) |
2Secret_*_android-arm64.apk |
Android app (Android 7 and newer) – allow installing from your browser when asked |
2Secret_*_android-arm64.aab |
Android app bundle for app stores |
2secret-*-<platform>.tar.gz / .zip |
2secret CLI and 2secret-server for Linux, macOS (Apple silicon and Intel) and Windows |
2secret-web-*.tar.gz |
Web vault – serve it with 2secret-server --web-dir |
2secret-extension-*.zip |
Browser extension for Chrome, Edge, Brave and Firefox (load unpacked) |
SHA256SUMS, SHA256SUMS.sig |
Checksums of all files, signed with 2Secret's update key (how to check) |
Server image for x86_64 and ARM64 (e.g. Raspberry Pi 4/5 with a 64-bit OS):
docker pull ghcr.io/joostiphone/2secret:latest – see
self-hosting.
On macOS, drag 2Secret to Applications and open it. If macOS says it cannot
verify the app, open System Settings → Privacy & Security and click Open
Anyway (on macOS 14 and older you can also right-click the app and choose
Open).
On Windows, SmartScreen may ask you to confirm (More info → Run anyway).
FreeBSD, OpenBSD, NetBSD and iOS: build from source, see the
README.