OAuth: Kako funkcionira sigurna autorizacija bez dijeljenja lozinke
Vidjeli ste to bezbroj puta: „Prijava putem Googlea", „Nastavi s Facebookom" ili „Prijava putem Applea". Taj glatki klik na gumb jest OAuth u praksi. No što se zapravo događa iza kulisa — i zašto je to važno za vašu privatnost i sigurnost?
Što je OAuth
OAuth je kratica za Open Authorization. To je otvoreni standardni protokol — što znači da ga može implementirati svaka osoba — koji se bavi autorizacijom (što vam je dopušteno raditi), a ne autentifikacijom (dokazivanjem tko ste). Trenutna verzija, OAuth 2.0, koristi se na gotovo svakoj većoj platformi na internetu.
Jednostavno rečeno, OAuth vam omogućuje da jednoj aplikaciji date dopuštenje za pristup određenim podacima ili funkcijama u drugoj aplikaciji — bez ikakva predavanja lozinke. Vi zadržavate kontrolu nad onim što se dijeli, a aplikacija treće strane nikada ne vidi vaše vjerodajnice.
Kako OAuth funkcionira
Evo pojednostavljenog prikaza što se događa kada kliknete na „Prijava putem Googlea" u aplikaciji treće strane:
- Zatražite pristup. Kliknete gumb za prijavu, a aplikacija vas preusmjerava na Googleovu stranicu za prijavu.
- Izravno se autentificirate. Unosite svoje Google vjerodajnice na Googleovim vlastitim poslužiteljima — aplikacija treće strane ništa ne vidi.
- Dajete dopuštenje. Google vas pita želite li aplikaciji dopustiti pristup određenim podacima (poput vašeg imena i e-mail adrese). Vi to odobravate.
- Izdaje se token. Google šalje aplikaciji kratkoročni pristupni token — niz znakova koji djeluje poput privremenog ključa. Taj token ima definiran opseg (čemu može pristupiti) i rok trajanja.
- Aplikacija koristi token. Aplikacija predočuje taj token kada treba dohvatiti vaše podatke. Nikada joj nije potrebna vaša stvarna lozinka.
Ako naknadno opozovete pristup, token postaje nevažeći. Aplikacija treće strane odmah gubi svoja dopuštenja — bez ikakve promjene lozinke.
Zašto je OAuth važan za sigurnost
Osnovna sigurnosna prednost OAuth-a jest izolacija vjerodajnica. Ako aplikacija treće strane pretrpi povredu podataka, napadači u najgorem slučaju dobivaju istekli pristupni token — a ne vašu stvarnu Google ili Apple lozinku. Vaš glavni račun ostaje zaštićen.
OAuth također ograničuje opseg. Aplikacija može tražiti samo dopuštenje za čitanje vaše e-mail adrese, a ne za slanje e-mailova u vaše ime. Taj detaljni model dopuštenja predstavlja smislen sloj zaštite u usporedbi s predavanjem potpunog pristupa računu.
OAuth i korisnici VPN-a
Ako koristite VPN, OAuth se na nekoliko važnih načina isprepliće s vašom privatnošću.
Rizici presretanja tokena. Na nezaštićenim mrežama napadači mogu pokušati napade tipa čovjek u sredini kako bi presreli OAuth tokene tijekom procesa preusmjeravanja. VPN šifrira vaš promet, čime značajno smanjuje tu izloženost — posebno na javnom Wi-Fi-u u zračnim lukama, hotelima ili kafićima.
OAuth putem HTTPS-a. OAuth 2.0 za siguran rad zahtijeva HTTPS. VPN dodaje dodatni sloj šifriranja, ali nije zamjena za HTTPS. Oboje zajedno pruža snažniju zaštitu.
Privatnost pri povezivanju računa. Kada koristite „Prijava putem Googlea" ili slično, Google zna kojim uslugama pristupate i kada. VPN tijekom tog procesa skriva vašu IP adresu, ali davatelj identiteta (Google, Apple i sl.) i dalje bilježi taj događaj autorizacije. Korisnici s visokim zahtjevima za privatnošću trebali bi pažljivo razmotriti taj kompromis.
Korporativna VPN okruženja. Mnoge tvrtke kombiniraju VPN pristup sa sustavima jedinstvene prijave (SSO) temeljenim na OAuth-u. Zaposlenici se jednom autentificiraju putem davatelja identiteta — često koristeći OAuth ili srodni protokol OpenID Connect — i dobivaju pristup internim resursima zaštićenim VPN-om.
Praktični slučajevi upotrebe
- Integracije aplikacija: Dopuštanje alatu za upravljanje projektima da objavljuje ažuriranja u vašem Slack radnom prostoru.
- Društvene prijave: Prijava na Spotify putem Facebook računa.
- Pristup API-ju: Davanje aplikaciji za upravljanje proračunom pristup samo za čitanje vaših bankovnih transakcija.
- Razvojni alati: Autorizacija usluge za postavljanje koda da gura ažuriranja u vaše GitHub repozitorije.
OAuth i lozinke: šira slika
OAuth ne zamjenjuje lozinke — smanjuje učestalost njihove upotrebe s uslugama trećih strana. U kombinaciji s jakim lozinkama, dvofaktorskom autentifikacijom i pouzdanim VPN-om, OAuth je jedna od sastavnica slojevitog sigurnosnog pristupa koji značajno smanjuje vašu izloženost napadima na internetu.