Ověření přihlášení k bankovnímu účtu přes SMS nebo „kalkulačku“ je nejlepší způsob, jak se chránit před vykradením účtu internetovými zločinci. Z principu jednoduchý princip ověření identity uživatele heslem a speciálním jednorázovým kódem se začíná prosazovat i na internetu, dokonce ve spojení s bezplatnými službami.

Nejčastěji se v Česku s touto možností setkáte u Microsoftu, Googlu a Facebooku. To je dobrá zpráva, protože tyto firmy mají nejvíce uživatelů. Pokud máte tu možnost, rozhodně si ji u svého účtu zapněte. S vynaložením minimální námahy tak výrazně zvýšíte bezpečnost svých cenných dat.

Autentizační faktory

V informační bezpečnosti rozeznáváme tři, někdy čtyři, autentizační faktory. Jedná se o způsoby, jak lze uživatele autentizovat, tedy ověřit si, že je skutečně tím, za koho se prohlašuje.

Prvním je faktor znalosti, tedy něco, co uživatel zná. Mezi autentizujícím a autentizovaným je předem dohodnuto nějaké sdílené tajemství, jehož znalostí se prokazuje identita. Typickým příkladem sdíleného tajemství je klasické heslo: způsob autentizace, který používáme mnohokrát denně.

Autentizace pomocí sdíleného tajemství má ale jeden problém: ono tajemství je mnohdy mnohem sdílenější, než bychom si byli přáli. Heslo například může někdo odposlechnout. Na počítači samém, pomocí hardwarového nebo softwarového keyloggeru. Cestou po síti, pokud je přenos dat nešifrovaný nebo je šifrovaný nedostatečně. U provozovatele služby, kterému unikla databáze uživatelských účtů a hesel nebo jejich hashů. U uživatele, který se nechal nalákat na phishingový mail…

Navíc většina uživatelů používá totéž heslo opakovaně, mezi různými službami. Těžko jim to lze vyčítat, protože nemají a nemohou mít dostatečnou kapacitu na to, aby si zapamatovali stovky různých hesel.

Máme ještě další autentizační faktor: faktor vlastnictví, tedy ověřujeme něco, co uživatel má. Nějaký předmět, který není možné snadno okopírovat a jehož vlastnictví lze na dálku ověřit. Typicky třeba čipovou kartu či USB token s asymetrickým klíčem a certifikátem nebo něco podobného.

Problém tohoto autentizačního faktoru spočívá v tom, že je obecně docela drahý. Patřičné zařízení - čipová karta atd. - něco stojí, ale náročná je zejména správa. Ony předměty je třeba uživatelům nějak rozdistribuovat, řešit případy ztráty nebo zničení…

Nyní se hojně začínají využívat chytré telefony, které umí vygenerovat jednorázové heslo - nebo klidně i hloupé telefony a jednorázové heslo zašle provozovatel služby pomocí SMS a občas se lze setkat i s e-mailem.

Třetím a posledním autentizačním faktorem je vlastnost, tedy něco, co uživatel je. Nějaká unikátní charakteristika, jejíž sdílení dvěma různými osobami je velice nepravděpodobné. Dnes se nejčastěji jedná o otisk prstu, ale lze se setkat i s rozpoznáváním tváře nebo hlasu.

Tento autentizační faktor má zásadní problém v tom, že funguje jenom lokálně. Lze se tak prokázat vůči zařízení, které máme ve fyzickém dosahu, ale ne na dálku po síti. Některé charakteristiky je také možno napodobit a všechny lze zaznamenat a použít znovu. Například sejmout otisk prstu z předmětu, na který uživatel sáhl, použít fotografii nebo nahrávku hlasu.

Dalším problémem je, že většina biometrických metod z autentizace odstraňuje prvek dobrovolnosti. Heslo napsat můžete, ale nemusíte, třeba pod nátlakem. Ale donutit vás položit prst na snímač je podstatně jednodušší.

Občas se lze setkat i s myšlenkou, že existuje čtvrtý faktor, to je dovednost, tedy že uživatel něco umí udělat. Nejčastěji se tento názor objevuje v souvislosti s dynamickým biometrickým podpisem, tedy schopností podepsat se stále stejným způsobem. Tedy nejenom z hlediska výsledného obrazce, ale i pokud se týče rychlosti a přítlaku pera a podobně.

Podle mého názoru se nicméně nejedná o nový autentizační faktor, protože uvedená charakteristika a z velké části nezávislá na vůli uživatele a fakticky tak jde o faktor vlastnosti.

Vícefaktorová autentizace

Všechny popsané autentizační metody mají výrazné slabiny. Proto se v praxi u systémů, které vyžadují vyšší úroveň zabezpečené, často využívá vícefaktorová autentizace. Tedy kombinace několika faktorů zároveň. Nejčastěji se využívá kombinace faktoru znalosti a vlastnictví. Typickým příkladem je výběr z bankomatu nebo transakce platební kartou: musíte něco mít (kartu) a něco znát (PIN).

Podobně třeba šifrování systémového disku ve Windows pomocí BitLockeru (v jedné z možných konfigurací) vyžaduje něco znát (heslo, které se zadává při startu systému) a něco mít (TPM, trusted platform module čip, typicky naletovaný na základní desce konkrétního počítače).

Vícefaktorová autentizace je bezpečnější, protože na každý faktor se musí útočit jinak a většinou zcela odlišnými způsoby. Lze si představit hackera, který dokáže do vašeho počítače na dálku nainstalovat malware, aby zjistil vaše heslo. Lze si představit kapsáře, který vám v tramvaji ukradne čipovou kartu. Ale zajistit spolupráci dvou takových osob už je mnohem větší oříšek.

Hesla na jedno použití

Nejrozšířenějším "faktorem vlastnictví" je dnes vlastnictví zařízení, které dokáže získat jednorázové heslo. Tedy heslo, které platí po omezený časový úsek nebo pouze pro jedno použití (nebo obojí).

Pokud útočník například odposlouchává komunikaci, může získat statické heslo a jednu instanci náhodného hesla. To mu ale je k ničemu, protože se heslem už znovu nepřihlásí.

Existují v zásadě dva způsoby, jak jednorázová hesla v praxi implementovat: komunikační a autonomní.

Komunikační způsob předpokládá, že mezi stranami existuje nějaký bezpečný (bezpečnější) komunikační kanál, kterým může provozovatel služby uživateli zaslat jednorázové heslo. Typicky se používají SMS zprávy a s tímto postupem se často setkáváme u českých bank. Když se uživatel chce přihlásit, zadá své jméno a statické heslo. Poté (nebo třeba při provedení nějaké citlivější operace, třeba při zadání platebního příkazu) provozovatel služby vygeneruje náhodné heslo mající obvykle 6-8 číslic a zašle ho uživateli jako textovou zprávu na mobilní telefon. Aby útočník dokázal udělat, co potřebuje, musí mít statické heslo a zároveň mít přístup k jeho mobilnímu telefonu nebo komunikaci.

Autonomní způsob předpokládá, že uživatel vlastní zařízení, které umí potřebný klíč samo nezávisle vygenerovat. Takovým zařízením může být třeba autentizační token (nejznámější je nejspíše RSA SecurID) nebo speciální software v mobilním telefonu. Vlastní generování kódu je docela jednoduché: vezme se nějaká předem dohodnutá (a pro daného uživatele unikátní) náhodná hodnota, které se říká secret nebo seed.

K ní se přidá counter, nějaká hodnota, která se průběžně mění: například počet provedených autentizací (zařízení má nějaké počítadlo a tlačítko pro vygenerování nového kódu) nebo čas (zpravidla se počítá počet uplynulých třicetisekundových intervalů od nějakého dohodnutého počátečního data). No a z obou těchto hodnot se vygeneruje hash, který je pro každý případ jiný. Z něj (jedná se o dlouhé 128-bitové číslo, které nejspíš nechcete opisovat) se pak poměrně jednoduchým algoritmem vytvoří šesti nebo sedmiznakové číselné heslo.

Ověřování je totožné: provozovatel služby zná ono počáteční tajemství a měnící se hodnotu a umí si tedy spočítat tentýž kód. V praxi je do ověřovacích algoritmů vestavěná nějaká tolerance, kdy například služba počítá s časovým posunem a akceptuje i heslo o jednu nebo více pozic "starší" nebo "novější".

Tomuto postupu se říká OTP nebo HashOTP (HOTP). Setkáte se i so pojmy EventOTP (EOTP) pro generátory založené na počítadle kódů a TimeOTP (TOTP), kde je měnícím se parametrem čas.

Zásadní výhodou kódů posílaných pomocí SMS je jejich jednoduchost. Na straně uživatele není třeba žádná zvláštní součinnost. Prostě dostane normální textovou zprávu a opíše kód, který v ní dostal. Nevýhodou je, že musí být v oblasti pokryté mobilním signálem a autentizace je závislá na třetí straně, tedy mobilnímu operátorovi. Za odeslané SMS je také nutné platit.

Kryptograficky generované autonomní OTP zase vyžadují, aby měl uživatel na svém telefonu nainstalovaný softwarový generátor (nebo mu musíme dát fyzický hardwarový). Zato jsou k dispozici zdarma a fungují i bez mobilního signálu. Další výhodou je, že pomocí HOTP se může na oplátku autentizovat i služba vůči klientovi: po úspěšném přihlášení mu vypíše další heslo, které musí souhlasit s tím, které vytvoří generátor.

USB token pro Google

Google před několika dny přišel s podporou autentizačního tokenu přes USB. Jedná se o novou, normu FIDO, která se z hlediska počítače tváří jako HID (Human Input Device, např. klávesnice). Token by neměl vyžadovat žádné speciální ovladače či podporu. Bohužel se zatím v ČR neprodává, nicméně přesto pracujeme na získání jednoho kousku na recenzi.

Kdo podporuje dvoufaktorovou autentizaci?

Obrátíme-li zraky k českému Internetu a jeho velkým službám, odpověď je jako obvykle nudná: nikdo. Pomineme-li některé banky, jediná rozšířenější česká služba, kterou znám, která podporuje 2FA je MojeID, autentizační projekt CZ.NICu. Který se ovšem přes značnou snahu a množství vynaložených financí velkého rozšíření nedočkal.

Světové služby jsou na tom o poznání lépe: Google, Microsoft Account i Facebook vícefaktorovou autentizaci podporují. Twitter u nás ne (podporuje jenom SMS ve vybraných zemích, mezi něž ČR tradičně nepatří), Apple je na tom podobně. Seznam služeb, které podporují 2FA najdete na webu www.twofactorauth.org.

Pokud v seznamu podporovaných najdete službu, kterou používáte, rozhodně vám doporučuji 2FA zapnout. Nemusíte mít strach, že by vás příliš obtěžovala. Služby vesměs fungují tak, že si zadání jednorázového hesla vyžádají pouze, pokud se přihlašujete z neznámého místa nebo zařízení/prohlížeče. Nebudou vás tedy obtěžovat při každém přihlášení.