Översikt
Tvåfaktorsautentisering (även kallad 2FA) är en mekanism som kombinerar två olika autentiseringsmetoder för att autentisera användare. I mars 2011 tillkännagav Google användningen av tvåfaktorsautentisering online, följt av MSN och Yahoo.
Utöver att verifiera användarnamn och lösenord kräver tvåfaktorsautentisering även en kombination av en annan fysisk enhet, såsom en RSA-token eller en mobiltelefon. Tvåfaktorscertifierade produkter kan grovt delas in i två kategorier:
Hårdvaruenheter som kan generera tokens Smartphone-app
OTP
Lösenordet som används vid tvåstegsverifiering är ett engångslösenord (OTP), även känt som ett dynamiskt lösenord. Det är en stark autentiseringsteknologi som använder kryptografi för att dela nycklar mellan klienter och servrar, och är ett mycket bekvämt tekniskt sätt att förbättra den nuvarande statiska lösenordsautentiseringen, samt är en viktig tvåstegsverifieringsautentiseringsteknologi.
OTP står för One-Time Password, vilket betyder engångslösenord. Den delas in i följande två typer:
HOTP (HMAC-baserad engångslösenordsalgoritm)
HOTP är ett engångslösenord som genereras baserat på HMAC-algoritmen, även känd som dynamiskt lösenord för händelsesynkronisering, vilket är en algoritmspecifikation publicerad av ITEF, och pseudokoden är följande:
Klienten och servern förhandlar i förväg om en nyckel K för generering av ett engångslösenord. Klienten och servern har varsin händelseräknare C och synkroniserar räkningsvärdena i förväg. Truncate är en algoritm som omvandlar en 20-bytes sträng genererad av HMAC-SHA-1 till flera decimalsiffror.
TOTP (Tidsbaserad engångslösenordsalgoritm)
TOTP är en förbättrad version av HOTP som använder tid för att ersätta HOTP:s händelseräknare C, även känd som den dynamiska chiffern för tidssynkronisering. Pseudokod:
T0 är den initiala testtiden, som som standard är 0 X är tidssteget, som som standard är 30 sekunder Den officiella dokumentationen ger en klassiker, under antagandet att den aktuella unixtiden = 59, T0 = 0, X = 30, sedan T=1 Under antagandet av nuvarande unix-tid=60, T0=0, X=30, då T=2 Det vill säga, värdet av T avrundas nedåt och decimalen kastas bort
Från figuren ovan kan vi se att det finns två huvudelement i inmatningsalgoritmen, det ena är den delade nyckeln (även kallad fröet), och det andra är räknefaktorn (eller tidsfaktorn), som beräknas av en specifik algoritm. Om båda elementen är konsekventa kommer server- och klientsidan att beräkna samma resultat, vilket möjliggör autentiseringsfunktionalitet.
|