Dlouhé roky jsme se k počítačům a webovým službám přihlašovali prostou kombinací jména a hesla, které bylo často primitivní a na celém internetu jsme mnohdy používali stále dokola to samé. Množící se krádeže databází s autentizačními údaji ale postupně přinutily technologickou scénu přijít s něčím novým.
Prvním krokem – často nenáviděným – byl požadavek na silnější heslo. Rázem jsme si při registraci nemohli zvolit snadno zapamatovatelnou číselnou řadu 12345678, ale provozovatel nás začal nutit volit zprvu kombinaci alfanumerických znaků, poté si vynutil kombinaci velkých a malých písmen, a nakonec přišla i řada na speciální znaky.
Dokonale složité heslo je pouze doklad špatného designu
Dopracovali jsme to tak daleko, že nám začali bezpečnostní odborníci z televizních obrazovek po jakémkoliv velkém úniku přístupových údajů radit, že ideální heslo vypadá s trochou nadsázky zhruba takto:
xwY_1Tr3vAhG#78+352.kL@
Kdo si dovolil použít heslo ILoveYou, které by kdejaké script kiddie odhalilo během okamžiku, byl rázem za hlupáka a ňoumu, jenž nemá na veřejném internetu co pohledávat.
Přitom se tak trochu zapomnělo na drobnost, že nám mají technologie sloužit, že nám mají zjednodušovat život a že volba podobných hesel, které si máme zapamatovat, spravovat jakousi další aplikací třetí strany, anebo v nejhorším případě dokonce napsat někam na papírek či do textového souboru, je vlastně chyba samotného designu. Chyba UX.
Je to stejně bizarní, jako byste měli nastartovat svůj osobní vůz namísto otočením klíče nebo stisknutím tlačítka, vyťukáním sady numerických instrukcí do počítače AGC/DSKY na palubě mise Apollo 13.
Až vám tedy bude nějaký profík zase radit, jaké máte mít heslo na Facebooku, spíše se jej zeptejte, proč na sklonku druhého desetiletí 21. století dávno nepoužíváme nějakou uživatelsky mnohem přívětivější metodu, jak ověřit svoji vlastní identitu.
Vždyť osobní počítač se už dávno stal spotřební elektronikou – stejnou elektronikou jako pračka nebo mikrovlnka – a už dávno to není ta kouzelná skříňka pro pár nerdů z počítačového kroužku 80. let.
FIDO, tedy Fast IDentity Online
Technologická scéna si je toho vědoma a snaží se potřebu ručního zadávání jakýchkoliv složitých klíčů překrýt něčím mnohem příjemnějším, stejně jako blikající kurzor textového terminálu v 80. letech překryl grafický displej s hromadou ikonek na ploše.
Jednu z cest, jak skoncovat s klasickými hesly, razí od roku 2013 organizace FIDO Alliance (Fast IDentity Online), která si dala za cíl vytvořit technologii, jak univerzálním způsobem říct jakékoliv webové službě či fyzickému zařízení, že jsem jeho právoplatný uživatel a majitel.
Biometrická data nikam neputují
Tímto univerzálním způsobem může být třeba biometrický klíč v podobě čtečky otisku prstu, identifikace tváře, ale stejně tak číselný PIN ve Windows 10 či jakýkoliv jiný vstup – třeba kresbička myší po monitoru, kterou však nebudete používat jen k přihlášení do samotného systému, ale do jakékoliv webového služby třetí strany, pokud k tomu použijeme tentýž počítač.
Při autentizaci skrze biometrické údaje si ale musíme klást principiální ergonomickou otázku, jak zajistit to, aby nám je někdo nemohl sejmout třeba násilím, ve spánku nebo v bezvědomí...
Aby však nedošlo k mýlce, samozřejmě to neznamená, že se na laptopu podíváte do webkamery, nebo se dotknete čtečky otisku prstu, načež se tato data stejně jako běžné přihlašovací jméno a heslo odešlou třeba někam na Facebook, který by je už měl ve své databázi od registrace a mohl by je porovnat.
Tím bychom totiž sice vyřešili špatné UX při ručním zadávání složitých hesel, ale kdejakému pochybnému webu bychom zároveň sdělili své biometrické údaje, což by byl mnohem větší průšvih. Textové heslo si totiž při úniku snadno změníte, zatímco otisk prstu a obličej nikoliv.
Veřejný a privátní klíč
Namísto symetrické kryptografie, kdy vy i cílový web znáte heslo (nebo jeho heš – zástupnou změť znaků) a web tedy může porovnat, jestli je opravdu správné, se v případě protokolů FIDO používají principy asymetrické kryptografie a technika privátního a veřejného klíče.
Při prvotní registraci na webu si tedy nejprve naše zařízení ověří identitu třeba pomocí zmíněného otisku prstu, hardwarového klíče atp., poté vygeneruje pár veřejného a privátního klíče a ten veřejný odešle cílovému webu, který si jej připojí k našemu profilu.
Bezheslová registrace na webu skrze FIDO, kdy web obdrží veřejný klíč z nově vygenerovaného páru po ověření otiskem prstu
Když se budeme chtít následně přihlásit, web nám odešle speciální test zašifrovaný veřejným klíčem, který jsme mu dříve sdělili, naše zařízení nás vyzve, ať opět ověříme identitu, načež použije odpovídající privátní klíč k dešifrování/podepsání autentizačního testu. Po tomto ověřovacím kolečku nás web konečně pustí dál.
Bezheslové přihlášení k webu, který si pomocí již dříve uloženého veřejného klíče ověří, že vlastníte odpovídající privátní klíč.
Princip asymetrické kryptografie je tedy založený na tom, že k ověření identity jsou třeba dvě různá hesla, přičemž druhá strana má vždy jen jedno z nich a díky rostoucím požadavkům na stále větší a sofistikovanější klíče by mělo být prakticky nemožné z veřejného klíče reverzně vypočítat privátní.
Ne náhodou jsou na principu asymetrické kryptografie založené také počítačové certifikáty včetně těch, které používáme třeba k ověřování vlastnictví internetových domén při HTTPS spojení.
YubiKey: USB klíč s podporou FIDO
Abych si to všechno vyzkoušel v praxi, půjčil jsem si od českého distributora Yubikey drobný USB/NFC hardwarový klíč, který díky nativní podpoře protokolů FIDO/FIDO2 ve Windows a prohlížečích nevyžaduje pro základní použití instalaci žádnou další speciální aplikací.
Hardwarový USB klíč s podporou protokolů FIDO/FIDO2 od Yubica
Cena základní verze Security Key začíná zhruba na pětistovce, pokročilejší YubiKey 5 NFC, jenž nabízí hromadu dalších autentizačních protokolů a také bezdrátové NFC, pak seženete zhruba za třináct stovek.
Pokročilejší YubiKey 5 NFC a základní Security Key od Yubica
Přihlašování čipovou kartou nebo USB klíčem samozřejmě není nic nového a podniková a státní sféra tyto metody zná už desítky let, co se však mění, je právě ona široká podpora podobných zařízení skrze univerzální protokoly z rodiny FIDO.
Připojený USB klíč lze ve Windows 10 spravovat v Možnostech přihlášení
Jednou tedy snad bude úplně jedno, jestli k přihlášení použijete sken tváře, otisk prstu, čipovou kartu nebo USB klíčenku. Ve všech těchto případech se bude jednat o univerzální hardwarový klíč, který nás pustí dál.
Passwordless skrze FIDO zatím vzácností
Bohužel, praxe je trošku složitější. Ačkoliv FIDO/FIDO2 podporuje stále více služeb na veřejném internetu, většinou nikoliv k ověření identity bez potřeby hesla, ale jen k dvoufaktorovému ověření.
Aktivace FIDO klíče v nastavení Twitteru pro dvoufaktorové ověřování a v praxi v prohlížeči Chrome na Windows. Windows 10 FIDO podporují, takže Chrome vyvolá jejich dialog.
To znamená, že když takový hardwarový klíč aktivujete třeba na Twitteru, stále budete muset zadávat pár login/heslo, nicméně poté vás Twitter ještě vyzve k použití zmíněného klíče namísto toho, aby vám poslal třeba SMS s kódem, nebo identitu ověřil pomocí mobilní aplikace.
Stejný způsob dvoufaktorového ověření nabízí také Google, Facebook a desítky dalších velkých webových služeb. Jejich seznam najdete třeba na webu výrobce USB klíčů YubiKey, přičemž nově přibyla i podpora dvoufaktorového přihlašování skrze protokol FIDO na české autentizační autoritě MojeID.
Přihlášení k účtu Microsoft bez potřeby ručního zadávání hesla. Microsoft ale žádá alespoň vyšší formu zabezpečení samotného USB klíče, který tentokrát vyžaduje nastavit PIN,
Po dlouhém hledání jsem nakonec z těch opravdu velkých služeb, které nabízejí bezheslové – passwordless – přihlašování USB klíčenkou, narazil jen na ekosystém Microsoftu.
USB klíčenku jsem tedy nejprve zaregistroval na svém účtu na webu, zařízení předalo skrze Windows 10 a Chrome svůj veřejný klíč Microsoftu, no a napříště jsem si při přihlašování třeba k webovému pošťákovi Outlook mohl vybrat alternativní metodu skrze hardwarový klíč.
Velcí hráči budují vlastní systémy
Fungovalo to! Na stranu druhou, velké ekosystémy postupně razí i svoje vlastní techniky přihlašování a především Google, Facebook a Twitter také nabízí přihlašování jako službu třetím stranám, takže v praxi se lze k hromadě webů na internetu přihlásit bez hesla už dnes a zároveň bez jakéhokoliv hardwarového klíče. Stačí být prostě přihlášený na Facebooku, Twitteru nebo Googlu a terpve tyto identity chránit před hackery jako rodinné dědictví.
Skutečná budoucnost jednotného přihlašování tedy ještě není ani zdaleka daná, stále se vyvíjí a vedle standardizačních snah jako v případě aliance FIDO nakonec bude záležet na tom, pro co se opravdu rozhodnou hegemoni jako Google a Facebook, kteří mohou jít nakonec zcela odlišnou cestou, ačkoliv jsou oba členy FIDO.
V každém případě, potřeba bizarních a ručně zadávaných hesel snad jednou konečně vymizí.