Sessiooni kaaperdamise rünnaku ja vahendusründe risk Web eID-s

Kuidas on plaanitud Web eID-s vähendada sessiooni kaaperdamise rünnaku riski?

Nii nagu Cybernetica analüüsidokumendis selgitatud on Web eID ohu vastu kaitstud sama hästi kui ka kõik teised levinumad autentimisprotokollid nagu OpenID Connect, SAML või 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.

  1. seansi fikseerimise haavatavus e-teenuses,
  2. murdskriptimisrünne e-teenuse veebisaidi vastu,
  3. vahendusrünne, mis võimaldab seansi identifikaatorit sisaldavat liiklust pealt kuulata,
  4. 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äsitlesime 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. Web eID rakendus koostab JSON Web Token formaadis autentimistõendi, mille aud väljal on allikas, ning edastab autentimistõendi e-teenusele. E-teenus kontrollib autentimistõendi valideerimise käigus, et tõendis olev allikas on võrdne e-teenuse tegeliku allikaga ning katkestab autentimise veaga, kui allikas erineb. Selle kaitsemeetme tõttu ei saa vahendusründaja kontrolli all oleva veebisaidi (näiteks pankk.ee, panķ.ee vms) jaoks väljastatud autentimistõendit kasutada rünnatavas e-teenuses, mis asub teisel veebisaidil (näiteks pank.ee). Autentimise algoritmi ja autentimistõendi valideerimise samme on kirjeldatud Web eID süsteemiarhitektuuridokumendi peatükis Authentication, vt https://github.com/web-eid/web-eid-system-architecture-doc#authentication-1.

Kui vahendusründajal on kontroll kasutaja arvuti nimelahenduse üle ja ta on murdnud sisse usaldatud sertifitseerimiskeskusesse, on võimalik esimese taseme keerulisem ja võimsam vahendusrünne, kus ründaja:

  1. lahendab rünnatava e-teenuse hostinime (näiteks pank.ee) enda kontrolli all oleva serveri IP-aadressiks, kus paikneb matkimissait,
  2. väljastab matkimissaidile rikutud sertifitseerimiskeskuse kaudu sertifikaadi, mida kasutaja brauser usaldab.

Sellise ründe tõkestab üldjuhul Certificate Transparency (CT) kaitse rünnatava e-teenuse domeenile väljastatud ametlikul sertifikaadil. Kui e-teenuse domeenile väljastatud ametlik sertifikaat on registreeritud CT registris, tuvastab brauser sertifikaadivõltsingu ning rünne nurjub. CT teeb ründe eriti keeruliseks.

Kui vahendusründajal on kontroll kasutaja arvuti sertifikaadihoidla ja nimelahenduse üle, on võimalik teise taseme veelgi keerulisem ja võimsam vahendusrünne, kus ründaja:

  1. paigaldab kasutaja arvuti sertifikaadihoidlasse oma võltsi sertifitseerimiskeskuse sertifikaadi,
  2. lahendab rünnatava e-teenuse hostinime (näiteks pank.ee) enda kontrolli all oleva serveri IP-aadressiks, kus paikneb matkimissait,
  3. väljastab matkimissaidile võltsi sertifitseerimiskeskuse kaudu sertifikaadi, mida kasutaja brauser usaldab (kuna võltsi sertifitseerimiskeskuse sertifikaat on sertifikaadihoidlas).

Kuna CT ei kontrolli privaatsete sertifitseerimiskeskuste väljastatud sertifikaate, 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 pank.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õtlikult, CT kaitse korral pole võimas vahendusrünne võimalik omamata kõrgendatud volitustega kontrolli kasutaja arvuti üle, mis teeb ka muud, lihtsamad ründevektorid võimalikuks – mis omakorda teeb küsitavaks ründe on otstarbekuse.

Sellise ründe vastu ei ole kaitstud ka ükski teine levinum autentimisprotokoll nagu OpenID Connect, SAML või Web Authentication, ega autentimisteenus nagu Riigi Autentimisteenus ja pankade vahendusel autentimine.

Siiski, kuna õigesti realiseeritud TLS kliendisertifikaadiga autentimine (TLS client certificate authentication, TLS CCA), mida praegune OpenEID autentimislahendus pakub, kaitseb võimsa vahendusründe vastu, on RIA uurinud võimalusi samaväärse kaitse realiseerimiseks Web eID lahenduses. Hetkel on brauseris Firefox realiseeritud allika TLS sertifikaadi sõrmejälje (räsi) e-teenusele edastamine autentimistõendi aud väljal. Teenus saab kontrollida, kas sertifikaadi sõrmejälg vastab teenuse ametliku sertifikaadi sõrmejäljele ning autentimise veaga katkestada, kui sõrmejälg erineb. Tegemist on eksperimentaalse funktsionaalsusega, mis töötab ainult ühes brauseris, praegu ei soovita RIA seda kasutada. Tuleb märkida, et nii TLS CCA kui eksperimentaalne sertifikaadi sõrmejälje kontroll teevad TLS prokside kasutamise võimatuks, mis näiteks ei võimalda kasutada viirustõrjetarkvara veebikasutuse kaitse funktsioone ning autentida ID-kaardi abil ettevõtete sisevõrkudes, mis võrguliikluse turvamiseks TLS proksit kasutavad.

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 väga keeruka ja ebapraktilise vahendusründe vastu, kus ründaja on võimeline nimelahendust kontrollima ja veebisaidi sertifikaati võltsima (nn võimas vahendusrünne). Nagu eelnevalt selgitatud, kasutavad usaldatud sertifikaatide väljastajad Certificate Transparency süsteemi, sel juhul on brauser võimeline võltsitud sertifikaati tuvastama ja ühenduse katkestama ning võimas vahendusrünne nurjub. 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.