Technische Details – TOTP Authentifizierung

1. Grundprinzipien von TOTP

Die Time-based One-Time Password (TOTP)-Authentifizierung ist eine Methode der Zwei-Faktor-Authentifizierung (2FA), die auf kryptographischen Prinzipien basiert und die aktuelle Zeit als dynamischen Faktor nutzt, um temporäre Einmalpasswörter zu generieren. TOTP ist eine Erweiterung des HMAC-based One-Time Password (HOTP)-Algorithmus und wurde im RFC 6238 standardisiert.

Hauptbestandteile

2. Mathematischer und kryptographischer Ablauf

Schritt 1: Zeitbasierter Zähler (T)

Der Zeitbasierte Zähler wird aus der aktuellen Zeit berechnet:

Beispiel: Am 12. März 2025, 22:19 UTC, beträgt die Unix-Zeit etwa 1.742.917.140 Sekunden. Bei \(T_0 = 0\) und \(TS = 30\): \[ T = \left\lfloor \frac{1.742.917.140}{30} \right\rfloor = 58.097.238 \] Dieser Wert \(T\) ändert sich alle 30 Sekunden.

Schritt 2: HMAC-Berechnung

TOTP basiert auf dem HMAC-Algorithmus:

\[ \text{HMAC}(K, T) = \text{SHA-1}(K \oplus \text{opad} || \text{SHA-1}(K \oplus \text{ipad} || T)) \]

Der HMAC erzeugt einen 20-Byte (160-Bit) Hash-Wert, der deterministisch und kollisionsresistent ist.

Schritt 3: Dynamische Truncation

Der 20-Byte-Hash wird gekürzt:

  1. Offset \(O\) aus dem letzten Byte: \[ O = \text{HMAC}[19] \& 0x0F \]
  2. 4 Bytes ab Offset \(O\): \[ \text{Bytes} = \text{HMAC}[O:O+4] \]
  3. 31-Bit-Wert: \[ I = (\text{Bytes}[0] \& 0x7F) \ll 24 \, | \, (\text{Bytes}[1] \& 0xFF) \ll 16 \, | \, (\text{Bytes}[2] \& 0xFF) \ll 8 \, | \, (\text{Bytes}[3] \& 0xFF) \]

Schritt 4: OTP-Generierung

Der 31-Bit-Wert \(I\) wird modulo \(10^d\) genommen: \[ \text{TOTP} = I \mod 10^d \] Beispiel: Wenn \(I = 1.234.567\) und \(d = 6\): \[ \text{TOTP} = 1.234.567 \mod 1.000.000 = 234.567 \]

Schritt 5: Verifikation

Der Server vergleicht das berechnete TOTP mit dem eingegebenen Code, oft mit Toleranz für benachbarte Zeitfenster (\(T-1\), \(T+1\)).

3. Kryptographische Sicherheit

Sicherheitsmerkmale

Schwachstellen

4. Implementierung in Authentifizierungs-Apps

Proprietäre Apps

Open-Source-Apps

5. Vergleich und praktische Aspekte

Vorteile von TOTP

Unterschiede zwischen Apps

6. Fazit

TOTP ist ein robustes Verfahren, das auf HMAC und zeitlicher Synchronisation basiert. Es bietet Sicherheit und Flexibilität, unterstützt durch Apps wie Google Authenticator, Authy und Open-Source-Alternativen wie Aegis, Stratumauth, FreeOTP und X1nto/Mauth.