Mozilla implementira CRLite za provjeru problematičnih TLS certifikata

Tvrtka Mozilla najavio o početku testiranja u noćnim verzijama Firefoxa novog mehanizma za otkrivanje opozvanih certifikata - CRLite. CRLite vam omogućuje da organizirate učinkovitu provjeru opoziva certifikata prema bazi podataka koja se nalazi u korisničkom sustavu. Mozillina CRLite implementacija Objavljeno pod besplatnom licencom MPL 2.0. Napisan je kod za generiranje komponente baze podataka i poslužitelja Piton i kreni. Klijentski dijelovi dodani Firefoxu za čitanje podataka iz baze podataka pripremljeni na Rust jeziku.

Provjera certifikata pomoću vanjskih usluga na temelju protokola koji se još uvijek koristi OCSP (Online Certificate Status Protocol) zahtijeva zajamčeni pristup mreži, dovodi do značajnog kašnjenja u obradi zahtjeva (prosječno 350 ms) i ima problema s osiguravanjem povjerljivosti (OCSP poslužitelji koji odgovaraju na zahtjeve primaju informacije o određenim certifikatima, koji se mogu koristiti za procjenu je li što stranice koje korisnik otvara). Također postoji mogućnost lokalne provjere popisa C.R.L. (Certificate Revocation List), no nedostatak ove metode je vrlo velika veličina preuzetih podataka - trenutno baza opozvanih certifikata zauzima oko 300 MB i nastavlja rasti.

Da bi blokirao certifikate koji su bili ugroženi i opozvani od strane certifikacijskih tijela, Firefox koristi centraliziranu crnu listu od 2015. OneCRL u kombinaciji s pozivom servisu Google sigurno pregledavanje za prepoznavanje mogućih zlonamjernih aktivnosti. OneCRL, kao CRLSetovi u Chromeu, djeluje kao posredna veza koja okuplja CRL popise od certifikacijskih tijela i pruža jedinstvenu centraliziranu OCSP uslugu za provjeru opozvanih certifikata, što omogućuje da se zahtjevi ne šalju izravno certifikacijskim tijelima. Unatoč velikom radu na poboljšanju pouzdanosti online usluge provjere certifikata, telemetrijski podaci pokazuju da više od 7% OCSP zahtjeva istekne (prije nekoliko godina ta je brojka bila 15%).

Prema zadanim postavkama, ako nije moguće provjeriti putem OCSP-a, preglednik smatra da je certifikat valjan. Usluga može biti nedostupna zbog problema s mrežom i ograničenja na internim mrežama, ili je blokiraju napadači - da biste zaobišli OCSP provjeru tijekom MITM napada, jednostavno blokirajte pristup usluzi provjere. Da bi se djelomično spriječili takvi napadi, implementirana je tehnika Obavezno spajanje, koja vam omogućuje da grešku pristupa OCSP-u ili nedostupnost OCSP-a tretirate kao problem s certifikatom, ali ova značajka nije obavezna i zahtijeva posebnu registraciju certifikata.

CRLite omogućuje konsolidaciju kompletnih informacija o svim opozvanim certifikatima u strukturu koja se lako ažurira, veličine samo 1 MB, što omogućuje pohranu kompletne CRL baze podataka na strani klijenta.
Preglednik će moći svakodnevno sinkronizirati svoju kopiju podataka o opozvanim certifikatima, a ta će baza biti dostupna pod svim uvjetima.

CRLite kombinira informacije iz Transparentnost certifikata, javni log svih izdanih i opozvanih certifikata te rezultati skeniranja certifikata na Internetu (prikupljaju se razne CRL liste certifikacijskih tijela i agregiraju se podaci o svim poznatim certifikatima). Podaci se pakiraju pomoću kaskadnog povezivanja Bloom filteri, probabilistička struktura koja dopušta lažnu detekciju elementa koji nedostaje, ali isključuje izostavljanje postojećeg elementa (tj. uz određenu vjerojatnost moguć je lažni pozitivan rezultat za ispravan certifikat, ali je zajamčeno identificiranje opozvanih certifikata).

Kako bi se uklonili lažni pozitivni rezultati, CRLite je uveo dodatne korektivne razine filtera. Nakon generiranja strukture, pretražuju se svi izvorni zapisi i identificiraju se svi lažno pozitivni rezultati. Na temelju rezultata ove provjere stvara se dodatna struktura koja se kaskadno spaja na prvu i ispravlja nastale lažno pozitivne rezultate. Operacija se ponavlja sve dok se potpuno ne eliminiraju lažni pozitivni rezultati tijekom kontrolne provjere. Obično je stvaranje 7-10 slojeva dovoljno za potpuno pokrivanje svih podataka. Budući da stanje baze podataka, zbog povremene sinkronizacije, malo zaostaje za trenutnim stanjem CRL-a, provjera novih certifikata izdanih nakon zadnjeg ažuriranja CRLite baze podataka provodi se pomoću OCSP protokola, uključujući korištenje OCSP spajanje (OCSP odgovor certificiran od strane certifikacijskog tijela prenosi poslužitelj koji opslužuje stranicu prilikom pregovaranja TLS veze).

Mozilla implementira CRLite za provjeru problematičnih TLS certifikata

Korištenjem Bloomovih filtara, prosinački isječak informacija iz WebPKI-ja, koji pokriva 100 milijuna aktivnih certifikata i 750 tisuća opozvanih certifikata, uspio se upakirati u strukturu veličine 1.3 MB. Proces generiranja strukture zahtijeva dosta resursa, ali se izvodi na poslužitelju Mozilla i korisniku se daje gotova nadogradnja. Na primjer, u binarnom obliku, izvorni podaci korišteni tijekom generiranja zahtijevaju oko 16 GB memorije kada su pohranjeni u Redis DBMS, a u heksadecimalnom obliku, dump svih serijskih brojeva certifikata zauzima oko 6.7 GB. Proces agregiranja svih opozvanih i aktivnih certifikata traje oko 40 minuta, a proces generiranja paketne strukture temeljene na Bloom filteru traje još 20 minuta.

Mozilla trenutno osigurava da se CRLite baza podataka ažurira četiri puta dnevno (ne isporučuju se sva ažuriranja klijentima). Generiranje delta ažuriranja još nije implementirano - korištenje bsdiff4, koji se koristi za stvaranje delta ažuriranja za izdanja, ne pruža odgovarajuću učinkovitost za CRLite i ažuriranja su nerazumno velika. Kako bi se uklonio ovaj nedostatak, planira se preraditi format strukture pohrane kako bi se uklonilo nepotrebno ponovno građenje i brisanje slojeva.

CRLite trenutno radi u Firefoxu u pasivnom načinu rada i koristi se paralelno s OCSP-om za prikupljanje statistike o ispravnom radu. CRLite se može prebaciti u način glavnog skeniranja; da biste to učinili, trebate postaviti parametar security.pki.crlite_mode = 2 u about:config.

Mozilla implementira CRLite za provjeru problematičnih TLS certifikata

Izvor: opennet.ru

Dodajte komentar