Login ohne Passwort

FIDO2 und WebAuthn: Login ohne Passwort

Gestohlene Nutzer- und Passwortkombinationen sind heutzutage weiterhin einer der HauptgrĂŒnde fĂŒr kompromittierte Systeme und Infrastrukturen. Dabei werden jĂ€hrlich Milliarden Zugangsdaten entwendet, welche laut dem 2019 Data Breach Investigations Report von verizon bei 29% der gemeldeten FĂ€lle als Grundlage fĂŒr einen Datenabfluss dienen. Die Dunkelziffer wird um ein Vielfaches höher sein.
Darum wird seit langem auch die Zwei-Faktor Authentifikation (2FA) empfohlen, welche im Verlust-Fall eines Passworts den Account und die Daten durch den zweiten Faktor schĂŒtzt. Meldet sich ein Benutzer bei einem Dienst mit eingerichtetem zweitem Faktor an, wird neben dem Passwort der zweite Faktor zur Authentifikation verlangt. Die Zwei-Faktor Authentifikation kann ĂŒber verschiedene Wege erfolgen. Dabei kann eine TAN ĂŒber eine SMS oder E-Mail verschickt werden oder ĂŒber eine passende App auf dem Smartphone generiert werden. All diese Verfahren mĂŒssen jedoch einen zentralen Umstand lösen:

Der Mensch ist das schwÀchste Glied in der Kette

Um Zugangsdaten zu stehlen, werden meist gefĂ€lschte Nachrichten oder Webseiten an Personen geschickt. Dabei werden diese zur Preisgabe von sensitiven Informationen verleitet. Dieses Vorgehen wird mit dem Begriff Phishing bezeichnet. Angriffe ĂŒber Phishing werden immer professioneller und selbst eine Zwei-Faktor Authentifikation kann ĂŒberwunden werden. Abbildung 1 illustriert ein Abgreifen einer TAN durch eine Phishingseite. In Schritt 1 wird zunĂ€chst die Webseite aufgerufen und ein Login Formular wird daraufhin zurĂŒckgegeben. Danach werden in Schritt 2 die Zugangsdaten (Benutzername und Passwort) erfragt und ĂŒbermittelt. Anschließend in Schritt 3 wird nach dem zweiten Faktor, zum Beispiel eine TAN ĂŒber eine SMS, gefragt. Die Informationen werden dann vom Angreifer im Hintergrund sofort zum Login beim eigentlichen Dienst genutzt.

Ablauf einer FIDO2 Registration
Ab­bildung 1 Ablauf eines Phishingangriffs mit einer 2FA

Um eine noch sicherere Authentifikation zu ermöglichen, welche zum einen den möglichen Verlust von einem Passwort eliminieren kann und zum anderen phishingresistent ist, wurde FIDO2 in Kombination mit WebAuthn etabliert. Das Authentifikationsprotokoll FIDO2 besteht aus einem Challenge-Response Verfahren mittels asymmetrischer Kryptographie (öffentlicher und privater SchlĂŒssel). Es wird eine Challenge (hier eine zufĂ€llige Zeichenkette) vom Webdienst an den Nutzer geschickt, welche der Nutzer mit dem privaten SchlĂŒssel digital signiert. Die digitale Signatur kann dazu genutzt werden, um die Antwort auf die Challenge mit Hilfe des öffentlichen SchlĂŒssels auf dem Server zu verifizieren. Dadurch lĂ€sst sich die Urheberschaft eindeutig bestimmen. WebAuthn ist eine JavaScript API, die einem Browser die Kommunikation mit dem Webdienst ĂŒber FIDO2 und einem sogenannten Authenticator ermöglicht. Der Authenticator speichert die kryptographischen SchlĂŒssel fĂŒr die Benutzerkonten und fĂŒhrt die kryptographischen Operationen zum Erstellen der SchlĂŒssel und Signieren der Challenge durch. Dieses Verfahren kann als erster (Ersatz eines Passworts) oder zweiter Faktor (phishingresistente 2FA mit der optionalen Abfrage eines biometrischen Merkmals/Pins) eingesetzt werden.

Begriffe

Asymmetrisches Kryptosystem Ein kryptographisches Verfahren, bei dem kein gemeinsamer SchlĂŒssel zwischen zwei Kommunikationspartnern geteilt wird. Es wird neben einem privaten SchlĂŒssel, der geheim bleiben muss, ein öffentlicher SchlĂŒssel erzeugt. Dieser kann öffentlich geteilt werden und dient als SchlĂŒssel, um verschlĂŒsselt mit dem Besitzer zu kommunizieren und digitale Signaturen des Besitzers zu prĂŒfen.
Challenge Eine Challenge ist in diesem Fall eine zufĂ€llige Zeichenkette, welche vom Client mithilfe des Authenticators signiert wird. Dadurch ist sichergestellt, dass die Antwort auf die Challenge (die Signatur) nur dieser eine Authenticator weiß.
FIDO2 Ein Standard zur starken und hardwarebasierten Authentifikation mittels asymmetrischer Kryptographie.
WebAuthn Eine JavaScript API, welche die FIDO2 Authentifikation ĂŒber den Webbrowser ermöglicht
Relying Party Die Relying Party ist der Webdienst, bei dem der Nutzer sich authentifizieren möchte.
Authenticator Externes AuthentifikationsgerĂ€t zum Beispiel Yubikey, Titan Security Key, Nitrokey. Auf diesen können SchlĂŒssel generiert und gespeichert werden. Außerdem werden kryptographische Operationen direkt darauf ausgefĂŒhrt.
2FA Zwei-Faktor-Authentifikation ist eine Methode, um die IdentitĂ€t eines Nutzers durch eine Kombination aus zwei verschiedenen Faktoren zu bestĂ€tigen. Meist wird das Passwort ("etwas, das man weiß") mit "etwas, das man hat" (zum Beispiel einen Authenticator) oder "etwas, das man ist" (biometrisches Merkmal wie ein Fingerabdruck) verbunden.

Login ohne ein Passwort? Aber wie?

FĂŒr das FIDO2 Verfahren mĂŒssen zunĂ€chst die Voraussetzungen geschaffen werden. Neben einem Webdienst, der FIDO2 unterstĂŒtzt, muss auch auf der Benutzerseite ein unterstĂŒtzter Client verwendet werden. Stand heute sind die meisten gĂ€ngigen Webbrowser wie Mozilla Firefox, Google Chrome, Microsoft Edge sowie Safari mit einer WebAuthn-Schnittstelle ausgestattet. Weitere unterstĂŒtzte Browser können ĂŒber Can I use WebAuthn? ermittelt werden. Ein weiteres wichtiges Element ist der Authenticator. Der Authenticator, beispielsweise der Yubikey, beherbergt das SchlĂŒsselmaterial fĂŒr einzelne Dienste und fĂŒhrt die nötigen kryptographische Operationen durch. Dadurch verlĂ€sst das Geheimnis den Authenticator nicht und ist vor Dritten geschĂŒtzt.

Generiere ein SchlĂŒsselpaar und registriere einen Nutzer

Will ein Nutzer sich bei einer Webseite (bezeichnet als Relying Party) registrieren, dann ...

  • ... initiiert der Nutzer zunĂ€chst den Registrierungsprozess.
  • Die Relying Party stellt eine Challenge und fragt den Browser des Nutzers nach einem neuen SchlĂŒsselpaar.
  • Nachdem der Authenticator eine BestĂ€tigung vom Nutzer erhĂ€lt (zum Beispiel durch Blinken und DrĂŒcken des Authenticators) wird ein neues SchlĂŒsselpaar generiert. Dabei wird pro Benutzerkonto auf einer Webseite ein neues SchlĂŒsselpaar generiert.
  • Der öffentliche SchlĂŒssel und optional eine signierte Beglaubigung wird an die Webseite zurĂŒckgesendet.
  • Der Server speichert den öffentlichen SchlĂŒssel mit der passenden Nutzer ID.
Ablauf einer FIDO2 Registration
Ab­bildung 2 Ablauf einer FIDO2 Registration

Login mit einem Klick

Nach der Registrierung kann der Nutzer sich am Dienst authentifizieren.

  • Der Nutzer ruft das Anmeldeformular auf und initiiert den Login.
  • Die Webseite generiert eine einzigartige Challenge und sendet diese zum Client.
  • Die Herkunft der Challenge wird validiert.
  • Der Nutzer bestĂ€tigt zum Beispiel durch DrĂŒcken des Authenticators den Login.
  • Der Authenticator generiert eine Signatur (durch den privaten SchlĂŒssel) der Challenge und sendet diese ĂŒber den Webbrowser zurĂŒck.
  • Die Webseite verifiziert die Signatur mit dem öffentlichen SchlĂŒssel und bei Erfolg wird der Nutzer angemeldet.
Ablauf einer FIDO2 Authentifikation
Ab­bildung 3 Ablauf einer FIDO2 Authentifikation

Wer bereits einen Authenticator mit FIDO2-UnterstĂŒtzung besitzt, kann dieses Verfahren mit unterschiedlichen Einstellungen unter WebAuthn.io testen. Die Nutzung als zweiten Faktor bieten bereits einige Dienste wie Github, 1Password, Twitter und Google an. Einen passwortlosen Anmeldeprozess bietet zudem Microsoft an. Nach dem Registrieren eines Authenticators mit FIDO2-UnterstĂŒtzung kann die passwortlose und phishingresistente Anmeldung bei Microsoftdiensten (unter anderem Outlook.com, Office, Skype, OneDrive, Xbox Live, Azure AD) durchgefĂŒhrt werden. Neben Webdiensten wird auch der Login sowie die Authentifikation bei SSH mit einem Authenticator ab Ubuntu 20.04 unterstĂŒtzt.

Vorteile fĂŒr Unternehmen und Nutzer

Neben den Vorteilen fĂŒr die Sicherheit des eigenen Kontos können auch Anbieter von Webdiensten vom Einsatz dieses Verfahrens profitieren. Kunden mĂŒssen sich aufgrund des kryptographischen SchlĂŒsselmaterials keine Passwörter mehr merken. Dadurch verringert sich der Aufwand einen Account beim angebotenen Dienst zu eröffnen. Es genĂŒgt ein Klick auf Registrieren, ohne sich ein lĂ€stiges Passwort auszudenken. Weiter wird das Vertrauen in den eigenen Dienst erhöht, da das Risiko vom Passwortverlust eliminiert wird. Auch vergessene Passwörter gehören mit FIDO2 der Vergangenheit an und der Support wird massiv entlastet. Laut Yubico sind Passwortresets der grĂ¶ĂŸte Kostenfaktor im Support. Besonders ist auch, dass diese Art der Authentifikation im Gegensatz zur 2FA mit SMS oder einer App gegen Phishing resistent ist. Die Abwehr gegen Phishing wird durch drei Mechanismen sichergestellt. ZunĂ€chst wird die Herkunft der Daten vom Server verifiziert. Dabei wird im Browser geprĂŒft, ob die gesetzte ID der Relying Party zur derzeitigen Domain passt. Ist dies nicht der Fall, zum Beispiel beim Besuchen einer Phishing-Webseite, wird der Vorgang vom Client abgebrochen. Die Antwort auf die Challenge des Servers wird anschließend durch eine fĂ€lschungssichere Signatur vor Manipulationen auf dem Weg zum Server geschĂŒtzt. Des Weiteren ist die Challenge nur einmalig gĂŒltig und kann nicht wiederverwendet werden.

Melden Sie sich, wenn Sie sich zu den Möglichkeiten bei Authentifikationsverfahren beraten lassen wollen.

Das Verfahren FIDO2 birgt natĂŒrlich auch Fallstricke, denen man vorbeugen muss. Es besteht architekturbedingt keine Möglichkeit ein Backup von einem Authenticator zu erstellen. Jeder Authenticator ist einzigartig und ist nicht kopierbar (per Design), was diese Art der Authentifikation auch so sicher macht. Um dieses Problem zu umgehen sollten bei jedem Dienst zwei Authenticator registriert werden: geht einer verloren, steht der andere als Backup zur VerfĂŒgung. Eine Alternative wĂ€re im Zweifel die Nutzung von Backup-Codes, die jedoch wieder den Faktor Mensch in den Authentifikationsprozess bringen. So können Phishing-Angriffe wieder gezielt die Eingabe von Backup-Codes verlangen, zum Beispiel mit einer Meldung "Ihr SicherheitsschlĂŒssel ist abgelaufen! Bitte geben Sie einen Ihrer verbliebenen Backup-Codes ein, um Ihre IdentitĂ€t zu bestĂ€tigen".

Fazit

Da Passwörter heutzutage weiterhin tĂ€glich gestohlen und fĂŒr EinbrĂŒche in Systeme verwendet werden, ist es wichtig das Risiko eines Diebstahls von Zugangsdaten zu minimieren und die Auswirkungen nach einem Verlust zu reduzieren. Um ein gutes Schutzniveau zu erreichen können sogenannte Authenticators genutzt werden, welche durch kryptographische Beweise einen sicheren Authentifikationsmechanismus bereitstellen. Dadurch können sich Benutzer ohne viel Aufwand auf eine sichere Art und Weise bei Webdiensten, auch passwortlos, anmelden und sind durch einen zweiten Faktor in Form eines physischen Authenticators geschĂŒtzt. Um diese sehr sichere Authentifikation bei jeglichen Diensten zu ermöglichen, mĂŒssen auch Unternehmen die FIDO2-Anmeldung bereitstellen. Denn auf Anwenderseite ist die (passwortlose) Authentifikation mit einem Authenticator bereits bei allen bekannten Browser-Herstellern sowie anderen Systemen (wie Ubuntu 20.04) vertreten.

FĂŒgen Sie den ersten Kommentar hinzu