Jednorázové heslo

Z Wikipedie, otevřené encyklopedie
Skočit na: Navigace, Hledání

Jednorázové heslo (anglicky One-time password, zkratka OTP) je heslo, které je platné pouze pro jedno přihlášení nebo pro nějakou transakci. Jednorázová hesla se snaží vyhnout problémům spojených se standardními statickými hesly, jako je například odposlechnutí hesla a znovupoužití. Pokud tedy útočník odposlechne jednorázové heslo, jeho znovupoužití již není možné. Nevýhodou jednorázových hesel je jejich téměř nemožné zapamatování. Každou chvíli se heslo mění. Proto, ve většině případů, je potřeba využít dalších nástrojů.

Generování a distribuce[editovat | editovat zdroj]

Pro vytváření hesel se využívají algoritmy s náhodností případně s pseudonáhodností. Je to nutná podmínka pro jednorázová hesla. Jinak by bylo možné pozorováním starých hesel zjistit hesla budoucí. Algoritmy pro generování se mohou velmi lišit. Různé přístupy pro generování jednorázového hesla:

  • Na základě časové synchronizace mezi serverem a klientem (jednorázová hesla mají velmi krátkou dobu platnosti)
  • Použitím matematického algoritmu, kde se nové heslo generuje na základě předchozího hesla (jednorázová hesla jsou na sobě závislá a dají se použít v předem určeném pořadí)
  • Pomocí matematického algoritmu, kde je nové heslo generováno na základě nějaké činnosti (např. náhodné číslo zvolené autorizačním serverem, nebo detaily dané transakce, nebo nějakého čítače)

Jsou různé nástroje jak uživatele informovat jaká další jednorázová hesla použít. Některé systémy používají speciální elektronické tokeny, které má uživatel u sebe, které generují jednorázová hesla, ty se pak zobrazují na malém displeji. Jiné systémy používají software, který má spuštěný na mobilním telefonu. Další systémy mohou generovat hesla na straně serveru a posílat je uživateli na jiném nezávislém kanálu, např. SMS zprávou. Některé systémy mohou využívat vytisknutá jednorázová hesla, které je uživatel povinen mít u sebe.

Metody generování[editovat | editovat zdroj]

Časová synchronizace[editovat | editovat zdroj]

Časově synchronizovaná hesla bývají často spojena s nějakým fyzickým zařízením. (např. každý uživatel dostane osobní zařízení, které generuje jednorázová hesla). Uvnitř zařízení je přesně definovaný čas, který byl synchronizován s lokálním ověřovacím serverem. V těchto systémech je čas velmi důležitý, jelikož generování nových hesel se odvíjí od aktuálního času. Předchozí jednorázové heslo anebo tajný klíč zde nehraje velikou roli. Takové zařízení může být v podobě klíčenky, mobilního zařízení, nebo jiné elektroniky, kde by mohl být nahrán takovýto software. Příkladem normy pro generování jednorázových hesel založené na časové synchronizaci může být například TOPT.

Všechny metody doručování jednorázových hesel používají převážně časovou synchronizaci místo algoritmu.

Matematické algoritmy[editovat | editovat zdroj]

Každé nové jednorázové heslo může být vytvořeno z předchozích, již použitých jednorázových hesel. Příklad tohoto typu algoritmu, připisováno Leslie Lamport, používá jednosměrné funkce (nazývané f). Systém pro generování jednorázových hesel začne s počáteční hodnotou s, poté pokračuje v generování hesel

f(s), f(f(s)), f(f(f(s))), ...

tolikrát kolikrát je to nutné. Každé heslo je použito v opačném směru než bylo generováno. Od f(f(...f(s))...) až po f(s). Když budou hesla vyčerpána, může být vygenerována nová posloupnost hesel s jiným zadaným s. S/KEY OTP systém a jeho derivované OTP jsou založeny na Lamportově schématu.

Útočník, který by nějakým způsobem získal jednorázové heslo, může mít jednorázový přístup k přihlášení. Heslo použije pouze jednou, k jedné činnosti. K získání následujícího hesla z předchozího, by musel najít způsob výpočtu inverzní funkce f-1. Vzhledem k faktu, že funkce f je navrhnuta jako jednosměrná, je nalezení inverzní funkce velmi obtížné. Pokud je f kryptografická hašovací funkce, pak obecně platí, že se jedná o výpočetně neproveditelný úkol.

V některých schématech matematického algoritmu může uživatel poskytnout serveru jednorázové heslo jakožto statický šifrovaný klíč. [1]

Použití challenge-response (výzva-odpověď) u jednorázových hesel vyžaduje, aby uživatel zadal odpověď na výzvu. Například, může být provedeno vložením hodnoty, kterou token vygeneroval do tokenu samotného. Aby se předešlo duplikátům, je zde obvykle přidán další čítač, pokud dojde ke stejné výzvě dvakrát, výsledkem bude stále jiné jednorázové heslo.

Metody doručení jednorázového hesla, které jsou založeny na tokenu využívají tyto typy algoritmů místo časové synchronizace.

Možnosti doručení jednorázového hesla[editovat | editovat zdroj]

Textové zprávy (SMS)[editovat | editovat zdroj]

Nejběžnější technologií používanou pro doručování OTP jsou textové zprávy. Jelikož textové zprávy jsou nejrozšířenějším komunikačním kanálem, který je k dispozici v téměř ve všech mobilních zařízeních, přes převod textu na řeč až po mobilní a pevné telefonní linky, tak má textová zpráva největší potenciál dostat se k největšímu počtu zákazníkům za nejnižší náklady na zprovoznění. Nicméně cena textových zpráv pro každé OTP, by nemusela být pro všechny uživatele přijatelná. OTP skrze textové zprávy může být šifrována použitím A5/x standardu, kterou několik hackerských skupin označilo jako lehce rozšifrovatelnou během několika minut nebo vteřin.[2][3][4][5] nebo OTP skrze SMS nemusí být šifrována vůbec v závislosti na poskytovateli služby. Kromě útočníků může ohrozit bezpečnost i poskytovatel mobilních služeb. V případě roamingu, kdy do komunikace vstupuje více nežli jeden poskytovatel mobilní služby, musí počítat s odposlechem komunikace třetí osobou. (problematika Man in the middle)

Nedávno Google začal poskytovat OTP skrze mobil nebo pevné linky pro všechny Google účty. Uživatel může obdržet OTP buď jako textovou zprávu nebo jako automatický telefonát s využitím převodu textu na řeč. V případě, že žádný uživatelem zaregistrovaný telefon není dostupný, může uživatel použít jedno z automaticky generovaných záložních kódů (kterých je až 10) jako druhotnou autorizaci místo dynamicky generovaného OTP, po příhlášení se s jejich heslem.

Mobilní telefony[editovat | editovat zdroj]

Náklady na mobilní telefony jsou nízké, kvůli široké základně uživatelů, kteří mobilní telefon již vlastní nejen ke generování OTP. Potřebný výpočetní výkon a úložiště pro OTP je většinou zanedbatelný ve srovnání s dnešní výbavou mobilních telefonů. Mobilní telefony navíc podporují jakékoliv množství tokenů v rámci jedné instalace aplikace, což uživateli umožňuje se ověřit vůči více zdrojům z jednoho zařízení. Toto řešení také poskytuje specifické aplikace pro mobilní zařízení. Nicméně, mobil použit jako token může být ztracen, zničen nebo ukraden.

Osobní tokeny[editovat | editovat zdroj]

EMV (anglicky Europay, MasterCard and Visa) začíná používat challenge-response algoritmus (zvaný “Chip Authentication Program”) pro kreditní karty v Evropě. SecureID od společnosti Security je jeden příklad časově synchronizovaného typu tokenu.

Jako všechny tokeny, i tyto se mohou ztratit, zničit nebo mohou být zcizeny, navíc je tu i problém s vybíjením baterie což je typické hlavně pro tokeny bez nabíjecího zařízení nebo s nevyměnitelnou baterií. Varianta osobního tokenu byla RSA navržena v roce 2006 a byla popsána jako “všudypřítomné ověření” kde by se RSA spojila s výrobci a přidala SecureID čipy do zařízení jako je například mobilní telefon.

Nedávno se podařilo vzít elektronické komponenty související se standardním bezpečnostním klíčem OTP a zabudovat je do kreditních karet přímo u výrobce. Nicméně, tloušťka karet z 0,79mm na 0,84mm znemožňuje standardním komponentům nebo bateriím jejich použitelnost. Speciální polymerové baterie mající kratší životnost baterie se používají spíše než ploché baterie. Polovodičové komponenty musí být ploché a musí minimalizovat energii použitou jak v režimu standby tak i během procesu.

Yubico nabízí malý USB token se zabudovaným čipem, který vytváří OTP když je klíč spuštěný a také simuluje klávesnici aby ulehčil zadávání dlouhého hesla. Jelikož je to USB zařízení, není zde potřeba řešit nepříjemnosti spojené s výměnou baterie.

Nová verze této technologie, která zabudovává klávesnice do platebních karet standardní velikosti a tloušťky je se stále vyvíjí. Karta má zabudovanou klávesnici, displej, mikroprocesor a bezkontaktní čip.

Webové metody[editovat | editovat zdroj]

Poskytovatel ověření jako služby nabízí různé webové metody pro doručování OTP bez potřeby tokenů. Jedna taková metoda využívá uživatelovu schopnost rozeznat společnou kategorii náhodně vybraných obrázků. Při prvním přihlášení na webové stránky, vybere uživatel několik tajných kategorií věcí; jako například psi, auta, lodě a květiny. Pokaždé, když se uživatel přihlásí na webové stránky, které jsou prezentovány s náhodně generovanými obrázky, textem a čísly. Uživatel vyhledá obrázky, které spadají do předem vybrané kategorie a vloží související alfanumerické znaky, ze kterých se skládá OTP.[6][7]

Papírové metody[editovat | editovat zdroj]

V on-line bankovnictví některých zemí banka pošle uživateli číslovaný seznam OTP vytištěný na papíře. Některé banky posílají plastovou kartu se stírací vrstvou a uživatel po setření vrstvy získává jednorázové heslo. Pro každý on-line obchod je nutné, aby uživatel zadal konkrétní OTP ze seznamu. Některé systémy žádají číslované OTP postupně, jiné pseudonáhodně vybírají OTP, které mají být zadány. V Německu a mnoha dalších zemích jako je Rakousko a Brazílie, jsou OTP seznamy typicky označovány jako TANs(anglicky transaction authentication numbers). Některé banky dokonce vysílají tyto TANs na mobilní telefon uživatele prostřednictvím SMS. V takovém případě je služba nazývána mTANs (anglicky mobile TANs).

Srovnání technologií[editovat | editovat zdroj]

Srovnání implementací OTP[editovat | editovat zdroj]

Nejlevnější OTP řešení jsou ty, které poskytují OTP v papírové formě a ty, které generují OTP na stávajících zařízeních, bez nákladů spojených se (znovu)vydáváním proprietárních elektronických bezpečnostních tokenů a SMS zpráv. U systémů, které se spoléhají na elektronický token, se musí algoritmus založený na OTP generátorech vyrovnat se situací, kdy se token pohybuje mimo synchronizaci s jeho serverem, pokud systém vyžaduje OTP které může vypršet. To vede k dodatečným nákladům na vývoj.

Časově synchronizované systémy, na druhé straně, zabraňují nutnosti udržovat hodiny v elektronickém tokenu (a offset hodnotu s ohledem na hodinový pohyb). Zda jsou nebo nejsou časově synchronizovány, je v zásadě irelevantní pro stupeň zranitelnosti, ale vyhýbá se potřebě znovu zadávání hesla, pokud server čeká na poslední nebo následující kód, který by měl token mít, protože server a token se posunuly mimo synchronizaci.

Použití stávajícího mobilního zařízení odpadá nutnost získávat a mít další OTP generátor. Baterie mohou být nabíjeny avšak od roku 2011 většina malých karetních zařízení nemají dobíjecí, nebo dokonce vyměnitelné, baterie. Většina proprietárních tokenů má funkce na ochranu proti zfalšování.

Reference[editovat | editovat zdroj]

V tomto článku byl použit překlad textu z článku One-time_password na anglické Wikipedii.

  1. EOTP – Static Key Transfer. Defuse.ca (2012-07-13). Retrieved on 2012-12-21.
  2. Barkan, Elad; Eli Biham; Nathan Keller(2003)."Instant Ciphertext-Only Cryptanalysis of GSM Encrypted Communication". Cryptome 2003: 600–16. 
  3. BARKAN, Elad, Eli Biham; Nathan Keller Instant Ciphertext-Only Cryptanalysis of GSM Encrypted Communication by Barkan and Biham of Technion (Full Version) [online]. . Dostupné online. (anglicky) 
  4. Gueneysu, Tim; Timo Kasper; Martin Novotný; Christof Paar; Andy Rupp(2008)."Cryptanalysis with COPACOBANA". Transactions on Computers Nov. 200857: 1498–1513. 
  5. Nohl, Karsten; Chris Paget (2009-12-27). "GSM: SRSLY?" in 26th Chaos Communication Congress (26C3):.. Retrieved on 2009-12-30. 
  6. Ericka Chickowski. Images Could Change the Authentication Picture [online]. Dark Reading, 2010-11-03. Dostupné online. (anglicky) 
  7. Confident Technologies Delivers Image-Based, Multifactor Authentication to Strengthen Passwords on Public-Facing Websites [online]. 2010-10-28. Dostupné online. (anglicky)