Kuidas on plaanitud Web eID-s vähendada sessiooni kaaperdamise rünnaku riski?
Nii nagu Cybernetica analüüsidokumendis selgitatud on Web eID sessiooni kaaperdamise ründe vastu kaitstud sama hästi kui ka kõik teised levinumad autentimisprotokollid nagu OpenID Connect, SAML, Web Authentication, või mobiil-ID ja Smart-ID. Ehkki levinud autentimisprotokollid ei takista seansi kaaperdamist, saab ohtu enamikul juhtudel leevendada, kasutades seansi identifikaatori lekke vältimiseks häid arenendustavasid, õiget seadistust ja turvameetmeid. Seansi kaaperdamiseks on neli peamist viisi.
- seansi fikseerimise haavatavus e-teenuses,
- murdskriptimisrünne e-teenuse veebisaidi vastu,
- vahendusrünne, mis võimaldab seansi identifikaatorit sisaldavat liiklust pealt kuulata,
- pahavara ohvri seadmes.
Seansi fikseerimise vältimiseks peab e-teenus pärast kasutaja autentimist uuendama seansi identifikaatorit. Seansi identifikaator peab olema piisavalt juhuslik, et seda ei saaks ära arvata. Seansi identifikaatorit tuleb transportida kliendi ja serveri vahel turvalist HTTPS kanalit kaudu, kasutades turvalist TLSi versiooni ja seadistusi.
Teenusepakkuja veebisaidil peavad olema kaitsemeetmed, mis välistavad murdskriptimisründe. Täiendava kaitse pakkumiseks murdskriptimisründe ja muude levinud haavatavuste vastu peavad seansiküpsisel olema järgmised lipud: HttpOnly, Secure, SameSite.
Vahendusründe võimalusi ja kaitset selle vastu käsitleme vastuses küsimusele „Kuidas Web eID aitab kaasa vahendusrünnete maandamisele?“.
Kahjuks ei saa teenusepakkuja kasutaja seanssi kaitsta, kui kasutaja seade on pahavaraga nakatunud.
Kuidas Web eID aitab kaasa vahendusrünnete maandamisele?
Web eID on vahendusründe vastu kaitstud veebisaidi allika kontrolli kaudu. E-teenus genereerib kasutaja autentimiseks küsimussõnumi ja edastab selle Web eID brauserilaiendusele. Brauserilaiendus edastab lisaks küsimussõnumile Web eID rakendusele turvaliselt ka e-teenuse veebilehe allika. Web eID rakendus liidab küsimussõnumi ja allika kokku, räsib kokkuliidetud väärtuse, signeerib saadud räsi ning tagastab signatuuri autentimistõendi sees brauserilaienduse kaudu e-teenusele. E-teenus kasutab autentimistõendi signatuuri kontrollimise käigus algselt genereeritud küsimussõnumit ja oma veebilehe allikat ning signatuuri kontroll nurjub, kui signeerimisel on kasutatud erinevat küsimussõnumit või allikat. Selle kaitsemeetme tõttu ei saa vahendusründaja kontrolli all oleva veebisaidi (näiteks teeenus.ee vms) jaoks väljastatud autentimistõendit kasutada rünnatavas e-teenuses, mis asub teisel veebisaidil (näiteks teenus.ee). Autentimise algoritmi, autentimistõendi valideerimise samme ja kaitsemeetmeid vahendusründe vastu on põhjalikumalt kirjeldatud Web eID süsteemiarhitektuuridokumendi peatükis Authentication, vt https://github.com/web-eid/web-eid-system-architecture-doc#authentication-1.
Kokkuvõtteks, kasutaja autentimiseks koostatakse ID-kaardiga signeeritav sõnum selliselt, et see välistab tavapärase vahendusründe, mille käigus ühele veebisaidile väljastatud autentimistõendit püütakse kasutada teisel veebisaidil.
Kui vahendusründajal on kontroll kasutaja arvuti nimelahenduse üle ja ta on murdnud sisse mõnda kasutaja usaldatud sertifitseerimiskeskusesse, on võimalik keerulisem ja võimsam vahendusrünne, kus ründaja:
- lahendab rünnatava e-teenuse hostinime (näiteks teenus.ee) enda kontrolli all oleva serveri IP-aadressiks, kus paikneb matkimissait,
- väljastab matkimissaidile rikutud sertifitseerimiskeskuse kaudu sertifikaadi, mida kasutaja brauser usaldab.
Usaldatud sertifitseerimiskeskused on kaitstud põhjalike turvameetmetega ning murrete korral tühistatakse nende sertifikaadid operatiivselt, seega on sellise ründe tõenäosus väga madal.
Isegi kui sissemurre sertifitseerimiskeskusesse õnnestub, tõkestab sellise ründe Certificate Transparency (CT) kaitse rünnatava e-teenuse domeenile väljastatud ametlikule sertifikaadile. Kui e-teenuse domeenile väljastatud ametlik sertifikaat on registreeritud CT registris, tuvastab brauser sertifikaadivõltsingu ning rünne nurjub.
Kui vahendusründajal on kontroll lisaks kasutaja arvuti nimelahendusele ka selle sertifikaadihoidla ja brauseri turvapoliitika üle, on võimalik veelgi keerulisem ja võimsam vahendusrünne, kus ründaja:
- paigaldab kasutaja arvuti sertifikaadihoidlasse oma võltsi sertifitseerimiskeskuse sertifikaadi,
- seadistab kasutaja brauseri turvapoliitika selliselt, et CT kaitse e-teenuse domeenile on välja lülitatud,
- lahendab rünnatava e-teenuse hostinime (näiteks teenus.ee) enda kontrolli all oleva serveri IP-aadressiks, kus paikneb matkimissait,
- väljastab matkimissaidile võltsi sertifitseerimiskeskuse kaudu sertifikaadi, mida kasutaja brauser usaldab (kuna võltsi sertifitseerimiskeskuse sertifikaat on sertifikaadihoidlas).
Kuna ründaja on CT kontrolli välja lülitanud, siis CT kaitse sel juhul ei rakendu. Kui kõik ründe eeltingimused on täidetud ning kasutaja avab brauseris rünnatava e-teenuse veebisaidi ja autendib, siis saab kirjeldatud võimas vahendusrünne teoks, sest kogu andmevahetus toimub läbi matkimissaidi. Brauser edastab Web eID rakendusele allikana rünnatava e-teenuse õige hostinime (näiteks teenus.ee), kuid autentimistõend jõuab matkimissaidil paiknevasse vahendusründaja loodud teenusesse ja ründaja saab autentimistõendit kasutada kasutaja õigustes rünnatavasse e-teenusesse sisenemiseks.
Kokkuvõtteks, võimsa vahendusründe eeltingimused on praktikas äärmiselt raskesti teostatavad ning nõuavad kontrolli kasutaja arvuti üle. Kontrolli omamine kasutaja arvuti üle teeb ka muud, lihtsamad ründevektorid võimalikuks – mis omakorda teeb küsitavaks ründe otstarbekuse. Seega on RIA hinnangul Web eID kasutamisel võimsa vahendusründe risk minimaalne.
Sellise ründe vastu ei ole kaitstud ka ükski teine levinum autentimisprotokoll ega autentimisteenus nagu Riigi Autentimisteenus.
Miks Mozilla Firefoxi veebilehitsejaga on Web eID kõige turvalisem?
Analüüsis viidati, et ainult Firefoxis on brauserilaiendustel ligipääs veebisaidi HTTPS sertifikaadile ning seega ainult Firefoxis saab realiseerida lisakaitse eelnevalt kirjeldatud väga keeruka ja ebapraktilise vahendusründe vastu, kus ründaja on võimeline nimelahendust kontrollima, veebisaidi sertifikaati võltsima ja CT kontrolli välja lülitama (nn võimas vahendusrünne). Eksperimentaalne lisakaitse Firefoxile realiseeriti projekti alguses, kuid kuna sellega kaasnesid muud negatiivsed kõrvalmõjud, siis eksperiment hüljati. RIA hinnangul on võimsa vahendusründe risk madal ning Web eID lahendus töötab juba praegu korrektselt ning piisavalt turvaliselt kõigi levinumate kaasaegsete brauseritega. Web eID protokoll on sama turvaline, kui teised levinud autentimisprotokollid nagu OpenID Connect, SAML, WebAuthentication ning mobiil-ID ja Smart-ID.
Juhul kui e-teenuses käideldakse ülisalajasse turvaklassi kuuluvat informatsiooni, soovitab RIA edasi kasutada kliendisertifikaadiga autentimist (TLS CCA), kuid seeläbi võib RIAst mitteolenevatel põhjustel väheneda kasutusmugavus ja tõrkekindlus, mille tagamiseks Web eID projekt algatati.
Juhime tähelepanu, et analüüsis ei väidetud, et Web eID on haavatav vahendusründe kui sellise suhtes. Nagu eelnevalt kirjeldatud, on Web eID kaitstud sellise vahendusründe vastu, kus ühele veebisaidile väljastatud autentimistõendit püütakse kasutada teisel veebisaidil, kuna veebisaidi allikas on autentimistõendi osa.