Neuigkeiten von trion.
Immer gut informiert.

WebAuthn mit Keycloak

WebAuthn

In der heutigen digitalen Welt, in der Passwortlecks, Phishing-Angriffe und Identitätsdiebstahl an der Tagesordnung sind, ist die Sicherheit unserer Online-Konten von größter Bedeutung. Gleichzeitig streben Nutzer nach bequemen und nahtlosen Anmeldeprozessen, ohne sich eine Vielzahl von Passwörtern merken zu müssen. Hier kommt WebAuthn ins Spiel - ein Web-Standard für die passwortlose Authentifizierung, der eine sichere und benutzerfreundliche Lösung bietet.

WebAuthn: Die Zukunft der sicheren und bequemen Authentifizierung

WebAuthn, auch bekannt als Web Authentication, revolutioniert die Art und Weise, wie wir uns in Online-Diensten anmelden und unsere Identität bestätigen. Es basiert auf der Public-Key-Kryptografie und ermöglicht es Benutzern, sich mit ihren Geräten sicher und bequem zu authentifizieren, ohne auf Passwörter angewiesen zu sein. Obwohl WebAuthn noch relativ neu ist, gewinnt es bereits zunehmend an Bedeutung und wird von großen Technologieunternehmen, wie Google, Microsoft und Mozilla, unterstützt.

In diesem Blog-Artikel werden wir einen Einblick in WebAuthn geben und seine Funktionsweise, Vorteile und Anwendungsbereiche untersuchen. Erfahren Sie, wie WebAuthn die Sicherheit unserer Online-Konten erhöht, den Benutzern eine reibungslose Authentifizierungserfahrung bietet und gleichzeitig die Abhängigkeit von Passwörtern beseitigt.

Konzepte

Die Web Authentication API (WebAuthn) ist eine Schnittstelle, die von einem User Agent (typischerweise einem Browser) angeboten wird. Sie erlaubt der Relaying Party auf einen oder mehrere Authenticator zuzugreifen, um die kryptografischen Operationen auszuführen.

Die Relying Party ist die Webanwendung oder der Dienst, der die Authentifizierung mit WebAuthn unterstützt. Sie stellt eine Verbindung zum Benutzer und dem Authenticator her. Die Relying Party fordert vom Authenticator einen öffentlichen Schlüssel an, um die Identität des Benutzers zu überprüfen. In einem typischen Setup mit Keycloak nimmt Keycloak die Rolle der Relying Party ein.

Der Authenticator ist ein Gerät, das die Authentifizierung unterstützt. Es kann sich um ein physisches Gerät wie einen Sicherheitsschlüssel, ein Smartphone oder ein biometrisches Gerät handeln. Der Authenticator ist in der Lage, kryptografische Schlüsselpaare zu generieren, Signaturen zu erstellen und die Schlüssel sicher zu speichern.

Statt eines Passworts oder sonstigen geteilten Geheimnisses kommt ein Schlüsselpaar aus privatem und öffentlichem Schlüssel um Einsatz. Der private Schlüssel bleibt sicher im Gerät des Benutzers gespeichert und wird niemals an den Server übertragen. Der öffentliche Schlüssel ist der Relaying Party bekannt und dort mit der Identität des Benutzers verknüpft.

Die Verwendung von individuellen Schlüsselpaaren für jedes Anmeldekonto gewährleistet die Einmaligkeit der Anmeldeinformationen. Dadurch wird das Risiko einer Kompromittierung des gesamten Kontos erheblich reduziert. Selbst wenn der Webserver kompromittiert wird und die Benutzerdatenbank gestohlen wird, sind die gestohlenen öffentlichen Schlüssel nutzlos, da der private Schlüssel sicher im Gerät des Benutzers verbleibt.

So schützt WebAuthn sowohl die Benutzerdaten als auch die Sicherheit der Webdienste vor verschiedenen Arten von Angriffen. WebAuthn ist damit ein Gewinn sowohl für den Benutzer als auch für die Anbieter von Webdiensten.

Nutzung von WebAuthn mit Keycloak

Um WebAuthn mit Keycloak nutzen zu können, müssen zunächst WebAuthn Credentials (der öffentliche Schlüssel) hinterlegt werden. Der Benutzer kann entweder über die Account Konsole WebAuthn Credentials zu seinem Account hinzufügen und einen neuen Authenticator registrieren oder der Administrator erzwingt dies über eine "Required Action" beim nächsten Login des Benutzers.

In einem zweiten Schritt muss ein Authentication Flow erstellt werden, der WebAuthn unterstützt. Als Basis kann dazu der Browser Flow dienen, der im Standard von Keycloak mitgeliefert und aktiviert wird. Dieser Flow wird nun um eine WebAuthn Authenticator Action ergänzt.

WebAuthn Flow in Keycloak

Bei der Konfiguration des Flows kann man zwischen einer verpflichtenden Authentifizierung ausschließlich über WebAuthn oder in Kombination mit einem Passwort wählen und der Möglichkeit WebAuthn als lediglich als zusätzliche optionale Variante zu nutzen. So kann beispielsweise eine schrittweise Migration von klassischen Verfahren wie Benutzername und Passwort oder One-Time-Passwörtern hin zu WebAuthn unterstützt werden.

Der Benutzer kann auch mehrere Geräte als Authenticator hinterlegen. Beim Login wird dann abgefragt, welches Gerät verwendet werden soll.

Auswahl Security Key

Kompatibilität und Konfiguration

Die Unterstützung von WebAuthn in Keycloak ist mit vielen Security Keys kompatibel, so wird beispielsweise Windows Hello (Windows 10 21H1/21H2) unterstützt und der Yubikey 5 NFC von Yubico.

Über Policies lässt sich feingranular einstellen, welche Signaturalgorithmen akzeptiert werden und welche Bedingungen der Authenticator erbringen muss (z.B. User Verification).

Unsere Serie

In dieser Serie zeigen wir euch die Umsetzung passwortloser Authenfizierungsverfahren mit Keycloak:




Zu den Themen Security, Passwordless und Keycloak bieten wir sowohl Beratung, Entwicklungsunterstützung als auch passende Schulungen an:

Auch für Ihren individuellen Bedarf können wir Workshops und Schulungen anbieten. Sprechen Sie uns gerne an.

Feedback oder Fragen zu einem Artikel - per Twitter @triondevelop oder E-Mail freuen wir uns auf eine Kontaktaufnahme!

Los geht's!

Bitte teilen Sie uns mit, wie wir Sie am besten erreichen können.