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
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.
Wie läuft die Registrierung eines YubiKey im FIDO (2) Modus genau ab?
Schritt 1
Sie verbinden sich mit Hilfe Ihres Browsers mit dem YubiKey Server.
Schritt 2
Der YubiKey Server generiert eine Art Rätsel, das individuell und nur für 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)
Schritt 3
Sie verifizieren 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.
Schritt 4
Ihr Browser leitet alle Informationen über das sichere CTAP Protokoll an den angesteckten YubiKey weiter.
Schritt 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.
Schritt 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.
Schritt 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 Sie 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 Ihrem Browser und dem Server, so wie Sie es von Webseiten kennen.
Schritt 8
Nachdem der YubiKey Server die Echtheit und somit Sie als legitimen Nutzer bestätigt hat, speichert er diese Informationen und noch einiges mehr in einer Datenbank ab.
Was mit diesen Informationen genau passiert, wird Ihnen gleich noch gezeigt.
Für alle diejenigen von euch, denen das zu oberflächlich war, haben wir hier noch das entsprechende Schaubild des gesamten Prozesses:
Sie haben Fragen zum Thema YubiKey?
Wie läuft die Authentifizierung mit einem YubiKey im FIDO (2) Modus ab?
Nachdem Sie nun Ihren YubiKey erfolgreich am YubiKey Server registriert haben, 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 Ihrem privaten Schlüssel unterschrieben bzw. „verschlüsselt“ wurde, lesen und Ihnen zuordnen. Auch hier kommt das bewährte Signaturenverfahren zum Einsatz. Der YubiKey Server weiß jetzt mit 100% Sicherheit, dass es sich um Sie handelt und niemanden anders.
Das Schaubild hier verdeutlicht den Prozess ausführlich.
Dieser gesamte Prozess läuft für Sie als User unsichtbar im Hintergrund ab. Das einzige, was Sie aktiv machen müssen, ist das Bestätigen des Buttons auf dem YubiKey. Auch sieht man ganz deutlich, dass, sobald der YubiKey einmal registriert ist, alle weiteren Schritte sehr schnell und bequem für den Benutzer sind.
Aktueller Stand von FIDO2, CTAP 1 + 2, WebAuthn und der meist-genutzten Browser
Der neueste 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 neuesten 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.
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.
Ihr 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 richten Sie den Zugang beispielsweise für Ihren Microsoft Online-Zugang einmalig mit dem YubiKey ein. Anschließend „übertragen“ Sie den sogenannten Trust auf einen, im Computer oder Laptop befindlichen Authenticator. Anschließend benötigen Sie 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 Ihrem 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 Arten zusätzlich geschützt werden. Das wohl am meisten verbreitete 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 müssen Sie einfach nur den Anweisungen auf Ihrem Bildschirm folgen, alles weitere passiert automatisch im Hintergrund.
- Online-Dienst aufrufen und normal einloggen
- In die Einstellungen navigieren und den Menüpunkt 2-Faktor-Authentifizierung finden
- 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 individuellere Tutorials bereitstellen, in denen wir auch genau erklären, wie Sie den Trust auf Ihre eigenen Geräte übertragen können.