Utilia

TOTP- og HOTP-kodegenerator

Generer TOTP- og HOTP-koder for tofaktorinnlogging fra en Base32-hemmelighet eller en otpauth://-URI, med SHA-1, SHA-256 eller SHA-512, nedtelling og QR-kode.

En 2FA-hemmelighet er like sensitiv som et passord. Alt her kjører lokalt i nettleseren din: hemmeligheten, kodene og QR-koden sendes aldri noe sted.

Sett opp en autentiseringsapp

Legg til en utsteder og et kontonavn, og skann deretter QR-koden eller kopier otpauth://-lenken inn i autentiseringsappen din.

Slik genererer du TOTP-koder

  1. Lim inn en Base32-hemmelighet (for eksempel JBSWY3DPEHPK3PXP) eller en hel otpauth://-lenke i Hemmelighet (Base32) eller otpauth://-URI. Mellomrom, bindestreker, små bokstaver og manglende =-utfylling godtas.
  2. Kodene vises mens du skriver, eller når du klikker Vis kodene. En innlimt URI fyller ut feltene Type, Algoritme, Sifre, Periode (sekunder), Utsteder og Konto for deg.
  3. Les Gjeldende kode i midten, med Forrige kode og Neste kode på hver side. Linjen under teller ned sekundene før koden skifter, og Kopier koden kopierer den uten mellomrom.
  4. For tellerbaserte koder velger du HOTP (tellerbasert), setter Teller og bruker Neste teller for å gå videre.
  5. Vil du lage en ny 2FA-hemmelighet, klikker du Ny tilfeldig hemmelighet. Fyll inn Utsteder og Konto, og skann deretter QR-koden med en autentiseringsapp, Kopier URI, eller Last ned QR-kode (PNG).

Slik fungerer TOTP og HOTP

HOTP (RFC 4226) beregner en HMAC av en teller på 8 byte med den delte hemmeligheten, og bruker deretter dynamisk avkorting: de fire siste bitene i HMAC-en velger en forskyvning, fire byte leses derfra, øverste bit nullstilles, og tallet reduseres modulo 10^sifre. Resultatet er en kode på 6 til 8 sifre.

TOTP (RFC 6238) er HOTP der telleren er det gjeldende tidstrinnet: T = floor(Unix-tid / periode), med en periode på 30 sekunder som standard. Telefonen din og serveren beregner den samme koden hver for seg, fordi de deler hemmeligheten og (omtrent) den samme klokken. Derfor vises Forrige kode og Neste kode: servere godtar vanligvis ett trinn før eller etter for å tåle klokkeavvik.

HMAC-en kjører med nettleserens Web Crypto API og SHA-1, SHA-256 eller SHA-512. SHA-1 med 6 sifre og 30 sekunder er det nesten alle tjenester bruker. SHA-256 og SHA-512 er tillatt i RFC 6238, men noen apper ignorerer dem, så endre standardverdiene bare hvis tjenesten ber om det.

otpauth://-URI-en og QR-koden

Autentiseringsapper settes opp med en URI som otpauth://totp/Example:kari@example.com?secret=…&issuer=Example&algorithm=SHA1&digits=6&period=30, som vanligvis vises som en QR-kode. Dette verktøyet leser slike URI-er (også prosentkodede etiketter som ACME%20Co) og lager nye. QR-koden tegnes lokalt fra URI-en som vises under otpauth://-URI.

En ny tilfeldig hemmelighet er på 20 byte (160 bit), lengden RFC 4226 anbefaler, hentet fra crypto.getRandomValues.

Sikkerhetstips

  • Hemmeligheten er selve den andre faktoren: alle som har den, kan lage kodene dine. Ikke lim inn hemmeligheter for viktige kontoer på delte datamaskiner, og del aldri skjermbilder av QR-koden.
  • Alt beregnes lokalt, og ingenting sendes over nettverket. Lukk fanen når du er ferdig.
  • Ta vare på reservekodene fra tjenesten: en hemmelighet du mister, kan ikke gjenopprettes.

Ofte stilte spørsmål

Hvorfor stemmer ikke koden min med den i appen min?

Sjekk først klokken på enheten din: TOTP-koder skifter hver periode, så en klokke som går mer enn ca. 30 sekunder feil, gir andre koder. Sjekk deretter at algoritme, antall sifre og periode samsvarer med det tjenesten brukte.

Er verktøyet kompatibelt med Google Authenticator og lignende apper?

Ja. Det følger RFC 6238 og otpauth-URI-formatet disse appene bruker. Skann QR-koden eller skriv inn Base32-hemmeligheten i appen, så skal begge vise den samme Gjeldende kode.

Hva er forskjellen på TOTP og HOTP?

TOTP går framover med tiden, så en kode utløper etter perioden. HOTP går framover med en teller som øker hver gang en kode brukes, så en kode er gyldig til den er brukt eller erstattet.

Kan jeg bruke verktøyet som min daglige autentiserer?

Det er ment for testing, utvikling og gjenoppretting. En app på telefonen eller en maskinvarenøkkel er tryggere til daglig bruk, fordi hemmeligheten ikke må limes inn på en nettside hver gang.

Er beregningene kontrollert mot standardene?

Ja. Verktøyet er testet mot HOTP-verdiene i vedlegg D i RFC 4226 og TOTP-verdiene i vedlegg B i RFC 6238 for SHA-1, SHA-256 og SHA-512.