Mozilla implementează CRLite pentru a verifica certificatele TLS problematice

Compania Mozilla a anunțat despre începutul testării în builds nocturne Firefox a noului mecanism de identificare a certificatelor revocate — CRLite. CRLite permite organizarea unei verificări eficiente a revocării certificatelor pe baza unei baze de date ce este stocată pe sistemul utilizatorului. Implementarea dezvoltată în Mozilla a CRLite publicată este sub licența liberă MPL 2.0. Codul pentru generarea bazei de date și componentele serverului sunt scrise în Python și Go. Părțile client adăugate în Firefox pentru a citi date din baza de date sunt pregătite sunt scrise în limbajul Rust.

Verificarea certificatelor aplicată până acum, utilizând servicii externe bazate pe protocolul OCSP (Protocolul de Status al Certificatului Online) necesită acces garantat la rețea, provocând o întârziere notabilă în procesarea cererii (în medie 350ms) și are probleme legate de confidențialitate (serverele care răspund la cereri OCSP primesc informații despre certificate specifice, din care se poate deduce ce site-uri sunt vizitate de utilizator). Există de asemenea posibilitatea unei verificări locale prin liste CRL (Lista de Revocare a Certificatelor), dar dezavantajul acestei metode este dimensiunea foarte mare a datelor descărcate — în prezent, baza de date a certificatelor revocate ocupă aproximativ 300 MB și continuă să crească.

Pentru a bloca certificatele compromise și cele revocate de autoritățile de certificare, Firefox utilizează din 2015 o listă neagră centralizată OneCRL în combinație cu accesul la serviciul Google Safe Browsing pentru a identifica posibila activitate dăunătoare. OneCRL, la fel ca și CRLSets în Chrome, funcționează ca un element intermediar care agregă listele CRL de la autoritățile de certificare și oferă un serviciu OCSP centralizat pentru verificarea certificatelor revocate, permițând evitarea trimiterii cererilor direct la autoritățile de certificare. În ciuda eforturilor considerabile de a îmbunătăți fiabilitatea serviciului de verificare online a certificatelor, datele de telemetrie arată că peste 7% din cererile OCSP se încheie cu timeout (cu câțiva ani în urmă, acest procent era de 15%).

Implicit, în cazul în care verificarea prin OCSP nu poate fi efectuată, browserul consideră certificatul valid. Serviciul poate fi inaccesibil atât din cauza problemelor de rețea și a restricțiilor din rețelele interne, cât și fiind blocat de atacatori - pentru a ocoli verificarea OCSP în timpul unei atacuri MITM, este suficient să blocheze accesul la serviciul de verificare. Parțial pentru a preveni astfel de atacuri, este implementată o tehnică Must-Staple, care permite interpretarea erorii de accesare a OCSP sau a inaccesibilității OCSP ca o problemă cu certificatul, dar această opțiune este opțională și necesită un certificat special.

CRLite reduce informațiile complete despre toate certificatele revocate într-o structură ușor actualizabilă, cu o dimensiune de doar 1 MB, ceea ce permite stocarea întregii baze CRL pe partea clientului.
Browserul va putea să-și sincronizeze zilnic copia de date despre certificatele revocate, iar această bază de date va fi disponibilă în orice condiții.

CRLite combină informațiile din Certificate Transparency, jurnalul public al tuturor certificatelor emise și revocate, și rezultatele scanării certificatelor pe internet (sunt colectate diverse liste CRL de către autoritățile de certificare și este agregată informația despre toate certificatele cunoscute). Datele sunt ambalate folosind filtre Bloom , o structură probabilistică care permite o corectare falsă pentru un element lipsă, dar exclude omisiunea unui element existent (adică, cu o anumită probabilitate, este posibil să existe un fals pozitiv pentru un certificat valid, dar certificatele revocate vor fi garantat identificate)., o structură probabilistică care permite determinarea greșită a unui element lipsă, dar exclude omisiunea unui element existent (adică, cu o anumită probabilitate, este posibil să existe un fals pozitiv pentru un certificat corect, dar certificatele retrase vor fi identificate garantat).

Pentru a exclude alertele false în CRLite, au fost introduse niveluri suplimentare de corectare a filtrelor. După generarea structurii, se efectuează o verificare a tuturor înregistrărilor originale și se determină alertele false apărute. Ca urmare a acestei verificări, se creează o structură suplimentară, care se suprapune în cascadă peste prima și corectează alertele false apărute. Operația se repetă până când alertele false la verificarea de control sunt complet excluse. De obicei, pentru o acoperire completă a tuturor datelor, este suficient să se creeze între 7 și 10 straturi. Deoarece starea bazei de date din cauza sincronizărilor periodice rămâne puțin în urma stării actuale a CRL, verificarea certificatelor noi, emise după ultima actualizare a bazei de date CRLite, se realizează folosind protocolul OCSP, inclusiv utilizând tehnica OCSP Stapling (răspunsul OCSP validat de către autoritatea de certificare este transmis de serverul care servește site-ul în timpul negocierii conexiunii TLS).

Mozilla implementează CRLite pentru a verifica certificatele TLS problematice

Cu ajutorul filtrilor Bloom, secțiunea din decembrie a informațiilor din WebPKI, care acoperă 100 de milioane de certificate active și 750 de mii de certificate revocate, a fost compactată într-o structură de dimensiune de 1.3 MB. Procesul de generare a structurii este destul de consumator de resurse, dar acesta se realizează pe serverul Mozilla și utilizatorului i se oferă deja o actualizare gata. De exemplu, sub formă binară, datele utilizate în timpul generării necesită aproximativ 16 GB de memorie când sunt stocate în baza de date Redis, iar sub formă hexazecimală, dump-ul tuturor numerelor de serie ale certificatelor ocupă aproximativ 6.7 GB. Procesul de agregare a tuturor certificatelor revocate și active durează aproximativ 40 de minute, iar procesul de generare a structurii comprimate pe baza filtrului Bloom necesită încă 20 de minute.

În prezent, Mozilla asigură actualizarea bazei de date CRLite de patru ori pe zi (nu toate actualizările sunt livrate clienților). Generarea actualizărilor delta nu a fost implementată încă - utilizarea bsdiff4, folosit pentru crearea actualizărilor delta ale versiunilor, nu oferă eficiența necesară pentru CRLite, iar actualizările rezultate devin în mod nejustificat mari. Pentru a remedia această lipsă, se planifică refacerea formatului structurii de stocare pentru a exclude reorganizarea inutilă și eliminarea straturilor.

CRLite funcționează momentan în Firefox în modul pasiv și este utilizat împreună cu OCSP pentru a acumula statistici despre corectitudinea funcționării. CRLite poate fi comutat în modul de verificare principală, pentru aceasta în about:config trebuie să se seteze parametrul security.pki.crlite_mode = 2.

Mozilla implementează CRLite pentru a verifica certificatele TLS problematice

Sursa: opennet.ro

Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS 🔥 Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS | ProHoster