Porovnání moderních autentizačních metod

V tomto dílu seriálu si povíme o tom, jak se jednotlivé autentizační metody od sebe liší, a seznámíme se ve stručnosti s jejich hlavními rysy. Také se podíváme na některé oblíbené mýty a předsudky, které o těchto metodách kolují, a pokusíme se je uvést na pravou míru.

Seriál: Moderní internetové autentizační metody (7 dílů)

  1. Moderní internetové autentizační metody 19.12.2008
  2. Porovnání moderních autentizačních metod 23.12.2008
  3. OpenID: Historie, terminologie a mechanismus autentizace 30.12.2008
  4. Implementace přihlašování pomocí OpenID 6.1.2009
  5. OpenID: Identity, aliasy a vlastní poskytovatel 13.1.2009
  6. Implementace přihlašování pomocí Live ID 20.1.2009
  7. Webové autentizační metody: Kuriozity a novinky 27.1.2009

Rozdělení autentizačních metod

Autentizační metody lze rozdělit do několika skupin podle různých kritérií. V první řadě je můžeme rozdělit podle toho, jestli ověřují uživatele (user-centric), nebo jestli ověřují oprávnění a roli v instituci (institution-centric). Do první skupiny patří všechny zmiňované metody (OpenID, Live ID, OpenAuth) a některé další (Facebook Connect, MySpace ID, BBAuth (Yahoo ID), Google Federated Login). Do druhé skupiny patří např. v komentářích občas zmíněný Shibboleth. V tomto seriálu se zaměříme na metody z té první skupiny, které najdou přeci jen širší uplatnění ve světě webového vývoje než, řekněme, akademický Shibboleth.

Metody z první skupiny, které jsem nazval user-centric, jsou založené na tom, že uživatel má u někoho důvěryhodného založen účet, pomocí něhož se může přihlašovat i na jiných službách. (Srovnání se světem podpisových certifikátů a certifikačních autorit se nabízí samo.) A podle toho, kdo je tím důvěryhodným subjektem, zda je jím někdo pevně daný, nebo zda si lze vybrat, můžeme metody opět rozdělit. U Live ID, OpenAuth, Facebook Connect a dalších je důvěryhodný subjekt jasně dán: Je jím jedna konkrétní firma (Microsoft, AOL, Facebook, Google, Yahoo…) Naproti tomu u OpenID si může uživatel vybrat, kterého poskytovatele zvolí. Může si vybrat, komu bude věřit, a dokonce si nemusí vybrat nikoho a může se rozhodnout, že tou důvěryhodnou autoritou bude on sám (resp. jeho server).

Pojďme se podívat podrobněji na jednotlivé autentizační metody, o nichž se budeme bavit v dalších pokračováních.

OpenID

OpenID

OpenID je otevřená a decentralizovaná metoda pro ověřování uživatelů. Vznikla v roce 2005 jako vedlejší produkt při vývoji blogovacího systému LiveJournal společností Six Apart. Její vývoj je v současnosti zaštiťován společností JanRain. Na jaře 2008 deklarovaly svou podporu standardu OpenID společnosti jako Google, IBM, Microsoft, VeriSign a Yahoo! Autentizaci pomocí OpenID v průběhu letošního roku nabídly (či oznámily) servery jako SourceForge (tisková zpráva) nebo MySpace (tisková zpráva). V posledních měsících podporu OpenID implementoval Google a Microsoft vyhlásil, že Live ID bude podporovat OpenID. V ČR doslova před několika dny oznámil spuštění služby OpenID poskytovatele Seznam.

OpenID identity nejsou spravovány, na rozdíl od ostatních metod, jedním centrálním správcem, což dává uživateli značnou míru svobody při rozhodování, komu svěřit své údaje. Zároveň to otvírá poměrně velký prostor pro konkurenční boj, kdy se mohou jednotliví poskytovatelé předhánět tím, jakou službu svým klientům nabídnou, a zde se fantazii meze rozhodně nekladou. Dokonce existují i single user implementace, které si může uživatel spustit sám na vlastním serveru a zabezpečit dle vlastních nároků a představ.

Ostatně o tom, jak je otázka důvěryhodnosti OpenID poskytovatele důležitá, jsme se mohli přesvědčit v ČR na vlastní kůži: Spousta lidí má spojenu technologii OpenID s prvním českým poskytovatelem, openid.cz, jehož fungování bylo značně diskutabilní, dlouhou dobu dokonce nefungoval vůbec, jeho provozovatel reagoval velmi sporadicky, a to jistě nemalou měrou přispělo k nedůvěře v technologii OpenID jako takovou. Na toto téma jsem před časem napsal glosu Jak zabít OpenID.

OpenID identifikátor má tvar běžného URL (adresy WWW stránky). Klient může při autentizaci požadovat dodatečné informace o uživateli (přezdívku, e-mail, adresu,…), a pokud uživatel souhlasí, tak jsou providerem poskytnuty.

OpenID je z hlediska vývojáře velmi slušně dokumentované a je k dispozici velké množství implementací pro velké množství jazyků.

Live ID

Live ID

Microsoft potřeboval jednotnou autentizační metodu pro uživatele od chvíle, kdy se rozkročil mezi desktop a web. Live ID není proto žádná novinka, ale jen další krok v řadě Microsoftích pokusů o jednotný přihlašovací mechanismus: Vzpomeňme na Microsoft Passport, později .NET Passport, později krátce Microsoft Passport Network…

Live ID vychází, jak už název napovídá, ze světa služeb Microsoft Live, a nabízí jednotné přihlášení ke všem těmto službám. Microsoft dává k dispozici knihovny pro Live ID autentizaci, jak pro své .NET prostředí, tak i např. pro PHP. Implementace Live ID přihlašování není složitá, zabere (i se studiem nejnutnější dokumentace) zkušenému vývojáři pár desítek minut.

Live ID identifikátor má tvar e-mailové adresy Hotmail nebo Windows Live (uzivatel@windowslive.com) a klient nedostává od poskytovatele žádné osobní údaje o uživatelích, pouze alfanumerický hash (unikátní pro daného uživatele a danou službu). Pokud chce tedy klient pracovat např. s e-mailovou adresou nebo s uživatelskou přezdívkou, musí si je od uživatele vyžádat zvlášť a spárovat s daným hashem Live ID.

OpenAuth

OpenAuth

OpenAuth je, dalo by se říci, okrajová obdoba Live ID, jen s tím rozdílem, že místo Microsoftu za ním stojí AOL. Princip fungování je podobný předchozím metodám, takže bych jen opakoval napsané. Důvod, proč se o této metodě zmiňuji, je ten, že je pro nás v ČR zajímavá, protože umožňuje přihlášení nejen pomocí AOL účtu (AIM), ale i pomocí ICQ údajů, a pracovat tak do jisté míry v ICQ síti.

AOL nabízí poměrně slušnou vývojářskou dokumentaci i s příklady použití v PHP, Rails, ASP.NET a v Javě.

Další metody

Do této podkategorie si dovolím naházet všechny ostatní metody, které fungují na podobných principech, tedy Facebook Connect, Yahoo! účty, MySpace přihlašování, Google účty a podobné, kterými se však nebudeme zabývat. Technologicky to jsou stále variace na předchozí metody, jen s tím rozdílem, že onou autoritou je jednou Facebook, jednou Yahoo a jindy zase Google. Bez ohledu na to, jaký hype je v posledních dnech okolo Facebook Connect, se domnívám, že nebude mít větší význam, a že podobně jako ostatní poskytovatelé brzy nabídne nějakou variantu na OpenID přihlášení.

Omlouvám se všem „věcí znalým“ za poněkud obšírnější úvod, který byl však nezbytný. V příštím pokračování už začneme s popisem OpenID z technologického hlediska a dostane se už na praktičtější věci. Ovšem ještě před tím probereme jednu oblast, a tou jsou:

Pověry a mýty

Tato kapitola čerpá z komentářů, které jsem posbíral u různých článků na toto téma v poslední době po českém internetu. Pověr, mýtů, předsudků a nedorozumění je kolem OpenID a dalších metod tolik, že by vydaly na několik samostatných článků (ostatně jako u každé novinky). Proto bych se rád k některým vyjádřil.

Sledujeme i tebe
Live ID je vlastně OpenID…
Ne, není. Je to jiná služba a identifikátory nejsou zaměnitelné. Microsoft ale přislíbil konvergenci k OpenID, nechme se překvapit.
U OpenID o mně ví každý všechny údaje
Ne, u OpenID můžete přesně určit, jaké vaše údaje o vás kdo dostane a na jak dlouho.
OpenID je nebezpečné, co když mi někdo odposlechne heslo…?
OpenID poskytovatel nemusí být zabezpečen jen jménem a heslem. Může (mnohem snáz než cílové aplikace) fungovat přes SSL, rozdávat hardwarové klíče, „kalkulačky“, může pro ověření posílat SMSky apod., záleží jen na poskytovateli. V úhrnu tak může být OpenID mnohem bezpečnější, protože nabídne vyšší úroveň zabezpečení na VŠECH webech, kam se s OpenID budete přihlašovat, ne jen tam, kde to implementovali.
OpenID je zlo, protože mě mohou sledovat…
Ano, vaše OpenID je dohledatelné na různých službách, což je ale třeba váš e-mail nebo vaše IP adresa taky. Pokud nechcete být sledován, tak jistě máte jednorázové e-mailové schránky, co pět minut měněnou IP, neustále promazávané cookies a spíte v alobalové krychli, takže pro vás nebude jistě obtížné generovat jednorázové OpenID identity pro každou službu zvlášť.
Snižuje to anonymitu na internetu
Ano, do jisté míry ano. Neviděl bych to však jednoznačně jako negativum.
Těch metod je moc a jsou nekompatibilní, takže to přidělává zbytečnou práci…
Není nutné se věnovat všem metodám. Pokud mohu doporučit, zvolte OpenID. Ostatní poskytovatelé (Google, Yahoo, Microsoft) k němu pomalu přecházejí a nabízejí wrappery pro své účty. Navíc můžete použít „přihlašovací proxy“ RPX, která vám poskytne jednotné přihlašování s účty u nejrůznějších služeb.
Shibboleth je mnohem lepší (modernější, progresivnější), vybraly si ho VŠ, tyhle ostatní metody jsou jen parodie, nemá smysl se jimi zabývat.
Shibboleth je především něco jiného. Shibboleth řeší autentizaci i autorizaci, tedy nejen identitu, ale i oprávnění. Shibboleth je vázán na „instituce“ a role jednotlivých uživatelů. Ve světě mimo instituce ztrácí svou zásadní výhodu a stává se z něj pouze těžkopádná autentizační metoda s mnoha nevýhodami – což poznáte v okamžiku, kdy z VŠ odejdete a váš Shibboleth účet skončí. Dovolil bych si stejně nekorektně oponovat, a to poukazem na Google Trends: OpenID vs Shibboleth, což snad jako zdůvodnění, proč se nebavit o Shibboleth, sta­čí.

Pokud se na váš (oblíbený) blud nedostalo, tak jej napište do komentářů, bude-li pěkný, jistě dostane prostor příště!

Používáte některou z uvedených metod?

Začal programovat v roce 1984 s programovatelnou kalkulačkou. Pokračoval k BASICu, assembleru Z80, Forthu, Pascalu, Céčku, dalším assemblerům, před časem v PHP a teď by rád neprogramoval a radši se věnoval starým počítačům.

Komentáře: 10

Přehled komentářů

Jury.Z OpenID
Boris Re: OpenID
H0nzy Live ID dodatek
Martin Malý Re: Live ID dodatek
ivan akademicky?
Martin Hassman Re: akademicky?
Milan Šorm Re: akademicky?
cerw CAS?
commanche Shibboleth
Makub Re: Shibboleth
Zdroj: https://www.zdrojak.cz/?p=2900