Zwei-Faktor-Authentifizierung

Als Spezialfall der Multi-Faktor-Authentifizierung stieg die Relevanz der Zwei-Faktor-Authentifizierung (2FA) in den letzten Jahren immens. Gerade im IT-Bereich werden sensible Daten durch diese Methode geschützt. Ein beliebtes Verfahren ist das Time-based One-time Password (TOTP), welches in verschiedenen MFA-Lösungen eingesetzt wird. In der Praxis lässt es sich beispielsweise beim Sophos oder Google Authenticator finden, aber auch bei kleinen Hardware-Tokens, welche minütlich Passwörter für den einmaligen Gebrauch generieren. Bei dem TOTP Verfahren wird ein Hash aus der Kombination von zwei Komponenten erstellt, bestehend aus einem Passwort und dem Zeitpunkt der Generierung. 2011 von der Internet Engineering Task Force (IETF) veröffentlicht, lassen sich die technischen Details unter der RFC-ID 6238 finden.

Wie wird das TOTP Verfahren angewendet?

Für die Anwendung ist folgende Formel zentral:

TOTP = HOTP (SecretKey, CurrentTime)
CurrentTime=floor((unixtime(now)-unixtime(T0)) / TI)
Result = TOTP mod 10^d

In der ersten Zeile wird der Hash durch den HMAC-based One-time Password Algorithmus (HOTP) festgelegt. Das Passwort für Server und Client ist als „Shared Secret“ in der Variable SecretKey beinhaltet.

Die zweite Zeile implementiert mit der CurrentTime die aktuelle Zeit in die Berechnung, wobei standardmäßig das Datum 01.01.1970 für die Variable T0 eingesetzt wird. Das Aktualisierungsintervall findet sich in der Variable T1 wieder.

Die Formel der dritten Zeile erstellt anschließend das benötigte Einmalpasswort, wobei ^d die Zahl der Stellen des OTPs repräsentiert, welche üblicherweise bei sechs oder acht liegen. Während der Implementierung des Verfahrens besteht die Möglichkeit, Anpassungen gegen Abweichungen zwischen der Uhrzeit des Servers und des Clienten vorzunehmen.

Die Zwei-Faktor-Authentifizierung in der Praxis

Um eine Verwendung von Tokens für den User gewährleisten zu können, muss zunächst die Nutzung eingerichtet werden. Für die Erstellung werden drei Schritte angewandt, welche aus der Generierung eines SecretKeys, der Bekanntmachung dieses und der Generierung des Tokens bestehen. Der erste Schritt verläuft auf dem Authentifizierungsserver. Über verschlüsselte Speicher kann der SecretKey aufbewahrt und einem fremden Zugriff vorgebeugt werden. Bei der Erstellung empfiehlt sich aus Sicherheitsgründen die Nutzung eines Zufallsgenerators, welcher kryptographisch gesichert sein muss und keinesfalls statistische Grundwerte verwenden sollte. Im zweiten Schritt erfährt der User über die 2FA App den SecretKey. Dies kann beispielsweise über einen QR-Code geschehen, welcher die nötigen Informationen für den User bereitstellt. Zuletzt wird die App für den Nutzer aktiviert, indem sie einen Token generiert und der Server diesen mit dem Token des Users vergleicht.

Sicherheitslücken des TOTPs

Um die Sicherheit der Verwendung zu gewährleisten, sollten bestimmte Faktoren immer beachtet werden. Das Passwort und der SecretKey des Users müssen individuell nur für ihn gelten, wobei der SecretKey als kryptographisch komplexes Passwort über mindestens 24 Stellen verfügen soll. Auch das Passwort selbst sollte vor einem Erraten geschützt werden, beispielsweise indem die möglichen Eingabeversuche begrenzt werden. Als One-Time-Password ist es notwendig, die Nutzung auf eine einmalige zu beschränken und die Übertragung ausschließlich verschlüsselt abzuwickeln. Um die Verwendung des QR-Codes zu sichern, sollte dieser nicht über Onlinedienste genutzt werden.

Die 2FA kann, wenn richtig implementiert, einen enormen Beitrag zur allgemeinen Sicherheit einer IT-Infrastruktur beitragen, besonders dann, wenn sensible Informationen geschützt werden müssen. Als erfahrenes IT-Dienstleistungsunternehmen in Solingen bietet edv2go seinen Kunden eine zuverlässige, umfassende und vor allem unabhängige IT-Beratung.