Vertrauende Parteien (RPs) können ermitteln, von welchem Passkey-Anbieter ein Passkey erstellt wird, indem die AAGUID der zugehörigen Public-Key-Anmeldedaten untersucht wird.
Herausforderungen bei der Passkey-Verwaltung
Einer der Vorteile von Passkeys besteht darin, dass Nutzer mehrere Passkeys für ein einzelnes Konto erstellen können. Dank dieser Flexibilität und der Robustheit von Passkeys können sich Nutzer auch dann mit alternativen Passkeys bei der vertrauenden Seite anmelden, wenn sie aus dem Konto ausgesperrt werden und einen ihrer Passkeys verlieren.
Die Herausforderung für Nutzer, die in einem RP mehrere Passkeys verwalten, besteht darin, den richtigen Passkey zu ermitteln, wenn sie einen bestimmten Passkey bearbeiten oder löschen müssen. Ein gutes Beispiel ist, wenn ein Nutzer einen nicht verwendeten Passkey entfernen möchte. RPs werden empfohlen, der Passkey-Liste Informationen zum Passkey wie das Erstellungsdatum und das Datum der letzten Verwendung hinzuzufügen. Dies hilft Nutzern, einen bestimmten Passkey zu finden.
Bei RPs können Nutzer einen Passkey auch gleich oder später benennen, viele Nutzer tun das aber nicht. Idealerweise werden Passkeys automatisch anhand der vom Client gesendeten Signale oder der Informationen in den Anmeldedaten des öffentlichen Schlüssels benannt.
Browser stellen einen User-Agent-String bereit, mit dem Parteien Passkeys benennen können, aber Plattformen wie Android, iOS oder Desktop-Browser mit Erweiterungsfunktionen ermöglichen das Erstellen eines Passkeys über Passwortmanager von Drittanbietern. Der User-Agent-String gibt nicht unbedingt den tatsächlichen Passkey-Anbieter an.
Mit der Authenticator Attestation Globally Unique Identifier (AAGUID), die in den Public-Key-Anmeldedaten enthalten ist, die bei einer Passkey-Registrierung zurückgegeben werden, können RPs den Passkey-Anbieter ermitteln und damit Nutzer ganz einfach den richtigen Passkey finden.
Passkey-Anbieter mit AAGUID ermitteln
Die AAGUID ist eine eindeutige Zahl, die das Modell des Authenticator identifiziert, nicht die spezifische Instanz des Authenticator. Die AAGUID ist Teil der Authenticator-Daten eines Public-Key-Anmeldedatensatzes.
![Layout des Attestierungsobjekts, das die eingebundenen Authenticator-Daten (mit attestierten Anmeldedatendaten) und die Bestätigungserklärung veranschaulicht.](https://web.dev/static/articles/webauthn-aaguid/image/attestation_object.jpg?authuser=6&hl=de)
RPs können anhand der AAGUID den Passkey-Anbieter identifizieren. Wenn ein Nutzer beispielsweise mit dem Google Passwortmanager einen Passkey auf einem Android-Gerät erstellt, erhält der RP die AAGUID "ea9b8d66-4d01-1d21-3ce4-b6b48cb575d4"
. Der RP kann den Passkey in der Passkey-Liste annotieren, um darauf hinzuweisen, dass er im Google Passwortmanager erstellt wurde.
![Die Passkey-Einstellungen auf der Seite „Sicherheitseinstellungen“ enthalten detaillierte Informationen zu jedem Passkey.](https://web.dev/static/articles/webauthn-aaguid/image/passkey_management.jpg?authuser=6&hl=de)
Um eine AAGUID einem Passkey-Anbieter zuzuordnen, können RPs ein Community-Repository mit AAGUIDs verwenden. Sie können die AAGUID in der Liste nachschlagen, um den Namen des Passkey-Anbieters und den zugehörigen Symboltext für die SVG-Daten zu finden.
Das Abrufen der AAGUID ist eine Funktion, die die meisten WebAuthn-Bibliotheken bereitstellen. Das folgende Beispiel zeigt den serverseitigen Registrierungscode mit 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';
Fazit
Die AAGUID ist ein eindeutiger String, der den Passkey-Anbieter identifiziert, der einen Passkey erstellt hat. Mit AAGUID können Nutzer ihre Passkeys einfacher verwalten. Ein von der Community stammendes Repository von AAGUIDs kann verwendet werden, um AAGUIDs Passkey-Anbietern zuzuordnen.