Mozilla implementerer CRLite for at tjekke for problematiske TLS-certifikater

Mozilla Company annonceret om starten på at teste i natlige builds af Firefox en ny mekanisme til at opdage tilbagekaldte certifikater - CRLite. CRLite giver dig mulighed for at organisere effektiv kontrol af tilbagekaldelse af certifikater mod en database, der er hostet på brugerens system. Mozillas CRLite-implementering offentliggjort under den gratis MPL 2.0-licens. Koden til generering af database- og serverkomponenterne er skrevet ind Python og gå. Klientdele tilføjet til Firefox til læsning af data fra databasen forberedt i rustsprog.

Certifikatbekræftelse ved hjælp af eksterne tjenester baseret på den protokol, der stadig bruges OCSP (Online Certificate Status Protocol) kræver garanteret netværksadgang, fører til en betydelig forsinkelse i anmodningsbehandlingen (350 ms i gennemsnit) og har problemer med at sikre fortrolighed (OCSP-servere, der svarer på forespørgsler, modtager information om specifikke certifikater, som kan bruges til at vurdere, om hvad websteder, som brugeren åbner). Der er også mulighed for lokal kontrol mod lister C.R.L. (Certificate Revocation List), men ulempen ved denne metode er den meget store størrelse af de downloadede data - i øjeblikket fylder databasen med tilbagekaldte certifikater omkring 300 MB, og dens vækst fortsætter.

For at blokere certifikater, der er blevet kompromitteret og tilbagekaldt af certificeringsmyndigheder, har Firefox brugt en centraliseret sortliste siden 2015 OneCRL i kombination med et opkald til service Google Safe Browsing at identificere mulig ondsindet aktivitet. OneCRL, ligesom CRL -sæt i Chrome, fungerer som et mellemled, der samler CRL-lister fra certificeringsmyndigheder og leverer en enkelt centraliseret OCSP-tjeneste til kontrol af tilbagekaldte certifikater, hvilket gør det muligt ikke at sende anmodninger direkte til certificeringsmyndigheder. På trods af meget arbejde med at forbedre pålideligheden af ​​online-certifikatverifikationstjenesten viser telemetridata, at mere end 7 % af OCSP-anmodninger timeout (for et par år siden var dette tal 15 %).

Som standard, hvis det er umuligt at verificere via OCSP, betragter browseren certifikatet som gyldigt. Tjenesten kan være utilgængelig på grund af netværksproblemer og begrænsninger på interne netværk, eller blokeret af angribere - for at omgå OCSP-kontrollen under et MITM-angreb, skal du blot blokere adgangen til kontroltjenesten. Dels for at forhindre sådanne angreb, er en teknik blevet implementeret Skal hæfteklammer, som giver dig mulighed for at behandle en OCSP-adgangsfejl eller OCSP-utilgængelighed som et problem med certifikatet, men denne funktion er valgfri og kræver særlig registrering af certifikatet.

CRLite giver dig mulighed for at konsolidere fuldstændig information om alle tilbagekaldte certifikater i en let opdateret struktur, kun 1 MB i størrelse, hvilket gør det muligt at gemme en komplet CRL-database på klientsiden.
Browseren vil dagligt kunne synkronisere sin kopi af data om tilbagekaldte certifikater, og denne database vil være tilgængelig under alle forhold.

CRLite kombinerer information fra Certifikatgennemsigtighed, en offentlig log over alle udstedte og tilbagekaldte certifikater og resultaterne af scanning af certifikater på internettet (forskellige CRL-lister over certificeringsmyndigheder indsamles, og oplysninger om alle kendte certifikater samles). Data pakkes ved hjælp af cascading Bloom filtre, en probabilistisk struktur, der tillader en falsk detektering af et manglende element, men udelukker udeladelse af et eksisterende element (dvs. med en vis sandsynlighed er en falsk positiv for et korrekt certifikat mulig, men tilbagekaldte certifikater er garanteret identificeret).

For at eliminere falske positiver har CRLite introduceret yderligere korrigerende filterniveauer. Efter generering af strukturen søges alle kildeposter, og eventuelle falske positiver identificeres. Baseret på resultaterne af denne kontrol oprettes en yderligere struktur, som kaskades over på den første og korrigerer de resulterende falske positiver. Operationen gentages, indtil falske positiver under kontrolkontrollen er fuldstændig elimineret. Oprettelse af 7-10 lag er typisk tilstrækkeligt til at dække alle data fuldstændigt. Da databasens tilstand, på grund af periodisk synkronisering, halter lidt efter den nuværende tilstand af CRL, udføres kontrol af nye certifikater udstedt efter den sidste opdatering af CRLite-databasen ved hjælp af OCSP-protokollen, herunder brug af OCSP hæftning (et OCSP-svar, der er certificeret af en certificeringsmyndighed, transmitteres af serveren, der betjener webstedet, når der forhandles om en TLS-forbindelse).

Mozilla implementerer CRLite for at tjekke for problematiske TLS-certifikater

Ved hjælp af Bloom-filtre kunne december-udsnittet af information fra WebPKI, der dækkede 100 millioner aktive certifikater og 750 tusind tilbagekaldte certifikater, pakkes ind i en struktur på 1.3 MB i størrelse. Strukturgenereringsprocessen er ret ressourcekrævende, men den udføres på Mozilla-serveren, og brugeren får en færdig opdatering. For eksempel, i binær form, kræver de kildedata, der bruges under genereringen, omkring 16 GB hukommelse, når de er lagret i Redis DBMS, og i hexadecimal form tager et dump af alle certifikatserienumre omkring 6.7 GB. Processen med at samle alle tilbagekaldte og aktive certifikater tager omkring 40 minutter, og processen med at generere en pakket struktur baseret på Bloom-filteret tager yderligere 20 minutter.

Mozilla sikrer i øjeblikket, at CRLite-databasen opdateres fire gange om dagen (ikke alle opdateringer leveres til klienter). Generering af delta-opdateringer er endnu ikke implementeret - brugen af ​​bsdiff4, der bruges til at skabe delta-opdateringer til udgivelser, giver ikke tilstrækkelig effektivitet for CRLite, og opdateringerne er urimeligt store. For at eliminere denne ulempe er det planlagt at omarbejde formatet af lagerstrukturen for at eliminere unødvendig genopbygning og sletning af lag.

CRLite fungerer i øjeblikket i Firefox i passiv tilstand og bruges parallelt med OCSP til at akkumulere statistik om den korrekte betjening. CRLite kan skiftes til hovedscanningstilstand; for at gøre dette skal du indstille parameteren security.pki.crlite_mode = 2 i about:config.

Mozilla implementerer CRLite for at tjekke for problematiske TLS-certifikater

Kilde: opennet.ru

Tilføj en kommentar