Déterminer le fournisseur de clés d'accès avec l'AAGUID

Les parties de confiance (RP) peuvent déterminer pour quel fournisseur de clé d'accès une clé d'accès est créée en examinant l'AAGUID de l'identifiant de clé publique associé.

Défis liés à la gestion des clés d'accès

L'un des avantages des clés d'accès est qu'elles permettent aux utilisateurs de créer plusieurs clés d'accès pour un seul compte. Grâce à cette flexibilité et à la robustesse des clés d'accès, même si l'utilisateur perd l'accès à son compte en perdant l'une de ses clés d'accès, il peut toujours se connecter au tiers de confiance à l'aide d'autres clés d'accès.

Pour les utilisateurs qui gèrent plusieurs clés d'accès sur un tiers assujetti à des restrictions, la difficulté consiste à identifier celle qui convient lorsqu'ils doivent en modifier ou en supprimer une en particulier. C'est par exemple le cas lorsqu'un utilisateur souhaite supprimer une clé d'accès inutilisée. Il est recommandé aux RP de joindre des informations sur la clé d'accès, telles que la date de création et la date de la dernière utilisation, à la liste des clés d'accès. Cela aide les utilisateurs à trouver une clé d'accès spécifique.

Les tiers assujettis à des restrictions peuvent également permettre aux utilisateurs de nommer une clé d'accès dès leur création ou ultérieurement, mais de nombreux utilisateurs ne le font pas. Idéalement, les clés d'accès sont nommées automatiquement en fonction des signaux envoyés par le client ou des informations incluses dans les identifiants de clé publique.

Les navigateurs fournissent une chaîne user-agent que les tiers de confiance peuvent utiliser pour nommer les clés d'accès, mais les plates-formes telles qu'Android, iOS ou les navigateurs d'ordinateur dotés de fonctionnalités d'extension autorisent la création d'une clé d'accès par des gestionnaires de mots de passe tiers. La chaîne user-agent ne représente pas nécessairement le fournisseur réel de la clé d'accès.

Grâce à l'identifiant unique global d'attestation Authenticator (AAGUID), inclus dans les identifiants de clé publique renvoyés lors de l'enregistrement de clé d'accès, les RP peuvent déterminer le fournisseur de clé d'accès et l'utiliser pour que les utilisateurs trouvent facilement la bonne clé d'accès.

Déterminer le fournisseur de clés d'accès avec AAGUID

AAGUID est un numéro unique qui identifie le modèle de l'authentificateur (et non l'instance spécifique de ce dernier). L'AAGUID se trouve dans les données d'authentification d'un identifiant de clé publique.

<ph type="x-smartling-placeholder">
</ph> Mise en page de l&#39;objet d&#39;attestation illustrant les données d&#39;authentificateur incluses (contenant les données des identifiants certifiés) et la déclaration d&#39;attestation. <ph type="x-smartling-placeholder">
</ph> L'AAGUID figure dans les données de l'authentificateur.

Les RP peuvent utiliser AAGUID pour identifier le fournisseur de clés d'accès. Par exemple, si un utilisateur crée une clé d'accès sur un appareil Android à l'aide du Gestionnaire de mots de passe de Google, la RP recevra un AAGUID "ea9b8d66-4d01-1d21-3ce4-b6b48cb575d4". Le tiers assujetti à des restrictions peut annoter la clé d'accès dans la liste des clés d'accès pour indiquer qu'elle a été créée dans le Gestionnaire de mots de passe de Google.

<ph type="x-smartling-placeholder">
</ph> Les paramètres de clé d&#39;accès sur la page des paramètres de sécurité affichent des informations détaillées sur chaque clé d&#39;accès. <ph type="x-smartling-placeholder">
</ph> Exemple d'UI de gestion des clés d'accès

Pour mapper un AAGUID à un fournisseur de clés d'accès, les tiers assujettis à des restrictions peuvent utiliser un dépôt d'AAGUID généré par la communauté. En recherchant l'AAGUID dans la liste, vous pourrez trouver le nom du fournisseur de la clé d'accès et son icône, le texte des données svg.

<ph type="x-smartling-placeholder">

La récupération de l'AAGUID est une fonctionnalité fournie par la plupart des bibliothèques WebAuthn. L'exemple suivant montre le code d'enregistrement côté serveur avec SimpleWebAuthn:

// Import a list of AAGUIDs from a JSON file
import aaguids from './aaguids.json' with { type: 'json' };

...

 // Use SimpleWebAuthn handy function to verify the registration request.
const { verified, registrationInfo } = await verifyRegistrationResponse({
  response: credential,
  expectedChallenge,
  expectedOrigin,
  expectedRPID,
  requireUserVerification: false,
});

...

const { aaguid } = registrationInfo;
const provider_name = aaguids[aaguid]?.name || 'Unknown';

Conclusion

AAGUID est une chaîne unique qui identifie le fournisseur de clé d'accès qui a créé une clé d'accès. Les tiers assujettis à des restrictions peuvent utiliser AAGUID pour permettre aux utilisateurs de gérer plus facilement leurs clés d'accès. Un dépôt d'AAGUID provenant d'une communauté peut être utilisé pour mapper des AAGUID aux fournisseurs de clés d'accès.