Mikä on OAuth (Open Authorization) ja miksi se on tärkeää?

Tietomurrot ovat yksi suurimmista uhkista nopeasti nousevassa ja teknologisesti edistyvässä sukupolvessa. Tietomurto voi tuhota yrityksiä, maineita ja jopa hallituksia. Lisäksi kriittiset tiedot voidaan ”varastaa”, kun yksi haavoittuva, etuoikeutettu tili joutuu luvattomien tahojen komprometoimaksi. Digitaalinen maailma tuottaa, jakaa, tallentaa enemmän tietoa, ja digitaaliset tilit ovat yleisiä.

Monet internetin palvelut on integroitu ja suunniteltu toimimaan keskenään. Kuitenkin palvelutilien käyttäminen sovellusten ja verkkosivustojen käyttöön liittyy vaaralliseen käytäntöön, jossa varattuja tunnistetietoja säilytetään pääasiassa ilman monivaiheista todennusta (MFA) ja altistaa yksityiset tiedot vaarantumiselle.

Yksityisyyden ja tietoturvan merkitys on uskomaton. Tämän seurauksena avoimet turvallisuusstandardit, kuten OAuth, suojaavat henkilökohtaisia ja yksityisiä tietoja tiedonsiirron aikana kolmansien osapuolten välillä. Internet Engineering Task Force (IETF) toimesta koottu OAuth-standardi suojaa resurssien omistajia verkossa käytettäessä kolmannen osapuolen palveluita. Jatka lukemista saadaksesi lisätietoja OAuth:sta.

## Mikä on OAuth?

OAuth (Open Authorization) on avoin standardikehys, joka sallii kolmannen osapuolen pääsyn todennettuihin käyttäjätietoihin tai resursseihin palvelimilla ja palveluissa (kuten verkkosivustoilla ja sovelluksissa) jakamatta heidän kirjautumistietojaan. Se tarjoaa turvallisen valtuutetun pääsyn palvelinresursseihin resurssin omistajan puolesta käyttäen token-pohjaista todennusta. Kuitenkin, todennusprotokolla varmistaa käyttäjän identiteetin käyttäen salasanoja, puhelinta tai biometristä tunnistautumista ja sitä ei tulisi sekoittaa Open Authorization -protokollaan.

Toisin kuin autentikointiprotokollat kuten OpenID, OAuth valtuuttaa rajoitetun pääsyn resursseihin onnistuneen autentikoinnin jälkeen. Yritykset kuten Facebook, Google, Amazon, Twitter, Paypal, Netflix ja Microsoft sallivat käyttäjiensä jakaa tilin tietoja kolmansien osapuolien verkkosivustojen ja sovellusten kanssa OAuthin kautta.

OAuth:n erillinen todennus- ja valtuutusstandardi suojaa käyttäjän tietoja antamalla pääsyn resursseihin paljastamatta käyttäjän henkilöllisyyttä tai tunnistetietoja. Näin ollen kolmannen osapuolen palvelut voivat pyytää käyttäjän puolesta pääsyä ilman salasanojen ja muiden arkaluontoisten tietojen käyttöä.

OAuth-mekanismi noudattaa valtuutusvirtaa, jossa on kolme keskeistä komponenttia: tarjoaja, omistaja/käyttäjä ja asiakas/kuluttaja. OAuth-tarjoaja on valtuutuspalvelin ja OAuthin päämoottori. Resurssipalvelimet (API:t kuten Facebook tai Google) käyttävät OAuthia yhdistääkseen kolmannen osapuolen verkkosivustoon tai sovellukseen käyttäjän puolesta ja luvalla. Tarjoaja antaa asiakaspalvelulle pääsyn valtuutustokenin tietojen valtuuttamiseen, joita resurssipalvelin isännöi. Käyttäjä omistaa tiedot/tiedon resurssipalvelimessa. Käyttäjän kirjautuminen vahvistaa tiedon jakamisen. Asiakas on verkkosivusto tai sovellus, joka vaatii pääsyä käyttäjän tietoihin tai resursseihin.

Se saa pääsyn resurssipalvelimelle käyttöoikeustunnuksella. Lopulta asiakasohjelma vaatii rekisteröitymisen OAuthiin, jotta valtuutus voi edetä. Koko OAuth-prosessi vaatii useita hyväksyntöjä ja kaikki kolme komponenttia valtuutettua tapahtumaa/pääsyä varten.

## OAuth 1.0

Käyttäjätietojen turvallisuus on olennaisen tärkeää tiedon jakamisen, tallentamisen ja hyödyntämisen lisääntyessä. Siksi on tärkeää integroida turvalliset valtuutusstandardit sovelluksiin ja verkkopalveluihin tietomurtojen estämiseksi. OAuth tunnustetaan turvallisimmaksi tietojenjakostandardiksi verkkosivustoille ja API:lle. OAuth-standardi tukee useita virtauksia erilaisten asiakassovellusten valtuutusskenaarioiden ja eri laitteiden kyvykkyyksien käsittelemiseksi. Se tukee palvelimelta palvelimelle -sovelluksia, web-sovelluksia, mobiilisovelluksia, verkkosivustoja, konsoleita tai TV:tä.

OAuth 1.0 -protokolla julkaistiin vuonna 2010 korvaamaan avoimien standardien puuttuminen API-käyttöoikeuksien delegointiin. Se julkaistiin kuitenkin ensimmäisen kerran vuonna 2007 valtuutusmenetelmänä Twitter-sovellusliittymälle. IETF julkaisi OAuth 2.0:n kaksi vuotta myöhemmin parannellun ja täysin uuden valtuutusprotokollan. Se eroaa ensimmäisestä versiosta lisääntyneiden OAuth-virtojen, lyhytaikaisten tokenien ja taaksepäin yhteensopimattomuuden kanssa OAuth 1.0:n suhteen.

OAuth 1.0 käsitteli valtuutuksen digitaalisiin allekirjoituksiin perustuvalla kehyksellä. Se oli vahva ja turvallinen, ja suuret toimijat kuten Google ja Twitter tukivat ja ottivat sen käyttöön. Se vaati krypto-toteutusta ja krypto-yhteentoimivuutta, mikä teki siitä erittäin turvallisen. Kuitenkin, se on haastavaa kehittäjille toteuttaa ilman riittävää kokemusta kryptografiasta ja avainhallintakyvyistä.

OAuth on yleisesti ottaen valtuutusprotokolla, joka tarjoaa luvan, mutta ei ole autentikointiprotokolla kuten OpenID – identiteettikerros, joka on rakennettu OAuth 2.0 -protokollan päälle. Vaikka monet sovellukset käyttävät OAuth 2.0:aa autentikointiin ja valtuutukseen, se on erikoistunut vain delegoituun valtuutukseen.

## OAuth 2.0 -kehys 

OAuth 2.0 -kehys on alan standardi protokolla valtuutukseen. Alkuperäisen Open Authorization -protokollan uudelleenkirjoitus tarjoaa kattavamman ratkaisun nykyaikaisille web- ja ei-web-asiakkaille. Kehys sisältää määrittelyjä, jotka suojaavat käyttäjän tietoja entistä paremmin. Näihin kuuluvat:

### Tokenin Vanheneminen

OAuth-tunnukset ovat yleensä peruuttamattomia, ja versiossa 1.0 ne eivät vanhene. Tämän seurauksena tunnukset eivät ole täysin turvallisia ja ovat alttiita uhkille. Pääsy tunnukseen tai varmennussalaisuuteen mahdollistaa luvattoman asiakkaan/käyttäjän, kuten hakkerien ja haitallisten sivustojen, tekemään luvattomia pyyntöjä ja pääsemään käsiksi käyttäjien tunnistetietoihin ja henkilökohtaisiin tietoihin. OAuth 2.0 -kehys voittaa tämän heikkouden vanhenevilla tunnuksilla. Kun pääsytunnus vanhenee, myös pääsy sovellukseen päättyy, ellei toista pääsytunnusta luoda uudelleen virkistyskierron kautta. OAuth 2.0 luo ”lyhytaikaisia” pääsytunnuksia. Ne kestävät istunnon pituudesta pariin viikkoon, mutta käyttävät virkistystunnuksia hankkiakseen uuden pääsytunnuksen sen sijaan, että käyttäjän täytyisi toistaa koko prosessi sovelluksen uudelleenvaltuuttamiseksi.

### Asiakaspuolen kehitys

OAuth 2.0 ottaa huomioon sekä verkkosovellukset että ei-verkkosovellukset. OAuth 2.0 tarjoaa erityisiä valtuutusvirtoja verkkosovelluksille, työpöytäsovelluksille, matkapuhelimille, TV:lle/konsoleille ja selainpohjaisille sovelluksille, kuten API-pohjaisille palveluille. Sen toteuttaminen, käyttö ja vahvan tunnistautumisen tarjoaminen on myös paljon helpompaa.

### Tehtävien eriyttäminen

OAuth 2.0 erottaa resurssien toimituksen ja käyttäjän valtuutuksen käsittelyn toisistaan. Fyysisesti erilliset palvelimet tai jopa eri verkkotunnukset voivat käsitellä molempia rooleja. Näin ollen järjestelmän kunkin osan skaalautuvuus on itsenäistä. Täten valtuutuspalvelin vaatii asiakkaan ID:n ja salaisuuden, mutta API-palvelin hyväksyy vain pääsytunnukset. Tämän seurauksena tietokanta välttää datan jakamisen API-palvelimien kanssa. Nämä tekevät uudesta standardista soveltuvamman suurille yrityksille. Tämä johtuu siitä, että se mahdollistaa näiden järjestelmien tapahtuvan itsenäisesti, eri tiimien toimesta, ja eri aikatauluissa.

### Bearer-tunnukset ja poistetut kryptografiset vaatimukset

OAuth luo tasapainon APIen helpon käytön ja hyvien turvallisuuskäytäntöjen välille. Bearer-tokenin käyttö yksinkertaistaa OAuthin toteutusta poistamalla kryptografisten allekirjoitusten monimutkaisuuden OAuth 1.0 -standardeissa. OAuth 2.0 vaatii pyynnössä vain itse tokenin.

### Kaksivaiheinen tunnistautuminen

OAuth käytti vähemmän turvallista yksivaiheista todennusta tilitietojen paljastamiseen. Yksivaiheinen todennus voitiin murtaa helposti, koska hakkerien tarvitsi saada vain yksi tieto päästäkseen käsiksi. OAuth 2.0 vaatii kuitenkin useampia todennustasoja käyttäjän pääsyn sallimiseksi. Se käyttää tokenisointia ja kaksivaiheista luonnetta käyttäjätilien turvaamiseen.

## Miksi OAuth on tärkeä?

Monimutkaiset web-sovellukset, mobiilisovellukset ja ainutlaatuiset liiketoimintamallit ovat nousseet esiin. Käyttötapauksien kehittyminen uusiin skenaarioihin tekee perinteisistä valtuutuksen mekanismeista riittämättömiä. Monet näistä skenaarioista vaativat palvelimen tai asiakasohjelman kommunikoimaan (hyödyntämään) useiden palvelimien kanssa suorittaakseen pyynnön tai toiminnon. Tämän seurauksena tarve tarjota uusia ratkaisuja datan jakamiseen ja identiteetin federoimiseen useiden luotettujen osapuolten kesken on voimistunut. OAuth on tehokas turvallisuuskehys, joka pyrkii ratkaisemaan valtuutukseen liittyvät haasteet. Siksi on tärkeää integroida OAuth sovelluksiin ja verkkosivustoihin. Tässä on syytä:

### Se suojaa palvelintietoja myös jaettaessa

OAuth-protokolla riippuu SSL:stä (Secure Sockets Layer) varmistaakseen, että tiedot verkkopalvelimen ja selaimen välillä pysyvät yksityisinä. Itse asiassa se on tärkeä osa minkä tahansa organisaation verkkosivuston todennusta, koska se suojaa käyttäjien tunnistetietoja.

### Tokenisointi sallii vain rajoitetun pääsyn käyttäjätietoihin

Arkaluontoiset tiedot, kuten luottokorttitiedot ja lääkintärekisterit, saavat kukin omat tunniste-ID:nsä ja tallennetaan etänä. Kauppiaat saavat nämä tunnukset, eivät varsinaisia tietoja. Näin ollen jaettu tieto pysyy yksityisenä. Kolmannet osapuolet, joilla ei vielä ole pääsyä heidän lääkintärekistereihinsä, salasanoihinsa tai luottokorttinumeroihinsa, voivat vahvistaa tunnuksen transaktioita varten.

### OAuth mahdollistaa yksittäisen kirjautumisen (SSO) käytön

SSO varmistaa helpon pääsyn, hallitsee riskejä ja antaa käyttäjille hallinnan heidän tietoihinsa. Se parantaa käyttäjien moraalia ja tuottavuutta mahdollistamalla pääsyn useisiin sovelluksiin vain yhdellä kirjautumistietojen sarjalla. Se yhdistää käyttäjätiedot ja tekee kirjautumisprosessista käyttäjille sujuvampaa. Tämä poistaa tarpeen hallita lukuisia salasanoja tai toistaa samaa tietoa käytettäessä online-palveluita.

### Se antaa käyttäjille mahdollisuuden hallita, mitä kolmannen osapuolen palvelut voivat tehdä heidän resursseilleen

Perinteiset prosessit vaativat tunnusten jakamista kolmansien osapuolten verkkosivustojen kanssa tiedon jakamiseksi. OAuth kuitenkin rajoittaa kolmansia osapuolia ja estää niitä suorittamasta tiettyjä ilkeitä toimintoja, kuten käyttäjäasetusten muuttamista tai käyttäjätunnusten muuttamista, sekä estää käyttäjän pääsyn tilille.

## Yhteenveto

OAuth (Open Authorization) suojaa käyttäjätietoja mahdollisimman paljon tietomurroilta. Ensimmäinen protokolla OAuth 1.0 kirjoitettiin uudelleen muotoon OAuth 2.0. Kyberturvallisuusalalla OAuth 2.0 on laajalti hyväksytty turvallisimpana vaihtoehtona valtuutukseen. Vaikka täysin varmaa valtuutusjärjestelmää ei olekaan, OAuth on yksi parhaista. Sivustot kuten Facebook, Twitter, LinkedIn, Google, Amazon, Instagram ja GitHub käyttävät OAuthia ensisijaisena teknologianaan autentikointiin ja valtuutukseen.