TOTP 2FA QR-Codes erklärt

Eine technische Tiefenanalyse des URI-Formats otpauth://, Base32-Geheimnissen und der TOTP-Mathematik gemäß RFC 6238.

Was ist TOTP

TOTP (Time-based One-Time Password, RFC 6238) ist der Algorithmus hinter Google Authenticator, Authy, 1Password, Bitwarden und jeder anderen Authenticator-App. Er erzeugt alle 30 Sekunden einen 6-stelligen Code, der auf einem gemeinsamen Geheimnis und der aktuellen Unix-Zeit basiert.

Der otpauth-URI

otpauth://totp/Issuer:account@example.com?secret=BASE32SECRET&issuer=Issuer&algorithm=SHA1&digits=6&period=30

Das URI-Schema ist otpauth://, der Typ ist totp (die andere Option ist hotp, zählerbasiert), dann das Label, dann die Query-Parameter. Authenticator-Apps parsen diesen URI und fügen ihn mit einem einzigen Scan zum Tresor des Nutzers hinzu.

Das Label

Optionales Format: Issuer:account@example.com. Das Issuer-Präfix ist redundant mit dem issuer-Query-Parameter, aber die meisten Apps respektieren beide.

Das Geheimnis

Ein base32-kodierter Byte-String (A-Z und 2-7, ohne Padding). Mindestens 128 Bits empfohlen, die meisten Server verwenden 160 Bits (32 base32-Zeichen). Das Geheimnis niemals URL-enkodieren; als rohe base32-Zeichenfolge lassen.

Algorithmus, Stellen, Periode

algorithm: SHA1 (Standard, universell unterstützt), SHA256 oder SHA512. digits: 6 (Standard) oder 8. period: 30 Sekunden (Standard) oder 60. Standardwerte beibehalten, sofern kein Grund dagegen spricht, einige Authenticator-Apps implementieren die Nicht-Standard-Optionen nicht.

Wie der Code berechnet wird

Bei jedem 30-Sekunden-Intervall führt der Authenticator Folgendes durch: HMAC-SHA1(secret, floor(unix_time / 30)), nimmt die letzten 4 Bits des HMAC als dynamischen Offset, liest 4 Bytes ab diesem Offset, maskiert auf 31 Bits und reduziert modulo 106 auf einen 6-stelligen Code.

Einen QR mit Abundera QR generieren

Öffnen Sie den TOTP-Generator, füllen Sie Aussteller (Ihr Markenname), Konto (E-Mail oder Benutzername des Nutzers) und ein base32-Geheimnis aus. Die Standardwerte für Algorithmus/Stellen/Periode sind für fast jeden Server korrekt. Laden Sie das PNG herunter und senden Sie es per E-Mail oder SMS an den Nutzer, oder binden Sie es in Ihren Registrierungsfluss ein.

Datenschutzhinweis

Ihr TOTP-Geheimnis ist eine gemeinsame Zugangsinformation zwischen Server und Nutzer. Abundera QR sieht sie niemals. Die gesamte Kodierung findet im Browser statt. Vollständige Datenschutzerklärung lesen.