Mozilla Company om starten af test af en ny mekanisme til at detektere tilbagekaldte certifikater i Firefox' natlige builds — CRLite giver dig mulighed for at organisere en effektiv kontrol af tilbagekaldelse af certifikater mod en database placeret på brugerens system. CRLite-implementeringen er udviklet i Mozilla. under den gratis MPL 2.0-licens. Koden til generering af databasen og serverkomponenterne er skrevet i og Go. Tilføjet til Firefox-klientdele til læsning af data fra databasen på rustsprog.
Verifikation af certifikater ved hjælp af eksterne tjenester baseret på protokollen, som stadig er i brug i dag (Online Certificate Status Protocol) kræver garanteret netværksadgang, introducerer en mærkbar forsinkelse i behandlingen af anmodningen (i gennemsnit 350 ms) og har privatlivsproblemer (responderende OCSP-servere modtager information om specifikke certifikater, som kan bruges til at bedømme, hvilke websteder brugeren åbner). Der er også mulighed for lokal kontrol mod lister. (Certifikattilbagekaldelsesliste), men ulempen ved denne metode er den meget store størrelse af de downloadede data - i øjeblikket fylder databasen over tilbagekaldte certifikater omkring 300 MB og fortsætter med at vokse.
Firefox har brugt en centraliseret sortliste til at blokere certifikater, der er blevet kompromitteret eller tilbagekaldt af CA'er siden 2015. i kombination med en serviceanmodning til at identificere mulig ondsindet aktivitet. OneCRL, som f.eks. I Chrome fungerer den som en mellemmand, der samler CRL-lister fra certificeringsmyndigheder og leverer en enkelt centraliseret OCSP-tjeneste til kontrol af tilbagekaldte certifikater, hvilket gør det muligt at undgå at sende anmodninger direkte til certificeringsmyndigheder. Trods omfattende arbejde for at forbedre pålideligheden af online certifikatverifikationstjenesten viser telemetridata, at mere end 7 % af OCSP-anmodningerne får timeout (for flere år siden var dette tal 15 %).
Som standard, hvis det er umuligt at kontrollere via OCSP, anser browseren certifikatet for at være korrekt. Tjenesten kan være utilgængelig på grund af netværksproblemer og begrænsninger i interne netværk, eller den kan være blokeret af angribere - for at omgå OCSP-kontrollen under et MITM-angreb er det nok blot at blokere adgangen til kontroltjenesten. Delvist for at forhindre sådanne angreb, teknikken , hvilket tillader, at en OCSP-anmodningsfejl eller OCSP-utilgængelighed fortolkes som et problem med certifikatet, men denne funktion er valgfri og kræver et særligt design af certifikatet.
CRLite giver dig mulighed for at konsolidere komplette oplysninger om alle tilbagekaldte certifikater i en let opdateret struktur på kun 1 MB, hvilket gør det muligt at gemme hele CRL-databasen på klientsiden.
Browseren vil være i stand til at synkronisere sin kopi af data på tilbagekaldte certifikater dagligt, og denne database vil være tilgængelig under alle forhold.
CRLite kombinerer information fra , 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 aggregeres). Dataene pakkes ved hjælp af kaskade , en probabilistisk struktur, der tillader en falsk positiv for et manglende element, men udelukker udeladelsen af et eksisterende element (dvs. med en vis sandsynlighed er en falsk positiv for et gyldigt certifikat mulig, men tilbagekaldte certifikater garanteres at blive opdaget).
For at eliminere falske positiver har CRLite introduceret yderligere korrigerende filterniveauer. Efter generering af strukturen sorteres alle de originale poster, og eventuelle falske positiver, der er opstået, bestemmes. Baseret på resultaterne af denne kontrol oprettes en yderligere struktur, som kaskaderes oven på den første og korrigerer eventuelle falske positiver, der er opstået. Handlingen gentages, indtil falske positiver under kontrolkontrollen er fuldstændigt elimineret. Normalt er det nok at oprette 7-10 lag til fuldt ud at dække alle data. Da databasens tilstand halter lidt bagefter CRL'ens aktuelle tilstand på grund af periodisk synkronisering, udføres kontrol af nye certifikater udstedt efter den sidste opdatering af CRLite-databasen ved hjælp af OCSP-protokollen, herunder ved hjælp af (et OCSP-svar, der er certificeret af en certificeringsmyndighed, transmitteres af den server, der betjener webstedet, når der forhandles en TLS-forbindelse).
Ved hjælp af Bloom-filtre blev december-udsnittet af WebPKI-data, der dækker 100 millioner aktive certifikater og 750 tilbagekaldte certifikater, pakket ind i en struktur på 1.3 MB. Processen med at generere strukturen er ret ressourcekrævende, men den udføres på Mozilla-serveren, og brugeren får en færdiglavet opdatering. For eksempel kræver kildedataene, der bruges til generering, i binær form omkring 16 GB hukommelse, når de gemmes i Redis DBMS, og i hexadecimal form tager dumpningen af alle serienumre på certifikater omkring 6.7 GB. Processen med at aggregere alle tilbagekaldte og aktive certifikater tager omkring 40 minutter, og processen med at generere en pakket struktur baseret på Bloom-filteret kræver yderligere 20 minutter.
Mozilla leverer i øjeblikket fire CRLite-databaseopdateringer om dagen (ikke alle opdateringer leveres til klienter). Generering af deltaopdateringer er endnu ikke implementeret - brugen af bsdiff4, der bruges til at oprette delta-releaseopdateringer, giver ikke den nødvendige effektivitet til CRLite, og opdateringerne er urimeligt store. For at eliminere denne ulempe er det planlagt at omarbejde lagringsstrukturformatet for at eliminere unødvendig genopbygning og sletning af lag.
CRLite fungerer i øjeblikket i passiv tilstand i Firefox og bruges parallelt med OCSP til at indsamle statistik om operationens korrekthed. CRLite kan skiftes til den primære verifikationstilstand. Til dette skal du indstille parameteren security.pki.crlite_mode = 2 i about:config.
Kilde: opennet.ru
