Security Key Derivation and Backup

From the presentation today, it sounds like security keys are not necessarily deterministically derived from the seed phrase. From a backup perspective, this requires ensuring that the settings backup file is not lost (in addition to the seed phrase). From a sovereignty perspective, this also makes it difficult to use the keys outside of Passport Prime (if it breaks).

Can you please consider instead deriving the security keys in a deterministic way from the master seed phrase? This would reduce the data in the settings backup, reduce the risk associated with losing the settings backup, and increase sovereignty (since they could always be derived from the seed phrase which can be stored on metal, especially if the derivation algorithm is published).

I understand this won’t work for TOTP but for the more secure Security Keys this seems like a significant architecture improvement with no risk. It would also allow them to be truly deleted instead of archived (since they can always be re-derived).

From a technical perspective, I believe this is how Ledger handles this with their FIDO app.

To clear up a possible misunderstanding from the presentation: security keys on Prime are derived deterministically from the master seed. The keys themselves are not random. Your instinct that this is the right approach is correct, and it is how Prime already works.

Where backup remains necessary is more specific. For each registered credential, the device stores metadata that is not derivable from the seed alone: the relying party identity, user information, signature counters, and the derivation indices used. Without that metadata, the device has no record of what credentials exist or how to map an incoming authentication request to the right key. The seed gives you the ability to derive any key, but not the knowledge of which keys to derive.

Your Ledger comparison is a useful reference point and worth unpacking properly, because the two approaches involve a genuine architectural tradeoff rather than one being strictly better.

Ledger’s implementation (following SLIP-0013) is fully stateless. The credential ID that the website stores and presents during authentication contains a nonce, and the device uses the master seed plus that nonce to derive the signing key on the fly. The device retains nothing between sessions. Restore from seed, and the next time any registered site presents a credential ID, the correct key is reconstructed automatically. No backup needed for credentials.

The tradeoff is that a stateless device has no awareness of its own credential state. It cannot show you what is registered, cannot let you manage individual credentials, and cannot support passwordless login flows where the authenticator presents credentials to the site rather than the other way around. That last point is significant: the modern FIDO2 standard introduced discoverable credentials specifically to enable passwordless authentication, where you tap the device without entering a username first. That capability requires the authenticator to store credential metadata, which is exactly what Prime does.

Prime is built toward full FIDO2 support, including passwordless flows. That is the reason for the on-device metadata storage, and it is a deliberate choice rather than an oversight. The backup dependency is the cost of that capability.

That said, the underlying concern in your request is valid. A design that embeds enough information in the credential ID to re-derive the key from seed alone, even without the full metadata backup, would meaningfully reduce the consequences of losing a backup. It is a reasonable thing to want, and your feedback on it is noted.

Thanks for the detailed response! That makes sense and I agree that FIDO2 support is key. Would it be possible to “restore” the keys by rederiving them given the site names and usernames? If so, I think this is more than sufficient. Ideally, this could be an option on device to rederive keys by entering the necessary site URL and username. This would then provide peace of mind that even if the metadata was lost you wouldn’t lose access (I would never want a single point of failure so the alternative is a non-passport secondary key).

Interesting idea, and I think it’s worth raising with the team to see whether it’s technically feasible alongside the existing metadata-driven flow.

It may be doable, and I’ll flag it internally, but given how easy it already is with the existing MB setup (or manual metadata backup for non-MB users), it would be a lower priority item for us.

I’d like to echo Mason, this is something I’d like to see as well. I use FIDO security keys to SSH into computers, would be nice to be able to know i’d be able to recreate them offline as long as i have the seed somewhere…would prefer the option to not be limited exclusively to my ability to retrieve a backup file…there’s a lot of comfort in knowing in a worst case scenario i can recreate it from my seedphrase.

cc’ing @Jack to ensure this is in the backlog

Just to add to that, ideally also the deterministic path would also take into account if the user is using a passphrase (“25th word”). My ideal setup for the Passport Prime would be to deterministically be able to recreate as much as possible where I can also choose to use a passphrase as part of that determinism path (which doesn’t persist through device reboot) that is a reasonably strong dice words (like 6 words) but short enough to be memorizable for day to day convenience…so then I could physically store the passphrase (in case I some how forget it) and seedphrase in two separate locations so I don’t have to worry about someone stumbling across my master seed and recreating all my keys to my life without also first having to brute force a pretty strong passphrase.

Then I could sleep well using the Passport Prime to deterministically create all kinds of keys GPG, FIDO, Seeds, Nostr, etc without worrying that someone finding just my master seed when I’m not around could compromise all of that.

Combine that with open source (which Passport Prime is already) and common standards to maximum extent possible, and ideally an easy ability to verify on other manufacturers offline devices (Coldcard for example) that they can recreate the same thing then I won’t be as worried about bugs or if a single manufacturer shutsdown. Will be amazing to use this as a master key that generates virtually all my other keys of all kinds of types, but the bar is extremely high to become comfortable enough to take the full plunge with such a powerful tool. I absolutely love the potential for this device, and it’s paradoxical but the less I must rely on Foundation in the worst case scenario the better it is. Having the combination of being able to utilize awesome optional and convenient backup services by Foundation but also full self sovereignty, using common standards, avoiding total reliance on single manufacturer’s code/device is and will be amazing. So much amazing potential here - self sovereign restoration and first class common standards always being paramount (I realize Passport Prime will be first to market with certain things of course, but will be a bummer if they don’t get designed with the intention that they get adopted by other manufacturer devices too)

I am not an expert in word-based (or the alternative) derivation for the security keys / passkeys / 2FA – but I think that it would be interesting to see a back-up feature for those with Envoy+ (assuming that is still a thing) for the metadata being discussed here.

I’d envision those settings (that point to how the key is derived from the seed) could be optionally saved to Foundation Servers, encrypted by your master seed / private key - this would enable users to get a new device, set it up with their phrase, download the metadata/settings to their device, decrypt it using the seed, and be up-and-running right away. Again, even if it’s compromised, the settings would be useless without the master key. At that point, if the seed phrase is compromised, you have bigger problems than your passkeys.

This would be very cool and something I’d be comfortable with!