Jednorázové heslo
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 
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í

Časová synchronizace 
Č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 TOTP.

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

Matematické algoritmy 
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 navržena 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íč. 

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

Textové zprávy (SMS) 
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 sekund. 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 
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 
EMV () 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 
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.

Papírové metody 
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(). 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 ().

Srovnání technologií

Srovnání implementací OTP 
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í.

OTP oproti jiným metodám zabezpečení dat 
Jednorázová hesla jsou zranitelná vůči útokům, které využívají sociální inženýrství, díky čemuž podvodník získá OTP které uživatelé využívali. Na konci roku 2005 byli zákazníci švédské banky podvedeni a vydali svá jednorázová hesla.

V roce 2006 byl tento typ útoku používán na zákazníky banky v USA.

Dokonce i časově synchronizované OTP jsou náchylné k phisingu a to dvěma způsoby: heslo může být rychle použito útočníkem stejně jako oprávněným uživatelem, v případě, že útočník je schopný získat OTP v otevřeném textu dostatečně rychle. Jiný typ útoku (který může být zněmožněn využitím OTP systémů, ve kterých se používá hash řetězec) kteří podvodníci využívají, je využít starých, již neplatných OTP hesel a pomocí reverzního inženýřství, tedy předpovědí, které OTP kódy budou použity v budoucnosti. Například, generátory OTP hesel , které jsou pseudo-náhodné spíše než opravdově náhodné mohou nebo nemusí být ohroženy, protože pseudo-náhodné generátory se dají předpovídat jedině pokud máme některé staré OTP hesel.
Systém OTP lze použít pouze v případě, že hesla jsou generována skutečně náhodně a přenášena ověřovatelem (nejčastěji mimo skutečný provoz) k uživateli, jinak musí být OTP nezávisle generováno na každé straně, což vyžaduje opakovatelné a tedy pouze pseudo-náhodné algoritmy.

I když OTP jsou v některých ohledech bezpečnější než stálá naučená hesla, uživatelé těchto systémů jsou stále zranitelní vůči man-in-the-middle útokům. OTP by proto neměly být zpřístupněny třetím stranám a za použití OTP jako jedné z více vrstvené bezpečnosti je bezpečnější než použití samotného OTP. Jedním ze způsobů, jak realizovat vrstvené zabezpečení je použití OTP v kombinaci s heslem, které si pamatuje uživatel (a nikdy nebylo uživateli předáno, jak tomu často je). Výhodou použití vrstveného zabezpečení je, že jednoduché přihlášení v kombinaci s jedním hlavním heslem nebo některým správcem hesel se stává bezpečnější než použití pouze 1 vrstvy zabezpečení při přihlašování. Nicméně, nevýhodou použití více forem zabezpečení najednou během jednoho přihlášení je, že uživatel musí projít více bezpečnostních opatření při každém přihlášení, i když jeden je s přihlášením jen pro krátké použití počítače na přístup k informacím nebo do aplikací, které nevyžadují tolik bezpečnostních opatření jako některé přísně tajné položky, které počítač používá. Viz také související technologie, níže.

Související technologie 
Čím dál častěji jsou jednorázová hesla ztělesněním dvoufaktorové autentizace (2FA) nebo (T-FA) (dvoufázové ověření). T-FA je forma vrstvené bezpečnosti, kde je nepravděpodobné, že obě vrstvy mohou být narušeny použitím pouze jednoho typu útoku. Některé jednoduché přihlášení využívají jednorázových hesel. Technologie jednorázového hesla je často používána s bezpečnostním zařízením .

Reference 

Počítačová bezpečnost
Řízení přístupu