Über unsMediaKontaktImpressum
Eric Gorzolla 05. August 2020

Der zweite Faktor – wie sicher ist er wirklich?

Smartphones sind heutzutage nicht nur die treuen Alltagsbegleiter nahezu aller Menschen, sondern entwickeln sich darüber hinaus immer mehr zu einem Universaltool zur Erledigung von Aufgaben und Geschäften des täglichen Lebens. Das Versenden einer E-Mail oder das Tätigen einer Überweisung gehören dabei schon längst zum Standardrepertoire der cleveren Gerätschaften. Auch unterwegs ist ein Zugriff auf Online-Konten problemlos möglich, jedoch ist ein Großteil dieser Accounts meist nur durch ein unzureichendes Passwort geschützt. Passwörter gelten dann nach den bekannten Regeln als sicher, wenn sie aus mindestens acht Zeichen bestehen, und dabei Groß- und Kleinschreibung, Zahlen und Sonderzeichen enthalten. Bei Einhaltung dieser Regeln gilt ein Passwort zwar als relativ sicher, ist jedoch auch nur schwer zu merken. Deshalb nutzen viele Personen online oder offline Passwortmanager, um diese Passwörter zu verwalten oder schreiben diese auf.

Nichtsdestotrotz bleiben andere Gefahren, wie zum Beispiel die des Einfangens eines Keyloggers, bestehen. Ein solcher Keylogger ist eine Software, welche in der Lage ist, Tastatureingaben zu protokollieren (vgl.[1]). Auf diese Weise kann ein Angreifer leicht an Nutzername und Passwort gelangen. Sobald er im Besitz dieser Informationen ist, kann er sich mit diesen einloggen. Solch eine Gefahr besteht vor allem dann vermehrt, wenn man öffentliche Netzwerke (zum Beispiel öffentliches WLAN in Cafés oder Zügen) oder in der Öffentlichkeit befindliche Rechner, beispielsweise in einem Internetcafé, benutzt.

Was ist Zwei-Faktor-Authentifizierung?

Um sich vor unberechtigtem Zugriff in Form genau solcher Szenarien zu schützen, ist der aktuell einfachste und effektivste Weg der Einsatz einer Zwei-Faktor-Authentifizierung zum Schutz seiner privaten Accounts (vgl. [2]). Hierbei wird ein Passwort aus zwei Teilen gebildet: dem Teil des Wissens einerseits, welches in Form der Kenntnis über ein Passwort oder einen Pincode besteht und anderseits im Teil des Habens, welcher das Vorhandensein eines bestimmten Hardware Devices voraussetzt. Nur, wenn beide Teile zusammenwirken, ist ein Login möglich. Vereinfacht lässt sich dies in folgender Formel darstellen:

Login = (E-Mail/Nutzername) + PIN/Passwort + 2. Faktor

PIN/Passwort sind hierbei der Teil des Wissens und der 2. Faktor der Teil des Habens. Nach Aktivierung eines zweiten Faktors ist es nicht mehr möglich, sich alleine mit Nutzernamen und Passwort anzumelden. Dieser zweite Faktor ist meist eine durch ein Hardware Device generierte sechs- oder achtstellige Zahl, welche hinten an das Passwort oder den Pincode angehängt wird und in der Regel seine Gültigkeit nur 30 Sekunden lang behält. Bei den meisten Implementierungen dieser Sicherungsschicht sind dabei ausschließlich das aktuelle und vorhergehende Token gültig. Somit wird sichergestellt, dass dem Nutzer genug Zeit eingeräumt wird, um den Code einzugeben.

Wie funktioniert die Zwei-Faktor-Authentifizierung?

Um eine Zwei-Faktor-Authentifizierung zu nutzen, muss zuerst ein Geheimnis K zwischen Anbieter und Nutzer ausgetauscht werden. Dies geschieht meist in Form eines QR-Codes und eines Strings.

Abb. 1 zeigt einen QR-Code mit dem dazu passenden geheimen Schlüssel K (Geheimnis K) im Klartext. Dieser muss entweder mit einem Generator eingescannt oder der geheime Schlüssel eingegeben werden. Eine Geheimhaltung des Geheimnisses ist zwingend erforderlich, da es Dritten, die an diese Information kommen, sonst möglich ist, selbst Login-Codes zu generieren. Eine Übertragung des Geheimnisses sollte deshalb immer über eine gesicherte Verbindung, zum Beispiel HTTPS erfolgen, um sicherzustellen, dass das Geheimnis nicht in die Hände Dritter gelangt. Anhand des Schlüssels kann der Generator daraufhin die sechs- oder achtstelligen Codes erzeugen. Hierbei wird in dem Hardware Device ein Hashwert erzeugt und daraufhin im Generator auf die nötige Stellenanzahl gekürzt. Diese gekürzte Zahlenabfolge ergibt dann das Einmal-Kennwort.

Nutzungsmöglichkeiten der Zwei-Faktor-Authentifizierung

Um diese Art der Accountsicherung zu nutzen, stehen dem Nutzer diverse Möglichkeiten zur Verfügung:

  • SMS / E-Mail
  • Smartphone-App
  • Hardware-Token

SMS / E-Mail

Häufig wird durch Seitenbetreiber angeboten, dieses Token mittels einer SMS oder E-Mail an ein mobiles Endgerät des Accountnutzers zu senden. Diese Methode ist vorrangig bequem und sehr intuitiv nutzbar, jedoch ergeben sich dadurch auch Nachteile:

  • Benachrichtigungen werden häufig auf dem Sperrbildschirm des mobilen Endgeräts angezeigt, wodurch der Code durch unbefugte Dritte abgelesen werden kann.
  • SIM-Karten können durch Social Engineering dupliziert werden.
  • Es besteht die Möglichkeit einer Unterbrechung des Handyempfangs.
  • SMS-Nachrichten können auf einfache Weise abgefangen werden.

Dadurch wird klar, dass diese Art der Zwei-Faktor-Authentifizierung zwar einerseits sehr einfach und komfortabel handhabbar ist, jedoch wird dieses Mehr an Komfort andererseits durch einen Verlust an Sicherheit eingebüßt. Auch wenn die Möglichkeit besteht, sogenannte Backup-Codes zu nutzen, um sich anzumelden, ist auch diese Variante fragwürdig, da dafür erforderlich ist, diese permanent mit sich zu führen. Neben dem Mangel an Komfort, der durch das Mitführen entsteht, ist diese Methode weiterhin auch deshalb fragwürdig, weil ein Verlust dieser Daten möglich ist und auch dadurch unbefugten Dritten Zugang zu den eigenen Konten gewährt wird. Vorausgesetzt wird hierbei, dass Nutzername und Passwort dem Angreifer bekannt sind.

Smartphone-App

Die App Stores der einzelnen Smartphone-Betriebssysteme bieten mittlerweile eine breite Palette an Applikationen, welche eine Zwei-Faktor-Authentifizierung ermöglichen. Hierzu zählen unter anderem:

  • Google Authenticator
  • andOTP
  • Authenticator Pro
  • Yandex.Key

Auch wenn es sich dabei nur um eine kleine Auswahl an Apps handelt, welche zu diesem Zwecke geeignet sind, funktionieren alle derartigen Anwendungen im Kern ähnlich. Alle ermöglichen die Generierung eines Einmal-Tokens aus dem geheimen Schlüssel.

Abb. 2 zeigt die Ansicht des Google Authenticator und wie die Einmal-Codes dort angezeigt werden [3]. Im oberen Bereich steht hierbei der Accountname und darunter der zugehörige Code. Die blaue Fläche auf der rechten Seite zeigt mit Hilfe eines einfachen Tortendiagramms die Zeit an, die verbleibt, bis ein neuer Code generiert wird und damit auch die Zeit, die dem Nutzer bleibt, um das Kennwort einzugeben. Als besonders vorteilhaft ist bei dieser Methode zu bewerten, dass ein Abruf der Codes auch im Falle eines Verbindungsverlusts zum Mobilfunkanbieter besteht. Hierbei wird dann der geheime Schlüssel K auf dem mobilen Endgerät gespeichert. Problematisch erscheint hierbei dann nur ein eventueller Verlust des Smartphones oder ein Defekt. Sollte dies eintreten, ist der Nutzer aus diesen Accounts ausgesperrt und anschließend auf die Hilfe des Anbieters angewiesen, um den zweiten Faktor aus dem Account zu entfernen. Bei der Wahl einer App sollte der Nutzer immer darauf achten, dass es sich dabei um eine Open-Source-Applikation handelt, also um eine Anwendung, deren Quellcode öffentlich zugänglich ist. Durch diese Möglichkeit der Einsichtnahme durch jedermann kann gewährleistet werden, dass vorgenommene Änderungen an der Applikation durch den Entwickler stets nachvollziehbar bleiben und nicht durch diesen mittels einer Hintertür innerhalb der Programmierung verborgen werden können. Weiterhin wird durch die daraus resultierende unabhängige Überprüfung die Sicherheit der Anwendung vehement erhöht.

Hardware-Token

Hardware-Token bilden die dritte Gruppe der Möglichkeiten einer Zwei-Faktor-Authentifizierung. Dabei handelt es sich um kleine Hardware-Geräte, welche die Token intern ausrechnen. Besonders positiv ist bei dieser Variante der Sicherheitsaspekt in den Vordergrund zu stellen – hier werden die Codes und das Geheimnis K nämlich offline gespeichert.

Abb. 3 zeigt ein Beispiel eines solchen Hardware-Tokens – vorliegend einen YubiKey 5 NFC der Firma Yubico [4]. Der Hersteller stellt dabei für dieses Gerät auf seiner Homepage eine Software zur Verfügung, welche dabei hilft, den geheimen Schlüssel auf den YubiKey zu spielen. Sobald sich das Geheimnis K einmal auf dem Gerät befindet, ist es nicht mehr möglich, dieses sodann auszulesen. Möchte der Nutzer dann an den Token gelangen, so muss der YubiKey durch diesen lediglich in den USB-Port an seinem PC gesteckt und die Software gestartet werden. Dort werden anschließend die Codes – ähnlich wie beim Google Authenticator – angezeigt. Zieht der Nutzer den Key wieder ab, besteht keine Zugriffsmöglichkeit auf die Einmal-Codes mehr. Mittels NFC besteht für den Nutzer weiterhin die Möglichkeit, sich die Codes mit dem Smartphone und der Yubico-App anzeigen zu lassen. Vor allem in Hinblick auf die Sicherheit erscheint diese Möglichkeit besonders empfehlenswert.

Sicherheit der Zwei-Faktor-Authentifizierung

Der Grad an Sicherheit, der durch eine Zwei-Faktor-Authentifizierung gewährleistet wird, variiert stark und ist immer von der verwendeten Methode abhängig. Die erste vorgestellte Variante – das Erhalten von Codes mittels SMS – ist aufgrund der Gefahr, dass diese abgefangen werden können, am unsichersten. Jedoch ist auch anzumerken, dass selbst die Anwendung dieser Methode noch besser ist als überhaupt keine Zwei-Faktor-Authentifizierung zu verwenden. Zwar besser, aber immer noch verhältnismäßig unsicher ist die Token-Generierung mittels einer App. Hier ist es für unbefugte Dritte zwar deutlich schwieriger, die Codes abzugreifen, es bleibt jedoch das Risiko eines Verlustes des Geräts oder eines Defekts desselbigen bestehen. Zu beachten ist hierbei allerdings auch, dass das Geheimnis K nicht immer verschlüsselt auf dem mobilen Gerät gespeichert wird. Dadurch besteht das Risiko, dass dieses Geheimnis durch Schadware gestohlen und verschickt werden könnte. Gelangt ein Angreifer an das Geheimnis, so kann er selbst Token generieren und erhält dadurch Zugang zu den Accounts. Am meisten Sicherheit bietet die Verwendung eines Hardware-Tokens, da dort die Geheimnisse sicher gespeichert werden und nicht wieder auslesbar sind. Meist sind diese zusätzlich durch einen PIN-Code geschützt, der eingegeben werden muss, um die Codes zu erhalten und die Codes sind des Weiteren offline abgelegt. Größtenteils bieten die Hardware-Token auch noch darüber hinausgehende Funktionen, wie zum Beispiel die Speicherung von OpenPGP-Schlüsseln und weiteren Zertifikaten.

Brute-Force-Angriffe

Eine klassische Angriffsmethode, die verwendet wird, um sich unbefugt Zutritt zu fremden Accounts zu verschaffen, ist das sogenannte Brut-Force-Prinzip ("rohe Gewalt"). Dabei wird versucht, das Passwort zu ermitteln, indem einfach alle Kombinationsmöglichkeiten der Zeichen-, Ziffer- und Buchstabenabfolge ausprobiert werden, bis man auf die korrekte trifft. Die Anwendung erfolgt meist bei Passwörtern, wobei die Dauer der Ermittlung des Kennworts von dessen Länge abhängig ist – je länger das Passwort, desto länger dauert es, dieses mittels eines Brute-Force-Angriffs zu ermitteln. Es ist also fraglich, wie zweite Faktoren mit dieser Methode angegriffen werden können.

Sechsstellige Token

Bietet ein Onlinedienst eine Zwei-Faktor-Authentifizierung mit sechs Stellen an, so können alle Kombinationen von 000000 bis 999999 gültig sein. In der Summe hat ein Angreifer folglich 1.000.000 verschiedene Codemöglichkeiten, die ihm den Zugang zum Service versperren. Welche Zahl zwischen 000000 und 999999 in diesem Moment valide ist, bestimmt das Geheimnis K. Die aktuell gültige Kombination wird im Authenticator angezeigt. Im Normalfall behält das aktuelle Token seine Gültigkeit lediglich über 30 Sekunden hinweg. In einigen Konfigurationen kann es auch vorkommen, dass sowohl der aktuelle Code als auch der vorhergehende gültig sind. So wird dem Nutzer etwas mehr Zeit eingeräumt um die Zahlenfolge einzugeben, bevor diese ungültig werden. Geht man davon aus, dass ein Token seine Gültigkeit lediglich 30 Sekunden lang behält und immer nur ein Code gültig ist, muss ein Angreifer 1.000.000 Kombinationen in 30 Sekunden ausprobieren. Bei Brute-Force-Angriffen geht man davon aus, dass die richtige Kombination nach 50 Prozent aller Versuche gefunden ist. Kürzt man die Gleichung, so verbleiben 500.000 Codes in 30 Sekunden. Die Wahrscheinlichkeit liegt somit bei 1:500.000. In Prozent umgerechnet ergibt sich eine Wahrscheinlichkeit von 0,0002 Prozent. Aufgrund der geringen Chance ist festzuhalten, dass bereits ein sechsstelliges Token eine sehr hohe Sicherheit bietet.

Achtstellige Token

Bei einem Anbieter mit achtstelligen Token hingegen sind alle Kombinationen von 00000000 bis 99999999 möglich. In der Summe entspricht dies 100.000.000 Kombinationsmöglichkeiten. Auch hier gilt die Annahme, dass nach 50 Prozent aller Versuche bei einem Brute-Force-Angriff das richtige Token getroffen wird. Dabei wird ebenfalls angenommen, dass ein Token eine Gültigkeit von 30 Sekunden hat. Das bedeutet, dass ein Angreifer 50.000.000 Kombinationen in den 30 Sekunden ausprobieren müsste. Bei einem achtstelligen Code geht die Wahrscheinlichkeit folglich gegen 0. Ein achtstelliges Token nur durch Brute-Force zu brechen ist mit an Sicherheit grenzender Wahrscheinlichkeit unmöglich.

Eric Gorzolla auf den IT-Tagen 2020

Zum gleichen Thema hält Eric Gorzolla einen Vortrag auf den diesjährigen IT-Tagen – der Jahreskonferenz der Informatik Aktuell.

2FA – Wie sicher ist diese Methode?
(10.12.2020, 10:00 Uhr)

Phishing-Angriffe

Phishing-Angriffe sind aktuell die einzige effektive Methode, um eine Zwei-Faktor-Authentifizierung aushebeln zu können. Dies wird in den meisten Fällen durch gefälschte E-Mails erreicht, in denen dem Accountinhaber eine auffällige Situation innerhalb seines Kontos gemeldet wird. Daraufhin wird dieser per Link dazu aufgefordert, sich anzumelden und seine Einstellungen zu überprüfen. Der mitgesendete Link führt daraufhin auf eine vom Angreifer gefälschte Seite (die der Original-Seite zum Verwechseln ähnlich sieht und zu der sich Zugang verschafft werden soll), auf der die Nutzerinformationen inklusive des Zwei-Faktor-Tokens abgefangen werden. Da dieses Token lediglich eine geringe Gültigkeitsdauer von 30 Sekunden besitzt, kann der Angreifer dieses für nur einen einzigen Login verwenden. Dabei können dann E-Mails gelesen oder sogar Account-Einstellungen geändert – beispielsweise neue App-Passwörter angelegt – werden. Dies ermöglicht dem Angreifer in der Folge dann auch, sich Zugang zu Diensten zu verschaffen, die nicht mithilfe einer Zwei-Faktor-Authentifizierung geschützt werden können – zum Beispiel IMAP-Verbindungen ins Postfach. Fällt dem Opfer nicht auf, dass solch eine Änderung vorgenommen wurde, hat der Angreifer über IMAP und zum Beispiel Thunderbird Zugriff auf die Mails – wodurch er auch (unter dem Namen des Nutzers) Mails versenden könnte.

Ausblick auf neue Methoden

Die Zwei-Faktor-Authentifizierung ist aktuell die sicherste Methode, um einen Login zu Onlinekonten abzusichern. In Zukunft soll das U2F-Protokoll immer weiter etabliert werden, wodurch eine Möglichkeit geschaffen werden soll, mit der ein gänzlicher Verzicht auf Passwörter realisierbar ist. Dazu wird der Login über Public-Key-Kryptographie umgesetzt und lediglich ein Security Key benötigt, um sich anzumelden. Um dies zukünftig zu realisieren, arbeiten einige große Hersteller zusammen (Microsoft, yubico, Amazon und RSA). Diese Hersteller sind unter vielen anderen jedoch nur einige, die bei der Entwicklung mitwirken. Bei einigen kann man einen solchen U2F-Stick bereits einsetzen, um sich zu authentifizieren. Im Vergleich zur klassischen Zwei-Faktor-Authentifizierung ist hervorzuheben, dass die U2F-Methode nicht nur ein Mehr an Sicherheit, sondern auch ein Mehr an Komfort in Form von nutzerfreundlicherer (bequemerer) Bedienbarkeit bietet. Leider ist derzeitig jedoch noch nicht bekannt, wann der Standard so weit vorangeschritten ist, dass dieser für die Massen und auf verschiedenen Plattformen zugänglich ist.

Abb. 4 zeigt den genauen Ablauf einer U2F-Anmeldung. Ein Login über dieses Protokoll läuft auf folgende Weise ab, nachdem der Security-Key (wie z. B. der YubiKey 5 NFC) eingesteckt wurde:

  1. Das Device generiert einen öffentlichen und privaten Schlüssel. Der private Schlüssel verbleibt dabei zu jeder Zeit auf dem Hardware Device.
  2. Der öffentliche Teil des Schlüssels wird zum Zielserver geschickt. Zusätzlich wird auch einen Nonce mitgeschickt. In dem Fall ist es die zufällige Zahl, die das Device generiert hat. Hinzu kommt noch eine Checksumme, die den physikalischen Schlüssel für den Server erkennbar macht.
  3. Hat sich der Nutzer dann eingeloggt, sendet der Server die gespeicherte Nonce und die Checksumme wieder zurück an den U2F-Schlüssel. Zusätzlich hängt dieser eine zufällig generierte Nummer an.
  4. Das Device nutzt dann die Nonce und die Checksumme, um wieder auf den privaten Schlüssel zu schließen. Da jeder Key ein anderes Secret nutzt, um Schlüssel zu generieren, kann nur der originale Hardware Key den privaten Schlüssel errechnen.
  5. Anschließend signiert das Device des Nutzers die zufällige Nummer des Servers.
  6. Ist der Abgleich auf dem Server erfolgreich, wird der Login freigegeben.

Sämtliche dieser Schritte laufen im Hintergrund ab, wobei der Nutzer davon nichts mitbekommt. Der Nutzer steckt lediglich das Hardware-Token in einen USB-Slot und muss teilweise noch ein Touchfeld auf diesem betätigen.

Autor

Eric Gorzolla

Eric studiert Informatik an der Technischen Hochschule in Nürnberg. Seine Interessen liegen in der Kryptographie, Server-Administration sowie der IT-Sicherheit.
>> Weiterlesen
Das könnte Sie auch interessieren

Kommentare (0)

Neuen Kommentar schreiben