Time-based one-time password
# Time-based one-time password

Time-based one-time password (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.

## 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 dem 1. Januar 1970 (Unixzeit) herangezogen, und dieser Wert auf eine Schrittweite von 30 Sekunden gerundet. Das Einmalkennwort ist innerhalb dieser Dauer von 30 Sekunden gültig. Je nach Implementierung und Konfiguration werden ggf. 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 dann aus den letzten sechs oder acht Stellen (modulo 10$^6$ bzw. modulo 10$^8$) das eigentliche und zeitlich limitierte Einmalpasswort gebildet.
Eine zu beachtende Eigenschaft des Verfahrens ist es, 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; vergleichbar zu privaten Schlüsseln in anderen Verfahren.
TOTP ist ein offener Standard und frei von Patenten. Ein ähnliches und älteres Verfahren, welches aber nicht mit der Uhrzeit, sondern einem Zähler arbeitet, ist HMAC-based one-time password (HOTP).

## 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.