CRLite, nowy mechanizm Mozilli do sprawdzania poprawności certyfikatu TLS

Logo Firefox

Ostatnio Mozilla ogłosiła uruchomienie nowego mechanizmu wykrywania certyfikatów unieważnienie nazywa się „CRLite” i znajduje się w nocnych wersjach przeglądarki Firefox. Ten nowy mechanizm pozwala na zorganizowanie weryfikacji skuteczne unieważnienie certyfikatu względem bazy danych hostowanej w systemie użytkownika.

Dotychczasowa weryfikacja certyfikatu z wykorzystaniem usług zewnętrznych W protokole OCSP (Protokół stanu certyfikatu online) wymaga gwarantowanego dostępu do sieci, co prowadzi do zauważalnego opóźnienia w przetwarzaniu żądania (średnio 350 ms) i ma problemy z poufnością (serwery odpowiadające na żądania OCSP otrzymuje informacje o konkretnych certyfikatach, które można wykorzystać do oceny, które witryny użytkownik otwiera).

również istnieje możliwość lokalnej weryfikacji na podstawie CRL (Lista unieważnionych certyfikatów), ale wadą tej metody jest duży rozmiar pobieranych danych: Obecnie baza unieważnień certyfikatów zajmuje około 300 MB i nadal się rozrasta.

Firefox korzysta ze scentralizowanej czarnej listy OneCRL od 2015 roku w celu blokowania przejętych i unieważnionych certyfikatów przez urzędy certyfikacji wraz z dostępem do usługi bezpiecznego przeglądania Google w celu wykrycia możliwej złośliwej aktywności.

OneCRL, podobnie jak CRLSets w Chrome, działa jako łącze pośrednie, które agreguje listy CRL urzędów certyfikacji i zapewnia jedną scentralizowaną usługę OCSP do weryfikacji unieważnionych certyfikatów, dzięki czemu nie można wysyłać żądań bezpośrednio do urzędów certyfikacji.

Domyślna, jeśli weryfikacja za pomocą protokołu OCSP nie jest możliwa, przeglądarka uznaje certyfikat za ważny. Tak więc jeśli usługa jest niedostępna z powodu problemów z siecią i ograniczenia sieci wewnętrznej lub że może zostać zablokowany przez atakujących podczas ataku MITM. Aby uniknąć takich ataków, wdrożono technikę Must-Staple, co pozwala na interpretację błędu dostępu OCSP lub niedostępności OCSP jako problemu z certyfikatem, ale ta funkcja jest opcjonalna i wymaga specjalnej rejestracji certyfikatu.

O CRLite

CRLite umożliwia dostarczenie pełnej informacji o wszystkich unieważnionych certyfikatach w łatwo odnawialnej strukturze tylko 1 MB, co umożliwia przechowywanie całej bazy CRL po stronie klienta. Przeglądarka będzie mogła codziennie synchronizować swoją kopię danych w unieważnionych certyfikatach i ta baza danych będzie dostępna na każdych warunkach.

CRLite łączy informacje z Certificate Transparency, publiczny zapis wszystkich wydanych i unieważnionych certyfikatów oraz wyniki skanowania certyfikatów w Internecie (zbierane są różne listy CRL centrów certyfikacji i dodawane są informacje o wszystkich znanych certyfikatach).

Dane są pakowane przy użyciu filtrów Blooma, struktura probabilistyczna, która pozwala na fałszywe określenie brakującego elementu, ale wyklucza pominięcie istniejącego elementu (to znaczy, z pewnym prawdopodobieństwem, dla ważnego certyfikatu możliwe są fałszywe alarmy, ale certyfikaty unieważnione gwarantują wykrycie).

Aby wyeliminować fałszywe alarmy, CRLite wprowadził dodatkowe poziomy filtrów korekcyjnych. Po zbudowaniu struktury wyszczególnione są wszystkie rekordy źródłowe i wykrywane są fałszywe alarmy.

Na podstawie wyników tej weryfikacji tworzona jest dodatkowa struktura, która przechodzi kaskadowo na pierwszą i koryguje wszelkie fałszywe alarmy, które się pojawiły. Operacja jest powtarzana, dopóki podczas weryfikacji nie zostaną całkowicie wykluczone fałszywe alarmy.

Zwykleal, aby całkowicie pokryć wszystkie dane, wystarczy utworzyć 7-10 warstw. Ponieważ stan bazy danych wynikający z okresowej synchronizacji jest nieco niższy od aktualnego stanu listy CRL, weryfikacja nowych certyfikatów wydanych po ostatniej aktualizacji bazy CRLite odbywa się z wykorzystaniem protokołu OCSP, w tym z wykorzystaniem techniki zszywania OCSP .

Implementacja CRLite w Mozilli jest udostępniana na bezpłatnej licencji MPL 2.0. Kod do generowania bazy danych i komponenty serwera są napisane w języku Python and Go. Części klienckie dodane do Firefoksa w celu odczytu danych z bazy danych są przygotowane w języku Rust.

źródło: https://blog.mozilla.org/


Zostaw swój komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

*

*

  1. Odpowiedzialny za dane: Miguel Ángel Gatón
  2. Cel danych: kontrola spamu, zarządzanie komentarzami.
  3. Legitymacja: Twoja zgoda
  4. Przekazywanie danych: Dane nie będą przekazywane stronom trzecim, z wyjątkiem obowiązku prawnego.
  5. Przechowywanie danych: baza danych hostowana przez Occentus Networks (UE)
  6. Prawa: w dowolnym momencie możesz ograniczyć, odzyskać i usunąć swoje dane.