Signal API für Passkeys in der Chrome-Desktopversion

Veröffentlicht: 13. November 2024

Ab Chrome 132 unterstützt Chrome für Computer (macOS, Windows, Linux und ChromeOS) die Signal API, mit der die Passkeys bei Passkey-Anbietern mit den öffentlichen Schlüssel-Anmeldedaten auf dem Server der vertrauenden Partei übereinstimmen können.

Wenn ein Passkey (ein auffindbares Anmeldedatenelement) erstellt wird, werden Metadaten wie ein Nutzername und ein Anzeigename zusammen mit dem privaten Schlüssel beim Passkey-Anbieter (z. B. einem Passwortmanager) gespeichert. Die Anmeldedaten für den öffentlichen Schlüssel werden auf dem Server der vertrauenden Partei gespeichert. Wenn der Nutzername und der Anzeigename gespeichert werden, kann der Nutzer leichter erkennen, mit welchem Passkey er sich anmelden soll, da er bei der Anmeldung aufgefordert wird, einen Passkey auszuwählen. Das ist besonders nützlich, wenn der Nutzer mehr als zwei Passkeys von verschiedenen Passkey-Anbietern hat.

Es gibt jedoch einige Fälle, in denen Unterschiede zwischen der Passkey-Liste beim Passkey-Anbieter und der Anmeldedatenliste auf dem Server zu Verwirrung führen können.

Im ersten Fall löscht ein Nutzer Anmeldedaten auf dem Server, lässt aber den Passkey beim Passkey-Anbieter unverändert. Wenn sich der Nutzer das nächste Mal mit dem Passkey anmelden möchte, wird ihm der Passkey weiterhin vom Passkey-Anbieter angezeigt. Der Anmeldeversuch schlägt jedoch fehl, da der Server die Anmeldung mit dem gelöschten öffentlichen Schlüssel nicht bestätigen kann.

Der zweite Fall ist, wenn ein Nutzer seinen Nutzernamen oder den Anzeigenamen auf dem Server aktualisiert. Wenn sich der Nutzer das nächste Mal anmeldet, werden im Passkey-Anbieter weiterhin der alte Nutzername und der alte Anzeigename angezeigt, obwohl sie auf dem Server aktualisiert wurden. Idealerweise sollten sie synchron sein.

Signal API

Mit der WebAuthn Signal API können RPs vorhandene Anmeldedaten an verbundene Passkey-Anbieter senden. So kann ein unterstützter Passkey-Anbieter fehlerhafte oder widerrufene Passkeys aus seinem Speicher aktualisieren oder entfernen, damit sie mit dem Server übereinstimmen.

Wenn sich ein Nutzer beispielsweise nicht bei einem RP anmelden kann, weil die zugehörigen Anmeldedaten auf dem RP-Server nicht mehr vorhanden sind, kann das RP über die Signal API dem Passkey-Anbieter mitteilen, dass die gelöschten Anmeldedaten nicht mehr gültig sind. Der Passkey-Anbieter kann dann den zugehörigen Passkey löschen.

Ein weiteres Beispiel: Wenn ein Nutzer die Seite „Einstellungen“ des RP aufruft und die vorhandenen Anmeldedaten löscht, kann der RP über die Signal API eine Liste der verfügbaren Anmeldedaten an den Passkey-Anbieter senden, damit dieser die zugehörigen Passkeys synchronisieren kann.

Ein Dialogfeld, das angezeigt wird, wenn ein Passkey aus dem Google Passwortmanager in Chrome gelöscht wird.
Dialogfeld, das angezeigt wird, wenn ein Passkey aus dem Google Passwortmanager in Chrome gelöscht wird.

Außerdem kann er einen aktualisierten Nutzernamen und Anzeigenamen signalisieren, damit die für denselben Nutzer gespeicherten Passkey-Metadaten aktualisiert werden können.

Wenn ein Nutzer beispielsweise seinen Nutzernamen oder Anzeigenamen beim RP aktualisiert, kann das RP die aktualisierten Nutzerinformationen über die Signal API an den Passkey-Anbieter senden, damit dieser die Nutzerinformationen der zugehörigen Passkeys synchronisieren kann.

Ein Dialogfeld, das angezeigt wird, wenn die Metadaten eines Passkeys im Google Passwortmanager in Chrome aktualisiert werden.
Dialogfeld, das angezeigt wird, wenn die Metadaten eines Passkeys im Google Passwortmanager in Chrome aktualisiert werden.

Der Google Passwortmanager in der Chrome-Desktopversion implementiert das Signal-Protokoll. Anbieter von Passkeys, die auf Chrome-Erweiterungen basieren, können selbst entscheiden, ob sie das Signal berücksichtigen möchten.

Wir planen, die Signal API in Zukunft in Chrome für Android zu unterstützen.

Weitere Informationen zur Einbindung der WebAuthn Signal API finden Sie unter Liste der Passkeys mit der Signal API mit dem Server synchronisieren.