I've just been reading some posts about FIDO support (or the lack thereof) in password managers and want to check whether my understanding is correct.

My understanding of FIDO (v1) is that the device contains a secret that it will never let out of the device, and all it has to support is digital signatures based on keypairs derived from this secret. Roughly, when you log in to example.com, the device computes a site-specific keypair based on some KDF(secret, "example.com") and then signs the server's challenge with that.

In other words, a FIDO token does not have to function as a source of secret keying material, which means that it makes no sense to use it with an offline / standalone password manager. After all, you want the password database to be encrypted with a key that's not stored in or next to the database itself, which is why you set a master password from which you derive the key. A FIDO device lets you prove possession of a key, but as it's (for practical purposes) "zero knowledge" that's no use for unlocking an encrypted database.

(In contrast, yubikeys that offer other modes as well as FIDO do make sense together with password managers precisely because they can hold your key and export it when you need to open the password manager.)

So for example pwsafe+yubikey exists, but pwsafe+generic FIDO isn't likely to happen soon. (I haven't checked the FIDO2 standard in detail yet, maybe that has a mode for this.)

But then you read things like keeper password manager enables FIDO support. How is this supposed to work - is the secret stored in some form on their servers, which is only released to you when you successfully authenticate with FIDO?

(I'm wondering whether this goes on infosec or crypto stack exchange, but I'll start by posting it here.)

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.