Společnost Mozilla o zahájení testování nočních sestavení Firefoxu nového mechanismu pro určení odvolaných certifikátů — . CRLite umožňuje efektivní kontrolu odvolání certifikátů na základě databáze umístěné na systému uživatele. Řešení CRLite vyvíjené v Mozille pod licencí MPL 2.0. Kód pro generaci DB a serverové komponenty jsou napsány v Go. Přidané klientské části pro Firefox pro čtení dat z DB jsou napsány v jazyce Rust.
Dosud používaná kontrola certifikátů za účasti externích služeb na základě protokolu (Online Certificate Status Protocol) vyžaduje zaručený síťový přístup, vede k značnému zpoždění při zpracování požadavku (v průměru 350 ms) a má problémy s zajištěním soukromí (servery OCSP, které odpovídají na požadavky, získávají informace o konkrétních certifikátech, podle nichž lze usuzovat na to, jaké stránky uživatel navštěvuje). Existuje také možnost lokální kontroly podle seznamů (Certificate Revocation List), ale nevýhodou této metody je velmi velká velikost stahovaných dat — v současné době zabírá databáze odvolaných certifikátů přibližně 300 MB a její růst pokračuje.
Pro blokování kompromitovaných a odvolaných certifikátů důvěryhodných center se ve Firefoxu používá od roku 2015 centralizovaný černý seznam ve spojení s využíváním služby ke stanovení možné škodlivé aktivity. OneCRL, stejně jako v Chromu, slouží jako prostřední článek, který agreguje CRL seznamy od certifikačních autorit a poskytuje jednotnou centralizovanou OCSP službu pro kontrolu odvolaných certifikátů, která umožňuje neposílat požadavky přímo k certifikačním autoritám. Navzdory značnému úsilí o zvýšení spolehlivosti služby online kontroly certifikátů data z telemetrie ukazují, že více než 7 % požadavků OCSP končí timeoutem (před několika lety byl tento ukazatel 15 %).
Pokud není možné provést ověření pomocí OCSP, prohlížeč považuje certifikát za platný. Služba může být nedostupná jak kvůli síťovým problémům a omezením v interních sítích, tak i zablokována útočníky — pro obcházení ověření OCSP během MITM útoku stačí jednoduše zablokovat přístup k ověřovací službě. Částečně pro prevenci podobných útoků byla implementována technika , která umožňuje považovat chybu při přístupu k OCSP nebo nedostupnost OCSP za problém s certifikátem, avšak tato možnost je volitelná a vyžaduje speciální vystavení certifikátu.
CRLite umožňuje shromáždit úplné informace o všech odvolaných certifikátech do snadno aktualizovatelné struktury o velikosti pouhých 1 MB, což umožňuje uchovávat celou databázi CRL na straně klienta.
Prohlížeč bude moci denně synchronizovat svou kopii dat o odvolaných certifikátech a tato databáze bude dostupná za všech okolností.
CRLite spojuje informace z , veřejného logu všech vydaných a odvolaných certifikátů a výsledků skenování certifikátů na internetu (shromažďují se různé CRL seznamy certifikačních autorit a agregují se informace o všech známých certifikátech). Data jsou balena pomocí kaskádových , pravděpodobnostní struktury, která dovoluje falešné určení chybějícího prvku, ale vylučuje opomenutí existujícího prvku (tj. s určitým pravděpodobností může dojít k falešnému poplachu na platný certifikát, ale odvolané certifikáty budou zaručeně odhaleny).
Aby se eliminovaly falešné alarmy v CRLite, byly zavedeny další korekční úrovně filtru. Po vygenerování struktury se provádí procházení všech zdrojových záznamů a určení vzniklých falešných alarmů. Na základě této kontroly se vytváří další struktura, která kaskádově nanáší na první a opravuje vzniklé falešné alarmy. Operace se opakuje, dokud nejsou falešné alarmy při kontrolní kontrole zcela vyloučeny. Obvykle je pro úplné pokrytí všech údajů dostačující vytvoření 7-10 vrstev. Vzhledem k tomu, že stav databáze kvůli periodické synchronizaci poněkud zaostává za aktuálním stavem CRL, kontrola nových certifikátů vydaných po poslední aktualizaci databáze CRLite se provádí pomocí protokolu OCSP, včetně použití techniky (ověřená certifikační autoritou odpověď OCSP je předávána obsluhujícím webovým serverem při dohodě TLS připojení).
Pomocí Bloomových filtrů se prosincový výřez informací z WebPKI, který pokrývá 100 milionů aktivních certifikátů a 750 tisíc odvolaných certifikátů, podařilo zabalit do struktury o velikosti 1,3 MB. Proces generování struktury je dost náročný na zdroje, ale probíhá na serveru Mozilla a uživateli se již dodává hotová aktualizace. Například ve binární podobě vyžadují použité zdrojové údaje při generování přibližně 16 GB paměti při ukládání v databázi Redis, a v šestnáctkové podobě zabírá dump všech sériových čísel certifikátů přibližně 6,7 GB. Proces agregace všech odvolaných a aktivních certifikátů trvá přibližně 40 minut a proces generování zabalené struktury na základě Bloomova filtru vyžaduje dalších 20 minut.
V současné době je v Mozille zajištěna aktualizace databáze CRLite čtyřikrát denně (ne všechny aktualizace jsou doručovány klientům). Generace delta-aktualizací zatím není realizována - použití bsdiff4, které se používá pro vytváření delta-aktualizací verzí, nezajišťuje dostatečnou efektivitu pro CRLite a aktualizace vycházejí nepřiměřeně velké. K odstranění tohoto nedostatku se plánuje přepracovat formát struktury ukládání, aby se vyloučilo zbytečné přestavování a odstraňování vrstev.
CRLite nyní funguje v prohlížeči Firefox v pasivním režimu a používá se paralelně s OCSP pro shromažďování statistik o správnosti fungování. CRLite lze přepnout do režimu hlavního ověřování, k tomu je potřeba v about:config nastavit parametr security.pki.crlite_mode = 2.
Zdroj: opennet.ru
