OpenID je otevřený standardní decentralizovaný autentizační systém , který uživateli poskytuje možnost vytvořit si jeden účet pro autentizaci na různých nesouvisejících internetových zdrojích pomocí služeb třetích stran [1] .
Základní funkcí OpenID je poskytovat přenosnou digitální identitu zaměřenou na klienta pro bezplatné a decentralizované použití [2] .
Standard popisuje proces komunikace mezi internetovými zdroji (relying parties) vyžadujícími autentizaci a poskytovateli OpenID (OpenID Providers). Existuje několik poskytovatelů OpenID, kteří hostují adresy URL OpenID [3] . Ověření OpenID používá Google , Yahoo! , AOL , LiveJournal , MySpace , IBM [4] , Steam [5] a Orange . Rozšíření standardu (OpenID Attribute Exchange) usnadňuje přenos uživatelských dat, jako je jméno nebo pohlaví, od poskytovatele OpenID do internetového zdroje [6] .
K prosinci 2009 existovalo více než 1 miliarda účtů OpenID a asi 9 milionů webů podporujících technologii OpenID [7] .
Aktuální verze standardu OpenID Connect 1.0 byla vydána v únoru 2014 a byla aktualizována v listopadu 2014 [8] [9] .
V roce 2005 navrhl Brad Fitzpatrick , známý jako tvůrce LiveJournalu , který v té době pracoval pro Six Apart , internetové komunitě koncept jediného účtu pro různé internetové zdroje [10] . Navrhl ponechat svůj účet na jednom serveru a používat tento účet při registraci na jiných internetových zdrojích. Protokol se původně jmenoval Yadis (zkratka pro „Ještě další distribuovaný systém identity“) a svůj název OpenID získal poté, co Six Apart pro svůj projekt zaregistroval název domény openid.net. Brzy byla na LiveJournal implementována podpora pro OpenID a tato technologie rychle upoutala pozornost internetové komunity [11] .
V roce 2006 byla vytvořena první specifikace OpenID - OpenID Authentication 1.1 [12] .
Dne 5. prosince 2007 Sun Microsystems , VeriSign a řada společností zapojených do vývoje OpenID zveřejnily specifikaci OpenID 2.0 a oficiálně prohlásily, že nebudou vznášet nároky, pokud někdo používá technologii OpenID, ledaže by se jednalo o činy osoby používající technologie jsou namířeny proti implementaci technologie nebo vlastnictví technologie [13] .
Ochranná známka OpenID byla zaregistrována v USA v březnu 2008 [14] .
Na webu je například example.compřihlašovací formulář s jediným vstupním polem pro identifikátor OpenID. Často se vedle tohoto pole nachází logo OpenID. Pro autorizaci na tomto webu pomocí vašeho identifikátoru, například pupkin.openid-provider.orgregistrovaného u poskytovatele OpenID openid-provider.org, musí uživatel zadat svůj identifikátor do přihlašovacího formuláře nabízeného na webu. Stránka pak example.com uživatele přesměruje na stránky poskytovatele. Stránky poskytovatele žádají uživatele o potvrzení, zda chce uživatel skutečně poskytnout informace o svém účtu. Pokud uživatel souhlasí, pak stránky poskytovatele přesměrují uživatele zpět na stránky závislé strany. Při zpětném přesměrování předá poskytovatel informace o uživateli spoléhající se straně [15] .
Poskytovatelem OpenID je například LiveJournal , takže jako identifikátor OpenID můžete použít adresu svého deníku v LiveJournalu [16] .
OpenID umožňuje uživateli používat jeden účet registrovaný u poskytovatele OpenID na více jiných webech. Uživatel si může vybrat, jaké informace bude webu poskytovat. Výměna profilových informací nebo jiných informací nepopsaných ve specifikaci OpenID může být realizována přes protokol OpenID pomocí doplňkových služeb. K tomu je poskytován mechanismus rozšíření protokolu oficiálně podporovaný protokolem OpenID [17] .
Existuje možnost delegovat OpenID. To znamená, že vlastník určitého doménového jména jej může použít jako synonymum (alias) k již existujícímu OpenID identifikátoru získanému od libovolného poskytovatele OpenID. Chcete-li to provést, musíte na stránku použitou jako delegát přidat několik meta značek [18] .
Systém OpenID je decentralizovaný systém. To znamená, že neexistuje žádná centrální služba nebo organizace, která by umožňovala používání systému nebo registrovala internetové zdroje nebo poskytovatele OpenID, kteří vyžadují autentizaci OpenID. Koncový uživatel si může svobodně vybrat, kterého poskytovatele OpenID použije, a ponechat si identifikátor, pokud se poskytovatel OpenID změní [1] .
Standard nevyžaduje JavaScript ani moderní prohlížeče , ale autentizační schéma je dobře kompatibilní s přístupem AJAX . To znamená, že koncový uživatel se může ověřit na webu, aniž by opustil aktuální stránku. V tomto případě bude komunikace internetového zdroje s poskytovatelem OpenID probíhat na pozadí. OpenID autentizace využívá pouze standardní HTTP (S) požadavky a odpovědi, takže standard nevyžaduje, aby uživatel instaloval další software . OpenID nevyžaduje používání souborů cookie ani jiných mechanismů správy relací. Různá rozšíření mohou usnadnit používání OpenID, ale nejsou vyžadována pro použití standardu [2] .
OpenID Foundation (OIDF) je nezisková organizace, která byla založena v červnu 2007 za účelem správy autorských práv, ochranných známek, marketingu a dalších aktivit souvisejících s komunitou OpenID [20] .
Správní radu organizace tvoří 4 členové komunity a 8 firemních členů [21] :
Členové komunity
• John Bradley ( nezávislý ) (eng. John Bradley) • George Fletcher (AOL) (anglicky George Fletcher) • Mike Jones ( Microsoft ) (eng. Mike Jones) • Nat Sakimura ( Nomura Research Institute ) |
Firemní členové
• Google – Adam Dawes • Microsoft – Anthony Nadalin (eng. Anthony Nadalin) • Ping Identity – Pamela Dingle (angl. Pamela Dingle) • Symantec – Brian Berliner • Verizon – Bjorn Helm (angl. Bjorn Hjelm) • Oracle – Prateek Mishra • VMware – Ashish Jain • Ministerstvo zdravotnictví a sociálních služeb USA – Debbie Bucci |
Ve Spojených státech si OpenID Foundation v březnu 2008 zaregistrovala ochrannou známku OpenID. To bylo dříve vlastněno NetMesh Inc. V Evropě byla 31. srpna 2007 ochranná známka OpenID zaregistrována nadací OpenID Europe Foundation [14] .
OpenID autentizace poskytuje koncovému uživateli způsob, jak prokázat svou identitu na webu, aniž by zadával své heslo, e-mail nebo jiné informace, které nechce uvádět na tomto zdroji. Specifikace OpenID 1.1 neposkytuje žádný mechanismus pro výměnu informací o profilu koncového uživatele [18] .
Hlavním rozdílem mezi OpenID 2.0 a OpenID 1.1 pro koncového uživatele je možnost použít XRI jako identifikátor. OpenID 2.0, na rozdíl od OpenID 1.1, podporuje algoritmus HMAC-SHA256 – 256bitový ( [RFC2104 ] digitální podpis, díky kterému je ověřování zpráv OpenID bezpečnější. OpenID 2.0 zavedlo rozšiřující mechanismus, který umožňuje přidávat další informace k žádostem o autentizaci a odpovědi [22] .
OpenID 2.0 je kompatibilní s OpenID 1.1 [23] .
Třetí generace technologie OpenID, což je autentizační doplněk nad autorizačním protokolem OAuth 2.0 . OpenID Connect umožňuje internetovým zdrojům ověřit identitu uživatele na základě autentizace prováděné autorizačním serverem. Pro práci se používá RESTful API popsané ve specifikaci. OpenID Connect také definuje další mechanismy pro silné šifrování a digitální podpis. Standard umožňuje další funkce, jako je správa relací a zjišťování poskytovatelů OpenID [8] .
Zatímco integrace standardu OAuth 1.0a s OpenID 2.0 vyžaduje rozšíření, OpenID Connect již integruje možnosti OAuth 2.0 se samotným protokolem [24] .
Někteří výzkumníci se domnívají, že protokol OpenID je zranitelný vůči phishingovým útokům , kdy útočníci namísto poskytovatele nasměrují koncového uživatele na web s podobným designem. Pokud si uživatel záměny nevšimne, pak zadá své autentizační údaje (login, heslo). Díky tomu se útočníci mohou prezentovat internetovým zdrojům jako daný uživatel a získat přístup k jeho informacím uloženým na těchto zdrojích [25] .
Phishingové útoky jsou také možné, když je web, který podporuje autorizaci OpenID, falešný za účelem získání informací o uživateli od poskytovatele. Pomocí zranitelnosti „stealth redirect“ mohou útočníci vytvořit v uživateli iluzi, že informace požaduje skutečný web [26] .
OpenID neobsahuje mechanismy zabraňující phishingovým útokům. Odpovědnost za phishingové útoky se přesouvá na poskytovatele OpenID [27] .
K ochraně před phishingem mohou uživatelé používat další software, jako je Identity Selector společnosti Microsoft [28] . Existují i řešení, která nevyžadují instalaci dalšího softwaru, jako je BeamAuth, který ke své práci využívá záložky prohlížeče [29] .
Pokud se k zabezpečení spojení mezi uživatelem a poskytovatelem OpenID nepoužívají protokoly TLS/SSL , dojde k chybě zabezpečení v poslední fázi ověřování. Pro přesměrování uživatele od sebe na internetovou službu poskytovatel zašle uživateli speciální URL. Problém je v tom, že kdokoli, kdo může získat tuto adresu URL (například přičichnutím ke kroucené dvoulinkě), ji může znovu přehrát a přistupovat na stránku jako uživatel. Někteří poskytovatelé používají k ochraně před tímto útokem jednorázový kód ( Nonce ), který umožňuje použít danou URL pouze jednou. Neřešení funguje pouze v případě, že uživatel nejprve použije adresu URL. Útočník, který naslouchá na komunikačním kanálu a nachází se mezi uživatelem a ISP, však může získat adresu URL a okamžitě ukončit TCP spojení uživatele a poté provést útok. Jednorázové kódy tedy chrání pouze před pasivními útočníky, ale nemohou zabránit útokům od aktivního útočníka. Použití TLS/SSL v procesu autentizace toto riziko eliminuje [30] .
Uživatel může změnit poskytovatele OpenID, čímž uvolní svůj identifikátor od předchozího poskytovatele. Nový uživatel může toto ID převzít a používat ho na stejných stránkách jako předchozí uživatel. To umožní novému uživateli přístup ke všem informacím spojeným s tímto ID. Tato situace může nastat náhodně – není nutné, aby nový uživatel byl útočník a chtěl se dostat ke specifikovaným informacím [31] .
Ve specifikaci OpenID 2.0 se pro řešení problému opětovného použití identifikátoru doporučuje používat fragmenty – k identifikátoru je nutné přidat fragment jedinečný pro každého uživatele [19] .
V roce 2012 výzkumníci publikovali článek popisující dvě zranitelnosti v OpenID. Obě zranitelnosti umožňují útočníkovi získat přístup k účtu oběti [32] .
První chyba zabezpečení používá OpenID Attribute Exchange. Problém je v tom, že některé internetové služby neověřují data odeslaná přes Attribute Exchange. Pokud se Attribute Exchange používá k předávání informací o uživateli (například pohlaví), které jsou odolné proti neoprávněné manipulaci, nelze tuto chybu zabezpečení zneužít. Attribute Exchange lze ale použít i pro přenos např. emailu uživatele. Útočník se pokusí ověřit na stránce závislé strany a do odpovědi přidá poskytovatele e-mailu oběti. Pokud spoléhající strana neověří pravost těchto informací, bude útočník identifikován jako oběť. Tímto způsobem získáte přístup k jakémukoli registrovanému účtu. Podle zprávy výzkumníků bylo tímto útokem zasaženo mnoho populárních webových stránek, včetně Yahoo! Pošta [33] .
Druhá zranitelnost souvisí s chybou na straně poskytovatele a také umožňuje přístup k účtu na webu závislé strany. Odpověď poskytovatele obsahuje pole openid.ext1.value.email , které spoléhající strana považuje za e-mail uživatele. Typ dat, která do tohoto pole poskytovatel přidává, však může ovládat útočník – požadavek na poskytovatele obsahuje pole typ.email s odkazem na schéma popisující toto pole. Útočník může přidat odkaz na schéma popisující uživatelské jméno v type.email . Pokud se útočník může zaregistrovat na webu poskytovatele pod jménem, například [email protected], pak poskytovatel toto jméno přidá do pole openid.ext1.value.email a spoléhající strana bude předpokládat, že účet s tímto e-mail patří útočníkovi. Implementace Google a Paypal byly označeny jako zranitelné [33] .
OpenID zveřejnilo zprávy o obou zranitelnostech a byly vydány aktualizace, které je opravují [34] [35] .
Protokoly ověřování a výměny klíčů | |
---|---|
Se symetrickými algoritmy | |
Se symetrickými a asymetrickými algoritmy | |
Protokoly a služby používané na internetu |