Vertrauende Parteien können anhand der AAGUID der zugehörigen Anmeldedaten für den öffentlichen Schlüssel ermitteln, von welchem Passkey-Anbieter ein Passkey erstellt wurde.
Herausforderungen bei der Passkey-Verwaltung
Einer der Vorteile von Passkeys ist, 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 bei der vertrauenden Partei anmelden, wenn sie den Zugriff auf ihr Konto verlieren, weil einer ihrer Passkeys verloren gegangen ist. Sie können dann alternative Passkeys verwenden.
Nutzer, die mehrere Passkeys auf einer RP verwalten, haben das Problem, den richtigen Passkey zu finden, wenn sie einen bestimmten Passkey bearbeiten oder löschen möchten. Ein gutes Beispiel ist, wenn ein Nutzer einen nicht verwendeten Passkey entfernen möchte. RPs wird empfohlen, Informationen zum Passkey wie Erstellungsdatum und Datum der letzten Verwendung in die Passkey-Liste aufzunehmen. So können Nutzer einen bestimmten Passkey finden.
RPs können Nutzern auch erlauben, einen Passkey sofort nach der Erstellung oder später zu benennen, aber viele Nutzer tun das nicht. Im Idealfall werden Passkeys automatisch benannt, wobei die vom Client gesendeten Signale oder die im öffentlichen Schlüssel enthaltenen Informationen berücksichtigt werden.
Browser stellen einen User-Agent-String bereit, den vertrauende Parteien zum Benennen von Passkeys verwenden können. Auf Plattformen wie Android, iOS oder Desktopbrowsern mit Erweiterungsfunktionen können Passkeys jedoch von Drittanbieter-Passwortmanagern erstellt werden. Der User-Agent-String gibt daher nicht unbedingt an, wer der tatsächliche Passkey-Anbieter ist.
Mit der AAGUID (Authenticator Attestation Globally Unique Identifier), die in den Anmeldedaten für den öffentlichen Schlüssel enthalten ist, die bei der Registrierung eines Passkeys zurückgegeben werden, können RPs den Passkey-Anbieter ermitteln und Nutzern helfen, den richtigen Passkey zu finden.
Passkey-Anbieter mit AAGUID ermitteln
Die AAGUID ist eine eindeutige Nummer, die das Modell des Authentifikators (nicht die spezifische Instanz des Authentifikators) identifiziert. Die AAGUID ist Teil der Authentifikatordaten einer Anmeldedaten für den öffentlichen Schlüssel.

RPs können die AAGUID verwenden, um den Passkey-Anbieter zu identifizieren. Wenn ein Nutzer beispielsweise einen Passkey auf einem Android-Gerät mit dem Google Passwortmanager erstellt, erhält der RP die AAGUID "ea9b8d66-4d01-1d21-3ce4-b6b48cb575d4"
. Der RP kann den Passkey in der Passkey-Liste mit einem Hinweis versehen, dass er im Google Passwortmanager erstellt wurde.

Um eine AAGUID einem Passkey-Anbieter zuzuordnen, können RPs ein von der Community bereitgestelltes Repository von AAGUIDs verwenden. Wenn Sie die AAGUID in der Liste nachschlagen, können Sie den Namen des Passkey-Anbieters und den SVG-Text für das zugehörige Symbol finden.
Das Abrufen der AAGUID ist eine Funktion, die von den meisten WebAuthn-Bibliotheken bereitgestellt wird. Das folgende Beispiel zeigt 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. RPs können die AAGUID verwenden, um Nutzern die Verwaltung ihrer Passkeys zu erleichtern. Ein von der Community erstelltes Repository mit AAGUIDs kann verwendet werden, um AAGUIDs Passkey-Anbietern zuzuordnen.