Vyšlo na Lupě, 4.7.2011
Vytištěno z adresy: http://www.earchiv.cz/b11/b0704001.php3

Datové schránky: přihlašování už i s jednorázovými hesly

Nový Portál datových schránek obohatil možnosti přihlašování o použití jednorázových hesel. Můžete si je generovat sami, nebo si je nechat posílat na svůj mobil, za 3 Kč za jedno jednorázové heslo.

Datové schránky nabízely již od svého spuštění v roce 2009 dvě varianty přihlašování: jednu pomocí jména a (statického) hesla, a druhou pomocí téhož jména a hesla, a k tomu ještě pomocí (komerčního) certifikátu. Ačkoli druhá z obou variant byla výrazně bezpečnější, a v nejednom návodu byla také doporučovaná jako výrazně vhodnější, „implicitní“ variantou se stala naopak ta nejméně bezpečná: pouze pomocí jména a hesla.

Abychom byli přesní: jde o statické jméno a statické heslo, v tom smyslu že se v určitém časovém úseku nemění a lze je použít opakovaně, kolikrát jen chcete. Což zvyšuje bezpečnostní riziko: pokud dojde ke kompromitaci takového jména a hesla (tj. dozví-li se je někdo jiný), může se přihlašovat vaším jménem. A vzhledem k tomu, jak naše datové schránky fungují, umožňuje mu to platně jednat vaším jménem.

Provozovatelé datových schránek přitom již nějakou dobu avizovali, že časem hodlají zavést i další,  bezpečnější varianty přihlašování. Jenže jak čas běžel, zmohli se jen na časové omezení použitelnosti statického hesla: viz ona známá a silně kritizovaná povinnost měnit si své heslo každých 90 dnů. Reakce uživatelské veřejnosti byla tak negativní, že časem bylo umožněno tento „přínos“ zase vypnout.

No a nyní, téměř po 2 letech od spuštění datových schránek, konečně přichází ke slovu i jednorázová hesla. Ale znovu v poněkud kuriózní kombinaci: nikoli jako náhrada za statická hesla, ale jako doplněk k nim. Pokud se tedy chcete přihlašovat pomocí jednorázového hesla, budete tak jako tak zadávat i své heslo statické. A pokud jsem někde něco nepřehlédnul, nic se nemění ani na tom, že své statické heslo musíte měnit každých 90 dnů (pokud si tuto povinnost sami nevypnete).

Co jsou jednorázová hesla?

Rozvádět podrobněji, co jsou jednorázová hesla, by na první pohled mohlo být zbytečné: jsou to přeci taková hesla, která lze použít jen jednou, a nikoli opakovaně (vícekrát).  Ale k tomu, abychom věděli jak je správně používat, je přeci jen vhodné si naznačit, jak přesně fungují.

Jednorázové heslo si pro jednoduchost představujme jako několikamístné číslo (i když v praxi to mohou být i řetězce písmen a dalších znaků). Nevymýšlíme si ho sami, ale musí nám je někdo vygenerovat. Nějaký generátor hesel, který funguje sekvenčně: vždy, když mu řekneme, nám vygeneruje další nové heslo. A jelikož je jednorázové, můžeme ho použít jen jednou – a pro další úkon si zase musíme nechat vygenerovat další (nové) jednorázové heslo.

Pokud bychom dlouhodoběji sledovali činnost generátoru jednorázových hesel, viděli bychom, že z něj „vychází“ určitá posloupnost jednorázových hesel. Podstatné je, že takovouto posloupnost může v principu „vidět“ i někdo jiný. Třeba nějaký potenciální útočník, pokud by nám koukal přes rameno, když jednorázová hesla zadáváme. Vzhledem k jednorázovému charakteru hesel nám něco takového nemusí až tak vadit (když odkouknuté heslo nejde použít podruhé).

Ale mohlo by hrozit něco jiného: pokud by někdo systematicky sbíral naše jednorázová hesla, mohl by získat takovou jejich posloupnost, ze které by dokázal uhodnout, jaké bude příští generované jednorázové heslo – a to by pak použil dříve než my.

Něco takového je samozřejmě nepřípustné,  a tak důležitým požadavkem na způsob generování jednorázových hesel je to, aby podobné uhádnutí nebylo možné. V praxi proto musí být použit velmi pečlivě navržený algoritmus generování jednorázových hesel, který zajistí splnění tohoto požadavku.

Takovýchto algoritmů existuje více, ale v souvislosti s datovými schránkami je používána jedna konkrétní varianta algoritmů: vyhovující požadavkům RFC  4226. Jde konkrétně o algoritmy označované jako HOTP (HMAC-Based One-Time Password Algorithm), vyvinuté iniciativou OATH (Open AuTHentication).

Jak fungují jednorázová hesla

Pro používání jednorázových hesel (OTP, One Time Password) nepotřebujeme vědět, jak příslušné algoritmy HOTP fungují. Ale měli bychom tušit alespoň něco o tom, jak jsou nasazeny a využívány.

O generátoru jednorázových hesel musíme vědět, že potřebuje jakýsi „začátek“. Tedy něco, co mu dáme na začátku jeho práce, jako jakýsi zárodek či semínko, ze kterého pak generátor postupně odvozuje jednotlivá jednorázová hesla. Říkejme tomuto údaji, v souladu s obvyklou terminologií, tajný klíč.

Nechme zatím stranou to, kdo nám takovýto tajný klíč vygeneruje, a povšimněme si něčeho jiného: k tomu, abychom se pomocí jednorázových hesel mohli někam přihlašovat, budeme potřebovat dva generátory jednorázových hesel, fungující „ve vzájemném souladu“.

Jeden takový generátor bude sloužit nám: bude generovat ta jednorázová hesla, která budeme zadávat při svém přihlašování. Jenže co s tímto heslem bude dělat ta aplikace či služba, ke které se právě přihlašujeme? Jak zjistí, že zadané jednorázové heslo je správné?

Právě k tomu slouží druhý generátor jednorázových hesel, který využívá ta aplikace, ke které se přihlašujeme. Jeho výstupy si porovnává se zadanými hesly a podle toho hodnotí, zda jsou zadaná jednorázová hesla správná či nikoli.

Co je ztráta synchronizace?

Když už jsme u představy dvou generátorů jednorázových hesel, fungujících „ve vzájemném souladu“, využijme příležitosti a řekněme si, co se rozumí pod „ztrátou synchronizace“.

Soulad obou generátorů v praxi nemusí být úplně dokonalý, kvůli tomu, že jako lidé jsme často dosti omylní. Může se nám snadno stát, že se při zadávání jednorázového hesla překlepneme, či heslo nějak ztratíme, nestihneme využít, nebo si necháme vygenerovat dvě jednorázová hesla místo jednoho apod. Tím obecně dojde k tomu, že jeden z generátorů se posune na další pozici - ve smyslu posloupnosti generovaných jednorázových hesel - zatímco druhý nikoli. A může se to stát vícekrát, čímž se příslušný „posun“ mezi oběma generátory ještě zvětší.

Aby takovéto situace nezpůsobovaly problémy, je do celého systému přihlašování zabudována určitá tolerance vůči takovýmto posunům. Samozřejmě nikoli neomezená. V případě přihlašování k datovým schránkám jde prý o „několik desítek“ (pokusů, resp. pozic v pomyslné posloupnosti jednorázových hesel).

Pokud by ale byl posun přeci jen větší, tedy pokud by byla překročena takováto tolerance systému, došlo by právě k tomu, čemu se říká ztráta synchronizace.

Systém datových schránek podle dostupné nápovědy chápe ztrátu synchronizace jako ztrátu přihlašovacích údajů:

Ztráta synchronizace bude v systému ISDS chápána jako ztráta přihlašovacích údajů uživatele. Uživatel bude muset zažádat o zneplatnění přístupových údajů a vydání nových.

Dvě varianty přihlašování pomocí jednorázových hesel

Nyní se již můžeme dostat k praktičtějším aspektům: k tomu, jak je použití jednorázových hesel realizováno u přihlašování k datovým schránkám.

K dispozici jsou zde dvě varianty, pro jejichž označení využijeme to, jak je pojmenovává sám nový Portál datových schránek. Hlavní rozdíl mezi nimi je v tom, jak se jednorázová hesla dostávají k přihlašujícímu se uživateli (a kdo provozuje ten generátor, který tato hesla generuje):

  • „Přihlášení SMS kódem“: v rámci této varianty jsou jednotlivá jednorázová hesla dopravována k uživateli na jeho mobil, formou SMS zprávy. Přesněji: formou PR SMS, která přijde na 3 Kč za jednu zprávu s jedním heslem. Technicky si to můžeme představit tak, jako kdyby generátor, generující jednorázová hesla pro uživatele, provozoval mobilní operátor. Ve skutečnosti jej může provozovat přímo ISDS, a přes mobilního   operátora hesla jen posílat.
  • „Přihlášení bezpečnostním klíčem“: v rámci této varianty si uživatel generuje jednorázová hesla sám. Samozřejmě nikoli nějak „ručně“, ale skrze aplikaci, kterou si musí nastavit a provozovat sám – ať již na svém mobilu, tabletu či počítači.

Přihlašování SMS kódem

Zprovoznění první varianty je relativně jednoduché: v části pro nastavení datové schránky je třeba navolit „zabezpečení SMS kódem“, viz obrázek.

Pak už stačí jen vyplnit své telefonní číslo, mít povolené prémiové SMSky – a pak už jen platit a platit.

Při každém přihlášení „s SMS kódem“ si jednoduše necháte poslat novou prémiovou SMSku s jednorázovým heslem, a to pak zadáte do přihlašovacího formuláře.

Přihlašování bezpečnostním klíčem

Druhá varianta („s bezpečnostním klíčem“) je obdobná řešení, které u nás používají některé banky, když svým zákazníkům dávají malý token se zabudovaným a již nastaveným generátorem jednorázových hesel. Tento token má tlačítko, po jehož zmáčknutí se na displeji objeví nově vygenerované jednorázové heslo – a to musí uživatel přepsat do příslušného políčka na přihlašovacím formuláři.

V případě datových schránek je ale podstatný rozdíl v tom, že zde není použit žádný hardwarový token. Kdo by jej také zaplatil, že? Místo toho je použito čistě softwarové řešení, když generátorem jednorázových hesel je softwarová aplikace, kterou si uživatel provozuje ve vlastní režii.

Takovýchto aplikací naštěstí existuje více, pro různé platformy, a nový Portál datových schránek přináší určité doporučení:

Sám jsem vyzkoušel jednu z doporučených aplikací pro iPhone/iPad, která je k dispozici zdarma:

Tato aplikace dokáže fungovat jako více hardwarových tokenů současně, neboli jako více generátorů, a generovat jednorázová hesla pro přihlašování k různým aplikacím. Proto první věc, kterou jako uživatelé musíte udělat, je vytvořit si v této aplikaci nový (softwarový) token. Postup je vcelku přímočarý, a kdyžtak je k dispozici i návod  na Portále datových schránek.

Při instalaci softwarového tokenu aplikace sama vygeneruje tajný klíč, který je třeba přenést do nastavení nového způsobu přihlašování k datové schránce. To proto, aby druhý generátor jednorázových hesel, fungující v rámci datových schránek, mohl „běžet v souladu“ s generátorem v (softwarovém) tokenu a dokázal rozpoznával správná jednorázová hesla.

Kromě toho je třeba do nastavení vyplnit ještě první dvě jednorázová hesla, která (softwarový) token vygeneroval.

No a pak už je používání jednoduché, a také laciné: když se přihlašujete ke své datové schránce, zadáte své jméno a heslo, od aplikace si necháte vygenerovat jednorázové heslo, a to přepíšete do přihlašovacího formuláře.

Informační systém datových schránek vám pak uleví alespoň v tom, že po vás už nebude požadovat vyplnění captchy. Své (statické) heslo  ale musíte zadávat i nadále.