OpenID on avoimen standardin hajautettu todennusjärjestelmä , joka tarjoaa käyttäjälle mahdollisuuden luoda yhden tilin todennusta varten useissa toisiinsa liittyvissä Internet-resursseissa käyttämällä kolmannen osapuolen palveluita [1] .
OpenID:n ydintehtävä on tarjota kannettava, asiakaslähtöinen digitaalinen identiteetti vapaaseen ja hajautettuun käyttöön [2] .
Standardi kuvaa autentikointia vaativien Internet-resurssien (Relying Parties) ja OpenID-palveluntarjoajien (OpenID Providers) välisen viestintäprosessin. On olemassa useita OpenID-palveluntarjoajia, jotka isännöivät OpenID- URL- osoitteita [3] . OpenID-todennusta käyttää Google , Yahoo! , AOL , LiveJournal , MySpace , IBM [4] , Steam [5] ja Orange . Standardin laajennus (OpenID Attribute Exchange) helpottaa käyttäjätietojen, kuten nimen tai sukupuolen, siirtämistä OpenID-palveluntarjoajalta Internet-resurssille [6] .
Joulukuussa 2009 OpenID-tiliä oli yli miljardi ja OpenID-teknologiaa tukevia sivustoja noin 9 miljoonaa [7] .
Standardin nykyinen versio, OpenID Connect 1.0, julkaistiin helmikuussa 2014 ja päivitettiin marraskuussa 2014 [8] [9] .
Vuonna 2005 Brad Fitzpatrick , joka tunnettiin LiveJournalin luojana ja joka tuolloin työskenteli Six Apartissa , ehdotti Internet-yhteisölle yhden tilin konseptia eri Internet-resursseille [10] . Hän ehdotti tilinsä pitämistä yhdellä palvelimella ja tämän tilin käyttöä rekisteröityessään muihin Internet-resursseihin. Alun perin Yadis-nimellä (lyhenne sanoista "Yet another distributed identity system") protokolla sai nimensä OpenID, kun Six Apart rekisteröi openid.net-verkkotunnuksen projektilleen. Pian OpenID-tuki otettiin käyttöön LiveJournalissa, ja tämä tekniikka herätti nopeasti Internet-yhteisön huomion [11] .
Vuonna 2006 luotiin ensimmäinen OpenID-spesifikaatio – OpenID Authentication 1.1 [12] .
5. joulukuuta 2007 Sun Microsystems , VeriSign ja useat OpenID:n kehittämiseen osallistuvat yritykset julkaisivat OpenID 2.0 -spesifikaatiot ja ilmoittivat virallisesti, että ne eivät nostaisi vaatimuksia, jos joku käyttää OpenID-tekniikkaa, elleivät käyttävän henkilön toimet ole. teknologia on suunnattu teknologian käyttöönottoa tai teknologian omistusta vastaan [13] .
OpenID-tavaramerkki rekisteröitiin Yhdysvalloissa maaliskuussa 2008 [14] .
Sivustolla on esimerkiksi example.comkirjautumislomake, jossa on yksi syöttökenttä OpenID-tunnisteelle. Usein tämän kentän vieressä on OpenID-logo. Voidakseen valtuuttaa tällä sivustolla käyttämällä tunnistettasi, esimerkiksi pupkin.openid-provider.orgrekisteröityneenä OpenID-palveluntarjoajalle openid-provider.org, käyttäjän on syötettävä tunnuksensa sivustolla tarjottavaan kirjautumislomakkeeseen. Sivusto example.com ohjaa sitten käyttäjän palveluntarjoajan sivustolle. Palveluntarjoajan sivusto pyytää käyttäjää vahvistamaan, haluaako käyttäjä todella antaa tietoja tilistään. Jos käyttäjä suostuu, palveluntarjoajan sivusto uudelleenohjaa käyttäjän takaisin riippuvaisen osapuolen sivustolle. Käänteisessä uudelleenohjauksessa palveluntarjoaja välittää käyttäjätiedot luottavalle osapuolelle [15] .
OpenID-palveluntarjoaja on esimerkiksi LiveJournal , joten voit käyttää LiveJournalissa olevaa päiväkirjasi osoitetta OpenID-tunnisteena [16] .
OpenID sallii käyttäjän käyttää yhtä OpenID-palveluntarjoajalle rekisteröityä tiliä useilla muilla sivustoilla. Käyttäjä voi valita, mitä tietoja hän antaa sivustolle. Profiilitietojen tai muun OpenID-spesifikaatiossa kuvailemattoman tiedon vaihto voidaan toteuttaa OpenID-protokollan kautta lisäpalveluilla. Tätä varten tarjotaan OpenID-protokollan [17] virallisesti tukema protokollalaajennusmekanismi .
On mahdollisuus delegoida OpenID. Tämä tarkoittaa, että tietyn verkkotunnuksen omistaja voi käyttää sitä synonyymina (aliaksena) jo olemassa olevalle OpenID-tunnisteelle, joka on hankittu miltä tahansa OpenID-palveluntarjoajalta. Tätä varten sinun on lisättävä muutama sisällönkuvauskenttä sivulle, jota käytetään edustajana [18] .
OpenID-järjestelmä on hajautettu järjestelmä. Tämä tarkoittaa, että ei ole olemassa keskuspalvelua tai organisaatiota, joka sallisi järjestelmän käytön tai rekisteröi Internet-resursseja tai OpenID-todennusta vaativia OpenID-palveluntarjoajia. Loppukäyttäjä voi vapaasti valita, mitä OpenID-tarjoajaa käyttää, ja säilyttää tunnisteen, jos OpenID-palveluntarjoaja vaihtuu [1] .
Standardi ei vaadi JavaScriptiä tai nykyaikaisia selaimia , mutta todennusmalli on hyvin yhteensopiva AJAX -lähestymistavan kanssa . Tämä tarkoittaa, että loppukäyttäjä voi todentaa sivuston poistumatta nykyiseltä sivulta. Tässä tapauksessa Internet-resurssin viestintä OpenID-palveluntarjoajan kanssa tapahtuu taustalla. OpenID-todennus käyttää vain tavallisia HTTP (S) -pyyntöjä ja -vastauksia, joten standardi ei vaadi käyttäjän asentamaan lisäohjelmistoja . OpenID ei vaadi evästeiden tai muiden istunnonhallintamekanismien käyttöä. Erilaiset laajennukset voivat helpottaa OpenID:n käyttöä, mutta niitä ei vaadita käyttämään standardia [2] .
OpenID Foundation (OIDF) on voittoa tavoittelematon organisaatio, joka perustettiin kesäkuussa 2007 hallinnoimaan tekijänoikeuksia, tavaramerkkejä, markkinointia ja muuta OpenID-yhteisöön liittyvää toimintaa [20] .
Järjestön hallitukseen kuuluu 4 yhteisön jäsentä ja 8 yhtiöjäsentä [21] :
yhteisön jäsenet
• John Bradley ( Independent ) (eng. John Bradley) • George Fletcher (AOL) (englanniksi George Fletcher) • Mike Jones ( Microsoft ) (eng. Mike Jones) • Nat Sakimura ( Nomura Research Institute ) |
Yrityksen jäsenet
• Google – Adam Dawes • Microsoft - Anthony Nadalin (eng. Anthony Nadalin) • Ping-identiteetti – Pamela Dingle (eng. Pamela Dingle) • Symantec - Brian Berliner • Verizon – Bjorn Helm (eng. Bjorn Hjelm) • Oracle - Prateek Mishra • VMware – Ashish Jain • Yhdysvaltain terveys- ja henkilöstöministeriö – Debbie Bucci |
Yhdysvalloissa maaliskuussa 2008 OpenID Foundation rekisteröi OpenID-tavaramerkin. Sen omisti aiemmin NetMesh Inc. OpenID Europe Foundation rekisteröi OpenID-tavaramerkin Euroopassa 31. elokuuta 2007 [14] .
OpenID-todennus tarjoaa loppukäyttäjälle tavan todistaa henkilöllisyytensä sivustolla ilman salasanaa, sähköpostiosoitetta tai muita tietoja, joita hän ei halua syöttää tähän resurssiin. OpenID 1.1 -spesifikaatio ei tarjoa mitään mekanismia loppukäyttäjäprofiilitietojen vaihtamiseen [18] .
Suurin ero OpenID 2.0:n ja OpenID 1.1:n välillä loppukäyttäjälle on kyky käyttää XRI:tä tunnisteena. OpenID 2.0, toisin kuin OpenID 1.1, tukee HMAC-SHA256-algoritmia - 256-bittistä ( [RFC2104 ] digitaalista allekirjoitusta, joka tekee OpenID-viestien todentamisesta turvallisempaa. OpenID 2.0 esitteli laajennusmekanismin, jonka avulla voit lisätä lisätietoja todennuspyyntöihin ja vastaukset [22] .
OpenID 2.0 on yhteensopiva OpenID 1.1:n kanssa [23] .
Kolmannen sukupolven OpenID-tekniikka, joka on todennuslisäosa OAuth 2.0 -valtuutusprotokollan yli . OpenID Connectin avulla Internet-resurssit voivat tarkistaa käyttäjän henkilöllisyyden valtuutuspalvelimen suorittaman todennuksen perusteella. Työssä käytetään spesifikaatiossa kuvattua RESTful API:ta. OpenID Connect määrittelee myös lisämekanismeja vahvaa salausta ja digitaalista allekirjoitusta varten. Standardi mahdollistaa lisäominaisuudet, kuten istunnonhallinnan ja OpenID-palveluntarjoajien löytämisen [8] .
Vaikka OAuth 1.0a -standardin integrointi OpenID 2.0:aan vaatii laajennuksen, OpenID Connect integroi jo OAuth 2.0 -ominaisuudet itse protokollaan [24] .
Jotkut tutkijat uskovat, että OpenID-protokolla on alttiina tietojenkalasteluhyökkäyksille , kun palveluntarjoajan sijaan hyökkääjät ohjaavat loppukäyttäjän samankaltaiselle sivustolle. Jos käyttäjä ei huomaa vaihtamista, hän syöttää todennustietonsa (kirjautumistunnus, salasana). Tämän seurauksena hyökkääjät voivat esiintyä Internet-resursseissa tiettynä käyttäjänä ja päästä käsiksi hänen näihin resursseihin tallennettuihin tietoihinsa [25] .
Tietojenkalasteluhyökkäykset ovat mahdollisia myös silloin, kun OpenID-valtuutusta tukeva sivusto väärennetään, jotta palveluntarjoajalta saataisiin tietoja käyttäjästä. "Stealth redirect" -haavoittuvuuden avulla hyökkääjät voivat luoda käyttäjälle illuusion, että oikea sivusto pyytää tietoja [26] .
OpenID ei sisällä mekanismeja tietojenkalasteluhyökkäysten estämiseksi. Vastuu tietojenkalasteluhyökkäyksistä on siirretty OpenID-palveluntarjoajille [27] .
Tietojenkalastelulta suojautumiseen käyttäjät voivat käyttää lisäohjelmistoja, kuten Microsoftin Identity Selector [28] . On myös ratkaisuja, jotka eivät vaadi lisäohjelmiston asentamista, kuten BeamAuth, joka käyttää työhönsä selaimen kirjanmerkkejä [29] .
Jos TLS/SSL -protokollia ei käytetä käyttäjän ja OpenID-palveluntarjoajan välisen yhteyden suojaamiseen, todennuksen viimeisessä vaiheessa ilmenee haavoittuvuus. Uudelleenohjatakseen käyttäjän itsestään Internet-palveluun palveluntarjoaja lähettää käyttäjälle erityisen URL-osoitteen. Ongelmana on, että kuka tahansa, joka saa tämän URL-osoitteen (esimerkiksi haistelemalla kierrettyä parikaapelia), voi toistaa sen uudelleen ja käyttää sivustoa käyttäjänä. Jotkut palveluntarjoajat suojaavat tätä hyökkäystä vastaan kertaluontoisella koodilla ( Nonce ), jonka avulla voit käyttää tiettyä URL-osoitetta vain kerran. Ei-ratkaisu toimii vain, jos käyttäjä käyttää URL-osoitetta ensin. Kuitenkin hyökkääjä, joka kuuntelee viestintäkanavaa ja on käyttäjän ja Internet-palveluntarjoajan välillä, voi saada URL-osoitteen ja katkaista välittömästi käyttäjän TCP-yhteyden ja suorittaa sitten hyökkäyksen. Näin ollen kertakäyttökoodit suojaavat vain passiivisia hyökkääjiä vastaan, mutta eivät voi estää aktiivisen hyökkääjän hyökkäyksiä. TLS/SSL:n käyttö todennusprosessissa eliminoi tämän riskin [30] .
Käyttäjä voi vaihtaa OpenID-palveluntarjoajaa ja vapauttaa siten tunnuksensa edellisestä palveluntarjoajasta. Uusi käyttäjä voi ottaa tämän tunnuksen haltuunsa ja käyttää sitä samoilla sivustoilla kuin edellinen käyttäjä. Tämä antaa uudelle käyttäjälle pääsyn kaikkiin kyseiseen tunnukseen liittyviin tietoihin. Tämä tilanne voi syntyä vahingossa – uuden käyttäjän ei tarvitse olla hyökkääjä ja haluaa päästä käsiksi määritettyihin tietoihin [31] .
OpenID 2.0 -spesifikaatiossa tunnisteen uudelleenkäytön ongelman ratkaisemiseksi suositellaan fragmenttien käyttöä - tunnisteeseen on lisättävä kullekin käyttäjälle yksilöllinen fragmentti [19] .
Vuonna 2012 tutkijat julkaisivat paperin, jossa kuvattiin kaksi OpenID:n haavoittuvuutta. Molemmat haavoittuvuudet antavat hyökkääjälle pääsyn uhrin tilille [32] .
Ensimmäinen haavoittuvuus käyttää OpenID-attribuuttien vaihtoa. Ongelmana on, että jotkin Internet-palvelut eivät vahvista Attribute Exchangen kautta lähetettyjä tietoja. Jos Attribute Exchangea käytetään käyttäjän tietojen (kuten sukupuolen) luvattomien tietojen välittämiseen, tätä haavoittuvuutta ei voida hyödyntää. Attribuuttien vaihtoa voidaan kuitenkin käyttää myös esimerkiksi käyttäjän sähköpostin siirtämiseen. Hyökkääjä yrittää todentaa riippuvaisen osapuolen sivuston ja lisää vastaukseen uhrin sähköpostipalvelun. Jos luottava osapuoli ei varmista näiden tietojen aitoutta, hyökkääjä tunnistetaan uhriksi. Tällä tavalla pääset mihin tahansa rekisteröityyn tiliin. Tutkijoiden raportin mukaan tämä hyökkäys vaikutti moniin suosittuihin verkkosivustoihin, mukaan lukien Yahoo! Sähköposti [33] .
Toinen haavoittuvuus liittyy virheeseen palveluntarjoajan puolella ja mahdollistaa myös pääsyn riippuvaisen osapuolen verkkosivustolla olevaan tiliin. Palveluntarjoajan vastaus sisältää openid.ext1.value.email- kentän , jota luottava osapuoli käsittelee käyttäjän sähköpostina. Hyökkääjä voi kuitenkin hallita palveluntarjoajan tähän kenttään lisäämien tietojen tyyppiä - palveluntarjoajalle osoitettu pyyntö sisältää type.email- kentän , jossa on linkki tätä kenttää kuvaavaan skeemaan. Hyökkääjä voi lisätä linkin malliin, joka kuvaa käyttäjänimen type.email -tiedostoon. Jos hyökkääjä voi rekisteröityä palveluntarjoajan verkkosivustolle nimellä, esimerkiksi [email protected], palveluntarjoaja lisää tämän nimen openid.ext1.value.email- kenttään ja luottavainen osapuoli olettaa, että tili, jolla on tämä sähköposti kuuluu hyökkääjälle. Googlen ja Paypalin toteutukset on tunnistettu haavoittuviksi [33] .
OpenID on julkaissut raportteja molemmista haavoittuvuuksista, ja niiden korjaamiseksi on julkaistu päivityksiä [34] [35] .
Todennus- ja avaintenvaihtoprotokollat | |
---|---|
Symmetrisillä algoritmeilla | |
Symmetrisillä ja epäsymmetrisillä algoritmeilla | |
Internetissä käytetyt protokollat ja palvelut |