FIDO-Authentifizierung mit Schlüsselschlüsseln

Einführung

Der Authentifizierungsstandard FIDO (Fast IDentity Online) definiert einen schnellen und sicheren Authentifizierungsmechanismus für Nutzer, der auf Websites und Anwendungen zugreifen kann.

Die FIDO Alliance entwickelt gemeinsam mit Vertretern einer Organisation offene und skalierbare technische Spezifikationen, mit denen Nutzer über ein gemeinsames Protokoll auf Websites und Apps zugreifen können. Das bedeutet, dass jedes Unternehmen FIDO-Standards zur Implementierung von Technologien wie Passkeys für eine sichere Authentifizierung verwenden kann.

Ein Passkey ist ein FIDO-Anmeldedaten, der mit einem Ursprung (Website oder Anwendung) und einem physischen Gerät verknüpft ist. Mit Passkeys können sich Nutzer authentifizieren, ohne einen Nutzernamen und ein Passwort eingeben zu müssen oder einen zusätzlichen Authentifizierungsfaktor anzugeben. Diese Technologie versucht, Passwörter als primäres Authentifizierungsmechanismus zu ersetzen.

Warum sichere Authentifizierung?

Passwörter werden seit Jahrzehnten für die Authentifizierung eingesetzt. Die passwortbasierte Authentifizierung ist jedoch nicht die sicherste Authentifizierungsoption, da es zu Datenpannen und Passwörtern kommen kann.

Viele Nutzer melden sich mit verschiedenen Passwörtern auf verschiedenen Websites an. Falls also eine Website gehackt wird, ist jedes andere Konto, für das dasselbe Passwort verwendet wird, gefährdet. Selbst wenn du ein sicheres Passwortsystem eingebaut hast, sind manche Nutzer jedoch weiterhin gefährdet, wenn ein Passwort ihr einziger Schutz ist.

Einige Websites und Anwendungen fordern eine Bestätigung in zwei Schritten an, indem sie eine zweite Anmeldedaten anfordern, die per SMS, E-Mail, Anwendung usw. übermittelt werden. Dies ist zwar sicherer als nur ein Passwort, aber diese Methode der Bestätigung in zwei Schritten ist auch anfällig für Phishing, da der Nutzer davon überzeugt sein kann, seine Anmeldedaten in eine schädliche Website einzugeben.

Wie sorgt FIDO für mehr Sicherheit?

Mit der FIDO-basierten Authentifizierung werden viele der Probleme entfernt, die von der passwortbasierten Authentifizierung stammen und von der Authentifizierung, die traditionelle zweite Schritte verwendet. Wichtig ist insbesondere:

  • Die FIDO-Authentifizierung basiert auf dem öffentlichen Schlüssel.
  • FIDO sorgt dafür, dass Anmeldedaten nicht mit böswilligen Parteien oder Dritten geteilt werden, die nicht Inhaber der Anmeldedaten sind.

Die Kryptografie „Öffentlicher Schlüssel“ verringert die Wahrscheinlichkeit von potenziellen Datenpannen bei Datenbanken. Der Nutzer registriert sich bei einem einzelnen Ursprung (einer Website oder Anwendung), der ein privates Schlüsselpaar mit einem physischen Gerät generiert. Der öffentliche Schlüssel des Nutzers wird vom Ursprungsserver gespeichert, aber dieses allein ist für einen Angreifer nutzlos. Ein Angreifer kann den privaten Schlüssel des Nutzers nicht aus den auf dem Server gespeicherten Daten ableiten, die für die Authentifizierung erforderlich ist.

Bei FIDO ist der Nutzer nicht dafür verantwortlich, zu bestätigen, dass eine Website oder Anwendung tatsächlich die ist, die er sagt. Darüber hinaus muss der Nutzer dafür sorgen, dass Anmeldedaten an den falschen Stellen verwendet werden. FIDO verknüpft alle Anmeldedaten mit einem bestimmten Ursprung. Das Gerät (nicht das menschliche Element) ist also dafür verantwortlich, die Website oder Anwendung richtig zu identifizieren.

Beispiel: Angenommen, der Nutzer versucht, sich bei example.com anzumelden. Wenn der Nutzer die Anmeldedaten von example.com in phishing-example.com anfordert, lehnt der Authentifizierungsanbieter die Anfrage ab, um den Nutzer zu schützen. Durch den Authentifizierungsprozess wird es für Phishing-Websites oder -Apps sehr schwierig, sich Bestätigungen für andere Quellen zu sichern.

FIDO und Passkeys ermöglichen insgesamt eine stärkere Authentifizierung, die für die meisten Nutzer nach wie vor geeignet ist.

Demo

Was sind Passkeys?

Ein Passkey ist ein digitaler Zeugnis, der den FIDO- und W3C Web Authentication-Standards entspricht. Ähnlich wie bei einem Passwort können Websites und Anwendungen anfordern, dass ein Nutzer einen Passkey für den Zugriff auf sein Konto erstellt.

Schlüssel müssen auf Geräten entsperrt werden, um die Identität eines Nutzers zu bestätigen. Dies kann mit einem biometrischen Sensor (z. B. einem Fingerabdruck, Gesichtserkennung), PIN oder Muster durchgeführt werden. Ein Nutzer muss sich zuerst beim Ursprung registrieren, um einen Schlüssel generieren zu können. Das ist ein öffentlich-privates Schlüsselpaar.

Wenn er zur Website oder Anwendung zurückkehrt, um sich anzumelden, kann er Folgendes tun:

  1. Rufen Sie die Anwendung auf.
  2. Klicken Sie auf Anmelden.
  3. Wählen Sie den entsprechenden Schlüssel aus.
  4. Entsperren Sie das Gerät, um die Anmeldung abzuschließen.

Der Authenticator generiert eine Signatur mit dem privaten Schlüssel. Diese Signatur wird verwendet, um die Anmeldedaten zwischen Quelle und Authentifizierung des öffentlichen Schlüssels zu prüfen, ohne den privaten Schlüssel offenzulegen.

Nutzer können sich mit einem Schlüssel auf einem beliebigen Gerät in Diensten anmelden, unabhängig davon, wo der Passkey gespeichert ist. Beispielsweise kann ein auf einem Smartphone gespeicherter Passkey zur Anmeldung auf einer Website auf einem separaten Laptop verwendet werden.

Wie funktionieren Passkeys?

Schlüssel werden über das Betriebssystem erstellt und synchronisiert. Einige Betriebssysteme ermöglichen die automatische Synchronisierung von Passkeys zwischen den Geräten des Nutzers, z. B. einem Android-Smartphone und einem Chrome OS-Gerät, auf denen im selben Google-Konto angemeldet sind.

Passkeys sind mit Betriebssystemen verknüpft. Ein Nutzer kann Schlüssel aus seinem Smartphone verwenden, wenn er sich an einem Laptop anmeldet. Da Passkeys den FIDO- und W3C-Standards entsprechen, können sie von allen Browsern verwendet werden. Beispiel: Ein Nutzer besucht site.example auf seinem Chromebook. Dieser Nutzer hat sich zuvor auf seinem iOS-Gerät bei site.example angemeldet. Der Nutzer wird aufgefordert, seine Identität auf dem iOS-Gerät zu bestätigen. Normalerweise erstellt site.example einen neuen Schlüssel für das Chromebook des Nutzers, damit das Smartphone für zukünftige Anmeldungen nicht mehr erforderlich ist.

Passkeys sind Ende-zu-Ende-verschlüsselt, d. h., Google kann den Passkey zwar nicht lesen oder aus anderen Gründen wissen, obwohl er für die Synchronisierung mit verschiedenen Android-Geräten verantwortlich ist.

Authentifizierung

Darstellung des Authentifizierungsfensters

Wenn Sie Schlüssel/Wert-Paare auf einer Website oder in einer App implementieren möchten, machen Sie sich mit folgenden Schritten vertraut:

  • Authenticators sind nutzereigene Geräte, die den Passkey des Nutzers enthalten und in denen der Nutzer identifiziert werden kann.
  • Die vertrauliche Partei ist deine Website oder App, die aus einer Front-End-Anwendung und einem Back-End-Server besteht.
    • Die Front-End-Anwendung ruft APIs auf, um mit der Authentifizierung zu interagieren und die Authentifizierung zu starten.
    • Der Back-End-Server ruft die vom Authenticator generierten kryptografischen Objekte ab und verifiziert sie.

Beispiel: Ein Nutzer möchte ein Paar Schuhe in einem Geschäft von shoes.example kaufen (der vertrauenden Seite). Der Nutzer hat sich über sein Android-Smartphone mit biometrischem Sensor bereits auf shoes.example registriert. Der Nutzer meldet sich auf seinem Android-Gerät in shoes.example an, indem er sein Gerät entsperrt. Dann prüft shoes.example die kryptografisch signierten Anmeldedaten des Nutzers anhand des bekannten öffentlichen Schlüssels für diesen Nutzer, um zu bestätigen, dass seine Identität korrekt ist.

Authenticator

Authenticators sind FIDO-konforme Geräte, mit denen die Identität eines Nutzers bestätigt werden kann. Dazu zählen spezielle Geräte (FIDO-Sicherheitsschlüssel), Smartphones und andere Computer, die den Authentifizierungsanforderungen entsprechen. Authenticators führen die kryptografischen Vorgänge aus, die in den Bestimmungen von FIDO und WebAuthn beschrieben sind.

Das Gerät hat zwei Rollen für die Registrierung und Authentifizierung:

  • Wenn sich der Nutzer bei einer vertrauenden Seite anmeldet, generiert das Gerät ein eindeutiges Schlüsselpaar aus öffentlichem und privatem Schlüssel. Dazu gehören auch die Smartphones und Computer des Nutzers.
  • Wenn sich der Nutzer in Zukunft bei der vertrauenden Seite anmeldet, generiert das Gerät eine Signatur mit dem privaten Schlüssel.

Beide Vorgänge werden ausgeführt, wenn der Nutzer die Inhaberschaft des Authenticators belegt. Dieses Schlüsselpaar ist mit einem bestimmten Ursprung registriert und kann nur vom genauen Ursprung verwendet werden. Wenn ein Nutzer auf eine Phishingwebsite zugreift, sind die Anmeldedaten nicht verfügbar.

FIDO-kompatible Geräte

Die häufigsten Authentifizierungsexperten sind:

  • Plattform-Authenticatoren: Ist in Smartphones und Computer integriert. Plattform-Authentifizierer verwenden biometrische Sensoren (z. B. einen Fingerabdrucksensor oder eine Kamera mit Gesichtserkennung), eine PIN oder ein Muster. Da die Authentifizierungsinteraktion durch das Entsperren des Geräts abgeschlossen wird, weist dies in einem einzigen Schritt nach, dass der Nutzer das Gerät besitzt und seine Identität durch seine biometrischen Merkmale bestätigen kann.
  • Sicherheitsschlüssel: Dabei handelt es sich meist um USB-Geräte mit einer Taste, auf der die Authentifizierung angezeigt wird. Die Verwendung von Passwörtern ermöglicht es Ihnen, einen Sicherheitsfaktor für die Bestätigung in zwei Schritten zu nutzen. Das häufigste Beispiel hierfür ist ein Titan-Sicherheitsschlüssel oder ein YubiKey.

Front-End

In Apps werden clientseitige APIs wie WebAuthn und FIDO2 für Android verwendet, um Nutzeranmeldedaten im Authenticator zu erstellen und zu überprüfen.

Die Anwendung übergibt eine kryptografische Herausforderung, die vom Back-End-Server generiert wird, an den Authenticator. Die Anwendung sendet die Authenticator-Antwort zur Validierung an den Server. Diese Aktionen werden auf Grundlage dieser Validierung ausgeführt.

Backend-

Der Server speichert die Anmeldedaten des Nutzers für den öffentlichen Schlüssel und die Kontoinformationen.

Bei der Registrierung und Authentifizierung wird vom Server ein kryptografischer Wettkampf generiert. Mit dieser Identitätsbestätigung wird geprüft, ob die vom Authenticator ausgestellte Signatur ist, um zu bestätigen, dass der Nutzer die ist, die er behauptet.

Häufig gestellte Fragen

Wer unterstützt Passkeys?

Da Passkeys auf FIDO-Standards basieren, funktionieren sie unter Android und Chrome zusammen mit vielen anderen gängigen Plattformen und Browsern wie Microsoft Windows, Microsoft Edge, MacOS, iOS und Safari.

Den aktuellen Verfügbarkeitsstatus können Sie der Dokumentation dieser Plattformen entnehmen.

Auf Android-Geräten möchten wir Entwicklern gegen Ende 2022 Passkey-Unterstützung bieten.

Was passiert, wenn ein Nutzer sein Gerät verliert?

Auf Android-Geräten erstellte Schlüssel wird gesichert und mit Android-Geräten synchronisiert, die im selben Google-Konto angemeldet sind. Genauso wie bei der Sicherung von Passwörtern im Passwortmanager.

Das bedeutet, dass ein Nutzer mit einem Schlüssel ersetzt wird, wenn er das Gerät ersetzt. Wenn Nutzer sich in Apps auf einem neuen Smartphone anmelden möchten, müssen sie nur ihr Smartphone entsperren.

Kann ein Nutzer auf seinem Smartphone einen Passkey verwenden, um sich auf dem Gerät eines Freundes anzumelden?

Ja. Nutzer können für die Anmeldung einen Einmallink zwischen ihrem Smartphone und dem Gerät eines anderen einrichten.

Weitere Informationen

Hier ein Codelab:

Mehr zu folgenden Themen:

So erhalten Sie Updates: