Tvrtka Mozilla o početku testiranja u noćnim izgradnjama Firefoxa novog mehanizma za prepoznavanje povučenih certifikata — . CRLite omogućuje učinkovitu provjeru povlačenja certifikata iz baze podataka koja se pohranjuje na korisnikovom sustavu. Realizacija CRLite koju razvija Mozilla pod slobodnom licencom MPL 2.0. Kod za generiranje Baze podataka i poslužiteljske komponente napisane su na i Go. Klijentski dijelovi dodani u Firefox za čitanje podataka iz Baze podataka napisani su na jeziku Rust.
Dosadašnja provjera certifikata uz pomoć vanjskih usluga temeljenih na protokolu (Online Certificate Status Protocol) zahtijeva garanciju mrežnog pristupa, dovodi do značajnog kašnjenja prilikom obrade zahtjeva (u prosjeku 350ms) i ima problema s osiguranjem privatnosti (poslužitelji koji odgovaraju na zahtjeve OCSP-a dobivaju informacije o konkretnim certifikatima iz kojih se može suditi o tome koje web stranice korisnik otvara). Također postoji mogućnost lokalne provjere koristeći liste (Certificate Revocation List), no nedostatak te metode je vrlo velika veličina preuzetih podataka — trenutno Baza podataka povučenih certifikata zauzima oko 300 MB i njezin rast se nastavlja.
Za blokiranje kompromitiranih i povučenih certifikata od strane izdavača certifikata, Firefox od 2015. godine koristi centraliziranu crnu listu u kombinaciji s pristupom usluzi za prepoznavanje moguće zlonamjerne aktivnosti. OneCRL, poput u Chromeu, djeluje kao posrednički sloj koji agregira CRL-liste od izdavača certifikata i pruža jedinstvenu centraliziranu OCSP-uslugu za provjeru povučenih certifikata, omogućujući izbjegavanje izravnog slanja zahtjeva izdavačima certifikata. Unatoč velikom naporu na povećanju pouzdanosti usluge online provjere certifikata, telemetrijski podaci pokazuju da više od 7% OCSP zahtjeva završava vremenskim istekom (prije nekoliko godina ta je brojka iznosila 15%).
Zadano, u slučaju nemogućnosti provjere putem OCSP-a, preglednik smatra certifikat ispravnim. Usluga može biti nedostupna zbog mrežnih problema ili ograničenja unutar mreža, kao i blokirana od napadača — za zaobilaženje OCSP provjere tijekom MITM napada dovoljno je blokirati pristup usluzi. Djelomično za sprečavanje takvih napada implementirana je tehnika , koja omogućuje da se greška pri pristupu OCSP-u ili nedostupnost OCSP-a tumači kao problem s certifikatom, ali ova mogućnost je opcionalna i zahtijeva posebno izdavanje certifikata.
CRLite omogućuje kompilaciju potpune informacije o svim opozvanim certifikatima u lako ažuriranu strukturu, veličine samo 1 MB, što omogućuje pohranu cijele CRL baze na strani klijenta.
Preglednik će svakodnevno moći sinkronizirati svoju kopiju podataka o opozvanim certifikatima, a ova baza podataka bit će dostupna pod svim uvjetima.
CRLite kombinira informacije iz , javnog loga svih izdanih i opozvanih certifikata, i rezultata skeniranja certifikata na internetu (prikupljaju se razne CRL liste od certifikacijskih tijela i agregira se informacija o svim poznatim certifikatima). Podaci se pakiraju korištenjem kaskadnih , vjerojatne strukture, koja dopušta lažno određivanje nepostojećeg elementa, ali isključuje propuštanje postojećeg elementa (tj. s određenom vjerojatnošću moguće je lažno alarmiranje na ispravni certifikat, ali opozvani certifikati će biti zajamčeno identificirani).
Kako bi se isključile lažne identifikacije u CRLite-u, uvedeni su dodatni korektivni nivoi filtriranja. Nakon generiranja strukture, vrši se prolazak kroz sve izvorne zapise i utvrđivanje nastalih lažnih identifikacija. Na temelju ovog pregleda stvara se dodatna struktura koja se kaskadno primenjuje na prvu i ispravlja nastale lažne identifikacije. Ova operacija se ponavlja sve dok lažne identifikacije tokom kontrolne provere ne budu potpuno isključene. Obično je dovoljno stvoriti 7-10 slojeva za potpuno pokrivanje svih podataka. Budući da stanje Baze podataka zbog periodične sinhronizacije malo kasni za aktuelnim stanjem CRL-a, provera novih sertifikata koji su izdati nakon poslednje ažuriranja Baze podataka CRLite vrši se putem OCSP protokola, uključujući korišćenje tehnike (ovjereni odgovor OCSP od strane certifikacijskog tijela šalje se serverom koji opslužuje web stranicu prilikom uspostavljanja TLS veze).
Koristeći Bloomove filtre, decembarska rezerva informacija iz WebPKI, koja obuhvata 100 miliona aktivnih sertifikata i 750 tisuća opozvanih sertifikata, uspela je da se spakuje u strukturu veličine 1.3 MB. Proces generiranja strukture je dovoljno resursno zahtevan, ali se izvodi na serveru Mozilla i korisniku se već dostavlja ažuriranje. Na primer, u binarnom obliku korišćeni izvorni podaci prilikom generiranja zahtevaju oko 16 GB memorije kada se čuvaju u Redis bazi podataka, dok u heksadecimalnom obliku dump svih serijskih brojeva sertifikata zauzima oko 6.7 GB. Proces agregacije svih opozvanih i aktivnih sertifikata traje oko 40 minuta, a proces generiranja pakovane strukture na osnovu Bloomovog filtriranja zahteva još 20 minuta.
Trenutno je u Mozilli osigurano ažuriranje Baze podataka CRLite četiri puta dnevno (ne svih ažuriranja se isporučuje klijentima). Generisanje delta-ažuriranja trenutno nije realizovano — upotreba bsdiff4, koja se koristi za kreiranje delta-ažuriranja verzija, ne obezbeđuje odgovarajuću efikasnost za CRLite i ažuriranja su neopravdano velika. Radi uklanjanja ovog nedostatka, planira se preuređenje formata strukture skladištenja kako bi se isključilo nepotrebno preuređivanje i brisanje slojeva.
CRLite trenutno radi u Firefoxu u pasivnom modu i koristi se paralelno s OCSP-om za prikupljanje statistike o točnosti rada. CRLite se može prebaciti u glavni način provjere, za što je potrebno u about:config postaviti parametar security.pki.crlite_mode = 2.
Izvor: opennet.ru
