Jednorázové heslo ( anglicky one time password, OTP ) je heslo platné pouze pro jednu autentizační relaci . Platnost jednorázového hesla lze také omezit na určitou dobu.
Výhodou jednorázového hesla oproti statickému je, že heslo nelze znovu použít. Útočník, který zachytil data z úspěšné autentizační relace, tedy nemůže použít zkopírované heslo k získání přístupu do chráněného informačního systému. Použití jednorázových hesel samo o sobě nechrání před útoky založenými na aktivním zásahu do komunikačního kanálu používaného k autentizaci (např. proti útokům typu man-in-the-middle ).
Člověk není schopen si zapamatovat jednorázová hesla. Pro jejich správné fungování jsou proto nutné další technologie.
Algoritmy generování OTP obvykle používají náhodná čísla. To je nutné, protože jinak by bylo snadné předvídat následující hesla na základě znalosti předchozích. Specifické OTP algoritmy se v detailech velmi liší. Níže jsou uvedeny různé přístupy k vytváření jednorázových hesel.
Existují také různé způsoby, jak uživateli sdělit další heslo. Některé systémy využívají speciální elektronické tokeny , které si uživatel nosí s sebou, které vytvářejí jednorázová hesla a následně je zobrazují na malé obrazovce. Jiné systémy se skládají z programů, které uživatel spouští z mobilního telefonu. Ještě další systémy generují jednorázová hesla na serveru a poté je odesílají uživateli pomocí cizích kanálů, jako jsou SMS zprávy. A konečně, některé systémy mají jednorázová hesla vytištěná na kousku papíru nebo na stíracím losu , který uživatel musí nosit s sebou.
Jeden přístup, který vyvinul Leslie Lamport , používá jednosměrnou funkci (říkejme jí f ). Systém jednorázových hesel začíná od počátku s a poté generuje hesla
f ( s ), f ( f ( s )), f ( f ( f ( s ))), …tolikrát, kolikrát je potřeba. Pokud se hledá nekonečná řada hesel, lze po vyčerpání řady pro s vybrat nové semeno. Každé heslo je distribuováno v opačném pořadí, počínaje f ( f (… f ( s ))… a konče f ( s ).
Pokud se útočníkovi podaří získat jednorázové heslo, může získat přístup pouze na jedno časové období nebo jedno připojení, ale po skončení tohoto období je to zbytečné. Chcete-li získat další heslo v řetězci z předchozích, musíte najít způsob, jak vypočítat inverzní funkci f −1 . Protože f bylo zvoleno jako jednostranné, nelze to provést. Pokud je f kryptografická hašovací funkce , která se běžně používá, pak pokud je známo, byl by to výpočetně neproveditelný úkol.
Časově synchronizovaná jednorázová hesla jsou obvykle spojena s fyzickými hardwarovými tokeny (každému uživateli je například přidělen osobní token, který generuje jednorázové heslo). Uvnitř tokenu jsou zabudovány přesné hodiny, které jsou synchronizovány s hodinami na serveru. V těchto systémech OTP je čas důležitou součástí algoritmu generování hesla, protože generování nového hesla je založeno na aktuálním čase, nikoli na předchozím hesle nebo tajném klíči.
Nedávno bylo možné začlenit elektronické komponenty spojené s permanentními tokeny hodinek, jako jsou ty od ActivIdentity , InCard , RSA , SafeNet , Vasco , VeriSign a Protectimus , do formátu kreditní karty . Protože však tloušťka karty (od 0,79 mm do 0,84 mm) neumožňuje použití tradičních bateriových článků, je nutné použít speciální baterie na polymerové bázi, které mají mnohem delší životnost než běžné minibaterie. Kromě toho by měly být použity polovodičové součástky s extrémně nízkým výkonem, aby se šetřila energie během pohotovostního režimu a/nebo používání produktu. V tenkých OTP zařízeních vedou dvě společnosti: Identita a NagraID .
Mobilní telefony a PDA lze také použít ke generování časově synchronizovaných jednorázových hesel. Tento přístup může být ekonomičtější alternativou, protože většina uživatelů internetu již má mobilní telefony. Také to může být pohodlnější, protože uživatel nebude muset nosit samostatný token pro každé zabezpečené připojení, když potřebuje přístup.
Použití jednorázových hesel s výzvou vyžaduje, aby uživatel poskytoval časově synchronizované výzvy, aby mohlo dojít k ověření. To lze provést vložením hodnoty do samotného tokenu. Aby se předešlo duplicitám, je obvykle zahrnuto další počítadlo, takže pokud dojde k přijetí dvou stejných požadavků, stále to povede k různým jednorázovým heslům. Výpočty však obvykle nezahrnují předchozí jednorázové heslo, protože to způsobí synchronizaci úloh. EMV začínají používat takové systémy (tzv. „Chip Authentication Program“) pro kreditní karty v Evropě.
Běžnou technologií používanou k doručování jednorázových hesel je SMS . Vzhledem k tomu, že SMS jsou všudypřítomným komunikačním kanálem, který se nachází ve všech telefonech a využívá jej velké množství zákazníků, mají SMS zprávy největší potenciál pro všechny spotřebitele s nízkou cenou.
Tokeny, čipové karty a další tradiční metody ověřování jsou mnohem nákladnější na implementaci a použití a často narážejí na odpor spotřebitelů. Jsou také mnohem zranitelnější vůči útokům typu man-in-the-middle , při kterých phisheři kradou jednorázová hesla lstí nebo dokonce proto, že se jednorázová hesla zobrazují na obrazovce tokenu. Také může dojít ke ztrátě tokenů a integrace jednorázových hesel do mobilních telefonů může být bezpečnější a jednodušší, protože uživatelé s sebou nemusí nosit další přenosná zařízení.
Jednorázová hesla prostřednictvím SMS mohou být zároveň méně bezpečná, protože mobilní operátoři se stávají součástí řetězce důvěry. V případě povolené funkce roamingu musí být důvěryhodní více než jeden mobilní operátor (v některých případech všechny organizace, které mají přístup k signalizačnímu systému SS7 ).
Podle doporučení NIST 2016 by SMS neměly být používány v nových autentizačních systémech kvůli riziku jejich zachycení a přesměrování [1] [2] .
Ve srovnání s hardwarovou implementací tokenu, která vyžaduje, aby uživatel měl u sebe tokenové zařízení, token v mobilním telefonu výrazně snižuje náklady a nabízí nebývalou úroveň pohodlí. Toto řešení také snižuje logistické požadavky, protože není potřeba vydávat každému uživateli samostatné zařízení. Mobilní tokeny jako FiveBarGate, FireID nebo PROTECTIMUS SMART navíc podporují řadu tokenů během jedné instalace aplikace, což umožňuje uživateli autentizovat se k více zdrojům z jednoho zařízení. Tato možnost také poskytuje specifické aplikace pro různé modely telefonů uživatele. Tokeny v mobilních telefonech jsou také výrazně bezpečnější než SMS OTP, protože SMS zprávy jsou odesílány přes GSM síť v zachytitelném textovém formátu.
Z hlediska nákladů je nejlevnějším řešením distribuce jednorázových hesel na papíře, stíracího losu nebo generátoru jednorázových hesel na mobilním telefonu. Tyto systémy totiž odpadají náklady spojené s (znovu)vydáváním elektronických tokenů a náklady na SMS zprávy.
U systémů, které se spoléhají na elektronické tokeny, musí systémy, které nejsou časově synchronizované, vyřešit problém, když se server a token nesynchronizují. To má za následek dodatečné náklady na vývoj. Na druhou stranu vám umožní vyhnout se utrácení hodin v elektronických tokenech (a opravě jejich hodnot s ohledem na časový posun).
Jednorázová hesla jsou také zranitelná vůči „fishingu“ ( phishing ). Koncem roku 2005 byli uživatelé Bank of Sweden oklamáni používáním svých bývalých hesel [3] . Dokonce i časově synchronizovaná hesla jsou zranitelná vůči phishingu, pokud útočník dokáže heslo použít dostatečně rychle. Toho bylo zaznamenáno v roce 2006 při útoku na uživatele Citibank v USA [4] .
Přestože jsou jednorázová hesla bezpečnější než běžná hesla, používání systémů OTP je stále zranitelné vůči útokům typu man-in-the-middle . Jednorázová hesla by proto neměla být sdílena s třetí stranou. To, zda je jednorázové heslo synchronizováno v čase, v zásadě neovlivňuje míru zranitelnosti. Jednorázová hesla založená na výzvě jsou také zranitelná, i když úspěšný útok vyžaduje od útočníka o něco více akce než jiné typy OTP.
Byla patentována řada technologií OTP. Tím je standardizace v této oblasti ještě obtížnější, protože každá společnost se snaží prosadit svou vlastní technologii. Existují však normy, jako je RFC 1760 ( S/Key ), RFC 2289 (OTP), RFC 4226 ( HOTP ) a RFC 6238 ( TOTP ).
V některých zemích se pro vzdálené použití bank používají jednorázová hesla. V některých z těchto systémů banka zasílá uživateli očíslovaný seznam jednorázových hesel vytištěný na papíře. Pro každou vzdálenou transakci musí uživatel zadat příslušné jednorázové heslo z tohoto seznamu. V Německu se tato hesla obvykle označují jako TAN kód (od „ transakční autentizační čísla “). Některé banky zasílají TAN kódy uživateli prostřednictvím SMS, v takovém případě se nazývají mTAN kódy (pro „mobilní TAN“).
Jednorázová hesla jsou nejčastěji ztělesněním dvoufaktorové autentizace . Některé systémy Single Sign On Technologies [5] používají jednorázová hesla. Technologie OTP se také používá v bezpečnostních tokenech .
Poskytovatelé řešení jednorázového hesla: