Kako se FINA zaigrala, što se moglo dogoditi i što bi se moglo dogoditi


U domaćoj javnosti relativno blago je plasirana priča o tome kako je FINA isporučila certifikat za DNS koji pripada poznatoj svjetskoj tvrtki. Omanja pogreška, sitnica jedna.

“Odbijamo tvrdnju da je ugroženo povjerenje u izdavanje certifikata. Fina je 23 godine izdavatelj digitalnih certifikata, odnosno strogo regulirani ovjerovitelj usluga povjerenja. Korisnici i sustavi nisu niti će biti ugroženi zbog jedinstvene pogreške koja se dogodila prilikom testiranja TLS certifikata” – tako glasi izjava koju je prenio Index.hr. Drugim riječima, FINA smatra da ok, hajde, nešto su testirali i to je malo pobjeglo, ali ništa se strašno nije dogodilo.

Je li tome zaista tako?

Stvar je poprilično tehničke naravi, pa ću je pokušati objasniti dovoljno jednostavno da prosječan čitatelj može stvoriti vlastiti dojam koliko je ozbiljan incident koji se dogodio.

FINA je, dakle, izdala TLS certifikat za tuđi DNS servis. Dvije su riječi ključne u ovoj priči: DNS i certifikat.

DNS je servis koji na Internetu služi tome da adresu čitljivu u ljudskom obliku prenese u adresu čitljivu u strojnom obliku. Računala međusobno komuniciraju korištenjem IP adrese koja je numeričke naravi, primjerice 178.218.165.75.

Takve je adrese teško pamtiti – svaki servis kojeg koristimo ima takvu ili čak i složeniju adresu (IPv6 adrese izgledaju poput ovog primjera: 2607:f8b0:4004:080d:1c9a:2b3f:e4d5:c6b7) i pamtiti te adrese za svaki od njih ponaosob je besmisleno.

DNS je servis koji pretvara adrese koje znamo, koje su ljudskom umu razumljive, poput radoslav.org u numerički zapis koji predstavlja taj servis. Zato za dolazak na ovaj blog ne trebate pamtiti ništa drugo osim radoslav.org. DNS će za vas obaviti ostatak posla. A ako se IP adresa bloga promijeni – to jednako tako nije nikakav problem, jer će se promjena numeričke adrese praktički automatski proširiti po DNS poslužiteljima diljem svijeta. Sve je ovo za korisnika posve transparentno i taj servis svi koristimo svakodnevno niti ne razmišljajući o njemu.

Certifikat je dokument koji potvrđuje autentičnost vlasnika. Certifikat možete izdati sami sebi, u kojem slučaju vam ostatak svijeta treba vjerovati na riječ da ste to baš vi. Ozbiljniji sustavi koriste certifikate koje im izdaju autorizirani izdavači certifikata, i za takve certifikate se pretpostavlja da su došli od stvarnog, ozbiljnog izvora koji strogo provjerava i pomno pazi na valjanost certifikata, i on garantira da izdani certifikat predstavlja baš tog nekoga tko je taj certifikat dobio. Poput osobne iskaznice: odlazite u MUP koji provjeri jeste li to vi i potom vam izda osobnu, s kojom možete otići u banku i dokazati da ste vi – vi, i banka vjeruje tom dokumentu jer vjeruje MUP-u koji je taj dokument izdao.

FINA je jedan od tih autoriteta, i FINA izdaje certifikate za tvrtke i državnu upravu. Svi vjeruju da FINA pomno provjerava i strogo kontrolira izdavanje tih certifikata kako se ne bi dogodilo da se negdje pojavi lažni certifikat.

No, FINA je “uspjela” izdati lažni certifikat – i to za servis koji apsolutno po ničemu nije unutar njene ingerencije. Dapače, za vrlo važan međunarodni servis – Cloudflare-ov DNS server.

Iako je točno da izdani certifikati nisu uzrokovali veliku štetu – pomalo zahvaljujući činjenici da je domet FINA-inog autoriteta prilično ograničen (FINA je certificate authority kojeg priznaje Microsoft, ali Google, Apple i Mozilla ne), a većim dijelom zato što se, čini se, zbilja radilo o kardinalnoj nenamjernoj pogrešci bez želje za zloupotrebom, takvo petljanje s certifikatom moglo je prouzročiti poprilične probleme.

Interpretirajmo ovu priču na malo razumljiviji način. Zamislimo kako u Vatikanu postoje mladi majstori čija je zadaća stvarati papinske pečate koji ovjeravaju važne dokumente. Kako je moć pečata velika, svaki taj pečat mora biti jedinstven, a njegovo korištenje strogo je nadzirano.

Jednog dana mladi naučnik kojem je zadatak stvarati razne vrste probnih pečata koje nitko ne koristi, a kako bi se naučio jednog dana stvarati prave pečate – odluči da kao test svojih sposobnosti načini kopiju stvarnog papinskog pečata. Kuc po kuc, i praktično savršena kopija je stvorena. Umoran ali sretan zbog svojeg uspjeha, mladi naučnik odlazi na počinak, zaboravivši uništiti svoju krivotvorinu.

Sljedećeg dana vatikanska administracija dolazi na posao i netko zabunom uzima krivotvoreni papinski pečat i krene njime pečatirati dokumente koje treba poslati diljem svijeta.

Uskoro se trudbenici crkvene hijerarhije počnu pitati – pa, što je s tim Papom? Zašto potpisuje kontradiktorne upute? Zašto se uopće osobno bavi nabavkom svijeća za nekakvu malu župu na drugom kraju svijeta? Zašto ga uopće zanimaju izvješća o milodarima na Antarktiku?

Neautoriziranim korištenjem pečata tako je stvorena silna zbrka. Naravno, može to biti i malicioznije, dočepa li se pečata netko loših namjera: “Gle, Papa naređuje da svi prijeđemo na pravoslavlje?!”

Ovozemaljski i više tehnički, impersoniranje DNS-a može imati vrlo ozbiljne posljedice. Kako smo već objasnili, DNS je servis kojeg svi koriste i svi mu vjeruju da će na upit dati ispravnu IP adresu. Kad netko maliciozno preuzme neki DNS može u najmanju ruku vidjeti koje adrese ljudi posjećuju – i to je već vrlo ozbiljno narušavanje privatnosti. Tajne službe i kriminalci rado bi voljeli znati koja mjesta njihove mete posjećuju. Korak dalje je maliciozno preusmjeravanje na lažni server koji se predstavlja kao, primjerice, banka: korisnik biva automatski preusmjeren na lažni bančin server koji izgleda kao pravi, ali svrha mu je ukrasti korisnikove podatke i počistiti njegov bankovni račun. Ili naprosto prisluškivati (tzv. Man in the middle napad) što to žrtva komunicira s udaljenim serverom – prisluškivanje emaila i drugih komunikacijskih kanala vrijedan je izvor podataka o žrtvi.

U ovom se slučaju vjerojatno ništa od toga nije dogodilo, a potencijalno nije bilo niti namjere tajnih službi ili kriminalnih organizacija da uspostave infrastrukturu za takve radnje. No, to ne znači da ovo nije vrlo ozbiljan incident jer narušava premisu sustava koji počiva na strogim kontrolama i povjerenju u profesionalnost institucija koje u tome sudjeluju.

Iako bi FINA voljela otpuhnuti ovaj incident kao nebitnu sitnicu, činjenice upućuju na puno dublji problem i potencijalno vrlo loše posljedice po tu instituciju.

Ponajprije, nije riječ o izoliranom slučaju. To bi se još i oprostilo jer tko radi, taj i griješi – no propusta je puno više.

U članku kojeg je izdao Cloudflare opisuje se kako je FINA izdala dvanaest lažnih certifikata tijekom godinu i pol dana(!) koji su potom bili opozvani. Prašina se digla tek nakon što se o tome počelo pričati u javnosti. FINA ne postupa po žurnom postupku nakon upozorenja o lažnim certifikatima, već reagira tek sljedećeg dana, nakon što je već i Microsoft obavio žurno povlačenje lažnih certifikata. To sugerira da FINA nema definiran mehanizam žurnog postupanja u hitnim slučajevima, pa se valjda čekalo da nadređeni dođe sljedećeg radnog dana ili da netko viši u hijerarhiji pronađe vremena i odobri povlačenje certifikata.

Uobičajeno je da u državnoj službi službenici ne rade izvan radnog vremena, no čini se kako je u slučaju ovih certifikata radno vrijeme bilo poprilično neobično:

Što autor gore sarkastično kaže: “valjda se neku djevojku pokušavalo impresionirati”. Zanimljivo je primijetiti ne samo da je netko nedjeljom čačkao po okruženju za testiranje koje nije okruženje za testiranje – jer su okruženja za testiranje izolirana od svijeta, a i ključevi mogu biti specificirani kao zabranjeni za dijeljenje širom Zemljine ravne ploče.

Uočiti valja i da su neki ključevi stvoreni i vrlo brzo opozvani – što sugerira da je ista osoba radila obje radnje. No, neki su opozivani i znatno kasnije.

Ovo sugerira da se netko učio izdavati certifikate ili je naprosto nemarno stvarao jedan po jedan certifikat kojim je testirao nešto drugo. Što je trebalo ostati na stagingu (testnom okruženju) i nikad ne vidjeti svjetlo dana.

I da, svakako – nije došlo do nikakve pogreške u izboru IP adrese jer su ti certifikati sadržavali uvijek istu, jedinstvenu i lako prepoznatljivu adresu Cloudflareovog DNS servisa (1.1.1.1). Netko je to mogao nabosti bez namjere jer takvu je adresu brzo i lako napisati, no netko je isto tako mogao raditi na nečemu što baš traži adresu DNS servisa, ali o tome javnost ne bi trebala znati. U svakom slučaju netko je bio uvjeren da te akcije neće biti primjećene izvan razvojnog okruženja – eh

Osobno, mislim da je prije riječ o tome da je adresu lako napisati nego da netko razvija sofisticirani špijunski alat.

Najzad, kao višnjica na vrhu ovog prekrasnog kolača – FINA je postala mildly zanimljiva pojava među IT ekipom, pa se njihov posao počeo malo detaljnije gledati (što vjerojatno do sad nitko nikad nije učinio, dakle nema interne kontrole):

Ka-ta-stro-fa. Ono s početka nije bio slučajni zayeb, djeca su se malo zaigrala, pu pu, vratit ćemo na staro i praviti se da se ništa strašno nije dogodilo. Jadni Wayne susreo se s konkretnim rezultatom negativne selekcije koja Hrvatskom vlada već desetljećima. Pojava razmaka i donje crte u nazivima DNS imena govore o tome da nitko tamo nije pročitao specifikacije, ili ih naprosto nije briga za standarde. Neka se ostatak svijeta prilagođava nama. Mi imamo sunce i more.

No, što se na kraju strašnoga može dogoditi? Incidentić, sitnica, uostalom koga briga? FINA će dobiti packu, Cloudflare će do termičke smrti Svemira čekati da FINA pošalje full post-mortem (detaljnu stručnu analizu svega što se dogodilo), život ide dalje?

Da, osim ako. Osim ako FINA bude kažnjena oduzimanjem CA (certificate authority) statusa. Njega danas priznaju samo Microsoft, Adobe i eIDAS – što je tehnički minimum za uspostavu elektroničkog poslovanja države. Elektroničko poslovanje je apsolutno ovisno o certifikatima i narušavanje tog mehanizma praktički uništava lanac povjerenja i onemogućava niz digitaliziranih usluga koje država koristi prema građanima i drugim subjektima, uključujući i druge države članice EU (pa i šire).

Odluče li MS, Adobe i eIDAS ukinuti povjerenje i možda čak i povući sve izdane certifikate, digitalno poslovanje praktički staje: više nije moguće ostvariti sigurne veze niti razmjenjivati informacije, a i digitalni potpisi postaju nevažeći, uključujući i već izdane dokumente.

Vlada bi morala pronaći novi CA koji bi izdao nove certifikate, i gomiletina dokumentacije i informacija moralo bi se recertificirati. U međuvremenu bi stajao sav digitalni život državne uprave – uključujući i fiskalizaciju.

Nastala šteta bila bi ogromna. Zato je vjerojatnije da će se dogoditi nešto od ovoga:

  1. FINA nastavlja biti CA – nikome ništa. Ostatak svijeta ih ionako ne priznaje, no to nije bitno, ali dolazi do narušavanja povjerenja u cijeli lanac;
  2. FINA prestaje biti CA, ali se postojeći certifikati “prenose” na novi CA uz kraći tranzicijski period blagog kaosa – poprilično moguć scenarij;
  3. FINA prestaje biti CA i svi ikad izdani certifikati postaju nevažeći, jedini postupak koji garantira da ostala certifikacijska tijela u tom lancu ostaju čista, te izbor novog CA – duži tranzicijski period kompletnog kaosa – manje vjerojatan, ali i dalje moguć scenarij.

Najizgledniji scenarij bit će uspostava novog CA i migracija kroz dvojno certificiranje, gdje će stari i novi CA postojati paralelno u tranzicijskom periodu u kojem će novi CA izdati nove certifikate, a klijenti će prihvatiti novi certifikat (i recertificirati dokumente novim certifikatom), te će se po potpunom prelasku svih uključenih strana na novi CA stari CA jednostavno ugasiti, a njegovi certifikati biti spaljeni na velikoj lomači. Tako bi otprilike izgledao scenarij iz točke 2.

U svakom slučaju – skupa pogreška. Novi CA bi trebalo biti tijelo koje se bavi samo tim poslom, sastavljeno od stručnjaka i s jasno definiranim procedurama i provjerama.

P.S. A je li prva opcija nevjerojatna? Proceduralno jest, ali je i izvediva: kako certifikati koje izdaje FINA važe samo na tri navedene platforme, od kojih je jedna kritična za funkcioniranje unutar EU, nije nezamisliv scenario da se svi akteri naprosto pretvaraju kako je sve u redu ne bi li izbjegli posljedice koje sa sobom donosi promjena CA. No, u tom slučaju stvorio bi se opasan presedan koji bi ugrozio povjerenje u cijeli lanac; u ovom slučaju povjerenje je primarna valuta. Uprizorimo to još jednom usporedbom: negdje u nekoj državi neka banka zabunom krene izdavati naloge za plaćanje koje nitko nije odobrio. Korisnici drugih banaka odjednom otkriju da su izvšeni nalozi za plaćanje s njihovih računa koji nisu valjani. Afektirana banka brzo otkrije problem, vrati ljudima novce nazad na račun, ispriča se i obeća da neće više nikad. Novac jest nazad na računu, no što je s povjerenjem u cijeli bankarski sustav?

Views: 401

Comments, rants and vents