Einige Webdienste bieten
Zwei-Faktor-Authentifizierung (2FA) als Alternative zum einfachen Login mit Username/Passwort an. Die Webseite
USB-Dongle Authentication bietet eine Übersicht zu Webdiensten, die OTP und U2F für den sicheren Login unterstützen.
One-Time-Passwort (OTP): Bei der Zwei-Faktor-Authentifizierung mit zusätzlichem One-Time-Passwort besteht das Passwort aus zwei Komponenten. Der erste Teil ist üblicherweise ein n-stellige PIN, die man wissen muss. Der zweite Teil ist das One-Time-Passwort. Es wird von einem kleinen Spielzeug geliefert und ist nur einmalig verwendbar.
Wenn ein Angreifer dieses zusammengesetzte Zwei-Faktor-Passwort erbeutet (mit einem Keylogger in einem unsicheren Internet Cafe' oder durch erfolgreiche Angriffe auf den Datenverkehr), dann ist es wertlos. Außerdem schützt OTP gegen Beobachtung der Passworteingabe durch die Videoüberwachung öffentlicher Bereiche und in Internet Cafes.
OTP schützt aber nicht bei Einbrüchen auf dem Server. Da bei OTP der Server und Client den gleichen Algorithmus zur Berechnung und Verifizierung des One-Time-Passworts ausführen, kann ein Angreifer bei einem erfolgreichem Einbruch auf dem Server die Parameter auslesen und gültige One-Time-Passwörter berechnen.
Es gibt mehrere Verfahren für One-Time-Passwörter:
- HMAC-based OTP: (HOTP) nutzt One-Time-Passwörter, die aus einem HMAC-SHA1 Hashwert abgeleitet werden, der aus einem Zähler und einem gemeinsam Secret berechnet wurde. Sie sind beliebig lange gültig aber die Verwendung eines Token mit größerem Zählerwert erklärt auch alle Token mit niedrigerem Counter für ungültig.
Tipp: Wenn man seinen OTP-Generator nicht in den Urlaub o.ä. mitnehmen möchte, kann man sich eine Liste von HOTP-Token generieren lassen und diese Zahlenkombinationen nacheinander zum Login unterwegs verwenden.
- Time-based OTP: (TOTP) nutzt One-Time-Passwörter, die auf Basis der aktuellen Uhrzeit berechnet werden und nur innerhalb einer kurze Zeitspanne einmalig gültig sind.
Die HOTP und TOTP Passwörter können von einem Hardware Token (z.B. Nitrokey Pro mit Nitrokey App) generiert werden oder
von einer Smartphone App (z.B. FreeOTP oder Google Authenticator). Wenn ein Smartphone genutzt wird muss man die angezeigte Zahlenkombination per Hand in das Login Formular abtippen. Bei der Verwendung von TOTP hat man dafür 30sec bzw. 60 sec Zeit, je nach Konfiguration.
Wenn man HOTP oder TOTP Login bei einem Webdienst aktiviert, dann wird ein ORCode angezeigt, den man mit dem Smartphone scannt. Mit diesem Scan ist FreeOTP auf dem Smartphone für den Webdienst konfiguriert.
- YubicoOTP: ist ein properitäres Protokoll der Firma Yubico. Es wird ein USB-Stick genutzt, der sich wie eine Tastatur verhält. Man aktiviert das Passwortfeld und drückt dann eine Taste auf dem USB-Stick. Damit wird das One-Time-Passwort in das Eingabefeld geschrieben und man kann das Formular abschicken.
Neben dem einfachen Yubico Stick gibt es den Yubico NEO, der auch als OpenPGP Smartcard genutzt werden kann und ab der Version 4 auch als U2F SecurityStick.
Ein kleiner Tipp: der Yubikey hat zwei Configuration Slots, man kann ihn also für zwei Webdienste nutzen. Wenn man einmal kurz drückt, dann wird Slot 1 genutzt, wenn man ihn länger als 1sec drückt, dann wird die Konfiguration von Slot 2 genutzt.
U2F: ist ein kryptografisches Privat/Public Key Verfahren zur Authentifizierung mit einem kleinen SecurityStick (z.B.
Nitrokey U2F oder verschiedene
Yubikeys), dass im Okt. 2014 standardisiert wurde. Im Gegensatz zu OTP schützt U2F auch bei Einbrüchen auf dem Server und bei der Eingabe des Passwortes auf Phishingseiten.
Das Verfahren läuft im Hintergrund automatisch ab, man muss nur den SecurityStick vor dem Login anschließen. Der Server sendet ein zufälliges Challenge an den Client (Browser), der Browser gibt diesen Input zusammen mit der URL an den SecurityStick weiter, der mit einem geheimen Schlüssel eine Signatur über diese Daten berechnet. Diese Signatur wird als Response an den Server zurück gesendet und kann dort mit dem passenden public Key verifiziert werden.
U2F muss vom Browser und vom Webdienst unterstützt werden. Bisher bietet nur Google Chrome nativen Support für U2F. Mozilla
arbeitet an einer Implementierung für Firefox. Bisher gibt es für Firefox das
U2F Support Add-on, das den Browser mit U2F-Support aufmotzt.
VerificationCode: nutzt SMS. SMS-basierte Verfahren zur Authentifizierung gelten als nicht mehr sicher. Es gibt mehrere Publikationen zu dem Theme. Das NIST empfiehlt, SMS nicht mehr als 2. Faktor fir die Authentifizierung zu nutzen.
Out of band verification using SMS is deprecated, and will no longer be allowed in future releases of this guidance. (NIST Special Publication 800-63B)
ePerso: In Auswertung des US-Wahlkampfes 2016 und dem erheblichen Einfluss von gehackten E-Mail Accounts auf das Wahlverhalten der amerikanischen Bevölkerung hat die Bundesregierung die
Cyber-Sicherheitsstrategien überarbeitet. Nach Ansicht der Bundesregierung ist die Sicherheit mit dem klassischen Benutzername/Passwort-Verfahren nicht mehr gegeben. Im Rahmen Cyber-Sicherheitsstrategien will die Regierung die Bürger stärker zur Nutzung der Onlineausweisfunktion des Personalausweises animieren.
Bezüglich des klassischen Benutzername/Passwort-Verfahren stimmen wir mit der Bundesregierung überein. Wir empfehlen aber die Onlineausweisfunktion des ePerso nicht. Statt dessen sollte man Hardware Token nutzen, die nicht an eine ID-Karte gebunden sind und vollständig durch den Nutzer konfiguriert werden (z.B. Nitokey oder Yubikey o.ä.)