Tento článek je zrcadlovým článkem o strojovém překladu, klikněte zde pro přechod na původní článek.

Pohled: 12357|Odpověď: 0

Dynamické tokeny OTP, TOTP a HOTP

[Kopírovat odkaz]
Zveřejněno 25.07.2020 16:41:17 | | | |
Přehled

Dvoufaktorové ověřování (také známé jako 2FA) je mechanismus, který kombinuje dvě různé metody autentizace pro ověření uživatelů. V březnu 2011 Google oznámil použití dvoufaktorového ověřování online, následované MSN a Yahoo.

Kromě ověření uživatelského jména a hesla vyžaduje dvoufaktorová autentizace také kombinaci jiného fyzického zařízení, například RSA tokenu nebo mobilního telefonu.
Produkty s dvoufaktorovou certifikací lze obecně rozdělit do dvou kategorií:

Hardwarová zařízení, která dokážou generovat tokeny
Aplikace pro chytré telefony

OTP

Heslo používané při dvoufázovém ověřování je jednorázové heslo (OTP), známé také jako dynamické heslo. Jedná se o silnou autentizační technologii, která využívá kryptografickou technologii ke sdílení klíčů mezi klienty a servery, a je velmi pohodlným technickým prostředkem ke zlepšení současné statické autentizace hesel a zároveň důležitou dvoufázovou ověřovací technologií.

OTP je zkratka pro One-Time Password (jednorázové heslo), což znamená jednorázové heslo. Dělí se na následující dva typy:

HOTP (HMAC-based Jednorázový algoritmus hesla)

HOTP je jednorázové heslo generované na základě algoritmu HMAC, známého také jako dynamické heslo pro synchronizaci událostí, což je specifikace algoritmu publikovaná ITEF, a pseudokód je následující:



Klient a server si předem vyjednají klíč K pro vytvoření jednorázového hesla. Klient i server mají každý svůj čítač událostí C a předem synchronizují hodnoty počtu. Trunkace je algoritmus, který převádí 20bajtový řetězec generovaný pomocí HMAC-SHA-1 na několik desetinných číslic.

TOTP (algoritmus jednorázového hesla založený na čase)

TOTP je vylepšená verze HOTP, která využívá čas k nahrazení čítače událostí C, známého také jako dynamická šifra pro synchronizaci času. Pseudokód:


T0 je počáteční čas testu, který je výchozí na 0  
X je časový krok, který je výchozí 30 sekund
Oficiální dokumentace uvádí jasný výsledek, pokud předpokládáme, že aktuální unixový čas = 59, T0 = 0, X = 30, pak T=1
Za předpokladu aktuálního unixového času=60, T0=0, X=30, pak T=2
To znamená, že hodnota T je zaokrouhlena dolů a desetinné číslo se vyřadí



Z výše uvedeného obrázku vidíme, že vstupní algoritmus má dva hlavní prvky, jeden je sdílený klíč (známý také jako semeno) a druhý je počítání (nebo časový faktor), který je vypočítán specifickým algoritmem. Pokud jsou oba prvky konzistentní, serverová i klientská strana vypočítají stejný výsledek, což umožní autentizační funkčnost.





Předchozí:Řada Angular 9 (XII) generuje dynamické tokeny založené na OTP
Další:.NET/C# generuje jednorázová hesla na základě TOTP
Zřeknutí se:
Veškerý software, programovací materiály nebo články publikované organizací Code Farmer Network slouží pouze k učení a výzkumu; Výše uvedený obsah nesmí být používán pro komerční ani nelegální účely, jinak nesou všechny důsledky uživatelé. Informace na tomto webu pocházejí z internetu a spory o autorská práva s tímto webem nesouvisí. Musíte výše uvedený obsah ze svého počítače zcela smazat do 24 hodin od stažení. Pokud se vám program líbí, podporujte prosím originální software, kupte si registraci a získejte lepší skutečné služby. Pokud dojde k jakémukoli porušení, kontaktujte nás prosím e-mailem.

Mail To:help@itsvse.com