Tento článok je zrkadlovým článkom o strojovom preklade, kliknite sem pre prechod na pôvodný článok.

Pohľad: 12357|Odpoveď: 0

Dynamické tokeny OTP, TOTP a HOTP

[Kopírovať odkaz]
Zverejnené 25. 7. 2020 16:41:17 | | | |
Prehľad

Dvojfaktorová autentifikácia (známa aj ako 2FA) je mechanizmus, ktorý kombinuje dve rôzne autentifikačné metódy na autentifikáciu používateľov. V marci 2011 Google oznámil používanie dvojfaktorovej autentifikácie online, nasledovali MSN a Yahoo.

Okrem overenia používateľského mena a hesla vyžaduje dvojfaktorová autentifikácia aj kombináciu iného fyzického zariadenia, ako je RSA token alebo mobilný telefón.
Produkty s dvojfaktorovou certifikáciou možno všeobecne rozdeliť do dvoch kategórií:

Hardvérové zariadenia, ktoré dokážu generovať tokeny
Aplikácia pre smartfón

OTP

Heslo používané pri dvojstupňovom overovaní je jednorazové heslo (OTP), známe aj ako dynamické heslo. Ide o silnú autentifikačnú technológiu, ktorá využíva kryptografickú technológiu na zdieľanie kľúčov medzi klientmi a servermi, a je veľmi pohodlným technickým prostriedkom na zlepšenie súčasnej statickej autentifikácie hesiel, pričom je dôležitou dvojstupňovou overovacou technológiou.

OTP je skratka pre jednorazové heslo, čo znamená jednorazové heslo. Je rozdelený na nasledujúce dva typy:

HOTP (algoritmus jednorazového hesla založený na HMAC)

HOTP je jednorazové heslo generované na základe algoritmu HMAC, známeho aj ako dynamické heslo pre synchronizáciu udalostí, čo je špecifikácia algoritmu publikovaná spoločnosťou ITEF, a pseudokód je nasledovný:



Klient a server si vopred dohodnú kľúč K na vytvorenie jednorazového hesla. Klient aj server majú každý čítač udalostí C a synchronizujú hodnoty počtu udalostí vopred. Trunkate je algoritmus, ktorý prevádza 20-bajtový reťazec generovaný pomocou HMAC-SHA-1 na niekoľko desatinných číslic.

TOTP (Algoritmus jednorazového hesla založený na čase)

TOTP je vylepšená verzia HOTP, ktorá využíva čas na nahradenie čítača udalostí C v HOTP, známeho aj ako dynamická šifra pre synchronizáciu času. Pseudokód:


T0 je počiatočný testovací čas, ktorý je predvolene nastavený na 0  
X je časový krok, ktorý je predvolene 30 sekúnd
Oficiálna dokumentácia uvádza jasný výsledok, predpokladajúc aktuálny unixový čas = 59, T0 = 0, X = 30, potom T=1
Za predpokladu aktuálneho unixového času=60, T0=0, X=30, potom T=2
To znamená, že hodnota T sa zaokrúhľuje nadol a desatinné číslo sa zahodí



Z vyššie uvedeného obrázka vidíme, že vstupný algoritmus má dva hlavné prvky, jeden je zdieľaný kľúč (známy aj ako semeno) a druhý je počítanie (alebo časový faktor), ktorý sa počíta špecifickým algoritmom. Ak sú oba prvky konzistentné, serverová aj klientská strana vypočítajú rovnaký výsledok, čím sa umožní autentifikačná funkcionalita.





Predchádzajúci:Séria Angular 9 (XII) generuje dynamické tokeny na základe OTP
Budúci:.NET/C# generuje jednorazové heslá na základe TOTP
Vyhlásenie:
Všetok softvér, programovacie materiály alebo články publikované spoločnosťou Code Farmer Network slúžia len na vzdelávacie a výskumné účely; Vyššie uvedený obsah nesmie byť použitý na komerčné alebo nezákonné účely, inak nesú všetky následky používateľmi. Informácie na tejto stránke pochádzajú z internetu a spory o autorské práva s touto stránkou nesúvisia. Musíte úplne vymazať vyššie uvedený obsah zo svojho počítača do 24 hodín od stiahnutia. Ak sa vám program páči, podporte originálny softvér, zakúpte si registráciu a získajte lepšie originálne služby. Ak dôjde k akémukoľvek porušeniu, kontaktujte nás prosím e-mailom.

Mail To:help@itsvse.com