U2F

aus Wikipedia, der freien Enzyklopädie
Wechseln zu: Navigation, Suche
U2F-ready-Logo der FIDO-Allianz

U2F (Universal Second Factor, zu Deutsch: universeller zweiter Faktor) ist ein Industriestandard für eine allgemein anwendbare Zwei-Faktor-Authentifizierung, basierend auf einer adaptierten Challenge-Response-Authentifizierung. Sie dient neben einem Zugangskennwort dem Nachweis der Zugriffsberechtigung, beispielsweise für webbasierte Dienste, und kann in Kombination mit digitalen Personaldokumenten auch zur Identitätsfeststellung eingesetzt werden.

Die U2F-Spezifikationen wurden von Google unter Beteiligung der Unternehmen Yubico und NXP Semiconductors entwickelt. Zur Fortentwicklung und Zusammenarbeit der U2F-Anbieter wurde die nichtkommerzielle FIDO-Allianz gegründet. Am 9. Dezember 2014 wurde der erste entsprechende Standard FIDO v1.0 veröffentlicht.[1]

Im Gegensatz zur Industrie-Initiative “Open Authentication” (OATH), die ebenfalls Lösungen zur Zwei-Faktor-Authentifizierung als Industriestandard zu etablieren sucht, unterliegen U2F-Verfahrensbeschreibungen keinen Geheimhaltungsvorschriften der beteiligten Unternehmen.

Merkmale[Bearbeiten | Quelltext bearbeiten]

U2F Security-Token von Yubico

Als wesentliche Eigenschaft weist der U2F-Standard keine nach außen hin eindeutige Kennung eines bestimmten U2F-Gerätes auf und erlaubt den Schutz der Privatsphäre. So kann ein Dienstanbieter (Server), bei dem ein Kunde zwecks Identifizierung mit seinem U2F-Gerät angemeldet ist, nicht feststellen, bei welchen anderen Diensten dieses U2F-Gerät ebenfalls registriert ist. Dies gilt auch dann, wenn ein bestimmter Dienstanbieter zu den Anmeldedaten der anderen Dienstanbieter Zugang hat oder Kenntnis über diese Anmeldedaten bekommen hat.[2]

Diese Eigenschaft des U2F-Verfahren ist wesentlich, wenn die bei der Anmeldung beim Dienstanbieter hinterlegten Anmeldedaten im Rahmen von Datenlecks von Dritten ausgelesen werden und sich dann unkontrolliert verbreiten können.

Diese Eigenschaft ist auch dann erfüllt, wenn ein U2F-Gerät bei einem Anbieter von verschiedenen Personen oder von einer Person zur Anmeldung von mehreren Konten verwendet wird. Auch in diesem Fall kann Aufgrund der am Server hinterlegten U2F-Anmeldedaten nicht vom Dienstanbieter festgestellt werden, dass es a.) dasselbe U2F-Gerät ist und b.) derselbe oder unterschiedliche Benutzer dieses U2F-Gerät benutzen.

Ermöglicht wird dies dadurch, dass im U2F-Gerät ein von den Merkmalen des Dienstanbieters wie Serveradresse, TLS-Zertifikat und anderen Daten wie zufällig erzeugten Sitzungsbezeichner (Token) abhängiges Schlüsselpaar aus einem privaten und öffentlichen Schlüssel individuell erzeugt wird. Der private und öffentliche Schlüssel wird im Rahmen eines asymmetrischen Kryptosystems berechnet. Zur Anmeldung wird im Rahmen des U2F-Verfahrens der so erzeugte öffentliche Schlüssel, gemeinsam mit einer vom U2F-Gerät beliebig im Inhalt zu gestaltenden sogenannten Schlüsselkennung (englisch Key Handle) an den Dienstanbieter übermittelt.

Bei der erstmaligen Anmeldung bei einem Dienstanbieter wird dieses Datenpaar aus öffentlichen Schlüssel und Schlüsselkennung auf dem Server abgelegt. Bei einer nachfolgenden Authentifizierung übermittelt der Server die zu dem Benutzer gehörende Schlüsselkennung, samt zusätzlichen Daten wie der Serveradresse, einer einmaligen Sitzungskennung und weiteren Daten. Das U2F-Gerät kann so aus der übermittelten Schlüsselkennung den zugehörigen privaten Schlüssel ermitteln und damit die Daten der Retourantwort zum Server passend signieren. Die signierte Retourantwort wird vom Server gemeinsam mit dem zugeordneten öffentlichen Schlüssel zur Authentifizierung des Kunden verwendet. Dieses Verfahren erlaubt einen gewissen Schutz vor Man-in-the-Middle-Angriffen.[3]

Die fehlende eindeutige öffentliche Erkennungsmöglichkeit eines U2F-Gerätes steht im Gegensatz zu den klassischen Challenge-Response-Authentifizierungen mit asymmetrischen Schlüsseln wie beispielsweise der Authentifizierung bei der Secure Shell (SSH) für einen Kommandozeilenzugang. Bei der SSH-Authentifizierung wird der öffentliche Schlüssel auf allen Servern deponiert, wo ein Zugang erlaubt ist. Somit ist ohne Kenntnis des geheimen privaten Schlüssels möglich festzustellen, auf welchem Server ein Zugang mit diesem Schlüssel vorliegt, so nur ein Zugang zu den öffentlichen Schlüsseldaten besteht.

Ablauf[Bearbeiten | Quelltext bearbeiten]

Authentifizierungsablauf

In nebenstehender Grafik ist der Ablauf einer Authentifizierung bei U2F dargestellt, die initiale Anmeldung bei dem Dienstanbieter ist dabei als bereits erfolgt angenommen.

  • Zur Authentifizierung fragt der Dienstanbieter als ersten Faktor nach dem Nutzernamen und bei Bedarf nach dem regulären Passwort, prüft diese Daten, und leitet -- falls in Ordnung -- den zweiten Faktor in Form von U2F ein:
  • Im ersten Schritt schickt der Dienstanbieter ein Datenpaket an den Kundenrechner (Web-Browser). Dieses besteht aus einer Challenge, dies sind einige zufällig gewählte Ziffern. Dazu eine Applikationskennung, im Diagramm als app id bezeichnet und die Schlüsselkennung key handle, welche bei der initialen Anmeldung hinterlegt wurde.
  • Der Kundenrechner prüft die Applikationskennung, ergänzt diese um zusätzliche Daten wie beispielsweise eine Kanalkennung (Channel ID) und leitet diese Daten an das U2F-Gerät weiter.
  • Das U2F-Gerät ermittelt mit Hilfe der Schlüsselkennung (key handle) den für diese Sitzung passenden privaten Schlüssel kpriv, und signiert mit diesem die Applikationskennung und die Challenge c und bildet so die signierte Antwort s.
  • Zusätzlich kann optional ein Zähler (Counter) mit in die Antwort integriert werden, um duplizierte U2F-Geräte erkennen zu können.
  • Der Kundenrechner, wie beispielsweise der Web-Browser, leitet diese Daten weiter an den Dienstanbieter, welcher mit dem öffentlichen Sitzungsschlüssel die Signatur s und die darin enthaltenen Daten prüft und -- falls in Ordnung -- den Zugang gewährt.

Besonderheiten[Bearbeiten | Quelltext bearbeiten]

U2F Security Token von Plug-up International

Damit das U2F-Gerät eine Antwort liefert, ist es im Standard zwingend vorgeschrieben, dass eine Benutzeraktion direkt am U2F-Gerät nötig ist. Im einfachsten Fall ist nur das Drücken eines Tasters am U2F-Gerät nötig. Es sind aber auch andere Initiierungen möglich: Beispielsweise bietet das Unternehmen EyeLock seit Januar 2015 den Iris-Scanner myris mit USB-Anschluss an, der zum U2F-Protokoll kompatibel ist.[4] Diese Vorgabe soll die Zustimmung des Benutzers zu einer Authentifizierungsanforderung unabhängig vom PC und dessen Software sicherstellen -- erfolgt diese Zustimmung des Benutzers nicht, erfolgt nach einem Zeitablauf auch keine Antwort vom U2F-Gerät. Diese Vorgabe soll verhindern, dass Software am Rechner ohne Wissen des Benutzers Antworten des U2F-Gerätes in großer Anzahl anfordern und in Folge auswerten kann.

Das U2F-Gerät kann als Security-Token in Hardware mit entsprechend sicherem Speicher gestaltet sein, muss aber nicht. Grundsätzlich ist auch eine rein softwarebasierende U2F-Anwendung möglich, dann allerdings mit dem grundsätzlichen Problem, dass geheime Daten wie die eindeutige und intern verwendete U2F-Primärkennung leichter ausgelesen und kompromittiert werden kann.

Um die Kosten für hardwarebasierende U2F-Geräte, wie beispielsweise als USB-Dongle, zu minimieren, ist das Verfahren so ausgelegt, dass am U2F-Gerät keine veränderlichen Daten wie die erzeugten, sitzungsbasierten privaten Schlüsseln gespeichert werden müssen. Das Verfahren lässt offen, wie und wo die geheimen privaten Schlüsseldaten für einen Dienstanbieter gespeichert werden.

Die Speicherung kann einerseits in einen Speicher am U2F-Gerät erfolgen, was das U2F-Gerät verteuert und die Anzahl der Anmeldungen aufgrund der Speichergröße limitiert. Es ist aber auch möglich, die erzeugten sitzungsbasierten privaten Schlüsseln mit einem gerätespezifischen Verfahren zu verschlüsseln und im Rahmen der Schlüsselkennung (Key Handle) mit am Server zu speichern. Denn bei jeder nachfolgenden Anmeldung wird dieses Key Handle vom Server an das U2F-Gerät übermittelt, womit dieses U2F-Gerät seinen privaten Schlüssel wieder gewinnen kann. So kann das U2F-Gerät bei beliebigen vielen Diensten verwendet werden, da auf dem U2F-Gerät keine verbindungsabhängigen Schlüsseldaten gespeichert werden und keine Speicherplatzbeschränkung eine Begrenzung ergibt.

Um verschiedene Typen von U2F-Geräten und deren unterschiedliche Vertrauenswürdigkeit seitens Dienstanbieter unterscheiden zu können (beispielsweise weisen hardwarebasierende U2F-Geräte ein höheres Sicherheitsniveau gegen Auslesen auf als PC-basierende Softwarelösungen), kommt im Rahmen von U2F auch noch eine Signierung der Antwort mit einem herstellerabhängigen privaten Schlüssel hinzu. Der private Schlüssel ist fix im U2F-Gerät gespeichert und ist bei allen U2F-Geräten dieses Herstellers identisch, womit eine Identifizierung eines bestimmten U2F-Gerätes verhindert wird. Der dazu passende öffentliche Schlüssel ist allgemein bekannt und kann Dienstanbietern dazu dienen, für den Zugang die Verwendung bestimmter U2F-Geräte einzufordern.[2]

Softwareunterstützung[Bearbeiten | Quelltext bearbeiten]

Als erster Webbrowser unterstützt Google Chrome seit Oktober 2014 U2F.[5] Für Mozilla Firefox ist mit Stand Ende 2016 ein Plug-in notwendig, da U2F noch nicht integriert wurde.[6][7]

Diverse Internetdienste unterstützen die Anmeldung mittels U2F, primär aus dem Umfeld von Google wie beispielsweise Gmail, Dropbox, GitHub. Für die Anmeldung an einem Rechner unter Linux und OS X steht ein Pluggable Authentication Module zur Verfügung.[8][9]

Das Betriebssystem Windows 10 von Microsoft unterstützt die U2F-Funktionen nicht nur für eigene Dienste, sondern innerhalb des Systems auch bei der Anmeldung bei mehreren tausend Diensten von Drittanbietern.[10]

Weblinks[Bearbeiten | Quelltext bearbeiten]

Einzelnachweise[Bearbeiten | Quelltext bearbeiten]

  1. FIDO 1.0 Specifications are Published and Final Preparing for Broad Industry Adoption of Strong Authentication in 2015, FIDO-Allianz, abgerufen am 12. Dezember 2014
  2. a b U2F Specifications. Abgerufen am 28. November 2016.
  3. Universal 2nd Factor (U2F) Overview, FIDO-Allianz, 9. Februar 2014, PDF-Datei, abgerufen am 10. April 2016
  4. EyeLock's myris Is First and Only Iris Authenticator for New FIDO Open Industry Standard, EyeLock, abgerufen am 5. Januar 2015
  5. Google Launches Security Key, World’s First Deployment of Fast Identity Online Universal Second Factor (FIDO U2F) Authentication, fidoalliance.org, 21. Oktober 2014, abgerufen am 15. Dezember 2014
  6. 1065729 – Implement the FIDO Alliance u2f javascript API. In: bugzilla.mozilla.org. Abgerufen am 25. Mai 2016.
  7. U2F Support Add-on. In: addons.mozilla.org. Abgerufen am 25. Mai 2016.
  8. pam-u2f. In: developers.yubico.com. Abgerufen am 25. Mai 2016.
  9. yubico-pam. In: developers.yubico.com. Abgerufen am 25. Mai 2016.
  10. Windows 10 für Unternehmen: Höchste Sicherheit für alle Geräte und Szenarien - Innovative Sicherheit: Zwei-Faktor-Authentifizierung, technet.microsoft.com vom 19. März 2015, abgerufen am 30. November 2016.