+49 (0) 8171/405-0 info@proSoft.de

HOTP

HOTP basiert auf zwei grundlegenden Dingen: einem gemeinsamen Geheimnis und einem wechselnden Faktor (alias Zähler). Als Teil des Algorithmus wird ein HMAC-SHA1-Hash (genauer gesagt ein hashbasierter Nachrichten-Authentifizierungscode) des wechselnden Faktor unter Verwendung des gemeinsamen Geheimnis erzeugt. Dieser Algorithmus ist Ereignis-basiert, d.h. bei jeder Generierung eines neuen OTPs wird der wechselnden Faktor geändert, weshalb die nachfolgend generierten Passwörter jedes Mal unterschiedlich sein sollten.

HOTP funktioniert genau wie TOTP, nur dass anstelle eines Zeitstempels ein Authentifizierungszähler verwendet wird. Der Vorteil dabei ist, dass HOTP-Geräte keinen Takt benötigen.

HOTP basiert auf einem Zähler, der jedes Mal, wenn eine neue Nummer generiert werden soll, eins hochgezählt wird. Diese Nummer wird zuerst mit HMAC und SHA-1 gehasht. Das Resultat wird im Anschluss in eine Int32 Zahl umgewandelt und mittels Modulo (%) auf die gewünschte Länge gekürzt.

HOTP ist anfällig für den Verlust der Counter-Synchronisation. Das heißt, wenn der Benutzer ein OTP erzeugt, ohne sich damit zu authentifizieren, stimmt der Gerätezähler nicht mehr mit dem Serverzähler überein. Dies kann auf dem Server durch das Testen mehrerer aufeinanderfolgender Zählerwerte gemildert werden. Bei Authenticatoren, wie z.B. einem Yubikey von Yubico kann dies nicht geschehen, da der Zähler verschlüsselt ist (im Gegensatz zu Hash).

Der Hauptunterschied zwischen HOTP und TOTP besteht darin, dass die HOTP-Passwörter für eine unbestimmte Zeit gültig sein können, während sich die TOTP-Passwörter ständig ändern und nur für ein kurzes Zeitfenster gültig sind. Aufgrund dieses Unterschieds wird das TOTP im Allgemeinen als eine sicherere One-Time-Password Lösung angesehen.

TOTP ist in RFC 4226 spezifiziert.

Verwandte Begriffe:
  • HMAC-based One-Time Password
  • HMAC-based One-Time Passcode