Algoritm de parolă unică bazat pe timp

TOTP ( Time-based One-Time Password Algorithm , RFC 6238 [1] ) este un algoritm OATH pentru generarea de parole unice pentru autentificare securizată , care este o îmbunătățire a HOTP (HMAC-Based One-Time Password Algorithm) . Este un algoritm de autentificare unidirecțională - serverul verifică identitatea clientului . Principala diferență dintre TOTP și HOTP este generarea de parole bazată pe timp, adică timpul este un parametru [2] . În acest caz, nu se utilizează de obicei o indicație exactă a timpului, ci intervalul curent cu limite prestabilite (de obicei 30 de secunde).

Istorie

Din 2004, OATH ( The Initiative for open authentication ) lucrează la proiectul One Time Password (OTP). Primul rezultat a fost HOTP (algoritmul OTP al codului de autentificare a mesajelor bazat pe hash (HMAC)) publicat în decembrie 2005. A fost depus ca proiect la IETF (The Internet Engineering Task Force) [2] [3] .

Lucrările ulterioare ale OATH au vizat îmbunătățirea HOTP și TOTP a fost introdus în 2008 [4] . Acest algoritm nu folosește un contor pentru a sincroniza clientul și serverul, ci generează o parolă bazată pe timp care este valabilă pentru un anumit interval. Algoritmul funcționează astfel: clientul ia valoarea curentă a temporizatorului și a cheii secrete, le indexează folosind o funcție hash și le trimite la server, la rândul său, serverul efectuează aceleași calcule, după care trebuie doar să compare aceste valori [5] . Poate fi implementat nu numai pe funcția hash SHA-1 , spre deosebire de HOTP, deci și funcția hash este un parametru de intrare [2] .

Ulterior, a fost introdus un nou algoritm care extinde TOTP și mai mult. A fost introdus în septembrie 2010 și a fost numit OATH Challenge-Response Algorithms (OCRA) . Principala diferență față de algoritmii anteriori este că serverul participă și la autentificare. Deci clientul poate fi sigur și de autenticitatea sa [2] .

Cum funcționează

De fapt, TOTP este o variantă a algoritmului HOTP, în care o valoare dependentă de timp este înlocuită ca valoare de contor [1] . Denota:

Apoi [1] [6]

Unde

denote String — rezultatul HMAC-SHA-1(K,T); OffsetBits - 4 biți mici de șir ; Offset = StringToNumber(OffsetBits) și rezultatul Truncate va fi un șir de patru caractere - String[Offset] ... String[Offset + 3] [6]

De asemenea, merită remarcat faptul că, spre deosebire de HOTP, care se bazează numai pe SHA-1 , TOTP poate folosi și HMAC-SHA-256 , HMAC-SHA-512 și alte funcții hash HMAC:

etc. [1]

Fiabilitatea algoritmului

Conceptul de parole unice, cuplat cu metode criptografice moderne, poate fi folosit pentru a implementa sisteme securizate de autentificare la distanță [5] . TOTP este destul de rezistent la atacurile criptografice, dar există șanse de hacking, de exemplu, o astfel de variantă a atacului man-in-the-middle este posibilă :

Ascultând traficul clientului, un atacator poate intercepta datele de conectare trimise și parola unică (sau un hash de la aceasta). Atunci este suficient să blocheze computerul „victimei” și să trimită date de autentificare în numele său. Dacă reușește să facă acest lucru într-o perioadă de timp , atunci va putea obține acces. De aceea ar trebui să-l faci mic. Dar dacă timpul de expirare a parolei este prea scurt, atunci în cazul unei ușoare desincronizări, clientul nu va putea obține acces [5] .

Există și o vulnerabilitate asociată cu sincronizarea temporizatoarelor server și client, deoarece există riscul desincronizării informațiilor de timp pe server și în software-ul și/sau hardware-ul utilizatorului. Deoarece TOTP folosește timpul ca parametru, dacă valorile nu se potrivesc, toate încercările de autentificare ale utilizatorilor vor eșua. În acest caz, admiterea falsă a altcuiva va fi, de asemenea, imposibilă. De remarcat că probabilitatea unei astfel de situații este extrem de mică [5] .

Vezi și

Note

  1. 1 2 3 4 M'Raïhi, Machani, Pei et al., 2011 .
  2. 1 2 3 4 Nathan Willis, 2010 .
  3. Vaidya, Park, Rodrigue, 2009 .
  4. OATH trimite la IETF TOTP: Specificație de parolă unică bazată pe timp .
  5. 1 2 3 4 Davlethanov, 2006 .
  6. 1 2 M'Raïhi, Bellare, Hoornaert et al., 2005 .

Surse

Link -uri