Gå til indhold
atlas

Engangskode (OTP)

Også kendt som: OTP, sms-kode, engangskodeord

En kort kode, der virker til ét enkelt login og derefter udløber, sendt som sms eller vist i en app.

Kladde - dette opslag er endnu ikke gennemgået.

Formelt

En kode, der gælder til én brug eller et kort tidsrum, beregnet af en app eller et token ud fra en delt hemmelighed og uret eller en tæller, eller sendt som sms - brugt som "noget man har"-faktoren i MFA.

Forklaret enkelt

Som en billet, der bliver revet over ved indgangen - den lukker én ind én gang, og en kopi er intet værd bagefter.

I praksis

En advokat i et dansk advokatfirma logger ind i sagssystemet hjemmefra; efter adgangskoden taster hun de seks cifre, som en app på telefonen viser, og som skifter hvert 30. sekund.

Hvorfor det betyder noget

En stjålet adgangskode alene er ikke længere nok, men en kode kan stadig lokkes ud af folk på en falsk side, så phishing-sikre metoder er stærkere.

Teknisk uddybning

To åbne algoritmer dominerer. HOTP (RFC 4226, 2005) beregner HMAC-SHA-1 over en 8-byte tæller med en delt hemmelighed K og anvender derefter dynamisk trunkering: de fire laveste bit i den sidste byte af den 20 byte lange HMAC udpeger et offset, fire bytes fra det offset læses som et 31-bit heltal, og resultatet modulo 10^d giver en kode på d cifre (som standard seks). TOTP (RFC 6238, 2011) erstatter tælleren med T = floor((Unix-tid − T0) / X), hvor T0 = 0 og tidsskridtet X som standard er 30 sekunder, og tillader HMAC-SHA-256 og HMAC-SHA-512 ud over SHA-1. De fleste autentifikator-apps bruger stadig SHA-1, seks cifre og 30 sekunder, hvilket er forsvarligt her, fordi HMAC's sikkerhed ikke afhænger af SHA-1's kollisionsresistens.

Verifikationen kræver tolerance. HOTP-servere bruger et look-ahead-vindue til at gensynkronisere, når brugeren har trykket på tokenet uden at logge ind; TOTP-servere accepterer typisk ét tidsskridt til hver side for at tage højde for urforskydning og netværksforsinkelse, og RFC 6238 anbefaler højst ét skridt bagud. Begge kræver begrænsning af forsøg: en sekscifret kode har kun 10^6 værdier, så uden rate limiting kan en angriber gætte inden for et gyldighedsvindue, og NIST SP 800-63B kræver, at verifikatoren begrænser antallet af fejlede forsøg i træk. En verifikator skal også afvise genbrug af en kode, der allerede er accepteret inden for vinduet, ellers kan en aflurt eller opsnappet kode afspilles igen.

Tilmelding sker som regel via en QR-kode med en otpauth://-URI (et de facto-format, der stammer fra Google Authenticator, ikke en IETF-standard), som indeholder den Base32-kodede hemmelighed, udsteder, konto og parametre. Fordi verifikatoren skal beregne samme HMAC, gemmer den hemmeligheden i genskabelig form frem for som et envejshash; et brud på seed-databasen kompromitterer alle tokens, som angrebet på RSA's SecurID-seeds i 2011 viste. Ældre ordninger omfatter S/KEY (Lamports hashkæde, RFC 1760) og proprietære hardwaretokens.

Sms-engangskoder er en anden mekanisme: serveren genererer en tilfældig kode og sender den out-of-band over telefonnettet. Den arver nettets svagheder - SIM-swap-svindel, nummerflytning, SS7-aflytning og malware, der læser sms'er på enheden - og derfor klassificerer NIST levering via PSTN som en "restricted" autentifikator. Alle OTP-varianter deler en strukturel begrænsning: koden er en ihændehaverværdi, som et menneske taster, og den er ikke bundet til sitets origin, så en adversary-in-the-middle-phishingside kan videresende den inden for gyldighedsvinduet. OTP gør derfor credential stuffing og genbrug af adgangskoder dyrere for angriberen, men er ikke phishing-resistent i NIST's forstand, i modsætning til FIDO2/WebAuthn-passkeys.

Hvad du bør lære først

Alt det, dette bygger på - grundlaget først.

  1. Digital identitet
  2. →Loginoplysning (credential)
  3. →Autentificering
  4. →Engangskode (OTP)

Relationer

Forudsætter
Autentificering
Forveksl ikke med
Passkey

Kilder og videre læsning

Standarder og officielle tekster

  • RFC 6238 - TOTP, Time-Based One-Time Password Algorithm
  • NIST SP 800-63B - Digital Identity Guidelines, Authentication and Lifecycle Management

Kursusmateriale

  • Cyber Security Fast Track - Kursuskompendium, Ordliste (MFA - SMS-kode eller app-godkendelse)

Hvor dataene kommer fra

Dette opslag er skrevet af en AI ud fra kilderne ovenfor og er endnu ikke gennemgået af et menneske. Brug det som udgangspunkt, og tjek alt vigtigt mod kilderne.

Se gennemgangskøenForeslå en rettelse på GitHubDette begreb som JSON

Nævnt i

Test dig selv

Indlæser…

Atlas er i beta.