Hlavní navigace

Prokaž se, kdo přicházíš

1. 12. 2011
Doba čtení: 7 minut

Sdílet

Heslem francouzských revolucionářů bylo „Liberté, Egalité, Fraternité“ – volnost, rovnost, bratrství. Ve věku Internetu potřebujeme volnost uživatelů v sítích a aplikacích spíše omezovat. S rovností to také není tak slavné, uživatelé obvykle mají různé možnosti a úrovně oprávnění. Pokud jde o bratrství, inu to nejspíš nahradilo „přátelství“ na Facebooku.

Abychom mohli uživatele shora popsaným způsobem šikanovat (autorizovat, musíme je nejprve identifikovat (vědět, co jsou zač) a autentizovat (vědět, že nelžou).  Nejrozšířenějším způsobem autentizace v počítačových systémech jsou uživatelská jména a hesla. Jsou nejjednodušší a nejlevnější – bohužel ale nejsou příliš bezpečná. Bezpečnější přístup nabízí například vícefaktorová autentizace. V tomto článku se zaměříme na možnosti, které pro autentizaci obecně máme a v následném článku se podíváme na zajímavé vlastnosti jednorázových he­sel.

Autentizační faktory

Obecně se používají tři způsoby (autentizační faktory), jakými lze uživatele autentizovat, tedy ověřit si, že je skutečně tím, za koho se vydává.

Faktor znalosti

V této metodě uživatele autentizujeme podle toho, co zná – nějaké sdílené tajemství, známé pouze uživateli a ověřující straně. Typicky se jedná právě o autentizaci heslem. Technologicky a logisticky nejsnazší a nejlevnější řešení, protože nevyžaduje žádný zvláštní hardware, software a podobně.

Problém spočívá v tom, že sdílené tajemství bývá mnohdy mnohem sdílenější, než bychom si byli přáli. Prakticky všichni uživatelé používají do několika různých systémů totéž heslo. Těžko jim to můžeme vyčítat, protože kapacita lidského mozku není neomezená a hesel si musíme pamatovat příliš mnoho. Znamená to ovšem, že kompromitace jednoho systému může vést k poškození systémů zcela nesouvisejících.

Celou řadu zajímavých poznatků přinesly dvě nedávné causy uniklých rozsáhlých databází hesel: Sony Pictures a Gawker Media. Prvním a možná nejdůležitějším poznatkem je samozřejmě poučení nikdy nikomu nevěř: že je provozovatel webu velká společnost ještě neznamená, že nedojde k jeho kompromitaci. Další informace pocházejí z analýzy, kterou nad získanými daty provedl Troy Hunt.

Z ní mimo jiné vyplývá, že pokud měli uživatelé účet současně ve dvou napadených systémech Sony, v 92% případů v obou měli stejné heslo. Průnik uživatelů mezi databázemi Sony a Gawker je vzhledem k výrazně odlišnému zaměření mnohem menší (88 uživatelů), nicméně z nich 67% mělo v obou stejné heslo.

Znovu opakuji, že to jen těžko lze těm uživatelům vyčítat a že kdybych já měl v daných systémech účet, spadl bych do těch 67% taky, protože pro „obecně nedůležité weby“ používám stejné heslo. Nezbývá, než jenom doufat, že zbytek napadených stejně jako já pro důležitější systémy používá kvalitnější hesla.

Autentizace heslem přináší ještě další problém, a to nutnost bezpečného přenosu hesla mezi hlavou uživatele a serverem.

Bezpečný přenos mezi počítačem uživatele a serverem dokážeme zajistit docela snadno, technologie na to máme. Nejtypičtěji proženeme komunikaci SSL/TLS tunelem, jako například HTTPS. Řešení je to sice zcela standardní, ale přesto ne vždy použitelné. V případě menších webů nemusí levný hoster SSL podporovat, web běžící na SSL musí mít k dispozici samostatnou IP adresu (pokud neběží na nestandardním portu, což s sebou ale nese smečku dalších problémů) a je nutné si obstarat certifikát od důvěryhodné certifikační autority, což je obecně vnímáno jako drahé a komplikované. Sice existuje například CA StartCom která důvěryhodné serverové certifikáty vydává zdarma, ale příliš se o ní neví.

Kromě toho, mnohdy ani větší weby, pro který by to neměl být technologický problém, SSL nepoužívají anebo ho sice nabízejí, ale musíte si ho výslovně vyžádat. Přímo odstrašujícím příkladem jsou tři největší české e-shopy s výpočetní technikou:

  • Alfa Computer bezpečné přihlášení nepodporuje vůbec.

  • Czech Computer je sice přes SSL dostupný (pokud ručně napíšete https://www.czc­.cz/), ale na zabezpečenou verzi nevede žádný odkaz a heslo jde standardně otevřeným kanálem. 

  • Alza.cz  je zde mezi slepými jednookým králem, neboť se v přihlašovacím dialogu nachází nenápadný odkaz „SSL“, který vás zavede na zabezpečenou přihlašovací stránku. Výchozí cesta je ovšem i zde nezašifrovaná a nepředpokládám, že by možnost šifrovaného přístupu byla houfně implementována.

Další populární weby na tom nejsou lépe (servery společnosti Internet Info, včetně Lupa.cz, používají jednotný přihlašovací systém, který sice SSL nepoužívá, ale zdá se, že heslo přenáší na principu challenge/response, tedy bezpečně): Živě, MobilMania, iDnes, Lidovky a iHNed šifrované spojení pro přihlášení buďto nenabízejí vůbec, anebo jsem ho nenašel, ani když jsem ho aktivně hledal, což je v konečném důsledku totéž.

Obecně lépe jsou na tom bohudík poskytovatelé e-mailových služeb – Seznam, Centrum, AtlasUPC používají standardně SSL, černými ovcemi jsou Volny.cz a O2 Active. I pokud heslo bezpečně dopravíme mezi počítači, je nutné ho bezpečně dopravit z hlavy uživatele do jeho prohlížeče, kde mohou v cestě stát rozličné překážky, jako například rozličný malware, který hesla odchytává. Kromě toho, hardwarové keyloggery, máme-li fyzický přístup k počítači napadeného uživatele, jsou běžně dostupné a stojí pár desítek dolarů.

Faktor vlastnictví

Druhým faktorem, který můžeme využít při autentizaci, je vlastnictví. Uživatel svou totožnost prokazuje tím, že něco má. Ve světě počítačových systémů se jedná nejčastěji o certifikát, ideálně uložený na čipové kartě nebo USB tokenu. (Ve skutečnosti je podstatný zejména soukromý klíč asymetrického algoritmu, certifikát sám o sobě zase tak moc neznamená, ale je nejviditelnější součástí celé infrastruktury a pojmy jako „autentizace klientským certifikátem“ se již vžily.)

Výhodou tohoto faktoru je, že bývá obvykle podstatně komplikovanější se jej neoprávněně anebo dokonce nepozorovaně zmocnit. Jedná-li se o certifikáty, je výhodou také to, že komunikace automaticky probíhá šifrovaně, protože použití SSL je zde technologickou nutností.

Obtížnost implementace ale v případě klientských certifikátů oproti heslům vzrůstá hned o několik řádů. Je nutné vybudovat PKI, distribuovat certifikáty, naučit uživatele zacházení s nimi, nakoupit čipové karty, čtečky, middleware… Na frak dostává i univerzálnost přístupu: do systému se lze přihlásit jenom z počítačů, které mají patřičné softwarové a hardwarové vybavení. Žádný div, že se tato forma autentizace používá jenom velmi omezeně, zejména ve světě polouzavřených ekosystémů velkých firem.

Právě jednorázová hesla a tokeny pro jejich generování, jak bude obšírněji pojednáno dále, představují jednoduchý, levný a venkoncem nenáročný způsob, jak do systému implementovat tento faktor.

Faktor neměnné charakteristiky

Poslední obecně uznávaný autentizační faktor sleduje, co uživatel je. Tedy snímá jeho biometrické charakteristiky a porovnává je s těmi, které má uložené v databázi. V praxi se typicky jedná o otisk prstu nebo vzory na duhovce či sítnici oka, ale může jít i o exotičtější metody, jako například o způsob, jakým se člověk podepisuje. (Ty jsou mimochodem občas prezentovány jako čtvrtý faktor – faktor dovednosti, něco co člověk umí. Nicméně podle mého názoru se jedná stále o třetí faktor, protože se nejedná o vědomou schopnost, ale o pevně dané charakteristiky.)

Biometrické přihlašování je velice populární na místní úrovni, neb dnes jsou už i low-end modely notebooků vybaveny čtečkou otisků prstů. Nicméně pro obecné síťové nasazení se biometrické metody obecně moc nehodí.

První překážkou je opět nutnost speciálního hardware: ne každý počítač má biometrický snímač a patřičný software, nejsou také vzájemně kompatibilní. Další překážkou je špatná obrana proti replay útokům po síti. Pokud útočník získá jeden funkční vzorek, může jej používat do nekonečna.

Kromě toho, komerční čtečky otisků prstů nejsou zdaleka neomylné. Opakované testy prokázaly, že bez spolupráce oběti lze dostupné modely obelstít pomocí falešného prstu z gumy či želatiny. Skenery duhovky či sítnice jsou spolehlivější, i když ne bezchybné.

Tři pruty Svatoplukovy

Shora popsané metody autentizace nám mnoho optimistických výhledů nedávají – každá samostatně stojí za houby. Nicméně, stejně jako v českém bájesloví, když se dá několik nedokonalých autentizačních metod dohromady, jsou neporazitelné. No dobrá, tak řekněme mnohem obtížněji porazitelné.

Autentizační obdoba tří prutů knížete Svatopluka se zove vícefaktorová autentizace. Podniknout útok na každou z nich samostatně je relativně snadné, ale zaútočit na dvě nebo tři současně je mnohem komplikovanější. Typicky se používá kombinace „něco znát“ a „něco mít“. Musíte například „mít“ čipovou kartu a „znát“ její PIN. Dá se to vylepšit ještě o třetí faktor, o biometrickou autentizaci.

BRAND24

Pokud se mi tedy například budete chtít dostat k datům uloženým na disku mého notebooku, pak vězte, že musíte něco mít (šifrovací klíč, kterým jsou data zašifrována), něco znát (heslo) a něco být (musíte projít biometrickou autentizací).

Vícefaktorová autentizace je z hlediska bezpečnosti tím nejkvalitnějším, co máme pro aplikace dnes k dispozici. Většina jejích variant ovšem vyžaduje nemalé investice a je co do nasazení pro menší projekty zbytečně komplexní. Jistou naději nabízí – a rostoucí podíl na trhu získává – princip jednorázových hesel. Není nikterak nový, ale nedávno publikované standardy jej slibují zpřístupnit i menším projektům.

Byl pro vás článek přínosný?

Autor článku

Autor pracuje jako konzultant a hlavní softwarový architekt společnosti Altairis. Je Microsoft Most Valuable Professional pro ASP.NET a tvoří web aspnet.cz.
Upozorníme vás na články, které by vám neměly uniknout (maximálně 2x týdně).