Prototypes StrongroomP13 · Team vault
How Strongroom is built
  1. A member has two key pairs: X25519 to receive team keys and Ed25519 to sign. Each device has its own pair of each, and signs every request it makes.
  2. The team key is a random AES-256 key. It is wrapped for each member with an X25519 agreement, HKDF and AES-GCM, and every secret is encrypted with it in the browser.
  3. Every change to the team is an entry in a log, signed by an admin or by the member it concerns and linked to the entry before it by its hash. The server and every device check each entry.
  4. Removing a member makes a new team key for everyone who stays and encrypts every secret again with it, in one step that the server accepts only whole.
  5. A new device of the same member is linked with a code of 9 digits. Both devices agree on a key over the server and show the same digits, and the member’s keys go over only when the person confirms.
  6. The 12 words are a BIP39 recovery code. They give the address of an encrypted backup of the member’s keys and the key that opens it.