TOTP 2FA QR-codes Uitgelegd

Een technische diepgaande duik in het otpauth:// URI-formaat, base32-geheimen en RFC 6238 TOTP-wiskunde.

Wat is TOTP

TOTP (Time-based One-Time Password, RFC 6238) is het algoritme achter Google Authenticator, Authy, 1Password, Bitwarden en elke andere authenticator-app. Het produceert een 6-cijferige code die elke 30 seconden verandert op basis van een gedeeld geheim en de huidige Unix-tijd.

otpauth URI

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

Het URI-schema is otpauth://, het type is totp (het andere option is hotp, op basis van teller), dan het label, dan de queryparameters. Authenticator-apps ontleden deze URI en voegen deze met één scan toe aan de kluis van de gebruiker.

Label

Optioneel formaat: Issuer:account@example.com. Het voorvoegsel Issuer is overbodig met de queryparameter issuer, maar de meeste apps respecteren beide.

Geheim

Een base32-gecodeerde bytereeks (A-Z en 2-7, geen opvulling). Minstens 128 bits aanbevolen, de meeste servers gebruiken 160 bits (32 base32-tekens). Codeer het geheim nooit met URL; laat het als ruwe base32.

Algoritme, Cijfers, Periode

algorithm: SHA1 (standaard, universeel ondersteund), SHA256 of SHA512. digits: 6 (standaard) of 8. period: 30 seconden (standaard) of 60. Houd je aan standaarden tenzij je een reden hebt, sommige authenticator-apps implementeren de niet-standaard opties niet.

Hoe de Code wordt Berekend

Op elk 30-secondeninterval doet de authenticator: HMAC-SHA1(secret, floor(unix_time / 30)), neemt de laatste 4 bits van de HMAC als dynamische offset, leest 4 bytes vanaf die offset, maskeert tot 31 bits, en verlaagt modulo met 106 om een 6-cijferige code te verkrijgen.

Gebruik Abundera QR om er een te Genereren

Open de TOTP-generator, vul de uitgever (uw merknaam), account (e-mailadres van de gebruiker of gebruikersnaam) en base32-geheim in. Standaarden voor algoritme/cijfers/periode zijn correct voor vrijwel elke server. Download de PNG en stuur deze per e-mail of SMS naar de gebruiker, of sluit deze in uw inschrijvingsstroom in.

Privacyopmerking

Uw TOTP-geheim is een gedeelde referentie tussen de server en de gebruiker. Abundera QR ziet geen van beide. Alle codering gebeurt in de browser. Lees het volledige privacybeleid.