Ett engångslösenord ( engelsk engångslösenord, OTP ) är ett lösenord som endast gäller för en autentiseringssession . Giltigheten för ett engångslösenord kan också begränsas till en viss tidsperiod.
Fördelen med ett engångslösenord framför ett statiskt är att lösenordet inte kan återanvändas. Således kan en angripare som har fångat upp data från en lyckad autentiseringssession inte använda det kopierade lösenordet för att få tillgång till det skyddade informationssystemet. Användningen av engångslösenord skyddar inte i sig mot attacker baserade på aktiv interferens med kommunikationskanalen som används för autentisering (till exempel mot man-in-the-middle- attacker ).
En person kan inte komma ihåg engångslösenord. Därför krävs ytterligare teknik för att de ska fungera korrekt.
OTP-genereringsalgoritmer använder vanligtvis slumptal. Detta är nödvändigt eftersom det annars skulle vara lätt att förutsäga efterföljande lösenord baserat på kunskap om tidigare. Specifika OTP-algoritmer varierar mycket i detalj. Nedan listas olika metoder för att skapa engångslösenord.
Det finns också olika sätt att berätta för användaren nästa lösenord. Vissa system använder speciella elektroniska tokens som användaren bär med sig, som skapar engångslösenord och sedan visar dem på en liten skärm. Andra system består av program som användaren kör från en mobiltelefon. Ytterligare andra system genererar engångslösenord på servern och skickar dem sedan till användaren med hjälp av främmande kanaler, såsom SMS - meddelanden. Slutligen har vissa system engångslösenord utskrivna på ett papper eller på en skraplott , som användaren måste ha med sig.
Ett tillvägagångssätt, utvecklat av Leslie Lamport , använder en enkelriktad funktion (låt oss kalla det f ). Engångslösenordssystemet startar från en seed s och genererar sedan lösenord
f ( s ), f ( f ( s )), f ( f ( f ( s ))), …så många gånger som behövs. Om en oändlig serie av lösenord söks kan ett nytt frö väljas efter att serien för s är slut. Varje lösenord distribueras i omvänd ordning, börjar med f ( f (... f ( s ))...), slutar med f ( s ).
Om en angripare lyckas få ett engångslösenord kan han bara få åtkomst under en tidsperiod eller en anslutning, men detta blir värdelöst när denna period slutar. För att få nästa lösenord i kedjan från de föregående måste du hitta ett sätt att beräkna den inversa funktionen f −1 . Eftersom f valts att vara ensidigt kan detta inte göras. Om f är en kryptografisk hashfunktion som är vanligt förekommande, så skulle detta, så vitt man vet, vara en beräkningsmässigt omöjlig uppgift.
Tidssynkroniserade engångslösenord associeras vanligtvis med fysiska hårdvarutokens ( till exempel får varje användare en personlig token som genererar ett engångslösenord). En korrekt klocka är inbäddad i token, som är synkroniserad med klockan på servern. I dessa OTP-system är tid en viktig del av lösenordsgenereringsalgoritmen, eftersom genereringen av ett nytt lösenord baseras på den aktuella tiden och inte på det tidigare lösenordet eller den hemliga nyckeln.
Nyligen har det blivit möjligt att bädda in elektroniska komponenter förknippade med permanenta klocka, såsom de från ActivIdentity , InCard , RSA , SafeNet , Vasco , VeriSign och Protectimus , i en kreditkortsformfaktor . Men eftersom tjockleken på kortet (från 0,79 mm till 0,84 mm) inte tillåter användning av traditionella battericeller, är det nödvändigt att använda speciella polymerbaserade batterier, som har mycket längre livslängd än vanliga minibatterier. Dessutom bör extremt låg effekt halvledarkomponenter användas för att spara ström under standby och/eller användning av produkten. Två företag leder vägen inom tunna OTP-enheter: Identita och NagraID .
Mobiltelefoner och handdatorer kan också användas för att generera tidssynkroniserade engångslösenord. Detta tillvägagångssätt kan vara ett mer ekonomiskt alternativ, eftersom de flesta internetanvändare redan har mobiltelefoner. Det kan också vara bekvämare eftersom användaren inte behöver bära en separat token för varje säker anslutning när han eller hon behöver åtkomst.
Användningen av engångslösenord med utmaning kräver att användaren tillhandahåller tidssynkroniserade uppmaningar för att autentisering ska kunna ske. Detta kan göras genom att injicera ett värde i själva token. För att undvika dubbletter brukar en extra räknare inkluderas, så att om två identiska förfrågningar råkar komma in så kommer det ändå att resultera i olika engångslösenord. Men beräkningar inkluderar vanligtvis inte det tidigare engångslösenordet, eftersom detta kommer att göra att uppgifter synkroniseras. EMV:er börjar använda sådana system (det så kallade "Chip Authentication Program") för kreditkort i Europa.
En vanlig teknik som används för att leverera engångslösenord är SMS . Eftersom SMS är en allestädes närvarande kommunikationskanal som finns i alla telefoner och används av ett stort antal kunder, har SMS-meddelanden störst potential för alla konsumenter med låg kostnad.
Tokens, smarta kort och andra traditionella autentiseringsmetoder är mycket dyrare att implementera och använda och möter ofta motstånd från konsumenter. De är också mycket mer sårbara för man-in-the-middle- attacker , där nätfiskare stjäl engångslösenord genom knep eller till och med för att engångslösenord visas på tokens skärm. Dessutom kan tokens gå förlorade, och integrationen av engångslösenord i mobiltelefoner kan bli säkrare och enklare eftersom användarna inte behöver ha med sig ytterligare bärbara enheter.
Samtidigt kan engångslösenord via SMS vara mindre säkra eftersom mobiloperatörer blir en del av förtroendekedjan. Vid en tillåten roamingfunktion måste mer än en mobiloperatör vara betrodd (i vissa fall alla organisationer som har tillgång till SS7 -signalsystemet ).
Enligt NIST 2016 rekommendationer ska SMS inte användas i nya autentiseringssystem på grund av risken att de avlyssnas och omdirigeras [1] [2] .
Jämfört med en hårdvaruimplementering av en token som kräver att användaren bär en token-enhet, minskar en token på en mobiltelefon avsevärt kostnaderna och erbjuder en oöverträffad nivå av bekvämlighet. Denna lösning minskar också logistiska krav eftersom det inte finns något behov av att utfärda en separat enhet till varje användare. Mobila tokens som FiveBarGate, FireID eller PROTECTIMUS SMART stöder dessutom ett antal tokens under en enda applikationsinstallation, vilket gör att användaren kan autentisera till flera resurser från en enda enhet. Detta alternativ tillhandahåller också specifika applikationer för användarens olika telefonmodeller. Tokens i mobiltelefoner är också betydligt säkrare än SMS OTP, eftersom SMS-meddelanden skickas över GSM-nätet i avlyssningsbart textformat.
Kostnadsmässigt är de billigaste lösningarna att distribuera engångslösenord på papper, en skraplott eller en engångslösenordsgenerator på en mobiltelefon. Detta beror på att dessa system eliminerar kostnaderna i samband med (åter)utgivning av elektroniska tokens och kostnaden för SMS-meddelanden.
För system som förlitar sig på elektroniska tokens måste system som inte är tidssynkroniserade lösa problemet när servern och token hamnar ur synk. Detta leder till ytterligare utvecklingskostnader. Å andra sidan låter de dig undvika att spendera timmar i elektroniska tokens (och korrigera deras värden med hänsyn till tidsdrift).
Engångslösenord är också sårbara för "fiske" ( nätfiske ). I slutet av 2005 lurades Sveriges Banks användare att använda sina engångslösenord [3] . Även tidssynkroniserade lösenord är sårbara för nätfiske om en angripare kan använda lösenordet tillräckligt snabbt. Detta märktes 2006 i en attack mot Citibank- användare i USA [4] .
Även om engångslösenord är säkrare än vanliga lösenord, är användningen av OTP-system fortfarande sårbart för attacker mellan man-i-mitten . Därför bör engångslösenord inte delas med en tredje part. Huruvida engångslösenordet synkroniseras i tid påverkar i princip inte graden av sårbarhet. Utmaningsbaserade engångslösenord är också sårbara, även om en framgångsrik attack kräver något mer åtgärd från angriparen än andra OTP-typer.
Många OTP-tekniker har patenterats. Detta gör standardiseringen inom detta område ännu svårare eftersom varje företag försöker driva sin egen teknik. Det finns dock standarder, såsom RFC 1760 ( S/Key ), RFC 2289 (OTP), RFC 4226 ( HOTP ) och RFC 6238 ( TOTP ).
I vissa länder används engångslösenord för fjärranvändning av banker. I vissa av dessa system skickar banken en numrerad lista med engångslösenord utskrivna på papper till användaren. För varje fjärrtransaktion måste användaren ange lämpligt engångslösenord från denna lista. I Tyskland hänvisas dessa lösenord vanligtvis till som en TAN-kod (från " transaktionsautentiseringsnummer "). Vissa banker skickar TAN-koder till användaren via SMS, i så fall kallas de för mTAN-koder (för "mobila TAN").
Oftast är engångslösenord symbolen för tvåfaktorsautentisering . Vissa system för enkel inloggning [5] använder engångslösenord. OTP-teknik används också i säkerhetstokens .
Engångslösenordslösningsleverantörer: