Mozilla implementează CRLite pentru a verifica dacă există certificate TLS problematice

Compania Mozilla a anunțat despre începerea testării în versiunile nocturne ale Firefox a unui nou mecanism pentru detectarea certificatelor revocate - CRLite. CRLite vă permite să organizați o verificare eficientă a revocării certificatelor în raport cu o bază de date găzduită în sistemul utilizatorului. Implementarea CRLite de la Mozilla publicat sub licența MPL 2.0 gratuită. Codul pentru generarea bazei de date și a componentelor serverului sunt scrise Piton si pleaca. Părți de client adăugate la Firefox pentru citirea datelor din baza de date pregătit în limba Rust.

Verificarea certificatului folosind servicii externe bazate pe protocolul care este încă utilizat OCSP (Online Certificate Status Protocol) necesită acces garantat la rețea, duce la o întârziere semnificativă în procesarea cererilor (350 ms în medie) și are probleme cu asigurarea confidențialității (serverele OCSP care răspund la solicitări primesc informații despre anumite certificate, care pot fi folosite pentru a evalua dacă ceea ce site-urile deschise de utilizator). Există, de asemenea, posibilitatea verificării locale pe liste CRL (Certificate Revocation List), 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 creșterea acesteia continuă.

Pentru a bloca certificatele care au fost compromise și revocate de autoritățile de certificare, Firefox a folosit o listă neagră centralizată din 2015 OneCRL în combinație cu un apel la service Navigare sigură Google pentru a identifica posibile activități rău intenționate. OneCRL, cum ar fi CRLSets în Chrome, acționează ca o legătură intermediară care adună listele CRL de la autoritățile de certificare și oferă un singur serviciu OCSP centralizat pentru verificarea certificatelor revocate, făcând posibilă nu trimiterea cererilor direct autorităților de certificare. În ciuda multor eforturi pentru a îmbunătăți fiabilitatea serviciului de verificare a certificatelor online, datele de telemetrie arată că mai mult de 7% dintre solicitările OCSP expiră (cu câțiva ani în urmă, această cifră era de 15%).

În mod implicit, dacă este imposibil de verificat prin OCSP, browserul consideră certificatul valid. Serviciul poate fi indisponibil din cauza problemelor de rețea și a restricțiilor asupra rețelelor interne sau blocat de atacatori - pentru a ocoli verificarea OCSP în timpul unui atac MITM, pur și simplu blocați accesul la serviciul de verificare. Parțial pentru a preveni astfel de atacuri, a fost implementată o tehnică Trebuie să capseze, care vă permite să tratați o eroare de acces OCSP sau indisponibilitatea OCSP ca o problemă cu certificatul, dar această caracteristică este opțională și necesită înregistrarea specială a certificatului.

CRLite vă permite să consolidați informații complete despre toate certificatele revocate într-o structură ușor de actualizat, cu o dimensiune de doar 1 MB, ceea ce face posibilă stocarea unei baze de date CRL complete pe partea clientului.
Browserul își va putea sincroniza zilnic copia datelor despre certificatele revocate, iar această bază de date va fi disponibilă în orice condiții.

CRLite combină informații de la Transparența certificatelor, un jurnal public al tuturor certificatelor emise și revocate și rezultatele scanării certificatelor pe Internet (se colectează diverse liste CRL ale autorităților de certificare și se adună informații despre toate certificatele cunoscute). Datele sunt împachetate folosind cascada Filtre de Bloom, o structură probabilistică care permite o detectare falsă a unui element lipsă, dar exclude omiterea unui element existent (adică, cu o anumită probabilitate, este posibil un fals pozitiv pentru un certificat corect, dar certificatele revocate sunt garantate a fi identificate).

Pentru a elimina falsele pozitive, CRLite a introdus niveluri suplimentare de filtre corective. După generarea structurii, toate înregistrările sursă sunt căutate și sunt identificate orice fals pozitiv. Pe baza rezultatelor acestei verificări, se creează o structură suplimentară, care este cascată pe prima și corectează fals-pozitivele rezultate. Operația se repetă până când falsele pozitive din timpul verificării de control sunt complet eliminate. De obicei, crearea a 7-10 straturi este suficientă pentru a acoperi complet toate datele. Deoarece starea bazei de date, din cauza sincronizării periodice, este ușor în urmă cu starea actuală a CRL, verificarea noilor certificate emise după ultima actualizare a bazei de date CRLite se efectuează folosind protocolul OCSP, inclusiv folosind Capsare OCSP (un răspuns OCSP certificat de o autoritate de certificare este transmis de serverul care deservește site-ul atunci când se negociază o conexiune TLS).

Mozilla implementează CRLite pentru a verifica dacă există certificate TLS problematice

Folosind filtrele Bloom, porțiunea de informații din decembrie din WebPKI, care acoperă 100 de milioane de certificate active și 750 de mii de certificate revocate, a putut fi împachetată într-o structură de 1.3 MB. Procesul de generare a structurii necesită destul de mult resurse, dar este efectuat pe serverul Mozilla și utilizatorului i se oferă o actualizare gata făcută. De exemplu, în formă binară, datele sursă utilizate în timpul generării necesită aproximativ 16 GB de memorie atunci când sunt stocate în DBMS Redis, iar în formă hexazecimală, o descărcare a tuturor numerelor de serie ale certificatelor durează aproximativ 6.7 GB. Procesul de agregare a tuturor certificatelor revocate și active durează aproximativ 40 de minute, iar procesul de generare a unei structuri de pachete bazate pe filtrul Bloom durează încă 20 de minute.

Mozilla se asigură în prezent că baza de date CRLite este actualizată de patru ori pe zi (nu toate actualizările sunt livrate clienților). Generarea de actualizări delta nu a fost încă implementată - utilizarea bsdiff4, folosită pentru a crea actualizări delta pentru versiuni, nu oferă o eficiență adecvată pentru CRLite și actualizările sunt nerezonabil de mari. Pentru a elimina acest dezavantaj, este planificată reluarea formatului structurii de stocare pentru a elimina reconstrucția și ștergerea inutile a straturilor.

CRLite funcționează în prezent în Firefox în modul pasiv și este folosit în paralel cu OCSP pentru a acumula statistici despre funcționarea corectă. CRLite poate fi comutat în modul de scanare principal; pentru a face acest lucru, trebuie să setați parametrul security.pki.crlite_mode = 2 în about:config.

Mozilla implementează CRLite pentru a verifica dacă există certificate TLS problematice

Sursa: opennet.ru

Adauga un comentariu