Mozilla implementerar CRLite för att leta efter problematiska TLS-certifikat

Mozilla Company tillkännagav om början av testning i nattliga versioner av Firefox, en ny mekanism för att upptäcka återkallade certifikat - CRLite. CRLite låter dig organisera effektiv certifikatåterkallelsekontroll mot en databas som finns på användarens system. Mozillas CRLite-implementering publicerat under den kostnadsfria MPL 2.0-licensen. Koden för att generera databas- och serverkomponenterna skrivs in Python och gå. Klientdelar har lagts till i Firefox för att läsa data från databasen beredd på Rustspråk.

Certifikatverifiering med hjälp av externa tjänster baserat på det protokoll som fortfarande används OCSP (Online Certificate Status Protocol) kräver garanterad nätverksåtkomst, leder till en betydande fördröjning i förfrågningsbehandlingen (350 ms i genomsnitt) och har problem med att säkerställa konfidentialitet (OCSP-servrar som svarar på förfrågningar får information om specifika certifikat, som kan användas för att bedöma om vad webbplatser som användaren öppnar). Det finns även möjlighet till lokal kontroll mot listor CRL (Certificate Revocation List), men nackdelen med denna metod är den mycket stora storleken på nedladdade data - för närvarande upptar databasen med återkallade certifikat cirka 300 MB och dess tillväxt fortsätter.

För att blockera certifikat som har äventyrats och återkallats av certifieringsmyndigheter har Firefox använt en centraliserad svartlista sedan 2015 OneCRL i kombination med ett samtal till service Google Safe Browsing för att identifiera eventuell skadlig aktivitet. OneCRL, liksom CRL -uppsättningar i Chrome, fungerar som en mellanlänk som aggregerar CRL-listor från certifieringsmyndigheter och tillhandahåller en enda centraliserad OCSP-tjänst för kontroll av återkallade certifikat, vilket gör det möjligt att inte skicka förfrågningar direkt till certifieringsmyndigheter. Trots mycket arbete för att förbättra tillförlitligheten hos onlinecertifikatverifieringstjänsten visar telemetridata att mer än 7 % av OCSP-förfrågningarna timeout (för några år sedan var denna siffra 15 %).

Som standard, om det är omöjligt att verifiera via OCSP, anser webbläsaren att certifikatet är giltigt. Tjänsten kan vara otillgänglig på grund av nätverksproblem och restriktioner på interna nätverk, eller blockerad av angripare - för att kringgå OCSP-kontrollen under en MITM-attack, blockera helt enkelt åtkomsten till kontrolltjänsten. Delvis för att förhindra sådana attacker har en teknik implementerats Måste-Staple, vilket gör att du kan behandla ett OCSP-åtkomstfel eller OCSP-otillgänglighet som ett problem med certifikatet, men den här funktionen är valfri och kräver särskild registrering av certifikatet.

CRLite låter dig konsolidera fullständig information om alla återkallade certifikat till en lätt uppdaterad struktur, endast 1 MB stor, vilket gör det möjligt att lagra en komplett CRL-databas på klientsidan.
Webbläsaren kommer att kunna synkronisera sin kopia av data om återkallade certifikat dagligen, och denna databas kommer att vara tillgänglig under alla förhållanden.

CRLite kombinerar information från Certifikatöppenhet, en offentlig logg över alla utfärdade och återkallade certifikat och resultaten av genomsökning av certifikat på Internet (olika CRL-listor över certifieringsmyndigheter samlas in och information om alla kända certifikat samlas). Data paketeras med hjälp av cascading Bloom filter, en probabilistisk struktur som tillåter en falsk detektering av ett saknat element, men utesluter utelämnandet av ett befintligt element (d.v.s. med en viss sannolikhet är en falsk positiv för ett korrekt certifikat möjlig, men återkallade certifikat kan garanterat identifieras).

För att eliminera falska positiva resultat har CRLite infört ytterligare korrigerande filternivåer. Efter generering av strukturen genomsöks alla källposter och eventuella falska positiva identifieras. Baserat på resultaten av denna kontroll skapas en ytterligare struktur, som kaskaderas till den första och korrigerar de resulterande falska positiva. Operationen upprepas tills falska positiva resultat under kontrollkontrollen är helt eliminerade. Vanligtvis är det tillräckligt att skapa 7-10 lager för att helt täcka all data. Eftersom tillståndet för databasen, på grund av periodisk synkronisering, släpar något efter det nuvarande tillståndet för CRL, utförs kontroll av nya certifikat som utfärdats efter den senaste uppdateringen av CRLite-databasen med hjälp av OCSP-protokollet, inklusive användning av OCSP häftning (ett OCSP-svar som är certifierat av en certifieringsmyndighet överförs av servern som betjänar platsen när en TLS-anslutning förhandlas).

Mozilla implementerar CRLite för att leta efter problematiska TLS-certifikat

Med hjälp av Bloom-filter kunde decemberinformationen från WebPKI, som täcker 100 miljoner aktiva certifikat och 750 tusen återkallade certifikat, packas in i en struktur på 1.3 MB i storlek. Strukturgenereringsprocessen är ganska resurskrävande, men den utförs på Mozilla-servern och användaren får en färdig uppdatering. Till exempel, i binär form, kräver källdata som används under genereringen cirka 16 GB minne när de lagras i Redis DBMS, och i hexadecimal form tar en dumpning av alla certifikats serienummer cirka 6.7 ​​GB. Processen att sammanställa alla återkallade och aktiva certifikat tar cirka 40 minuter, och processen att generera en paketerad struktur baserad på Bloom-filtret tar ytterligare 20 minuter.

Mozilla ser för närvarande till att CRLite-databasen uppdateras fyra gånger om dagen (alla uppdateringar levereras inte till klienter). Generering av deltauppdateringar har ännu inte implementerats - användningen av bsdiff4, som används för att skapa deltauppdateringar för releaser, ger inte tillräcklig effektivitet för CRLite och uppdateringarna är orimligt stora. För att eliminera denna nackdel är det planerat att omarbeta formatet på lagringsstrukturen för att eliminera onödig ombyggnad och radering av lager.

CRLite fungerar för närvarande i Firefox i passivt läge och används parallellt med OCSP för att samla statistik om korrekt funktion. CRLite kan växlas till huvudskanningsläge, för att göra detta måste du ställa in parametern security.pki.crlite_mode = 2 i about:config.

Mozilla implementerar CRLite för att leta efter problematiska TLS-certifikat

Källa: opennet.ru

Lägg en kommentar