Wie funktioniert die Zeitbasierte Einmalpasswort-Erzeugung (TOTP) in der Google Authenticator App?

Melden
  1. Grundprinzip der TOTP
  2. Initiale Einrichtung und geheimer Schlüssel
  3. Algorithmus zur Passworterzeugung
  4. Erzeugung des Einmalpassworts
  5. Sicherheit und Synchronisation
  6. Zusammenfassung

Grundprinzip der TOTP

Die Zeitbasierte Einmalpasswort-Erzeugung (engl. Time-based One-Time Password, kurz TOTP) ist ein standardisiertes Verfahren zur Generierung zeitlich begrenzter Einmalpasswörter. Bei TOTP handelt es sich um eine Erweiterung des HMAC-basierten Einmalpassworts (HOTP), bei dem nicht nur ein Zählerwert, sondern die aktuelle Zeit als Eingabe für die Passwortgenerierung dient. Dadurch wird sichergestellt, dass die generierten Passwörter nur für einen kurzen Zeitraum gültig sind.

Initiale Einrichtung und geheimer Schlüssel

Der Vorgang beginnt damit, dass der Nutzer zur Einrichtung der Google Authenticator App einen geheimen Schlüssel (Secret Key) erhält. Dieser wird oftmals als QR-Code dargestellt, welcher vom Nutzer mit der App gescannt wird. Der geheime Schlüssel ist ein gemeinsam von Server und Client geteiltes Geheimnis und wird niemals übertragen oder gespeichert, außer auf dem Gerät des Nutzers und dem Server. Er bildet die Grundlage für die Passwortgenerierung.

Algorithmus zur Passworterzeugung

Die Google Authenticator App bestimmt regelmäßig, meist im 30-Sekunden-Takt, einen Zeitintervall, in dem ein neues Passwort erzeugt wird. Dies geschieht, indem die aktuelle Unix-Zeit (Anzahl der Sekunden seit dem 1. Januar 1970) durch die Länge des Intervalls (zum Beispiel 30 Sekunden) geteilt wird. Das Ergebnis ist eine fortlaufende Zahl, die als Eingabe für den Algorithmus dient.

Auf Grundlage dieses Zeitintervalls und des geheimen Schlüssels berechnet die App einen HMAC-Wert (Hash-based Message Authentication Code). Dabei wird ein kryptografischer Hash-Algorithmus (meist SHA1) verwendet, der den geheimen Schlüssel und den Zeitintervall als Daten verarbeitet. Das Resultat dieses HMAC ist ein scheinbar zufälliger Wert.

Erzeugung des Einmalpassworts

Aus dem berechneten HMAC-Wert extrahiert die App einen bestimmten Teil, um ein numerisches Einmalpasswort zu generieren. Üblicherweise wird ein sogenannter Dynamic Truncation-Mechanismus angewendet, der Bits des HMAC selektiert und in eine dezimale Zahl umwandelt. Die daraus resultierende Zahl wird dann auf eine feste Länge von meist sechs oder acht Ziffern gekürzt, um das eigentliche Einmalpasswort zu bilden.

Dieses Einmalpasswort ist nur gültig, solange das Zeitintervall läuft – also zum Beispiel 30 Sekunden. Nach Ablauf dieses Zeitraums berechnet die App automatisch den nächsten Code. Gleichzeitig erwartet auch der Server bei einer Anmeldung, dass der Nutzer den aktuell generierten Code angibt. Da Server und Client denselben geheimen Schlüssel und die gleiche Zeitbasis verwenden, stimmen beide generierten Passwörter überein.

Sicherheit und Synchronisation

Die Sicherheit des TOTP-Verfahrens beruht auf dem Schutz des geheimen Schlüssels und der kurzen Gültigkeitsdauer der Codes. Selbst wenn ein Angreifer einen einmaligen Code abfängt, kann er diesen höchstens innerhalb weniger Sekunden verwenden. Der Algorithmus ist zudem resistent gegen Replay-Angriffe, da Codes nicht mehrfach genutzt werden können.

Ein wichtiger Aspekt ist die Zeit-Synchronisation zwischen Client und Server. Wenn die Uhren stark auseinander liegen, können generierte Codes ungültig sein. Aus diesem Grund erlauben Server oft eine kleine Toleranzspanne, die auch Codes der vorangegangenen oder nächsten Zeitintervalle akzeptiert, um Ungenauigkeiten auszugleichen.

Zusammenfassung

Zusammenfassend funktioniert die Zeitbasierte Einmalpasswort-Erzeugung in der Google Authenticator App auf Grundlage eines geheimen Schlüssels und der aktuellen Zeit, die mit einem kryptografischen Algorithmus verarbeitet werden, um kurzzeitig gültige Passwörter zu generieren. Dieses Verfahren ermöglicht eine sichere Zwei-Faktor-Authentifizierung, indem es einmalige, zeitlich begrenzte Codes bereitstellt, die nur Besitzer des geheimen Schlüssels erzeugen können.

0

Kommentare