Time-based One-time Password Algorithmus
Der Time-based One-time Password Algorithmus (TOTP) ist ein Verfahren zur Erzeugung von zeitlich limitierten Einmalkennwörtern basierend auf dem Keyed-Hash Message Authentication Code (HMAC), welcher im Rahmen der Authentifizierung Anwendung findet. Er wurde von der branchenübergreifenden Initiative For Open Authentication (OATH) entwickelt und im Rahmen der Internet Engineering Task Force (IETF) im Juli 2011 als RFC 6238 veröffentlicht.[1]
Verfahren
Das Verfahren basiert im Kern auf einer kryptografischen Hash-Funktion HMAC, mit deren Hilfe aus dem zwischen Sender und Empfänger vereinbarten und geheimen Schlüssel K und der absoluten Uhrzeit ein kryptografischer Hash-Wert berechnet wird. Dazu wird die Uhrzeit in einen ganzzahligen Sekundenwert gewandelt, üblicherweise werden dabei die Anzahl der Sekunden seit 1. Januar 1970 herangezogen, und dieser Wert auf eine Schrittweite von 30 Sekunden gerundet. Das Einmalkennwort ist innerhalb dieser Dauer von 30 Sekunden gültig. Je nach konkreter Implementierung und Konfiguration werden auch noch die zeitlich benachbarten Intervalle akzeptiert. Wesentlich bei diesem Verfahren ist, dass die beiden Systeme, Sender und Empfänger, über hinreichend genaue Uhren oder über einen Zugang wie dem Network Time Protocol (NTP) zu einer genauen Uhrzeitinformation verfügen müssen, da andernfalls die Authentifizierung fehlschlägt.
Zur Berechnung können im Rahmen des Verfahrens verschiedene kryptografische Hash-Funktionen eingesetzt werden wie der SHA-1 oder auch die sicheren Verfahren aus der Gruppe SHA-2 wie beispielsweise SHA-512. Der so berechnete Hash-Wert wird auf eine Länge von 31 Bit abgeschnitten und daraus dann durch modulo 10d, mit d = 6 oder d = 8 für sechs oder acht Stellen, das eigentliche und zeitlich limitierte Einmalpasswort gebildet.
Ein Nachteil des Verfahrens ist, dass jeder, der im Besitz des zwischen Sender und Empfänger einmalig vereinbarten geheimen Schlüssels K ist und über eine genaue Uhrzeit verfügt, gültige Einmalpasswörter generieren kann.
TOTP ist ein offener Standard und frei von Patenten. Ein ähnliches und älteres Verfahren, welches aber statt mit der Uhrzeit mit einem Zähler arbeitet, stellt der HMAC-based One-time Password Algorithmus (HOTP) dar.
Anwendungen
Das Verfahren zählt zu den zeitgesteuerten Kennwortgeneratoren und findet beispielsweise im Rahmen der Authentifizierung bei der Anmeldung von einem Benutzer (Sender) bei einem Web-Server (Empfänger) im Rahmen einer Zwei-Faktor-Authentifizierung, zusätzlich zu einem herkömmlichen Kennwort, Anwendung.