Passkey-Anbieter mit AAGUID ermitteln

Vertrauenswürdige Seiten (Relying Parties, RPs) können anhand der AAGUID der zugehörigen öffentlichen Schlüssel-Anmeldedaten ermitteln, von welchem Passkey-Anbieter ein Passkey erstellt wurde.

Herausforderungen bei der Passkey-Verwaltung

Ein Vorteil 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 kann sich der Nutzer auch dann mit alternativen Passkeys bei der vertrauenden Partei anmelden, wenn er keinen seiner Passkeys mehr hat.

Die Herausforderung für Nutzer, die mehrere Passkeys für einen RP verwalten, besteht darin, den richtigen Passkey zu identifizieren, wenn sie einen bestimmten Passkey unter anderen 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 das Erstellungsdatum und das Datum der letzten Verwendung in die Passkey-Liste anzugeben. So können Nutzer einen bestimmten Passkey leichter finden.

RPs können Nutzern auch erlauben, Passkeys direkt nach der Erstellung oder später zu benennen, aber viele Nutzer tun dies nicht. Idealerweise werden Passkeys automatisch benannt, wobei die vom Client gesendeten Signale oder die in den öffentlichen Schlüsselanmeldedaten enthaltenen Informationen berücksichtigt werden.

Browser stellen einen User-Agent-String bereit, mit dem vertrauende Seiten Passkeys benennen können. Plattformen wie Android, iOS oder Desktop-Browser mit Erweiterungsfunktionen ermöglichen jedoch das Erstellen eines Passkeys über Passwortmanager von Drittanbietern. Der User-Agent-String gibt nicht unbedingt an, wer der tatsächliche Passkey-Anbieter ist.

Mit der Authenticator Attestation Globally Unique Identifier (AAGUID), die in den öffentlichen Schlüssel-Anmeldedaten enthalten ist, die bei der Registrierung eines Passkeys zurückgegeben werden, können RPs den Passkey-Anbieter ermitteln und ihn verwenden, damit Nutzer den richtigen Passkey ganz einfach finden.

Passkey-Anbieter mit AAGUID ermitteln

Die AAGUID ist eine eindeutige Nummer, die das Modell des Authenticators (nicht die spezifische Instanz des Authenticators) identifiziert. Die AAGUID ist Teil der Authenticator-Daten von Anmeldedaten mit öffentlichem Schlüssel.

Layout des Attestierungsobjekts mit den enthaltenen Authenticator-Daten (enthält attestierte Anmeldedaten) und der Attestierungserklärung.
Die AAGUID finden Sie in den Authenticator-Daten.

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 eine AAGUID von "ea9b8d66-4d01-1d21-3ce4-b6b48cb575d4". Der RP kann den Passkey in der Passkey-Liste annotieren, um anzugeben, dass er im Google Passwortmanager erstellt wurde.

In den Passkey-Einstellungen auf der Seite „Sicherheitseinstellungen“ finden Sie detaillierte Informationen zu den einzelnen Passkeys.
Beispiel für eine Benutzeroberfläche zur Passkey-Verwaltung.

Um eine AAGUID einem Passkey-Anbieter zuzuordnen, können RPs ein von der Community bereitgestelltes Repository mit AAGUIDs verwenden. Wenn Sie die AAGUID in der Liste suchen, finden Sie den Namen des Passkey-Anbieters und den SVG-Datentext des Symbols.

Das Abrufen der AAGUID ist eine Funktion, die die meisten WebAuthn-Bibliotheken bieten. 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 AAGUIDs verwenden, um es Nutzern zu erleichtern, ihre Passkeys zu verwalten. Mit einem Community-Repository mit AAGUIDs können AAGUIDs Passkey-Anbietern zugeordnet werden.