HMAC-based one-time password
# HMAC-based one-time password

HMAC-based one-time password (HOTP) ist ein Verfahren zur Erzeugung von Einmalkennwörtern basierend auf dem Keyed-Hash Message Authentication Code (HMAC), welcher im Rahmen der Authentifizierung, insbesondere im Bereich Internet, Anwendung findet. Das Verfahren wurde von der Initiative For Open Authentication (OATH) entwickelt und im Rahmen der Internet Engineering Task Force (IETF) im Dezember 2005 als 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 einen zwischen Sender und Empfänger synchronen Zähler C ein kryptografischer Hash-Wert berechnet wird. Der Zähler wird bei jeder Authentifizierung auf beiden Seiten, sowohl bei dem Sender als auch beim Empfänger, inkrementiert und ergibt damit bei jedem Aufruf ein unterschiedliches, vom geheimen Schlüssel abhängiges Einmalkennwort.
Zur Berechnung können im Rahmen des Verfahrens verschiedene kryptografische Hash-Funktionen eingesetzt werden wie beispielsweise 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 10$^d$, mit d=6 oder d=8 für sechs oder acht Stellen, das eigentliche Einmalpasswort gebildet.
Das Verfahren ist ein offener Standard und frei von Patenten. Ein ähnliches und jüngeres Verfahren, welches aber statt mit einem Zähler mit der Uhrzeit arbeitet, ist Time-based one-time password (TOTP).

## Anwendungen

Das Verfahren zählt zu den ereignisgesteuerten Kennwortverfahren und findet beispielsweise im Rahmen der Authentifizierung bei der Anmeldung von einem Benutzer (Sender) bei einem Server (Empfänger) Anwendung.