Zwei-Faktor Authentifizierung mit U2F und UAF der FIDO-Allianz

Die Kombination von Benutzername und Passwort gilt schon lange nicht mehr als der heilige Gral der sicheren Authentifizierung. Zu unsicher sind die von Benutzern gewählten Passwörter, zu unsicher werden sie gespeichert. Das sehr verbreitete und tragischerweise auch oft erfolgreiche Phishing stellt eine weitere Herausforderung dar, der eine Benutzername/Passwort Kombination nicht gewachsen ist, von automatisiertem credential cracking ganz zu schweigen.

Multi-Faktor Authentifizierung ist hier das benötigte Schlagwort. Wenn man in diesem Kontext von Faktoren spricht, unterscheidet man zwischen drei Typen:

  1. Etwas, das man weiss; klassischerweise das Passwort
  2. Etwas, das man hat; beispielsweise eine Chipkarte
  3. Etwas, das man ist; wie die Stimme, der Fingerabdruck oder die Iris

Der Begriff Zwei-Faktor Authentifizierung (2FA) meint hier, dass für eine erfolgreiche Authentifizierung zwei verschiedene Typen von Faktoren benötigt werden.

Die FIDO-Allianz

Mit dem Ziel, Zwei-Faktor Authentifizierung einfacher zu machen und damit auch die Verbreitung zu fördern, haben sechs Unternehmen, darunter PayPal und Lenovo, im Sommer 2012 die FIDO-Allianz gegründet. FIDO steht hier für Fast IDentity Online. Mittlerweile gehören der Allianz über 170 Unternehmen an, darunter Microsoft, Google, Bank of America, Mastercard und viele mehr.

Um ihr Ziel zu erreichen, hat die FIDO-Allianz zwei lizenzfreie Standards geschaffen, die unter den Namen U2F und UAF bekannt sind.

U2F und UAF

U2F ist die Abkürzung für Universal Second Factor. Dieser Standard spezifiziert Hardware und Software für die Zwei-Faktor Authentifizierung. Der zweite Standard ist UAF, was für Universal Authentication Framework steht. UAF spezifiziert das Netzwerkprotokoll für die kennwortlose Authentifizierung.

Authentifizierung

Wie funktioniert nun die Authentifizierung genau? Schauen wir uns das in einer Grafik an.

Diese Grafik zeigt den Ablauf bei einer Anmeldung. Zuerst gibt ein Benutzer seinen Benutzername sowie das Kennwort ein. Ist diese Anmeldung erfolgreich, generiert der Server eine sogenannte Challenge. Der Browser sendet diese Challenge an das Hardware-Gerät. Je nach Gerät muss der Benutzer nun aktiv werden, beispielsweise auf den Knopf drücken. Das Gerät verschlüsselt diese Challenge mit dem Private Key und sendet sie via Browser an den Server zurück. Der Server kennt den Public Key und kann damit das Gerät verifizieren.

U2F hat zurzeit noch einen grossen Nachteil zu anderen 2FA Implementationen wie TOTP: Google Chrome ist noch der einzige Browser, der U2F unterstützt.

Nichts desto trotz werde ich in einem späteren Blogbeitrag zeigen, wie man U2F in die eigene Webanwendung integriert.

Yubico

Yubico ist Mitglied der FIDO-Allianz und Hersteller der FIDO-zertifizierten YubiKeys, die das U2F Protokoll implementieren.

Yubikeys

Ich persönlich besitze zwei YubiKey Neo. Da ich keine anderen Geräte kenne, kann ich nicht vergleichen und will auch keine Kaufempfehlung aussprechen. Ich nutze diese Keys für mehrere Onlinedienste, darunter GitHub und Dropbox und bin bisher zufrieden. Für meine Beispiele in zukünftigen Blogposts werde ich diese beiden YubiKeys verwenden.

Bildquelle: alle Bilder entstammen der Website von Yubico.

Software Entwickler / Architekt bei der Noser Engineering AG in Winterthur mit technologischem Schwerpunkt auf .NET und Azure. Beschäftigt sich mit Software Architekturen und Informationssicherheit.