Où sont stockées les clés FIDO U2F?

Aug 19 2020

J'obtiens des informations contradictoires sur la manière dont les clés de sécurité sont stockées et utilisées. Où sont stockées les clés publiques et privées? Si la clé privée est stockée sur le Yubikey lui-même, combien peut-elle en contenir?

Si les deux clés sont stockées sur le service contre lequel vous vous authentifiez (Gmail), envoie-t-il au yubikey la clé privée à déchiffrer pour utiliser la clé privée pour la signature?

Site Web de Yubikey:

Lors du processus d'enregistrement, les paires de clés sont générées sur l'appareil (élément sécurisé) mais les paires de clés ne sont pas stockées sur les YubiKeys . Au lieu de cela, la paire de clés (clé publique et clé privée chiffrée) est stockée par chaque partie de confiance / service qui a lancé l'enregistrement. Par conséquent, cette approche permet d'associer un nombre illimité de services aux YubiKeys certifiés U2F.

Site Web FIDO:

L'appareil et le protocole U2F doivent garantir la confidentialité et la sécurité des utilisateurs. Au cœur du protocole, le dispositif U2F a une capacité (idéalement, incorporée dans un élément sécurisé) qui frappe une paire de clés publique / privée spécifique à l'origine. L'appareil U2F donne la clé publique et un descripteur de clé au service en ligne ou au site Web d'origine lors de l'étape d'enregistrement de l'utilisateur. Plus tard, lorsque l'utilisateur effectue une authentification, le service en ligne ou le site Web d'origine renvoie le descripteur de clé au périphérique U2F via le navigateur. Le périphérique U2F utilise le descripteur de clé pour identifier la clé privée de l'utilisateur et crée une signature qui est renvoyée à l'origine pour vérifier la présence du périphérique U2F. Ainsi, la poignée de clé est simplement un identifiant d'une clé particulière sur le périphérique U2F.

https://fastmail.blog/2016/07/23/how-u2f-security-keys-work/

https://developers.yubico.com/U2F/

https://fidoalliance.org/specs/fido-u2f-v1.2-ps-20170411/fido-u2f-overview-v1.2-ps-20170411.html#site-specific-public-private-key-pairs

https://www.yubico.com/authentication-standards/fido-u2f/#toggle-id-4

Réponses

2 Marc Aug 19 2020 at 12:14

Les clés peuvent être soit stockées sur l'appareil, soit chiffrées et renvoyées dans le descripteur de clé . Les deux sont autorisés (et mentionnés) par la spécification.

À partir des considérations de mise en œuvre :

Les jetons U2F peuvent ne pas stocker le matériel de clé privée et exporter à la place une clé privée encapsulée dans le cadre du handle de clé.

Également dans la spécification du format de message brut :

Une poignée de clé [longueur spécifiée dans le champ précédent]. Il s'agit d'un handle qui permet au jeton U2F d'identifier la paire de clés générée. Les jetons U2F peuvent encapsuler la clé privée générée et l'ID d'application pour laquelle elle a été générée, et les afficher en tant que descripteur de clé.

Cela laisse la décision au fabricant de l'appareil U2F.

Yubico a choisi de renvoyer la clé privée cryptée en tant que poignée de clé, permettant un nombre illimité d'informations d'identification.

Si un fabricant de périphérique choisit de stocker la clé privée sur le périphérique lui-même, le nombre de clés possibles sera limité par la quantité de stockage disponible. Vous devrez consulter les spécifications d'un appareil spécifique.