In YubiKey
exokrypt_yubikey_3

Die Webstandards U2F & WebAuthn der FIDO mit dem YubiKey genutzt – YubiKey Guide – Teil 3

Verfahren die User vor Datenleaks und Angriffen schützen

Viele Online Dienste und Services bieten mittlerweile die Möglichkeit, seinen eigenen Zugang mit einer 2 Faktor Authentifizierung abzusichern. Ein weiterer Faktor der neben dem Passwort und dem Nutzernamen eingegeben werden muss, um den User erfolgreich anzumelden.

Leider setzen immer noch sehr viele Dienste dabei auf sehr schwache Mechanismen wie beispielsweise den Versand einer SMS mit einem 6-stelligen Einmalcode, dem sogenannten One-Time Passwort.

Diese Verfahren schützen den User zwar im Falle eines Datenbank Leaks, ein Angriff bei dem eine Datenbank mit vielen unterschiedlichen Passwörtern von verschiedenen Nutzern oftmals von leicht-angreifbaren Diensten im Netz gestohlen wird, jedoch nicht vor Phishing.

Die bei einem Datenbank Klau gestohlenen Passwörter und E-Mail Adressen werden nach dem Diebstahl von den Angreifern bei den verschiedensten Diensten ausprobiert und mit hoher Wahrscheinlichkeit eine Vielzahl an erfolgreichen Logins ergeben. Da der Mensch die Bequemlichkeit schätzt, verwenden immer noch sehr viele dasselbe Passwort bei den unterschiedlichsten Online Diensten.
Wie beschrieben schützen einfachere 2 Faktor Authentifizierungsmethoden den User zwar vor dieser Art von Angriffen, da dem Angreifer selbst mit dem richtigen Passwort der 2. Faktor fehlt, jedoch schützen sie nicht vor gezielten Phishingangriffen wie wir gleich sehen werden.

Schaubild – Was ist FIDO Authentication und wie läuft sie ab

fido_authentication

Was ist CTAP (Client to Authenticator Protocol)?

CTAP (Client to Authenticator Protocol) ist ein Protokoll, also eine Art Sprache die zwischen dem Browser und einem Authenticator, in unserem Fall einem YubiKey gesprochen wird. Diese spezielle „Sprache“ verstehen beide Parteien sehr gut und können darüber sicher kommunizieren.

Wie CTAP genau aufgebaut ist und wie es funktioniert, wollen wir an dieser Stelle nicht näher erläutern, da es den Rahmen sprengen würde. CTAP macht im Prinzip nichts anderes, als man es vom SSL / „HTTPS“ Protokoll in seinem Browser bereits kennt, nur eben nicht für die Kommunikation zwischen einem Server und deinem Browser, sondern für die Kommunikation zwischen deinem Browser und einem externen Hardwaregerät.

An dieser Stelle ist es nur wichtig zu verstehen, dass CTAP und sein Nachfolger CTAP2 sowohl USB Schnittstellen, als auch Bluetooth und NFC unterstützen. Das bedeutet im Klartext, dass ein externes Hardware Gerät via USB, Bluetooth und NFC mit dem Computer bzw. deinem Browser verbunden werden kann.

Für Interessierte haben wir aber hier den Link zur FIDO Alliance Webseite. Die FIDO Alliance ist federführend für die Einführung und Weiterentwicklung dieser Standards verantwortlich.

Was ist WebAuthn?

WebAuthn (W3C Web Authentication API) Ist ebenfalls ein Standard im Web. Er wurde vom W3C, dem World Wide Web Consortium verabschiedet. Das W3C ist eine Standardisierungsorganisation, sie „pflegt“ und „organisiert“ das Internet und seine Protokolle. Einige Beispiele hierfür sind HTML, XML und die Stylsheet Sprache CSS.

WebAuthn ist ein Standard, ein Übereinkommen wie Schnittstellen zwischen Server und Browser auszusehen haben, damit sie viele Dienste einfach nutzen können. WebAuthn beschreibt eine API (Application Programming Interface) mit dem es einfach und sicher möglich ist, mit Hilfe eines Browsers dich bei einem Online Dienst oder Service unter Verwendung eines Hardware Gerätes zu Authentifizieren. Alle dafür benötigten Schritte und Informationen sind in der WebAuthn Spezifikation niedergeschrieben. An sie sollten sich alle Entwickler von Online Diensten die dieses Feature nutzen wollen halten. Auch ist es die Grundlage für Browserentwickler von Firefox, Chrome, Edge und Safari, auf der sie ihre Entwicklung aufbauen sollten.

yubicase_shop_380_de_v2

Wie läuft die Registrierung eines YubiKey im FIDO (2) Modus genau ab?

1.Der Nutzer verbindet sich mit Hilfe seines Browsers mit dem YubiKey Server.

2.Der YubiKey Server generiert eine Art Rätsel, das individuell und nur diesen einen Benutzer bestimmt ist – Die sogenannte Challenge. (Es werden noch weitere Informationen ausgetauscht, die aber für das Verständnis nicht weiter relevant sind und diesen Prozess nur unnötig kompliziert machen würden)

3.Der Nutzer verifiziert die Quelle bzw. die Herkunft dieses Rätsels, um sicherzustellen, dass es sich wirklich um den YubiKey Server handelt und nicht um einen bösen Angreifer.

4.Der Browser leitet alle Information über das sichere CTAP Protokoll an den angesteckten YubiKey weiter.

5.Durch das betätigen des nun blinkenden YubiKeys wird sichergestellt, dass wirklich ein menschlicher Benutzer diesen Vorgang durchführt und nicht etwa ein Schadprogramm.

6.Durch das Drücken des Buttons am YubiKey löst dieser das individuelle Rätsel und erzeugt daraufhin ein Schlüsselpaar. Dieses Schlüsselpaar besteht aus einem Privaten Schlüssel und einem Öffentlichen Schlüssel. Der Private Schlüssel verlässt den sicheren Speicher des YubiKeys zu keiner Zeit und ist somit sehr gut geschützt.

7.Alle Informationen werden nun vom YubiKey mit dem Privaten Schlüssel unterschrieben. Das zugrundeliegende Public-Private Key Verfahren sorgt jetzt dafür, dass der YubiKey Server mit Hilfe des Öffentlichen Schlüssels, welcher „unverschlüsselt“ mitgeschickt wird, alle gesendeten Informationen verifizieren kann. Die Daten sind dabei nicht wirklich verschlüsselt, da sonst ja auch der YubiKey Server diese nicht entschlüsseln könnte.

Dieser Prozess des Signierens sorgt lediglich dafür, dass der YubiKey Server mit Sicherheit sagen kann, dass es sich um dich handelt und nicht um jemanden anderes. Die Verschlüsselung, also den Schutz der Daten während der Übertragung regelt die sichere https Verbindung (SSL/TLS) zwischen deinem Browser und dem Server, so wie du es von Webseiten kennst.

8.Nachdem der YubiKey Server die Echtheit und somit dich als legitimen Nutzer bestätigt hat, speichert er diese Informationen und noch einiges mehr in einer Datenbank ab.

Was mit diesen Informationen genau passiert, siehst du gleich noch.

Für alle diejenigen von euch, denen das zu oberflächlich war, haben wir hier noch das entsprechende Schaubild des gesamten Prozesses:

Wie läuft die Authentifizierung mit einem YubiKey im FIDO (2) Modus ab?

Nachdem du nun deinen YubiKey erfolgreich am YubiKey Server registriert hast, läuft der Prozess der Authentifizierung absolut genauso ab. Der einzige Unterschied zur Registrierung ist Schritt 7. Da der YubiKey Server den im Schritt 6 erzeugten Öffentlichen Schlüssel nun bereits kennt und gespeichert hat, kann er mit Hilfe von Ihm die jetzt erzeugte Nachricht, welche mit deinem Privaten Schlüssel unterschrieben bzw. „verschlüsselt“ wurde lesen und dir zuordnen. Auch hier kommt das bewehrte Signaturenverfahren zum Einsatz. Der YubiKey Server weis jetzt mit 100% Sicherheit, dass es sich um dich handelt und niemanden anders.

Das Schaubild hier verdeutlicht den Prozess ausführlich.

Dieser gesamte Prozess läuft für dich als User unsichtbar im Hintergrund ab. Das einzige was du aktiv machen musst, ist das Bestätigen des Buttons auf dem YubiKey. Auch sieht man ganz deutlich, wenn der YubiKey einmal registriert ist sind alle weiteren Schritte sehr schnell und bequem für den Benutzer.

Aktueller Stand von FIDO2, CTAP 1 + 2, WebAuthn und der meist-genutzten Browser

Der neuste Standard ist derzeit FIDO2 mit CTAP2 und WebAuthn. Leider unterstützen derzeit noch nicht alle Browser diese Technologie und die zugrundeliegenden Protokolle. Auch sind nicht alle YubiKey Modelle für das neuere CTAP2 Protokoll bereit. Beispielsweise ermöglichen es die YubiKey 4 Serie, FIDO U2F Security Key und der YubiKey Neo noch nicht, die Weiterentwicklung CTAP2 zu nutzen. Das ist erst ab der Version 5 von YubiKey möglich.

Durch den Aufbau von FIDO2 ist es aber dennoch möglich, diese Modelle zu nutzen. Denn FIDO2 ist abwärtskompatibel und unterstützt sowohl CTAP2 als auch das etwas ältere CTAP1 Protokoll.

Leider unterstützen auch einige Browser noch nicht das neuere CTAP2 Protokoll. Derzeit unterstützen Chrome und Firefox CTAP2 in den neusten Versionen auf Windows 10. Auch der Edge Browser von Microsoft unterstützt mittlerweile FIDO2 mit CTAP2. Lediglich Safari unter macOS hat erst vor kurzem begonnen, eine Unterstützung von CTAP1 in sein Produkt zu integrieren.

yubicase_shop_1140_de_v2

Vorteile des FIDO2 WebAuthn Standards

Um die Vorteile und den Komfort von WebAuthn und dem FIDO2 Standard in vollem Umfang nutzen zu können, bietet es sich an wie folgt vorzugehen.

Dein YubiKey kann nicht nur als aktiver Authenticator dienen, sondern er kann für mehr Komfort auch als reines BackUp Gerät genutzt werden. In diesem Fall richtet man den Zugang beispielsweise für seinen Microsoft Online Zugang einmalig mit dem YubiKey ein. Anschließend „überträgt“ man den sogenannten Trust auf einen, im Computer oder Laptop befindlichen Authenticator. Anschließend benötigt man den YubiKey nur noch, wenn der Laptop oder PC gestohlen wird oder kaputt geht. Nicht jedes Gerät verfügt über einen solchen internen Authenticator, jedoch mittlerweile schon sehr viele. Im Falle eines Verlustes lässt sich mit deinem YubiKey dann sehr schnell ein neues Gerät einrichten und der Trust kann erneut auf das Gerät übertragen werden (bootstrapping).

Der so auf dem Gerät gespeicherte Trust kann durch verschiedene Art zusätzlich geschützt werden. Das wohl am meisten verbreitetste Verfahren ist der Fingerabdruck. Gesichert durch diesen, kann der Trust ohne weiteres auf dem Gerät genutzt werden und nur als Backup ein YubiKey eingesetzt werden. Der YubiKey wird jedoch für die erstmalige Einrichtung benötigt.

Die Einrichtung für die unterschiedlichen Dienste läuft sehr einfach und intuitiv ab. Als Benutzer musst du einfach nur den Anweisungen auf deinem Bildschirm folgen, alles weiter passiert automatisch im Hintergrund.

  1. Online Dienst aufrufen und normal einloggen
  2. In die Einstellungen navigieren und den Menüpunkt 2 Faktor Authentifizierung finden
  3. Anweisungen befolgen und YubiKey anstecken und den Button drücken

Wir werden für einige der wichtigsten Dienste und Anbieter zu einem späteren Zeitpunkt nochmal individueller Tutorials bereitstellen, in denen wir auch genau erklären, wie ihr den Trust auf eure eigenen Geräte übertragen könnt.

Hat dir der Beitrag weitergeholfen?
Dann bewerte doch den Beitrag kurz. Um unseren Dienst weiter zu verbessern, sind wir auf dein Feedback angewiesen.

Jede Bewertung gibt auch + 5 auf dein Charma Konto

4.6/550 ratings