Algoritmus jednorázového hesla založený na HMAC - HMAC-based One-time Password algorithm

Algoritmus jednorázového hesla založený na HMAC (HOTP) je jednorázové heslo (OTP) algoritmus založený na ověřovací kódy zpráv založené na hash (HMAC). Je to základní kámen Iniciativa pro otevřené ověřování (PŘÍSAHA).

HOTP byl zveřejněn jako informační IETF RFC 4226 v prosinci 2005 dokumentování algoritmu spolu s implementací Java. Od té doby byl tento algoritmus přijat mnoha společnostmi po celém světě (viz níže). Algoritmus HOTP je volně dostupný otevřený standard.

Algoritmus

Algoritmus HOTP poskytuje metodu autentizace pomocí symetrického generování hesel čitelných člověkem, nebo hodnoty, každý použit pouze pro jeden pokus o ověření. Jednorázová vlastnost vede přímo z jednorázového použití každé hodnoty čítače.

Strany, které mají v úmyslu použít HOTP, musí některé zavést parametry; obvykle jsou určeny autentizátorem a buď přijaty nebo ne autentizovaným:

  • A kryptografický hash metoda, H (výchozí je SHA-1 )
  • A tajný klíč, K., což je libovolný bajtový řetězec, a musí zůstat soukromý
  • A čelit, C, který počítá počet iterací
  • HOTPdélka hodnoty, d (6–10, výchozí hodnota je 6 a doporučuje se 6–8)

Obě strany vypočítají HOTPhodnota odvozená z tajného klíče K. a pult C. Poté autentizátor zkontroluje svou lokálně generovanou hodnotu proti hodnotě poskytnuté ověřeným.

Ověřovatel a ověřený zvýší počítadlo, C, nezávisle na sobě, kde druhá se může zvýšit před první, je tedy moudrý protokol o synchronizaci. RFC 4226 ve skutečnosti nic takového nevyžaduje, ale dává doporučení. Toto prostě má ověřovatel opakovaně zkusit ověření před svým pultem přes okno velikosti, s. Čítač ověřovatele pokračuje dopředu od hodnoty, při které je ověření úspěšné, a nevyžaduje žádné akce ověřovaného.

Je doporučeno trvalé potlačování HOTPprobíhá ověřování hodnoty, aby se řešila jejich relativně malá velikost, a tedy zranitelnost vůči útokům hrubou silou. Navrhuje se, aby ověření bylo uzamčeno po malém počtu neúspěšných pokusů, nebo aby každý neúspěšný pokus přitahoval další (lineárně rostoucí) zpoždění.

Šestimístné kódy jsou běžně poskytovány proprietárními hardwarovými tokeny od řady prodejců informujících o výchozí hodnotě d. Zkrácení extrahuje 31 bitů nebo ≈ 9,3 desetinných míst, což znamená maximálně d může být 10, přičemž 10. číslice poskytuje méně zvláštních variací, přičemž má hodnoty 0, 1 a 2 (tj. 0,3 číslic).

Obousměrné ověřování

Po ověření se autentizátor může autentizovat jednoduše vygenerováním dalšího HOTPhodnotu, vrátí ji a poté může ověřený vygenerovat vlastní HOTPhodnotu k ověření. Mějte na paměti, že v tomto bodě procesu je zaručeno, že budou synchronizovány čítače.

HOTPhodnota

The HOTPhodnota je člověkem čitelný designový výstup, a d-místné desetinné číslo (bez vynechání úvodních 0 s):

HOTPhodnota = HOTP(K., C) mod 10d

To znamená, že hodnota je d nejméně významný základ - 10 číslic HOTP.

HOTP je zkrácení ověřovací kód založený na hash (HMAC) pultu, C (pod klíčem, K.a hashovací funkce, H).

HOTP(K., C) = zkrátit (HMACH(K., C))

Zkrácení nejprve vezme 4 nejméně významné bity z MAC a používá je jako posunutí bajtu, i.

zkrátit (MAC) = výpis31 (MAC, MAC[(19 × 8) + 4:(19 × 8) + 7] × 8)

Ten index i se používá k výběru 31 bitů z MAC, počínaje bitem i * 8 + 1.

extrakt31 (MAC, i) = MAC[i × 8 + 1:i × 8 + (4 × 8) − 1]

Všimněte si, že 31 bitů je o jeden bit méně než čtyřbajtové slovo. Hodnotu lze tedy umístit do takového slova bez použití bitu znaménka (nejvýznamnějšího bitu). To je děláno, aby se rozhodně zabránilo dělat modulární aritmetiku na záporných číslech, protože to má mnoho různých definic a implementací.[1]

Příklad implementace Pythonu:

importovat hmacdef hotp (klíč, čítač, číslice = 6): c = counter.to_bytes (8, byteorder = 'velký', podepsaný = False) mac = hmac.new (klíč, c, 'sha1'). digest () i = mac [-1]% 16 zkrácen = int.from_bytes (mac [i: i + 4], byteorder = 'velký', podepsán = nepravda)% 2 ** 31 návrat zkrácen% 10 ** číslic

Žetony

Hardwarové i softwarové tokeny jsou k dispozici od různých dodavatelů, pro některé z nich viz odkazy níže. Hardwarové tokeny implementující OATH HOTP bývají na základě proprietárních algoritmů výrazně levnější než jejich konkurenti.[2] Od roku 2010 lze hardwarové tokeny OATH HOTP zakoupit za marginální cenu.[3] Některé produkty lze použít pro silná hesla i OATH HOTP.[4]

Softwarové tokeny jsou k dispozici pro (téměř) všechny hlavní mobilní /chytrý telefon platformy (J2ME,[5] Android,[6][7] iPhone,[8] Ostružina,[9] Maemo,[10] Operační Systém Mac,[11] a Windows Mobile[9]).

Recepce

Přestože příjem z některého počítačového tisku byl v letech 2004 a 2005 negativní,[12][13][14] poté, co IETF přijala HOTP jako RFC 4226 v prosinci 2005 začali různí prodejci vyrábět tokeny kompatibilní s HOTP nebo celá ověřovací řešení.

Podle příspěvku o silném ověřování (s názvem „Road Map: Replacing Passwords with OTP Authentication“), který publikoval Burton Group (divize Gartner, Inc. ) v roce 2010, "Gartner Očekává se, že hardware OTP Form factor bude i nadále těšit mírnému růstu chytrý telefon OTP budou postupně růst a stanou se výchozí hardwarovou platformou. “[2]

Viz také

Reference

  1. ^ Frank, Hoornaert; David, Naccache; Mihir, Bellare; Ach, Ranene. „HOTP: Algoritmus jednorázového hesla založený na HMAC“. tools.ietf.org.
  2. ^ A b Diodati, Mark (2010). „Road Map: Nahrazování hesel ověřováním OTP“. Burton Group. Gartner Očekává se, že hardware OTP Form factor bude i nadále těšit mírnému růstu chytrý telefon OTP budou postupně růst a stanou se výchozí hardwarovou platformou. ... Pokud organizace nepotřebuje rozsáhlou podporu platformy, pak je technologie založená na OATH pravděpodobně nákladově efektivnější volbou.
  3. ^ „Tokeny ověřování zabezpečení - pověření“. Svěřit. 2011. Cena Tokenu Entrust IdentityGuard Mini Token za 5 $ ukazuje, že lze zajistit bezpečné a spolehlivé hardwarové ověřování za atraktivní cenu. ... podpora algoritmu OATH a DES / 3DES
  4. ^ „Heslo sCrib Tokeny - Chytrý betlém“. Inteligentní postýlka. 2013. Archivovány od originál dne 20. 3. 2013. Můžete získat token typující 4 aktualizovatelná hesla a 8místné kódy OATH HOTP za cenu 35 £, bez připojených řetězců.
  5. ^ „DS3 spouští aplikaci Midath OathToken“. Řešení pro zabezpečení dat. 2006-02-24. Archivovány od originál dne 29. prosince 2013. Singapur, pátek 24. února 2006 - Společnost Data Security Systems Solutions s potěšením oznamuje spuštění aplikace OathToken Midlet, rozšíření vlajkového produktu DS3 - Authentication Server.
  6. ^ „Android Token“. diamondz ... AT googlemail.com (není úplná adresa, nelze najít lepší informace o autorovi). 2009. Android Token je projekt na vytvoření softwarových tokenů OATH pro platformu Android. Proměna mobilního telefonu v zařízení pro generování jednorázového hesla (OTP), které lze použít místo hardwarových tokenů. ... Projekt podporuje specifikace HOTP (tokeny událostí) i TOTP (časové tokeny). ... Licence kódu: GNU GPL v3
  7. ^ „StrongAuth“. 2010. Archivovány od originál dne 18. 05. 2010. Časově založený jednorázový generátor přístupových kódů založený na HOTP (RFC 4226 ).
  8. ^ Cobbs, Archie L. (2010). „OATH Token“. Archie L. Cobbs. OATH Token je bezplatný a open-source softwarový token pro dvoufaktorové ověřování na iPhone. Token OATH implementuje RFC 4226 Standard algoritmu HOTP / OATH a není vázán na žádný proprietární serverový software.
  9. ^ A b „Měkké tokeny ActivIdentity“. ActivIdentity. 2010. Archivovány od originál dne 2010-09-17. Všechny měkké tokeny ActivIdentity podporují algoritmus HOTP (Initiative For Open Authentication) OATH (založené na HMAC). ... Softwarové tokeny ActivIdentity Mobile jsou k dispozici na předních operačních systémech sluchátek, včetně BlackBerry®, Apple® iPhone®, Windows Mobile a mnoha dalších zařízeních podporujících platformu Java 2 Platform, Micro Edition (J2ME).
  10. ^ Whitbeck, Sean (2011). „OTP generátor pro N900“. Sean Whitbeck. OTP generátor pro Maemo na Nokii N900. Podporuje OATH tokeny (HOTP, TOTP) a také algoritmus Mobile-OTP.
  11. ^ „SecuriToken“. Feel Good Software. 2011. Archivovány od originál dne 2012-04-25. SecuriToken je aplikace kompatibilní s RFC pro vytváření a správu více softwarových tokenů pro platformu OS X. Proměňte svůj Mac na zařízení pro generování jednorázového hesla (OTP), které lze použít místo hardwarových tokenů.
  12. ^ Kearns, Dave (06.12.2004). „Kopat hlouběji do OATH nevypadá tak dobře“. Síťový svět. Je možné, že OATH jednoho dne něco dosáhne, ale zatím se to zdá být pronásledujícím koněm pro VeriSign a to není rozjetý vlak, na který bychom měli bezmyšlenkovitě skočit.
  13. ^ Willoughby, Mark (21.03.2005). „Žádná dohoda o ověřování přísahy“. Computerworld.
  14. ^ Kaliski, Burt (2005-05-19). „Algoritmus hbitost a OATH“. Computerworld. Přesto stále existuje dobrý důvod k otázce, zda je HOTP vhodný jako standardní algoritmus pro generování OTP, a obecněji, zda je takový standardní algoritmus vůbec nezbytný.

externí odkazy