Mozilla implementeert CRLite voor het controleren van problematische TLS-certificaten

Mozilla heeft aangekondigd over de start van het testen van de nachtelijke builds van Firefox met het nieuwe mechanisme voor het bepalen van ingetrokken certificaten — CRLite. CRLite maakt een effectieve controle van de intrekking van certificaten mogelijk via een database die op het systeem van de gebruiker wordt geplaatst. De CRLite-implementatie die door Mozilla wordt ontwikkeld gepubliceerd is onder de vrije MPL 2.0-licentie. De code voor het genereren van de database en de servercomponenten zijn geschreven in Python en Go. De in Firefox toegevoegde clientonderdelen voor het lezen van gegevens uit de database poorten voorbereid zijn geschreven in de programmeertaal Rust.

De tot nu toe toegepaste certificaatverificatie die gebruikmaakt van externe services op basis van het protocol OCSP (Online Certificate Status Protocol) vereist gegarandeerde netwerktoegang, leidt tot aanzienlijke vertragingen bij de verwerking van verzoeken (gemiddeld 350 ms) en heeft privacyproblemen (de servers die op verzoeken antwoorden krijgen informatie over specifieke certificaten, waaruit kan worden afgeleid welke sites de gebruiker bezoekt). Er is ook de mogelijkheid voor lokale verificatie op lijsten CRL (Certificate Revocation List), maar het nadeel van deze methode is de zeer grote grootte van de te downloaden gegevens — momenteel bedraagt de database van ingetrokken certificaten ongeveer 300 MB en blijft deze groeien.

Om gecompromitteerde en ingetrokken certificaten van certificeringsinstanties in Firefox te blokkeren, wordt sinds 2015 een gecentraliseerde zwarte lijst gebruikt OneCRL in combinatie met een verzoek aan de service Google Safe Browsing om mogelijke kwaadaardige activiteiten te identificeren. OneCRL, net als CRLSets in Chrome, fungeert als een tussenliggend schakelpunt dat CRL-lijsten van certificeringsinstanties aggregeert en een gecentraliseerde OCSP-service biedt voor het controleren van ingetrokken certificaten, waardoor het mogelijk wordt om geen verzoeken rechtstreeks naar de certificeringsinstanties te sturen. Ondanks het grote werk dat is verricht om de betrouwbaarheid van de online certificaatverificatieservice te verbeteren, tonen telemetriegegevens aan dat meer dan 7% van de OCSP-verzoeken eindigt in een time-out (enkele jaren geleden was dit percentage 15%).

Standaard gaat de browser ervan uit dat een certificaat geldig is als een OCSP-controle niet mogelijk is. De dienst kan onbereikbaar zijn door netwerkproblemen en beperkingen binnen interne netwerken, of door aanvallers die de OCSP-controle blokkeren — tijdens een MITM-aanval is het voldoende om de toegang tot de verificatiedienst te blokkeren. Tot op zekere hoogte is een techniek geĆÆmplementeerd om dergelijke aanvallen te voorkomen. Must-Staple, die de fout bij het aanspreken van OCSP of de onbeschikbaarheid van OCSP kan interpreteren als een probleem met het certificaat, maar deze mogelijkheid is optioneel en vereist een speciale certificaatverwerking.

CRLite maakt het mogelijk om volledige informatie over alle ingetrokken certificaten samen te voegen in een gemakkelijk bij te werken structuur van slechts 1 MB, wat het mogelijk maakt de volledige CRL-database aan de clientzijde op te slaan.
De browser kan dagelijks zijn kopie van de gegevens over ingetrokken certificaten synchroniseren, en deze database zal onder alle omstandigheden toegankelijk zijn.

CRLite combineert informatie uit Certificate Transparency, een openbaar logboek van alle uitgegeven en ingetrokken certificaten, en de resultaten van het scannen van certificaten op internet (verschillende CRL-lijsten van certificeringsinstanties worden verzameld en informatie over alle bekende certificaten wordt geaggregeerd). De gegevens worden verpakt met behulp van cascade- Bloom-filters, een probabilistische structuur die valse identificatie van een ontbrekend element toestaat, maar het overslaan van een bestaand element uitsluit (d.w.z. er is een bepaalde kans op een vals alarm voor een geldig certificaat, maar ingetrokken certificaten zullen gegarandeerd worden ontdekt).

Om valse positiieven in CRLite te voorkomen, zijn er extra corrigerende niveaus in de filter toegevoegd. Na het genereren van de structuur worden alle oorspronkelijke records doorlopen en worden de opgetreden valse positieven vastgesteld. Op basis van deze controle wordt een extra structuur aangemaakt, die in cascade op de eerste laag wordt toegepast en de opgetreden valse positieven corrigeert. Deze operatie wordt herhaald totdat valse positieven bij de controle helemaal zijn uitgesloten. Gewoonlijk is het creƫren van 7-10 lagen voldoende voor een volledige dekking van alle gegevens. Aangezien de status van de database vanwege periodieke synchronisatie iets achterloopt op de actuele status van de CRL, wordt de controle van nieuwe certificaten die na de laatste update van de CRLite-database zijn uitgegeven, uitgevoerd met behulp van het OCSP-protocol, inclusief het gebruik van techniek OCSP Stapling (het door de certificeringsautoriteit ondertekende OCSP-antwoord wordt door de server van de website verzonden tijdens de TLS-handshake).

Mozilla implementeert CRLite voor het controleren van problematische TLS-certificaten

Met behulp van Bloom-filters is het decembersegment van informatie uit WebPKI, dat 100 miljoen actieve certificaten en 750 duizend ingetrokken certificaten omvat, verpakt in een structuur van 1,3 MB. Het proces van het genereren van de structuur is behoorlijk resource-intensief, maar het wordt op de server van Mozilla uitgevoerd en aan de gebruiker wordt al een kant-en-klaar update geleverd. Bijvoorbeeld, in binaire vorm vereisen de gebruikt gegevens tijdens de generatie ongeveer 16 GB aan geheugen bij opslag in de Redis-database, terwijl in hexadecimale vorm de dump van alle serienummers van certificaten ongeveer 6,7 GB in beslag neemt. Het proces van het aggregeren van alle ingetrokken en actieve certificaten duurt ongeveer 40 minuten, en het proces van het genereren van de verpakte structuur op basis van de Bloom-filter vereist nog eens 20 minuten.

Momenteel wordt de CRLite-database in Mozilla vier keer per dag bijgewerkt (niet alle updates worden naar klanten verzonden). De generatie van delta-updates is nog niet gerealiseerd - het gebruik van bsdiff4, dat wordt gebruikt voor het maken van delta-updates van releases, biedt niet de juiste efficiƫntie voor CRLite en de updates worden onterecht groot. Om dit gebrek te verhelpen, wordt gepland het formaat van de opslagstructuur te herzien om onnodige herbouwingen en het verwijderen van lagen te voorkomen.

CRLite werkt momenteel in Firefox in passieve modus en wordt parallel aan OCSP gebruikt om statistieken over de correcte werking te verzamelen. CRLite kan worden overgeschakeld naar de hoofdcontrolesmodus; hiervoor moet je de parameter security.pki.crlite_mode = 2 instellen in about:config.

Mozilla implementeert CRLite voor het controleren van problematische TLS-certificaten

Bron: opennet.ru

Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers šŸ”„ Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers | ProHoster