Your vault stays on your computer

Sesame keeps your passwords in one encrypted file on your computer. Only the desktop app can open it, and only with your master password. This page explains what that protects, what it cannot protect, and what is still unfinished.

The short version

  • Your passwords stay on your computer. The website and the server never receive your vault, and you do not need an account.
  • Only you can open the vault. It opens with your master password or your recovery kit. We cannot open it, and we cannot reset your password for you.
  • Sensitive actions ask for your password again. Showing, copying, or exporting a password and making a backup all need your master password, even while the vault is unlocked.
  • The browser extension cannot fill on its own. It holds no passwords and waits for you to approve each fill in the desktop app.
  • You can check the code. Sesame is open source, and every download can be traced to the source code it was built from.

How the parts fit

Sesame has three parts. Only the desktop app reads your vault. You can create, unlock, import, back up, and restore it without an account or an internet connection.

Website and serverThey publish releases and run optional accounts, and they never receive your vault.

Browser extensionIt holds no passwords and asks the app each time it fills one.

Sesame desktop app
Window This is what you see and click.

asks

Vault core It holds the key and decides what leaves the app.

reads and writes

Vault file It stays encrypted on your disk.

What happens if

Someone steals your laptop

The vault file is encrypted. To open it, a thief has to guess your master password, and Sesame makes every guess slow on purpose. A long master password is your best protection, so Sesame asks for at least 12 characters.

Someone uses your computer while you are away

By default the vault locks after five minutes without use, and when the computer wakes from a longer sleep. Some Linux desktops do not report idle time, so lock the vault yourself there.

Even while it is unlocked, showing or copying a password asks for your master password. After three wrong tries Sesame makes them wait, starting at five seconds and growing to five minutes.

A website tries to take a password

A web page cannot start a fill by itself. The desktop app shows you which site is asking and waits for your answer, and it refuses any site whose address imitates one you saved.

Our server is broken into

The server never has your vault. If you made an account, the server holds your email, a password hash, and your sessions, and none of that can open a vault.

Someone tampers with a download

Every installer is built in public on GitHub. Its Sigstore record names the exact source commit, and the releases page lists a checksum for every file. The app installs an update only when it carries Sesame's signature.

You forget your master password

Use your recovery kit to set a new one. If you still know the password but lost the kit, you can ask for a new kit. It is ready after 72 hours, and every unlock warns you until then, so you can cancel a request you did not make.

If you lose both the password and the kit, nobody can open the vault, including us.

What Sesame cannot stop

No password manager can protect you from everything, and these are the limits we know about.

  • Malware running on your computer can read your screen, record your keys, and read the app's memory while the vault is unlocked.
  • Malware in your browser can pretend to be the extension, so the approval in the Sesame window is the last check before a fill.
  • A PIN is a shortcut for this computer rather than a second lock. Software running as you can try PINs against a copy of the vault file, and each extra digit makes that ten times slower.
  • Changing your master password does not change backups, exports, or system backups you made before the change.
  • Anyone who can write to the vault folder can put back an older copy of the vault, and Sesame does not notice that yet.
  • Whoever learns your master password or recovery kit can open any copy of your vault, so keep the kit offline.

Technical details

This part is for readers who want to check the design against the source code.

Encryption
XChaCha20-Poly1305
Master password to key
Sesame uses Argon2id with at least 64 MiB of memory and 3 passes, and refuses files with weaker settings.
Opening a file
Sesame checks that a file is genuine before reading it, and refuses files that were tampered with, relabelled, or made by a newer version.
Saving
Sesame writes a new file, checks it, and then swaps it in, so a failed save leaves the old vault as it was.
Key in memory on Windows
The key stays out of the page file, and Sesame keeps it encrypted between uses.
Key in memory on Linux
The key stays out of swap, crash dumps, and child processes.
Breach check
Sesame sends only the first 5 characters of the password's SHA-1 hash to Have I Been Pwned.
Website icons
Icons stay off until you turn them on, because fetching an icon tells that site you saved it.

Not done yet

  • Sesame has not had an independent security audit yet, so please use test data for now.
  • The browser extension is not in the browser stores yet.
  • The Windows installer is not Authenticode signed yet, so SmartScreen warns on first run.
  • Linux packages do not update themselves yet, so download new versions from the releases page.
  • Sync is turned off until it passes its own security review.

Report a problem

If you find a security problem, report it privately with GitHub's Report a vulnerability form. Please do not open a public issue, and use made-up data in your report. The security policy says what to include and how fast we reply.

Every part of Sesame is open source under the GNU Affero General Public License v3.0 or later, so you can read the code behind every claim on this page.