Urzędy certyfikacji w systemach Linux mają zbyt prosty pogląd na "zaufanie"

nfsec.pl 1 rok temu

J

ak zauważył Chris Siebenmann prawie każdy system Linux (a tak naprawdę, każdy system Unix) posiada systemowy „schowek” dla głównych certyfikatów CA. Możemy przez to rozumieć katalog, w którym przechowywana jest lista wszystkich certyfikatów CA, które są domyślnie zaufane przez większość systemu wykorzystującego TLS. Z różnych rozsądnych powodów, wiele dystrybucji Linuksa wykorzystuje magazyn CA Mozilli jako swój systemowy czasami wprowadzając pewne zmiany. Na czym polega więc problem? Sednem jest fakt, iż Mozilla oraz Microsoft właśnie przestały ufać głównym certyfikatom TrustCor w swoich przeglądarkach. Oznacza to, iż certyfikaty wydane od 1 grudnia przez tego CA nie będą zaufane, a główne certyfikaty zostaną usunięte z przeglądarek po wygaśnięciu. O ile zmiana w przeglądarkach zadziała się dość gwałtownie to należy zauważyć, iż w systemach takich jak Linux, które bazują na głównym magazynie certyfikatów Mozilli będą w pełni ufać TrustCor przez co najmniej kolejny rok lub dłużej ze względu na opóźnienia w wydaniu i instalacji aktualizacji paczki ca-certificates. Możemy być zdezorientowani dlaczego systemy Linuksowe tak długo będą ufać certyfikatom TrustCor. Mniej istotnym powodem są opóźnienia jakie wynikną z aktualizacji spakowanych kopii magazynu Mozilli (powstała choćby na ten temat praca naukowa pt. Tracing Your Roots: Exploring the TLS Trust Anchor Ecosystem), a później skłonienie użytkownika do zastosowania tej aktualizacji. Dość znamiennym przykładem mogą tutaj być dystrybucje Ubuntu oraz Debian, które same cofnęły usunięcie certyfikatu Symantec z pakietu Mozilli, ponieważ program nuget używał jeszcze certyfikatów, które nie zostały odnowione, więc tymczasowo przywrócono te od Symantec. Ważniejszym problemem może wydawać się ograniczony model tradycyjnego przechowywania certyfikatów CA w systemach *nix.

Mozilla nie usuwa certyfikatów TrustCor ze swojego magazynu – jeszcze nie teraz. Zamiast tego w magazynie certyfikatów pojawią się „znaczniki” (CKA_NSS_SERVER_DISTRUST_AFTER / CKA_NSS_EMAIL_DISTRUST_AFTER) mówiące, aby nie ufać certyfikatom TrustCor po dacie DD-MM-YYYY i weszły one 1 grudnia. Certyfikaty podpisane przez TrustCor, które zostały wydane przez 1 grudnia 2022 przez cały czas będą (na razie) zaufane. Te wydane po tej dacie już nie. Jest to dobre i rozsądne dla dostawców przeglądarek. Microsoft zdecydował się na analogiczny ruch, ale tutaj data popadnięcia w niełaskę została wyznaczona na 1 listopada. Takie podejście jest problematyczne dla wielu dystrybucji Linuksa, ponieważ główny magazyn certyfikatów na tym systemie i kod z niego korzystający (np. biblioteki kryptograficzne) nie obsługuje tego rodzaju zniuansowanych decyzji dotyczących zmiany poglądu na zaufanie do danego CA. Zamiast tego mamy „główny magazyn”, który zawiera kilka w pełni zaufanych certyfikatów CA i to on musi zostać wymieniony / zmodyfikowany. jeżeli certyfikat jest kawałkiem łańcucha zaufania z certyfikatem TLS w głównym magazynie to jest zaufany. jeżeli nie to nie. Dlatego dopóki główne certyfikaty TrustCor znajdują się w worku głównego magazynu będą dla systemu zaufane – niezależne od tego kiedy zostały wydane; jeżeli je stamtąd usuniemy to żaden z tych certyfikatów nie będzie zaufany. Tutaj nie ma wsparcia dla częściowego zaufania tylko niektórym z tych certyfikatów lub wskazanie go tego programom. Niektóre dystrybucje Linuksa mogą zdecydować się na całkowite usunięcie TrustCor z ich pakietów CA, co jest rozsądnym posunięciem. Ale to wymaga poinformowania wszystkich, którzy korzystają z magazynu Mozilli i podjęcia takiej decyzji, ponieważ jeżeli po prostu wyodrębnią wszystkie główne CA z magazynu, które są „zaufane” na dany dzień lub w pewnym stopniu to otrzymają również certyfikaty TrustCor.

W teorii różne dystrybucje mogłyby zbierać tego rodzaju dodatkowe informacje o zaufaniu z głównego magazynu Mozilli i dołączać je do swoich pakietów z głównymi certyfikatami (zarówno w Ubuntu, jak i Fedorze to wyżej wspomniany pakiet „ca-certificates” i zawiera już wiele innych rzeczy niż tylko certyfikaty). W praktyce nikt nie opracował jeszcze standardu formatu tych dodatkowych informacji ani kodu, który by je konsumował i robił to, co należy w różnych programach.

Więcej informacji: Linux Certificate Authority root stores have a too simple view of 'trust’

Idź do oryginalnego materiału