Wycofanie certyfikatu głównego AddTrust powoduje awarie w systemach OpenSSL i GnuTLS

30 maja upłynął 20-letni okres ważności certyfikatu głównego Dodaj zaufanieKtóry stosowany do generowania certyfikatów krzyżowo podpisanych jednego z największych urzędów certyfikacji Sectigo (Comodo). Podpisywanie krzyżowe zapewniło zgodność ze starszymi urządzeniami, do których nie dodano nowego certyfikatu głównego USERTRust do ich magazynu certyfikatów głównych.

Wycofanie certyfikatu głównego AddTrust powoduje awarie w systemach OpenSSL i GnuTLS

Teoretycznie zakończenie certyfikatu głównego AddTrust powinno prowadzić jedynie do naruszenia kompatybilności ze starszymi systemami (Android 2.3, Windows XP, Mac OS X 10.11, iOS 9 itp.), ponieważ drugi certyfikat główny użyty w podpisie krzyżowym pozostaje prawidłowe i nowoczesne przeglądarki uwzględniają to przy sprawdzaniu łańcucha zaufania. Na praktyce pokazał się Problemy z weryfikacją podpisów krzyżowych w klientach TLS innych niż przeglądarka, w tym opartych na OpenSSL 1.0.x i GnuTLS. Bezpieczne połączenie nie jest już nawiązywane z powodu błędu wskazującego, że certyfikat jest nieaktualny, jeśli serwer używa certyfikatu Sectigo połączonego łańcuchem zaufania z certyfikatem głównym AddTrust.

Jeśli użytkownicy nowoczesnych przeglądarek nie zauważyli starzenia się certyfikatu głównego AddTrust podczas przetwarzania certyfikatów Sectigo z podpisem krzyżowym, zaczęły pojawiać się problemy w różnych aplikacjach innych firm i procedurach obsługi po stronie serwera, co doprowadziło do naruszenie pracować wiele infrastruktur wykorzystujących szyfrowane kanały komunikacji do interakcji między komponentami.

Na przykład były problemy przy dostępie do niektórych repozytoriów pakietów w Debianie i Ubuntu (apt zaczął generować błąd weryfikacji certyfikatu), żądania ze skryptów korzystających z narzędzi „curl” i „wget” zaczęły kończyć się niepowodzeniem, zaobserwowano błędy podczas korzystania z Git, naruszone Platforma strumieniowa Roku działa, procedury obsługi nie są już wywoływane Naszywka и DataDog, zaczęła się zdarzają się awarie w aplikacjach Heroku, zatrzymany Klienci OpenLDAP łączą się, wykryto problemy z wysyłaniem poczty do serwerów SMTPS i SMTP z STARTTLS. Ponadto obserwuje się problemy w różnych skryptach Ruby, PHP i Python, które korzystają z modułu z klientem http. Problem z przeglądarką ma wpływ Epiphany, która przestała ładować listy blokowania reklam.

Programy Go nie są dotknięte tym problemem, ponieważ Go oferuje własna realizacja TLS.

To miało byćże problem dotyczy starszych wydań dystrybucji (m.in. Debian 9, Ubuntu 16.04, RHEL 6/7), które używają problematycznych gałęzi OpenSSL, ale problem się objawił także wtedy, gdy menedżer pakietów APT działa w bieżących wersjach Debiana 10 i Ubuntu 18.04/20.04, ponieważ APT używa biblioteki GnuTLS. Sedno problemu polega na tym, że wiele bibliotek TLS/SSL analizuje certyfikat jako łańcuch liniowy, podczas gdy zgodnie z RFC 4158 certyfikat może reprezentować skierowany rozproszony wykres kołowy z wieloma kotwicami zaufania, które należy wziąć pod uwagę. O tej luce w OpenSSL i GnuTLS było jest znany przez wiele lat. W OpenSSL problem został rozwiązany w gałęzi 1.1.1 i w gnuTLS pozostaje nieskorygowany.

W ramach obejścia sugeruje się usunięcie certyfikatu „AddTrust external CA Root” z magazynu systemowego (na przykład usuń z plików /etc/ca-certificates.conf i /etc/ssl/certs, a następnie uruchom polecenie „update-ca -certyfikaty -f -v"), po czym OpenSSL zaczyna normalnie przetwarzać certyfikaty z podpisem krzyżowym przy jego udziale. Korzystając z menedżera pakietów APT, możesz na własne ryzyko wyłączyć weryfikację certyfikatu dla poszczególnych żądań (na przykład „apt-get update -o Acquire::https::download.jitsi.org::Verify-Peer=false”) .

Aby zablokować problem w Fedora и RHEL Proponuje się dodanie certyfikatu AddTrust do czarnej listy:

trust dump —filter «pkcs11:id=%AD%BD%98%7A%34%B4%26%F7%FA%C4%26%54%EF%03%BD%E0%24%CB%54%1A;type=cert» \
> /etc/pki/ca-trust/source/blacklist/addtrust-external-root.p11-kit
ekstrakt update-ca-trust

Ale ta metoda nie działa dla GnuTLS (na przykład podczas uruchamiania narzędzia wget nadal pojawia się błąd weryfikacji certyfikatu).

Po stronie serwera możesz zmienić zamówienie wyszczególnienie certyfikatów w łańcuchu zaufania wysłanym przez serwer do klienta (jeśli certyfikat powiązany z „AddTrust Zewnętrzny CA Root” zostanie usunięty z listy, weryfikacja klienta zakończy się pomyślnie). Aby sprawdzić i wygenerować nowy łańcuch zaufania, możesz skorzystać z usługi whatsmychaincert.com. Sectigo także pod warunkiem, że alternatywny certyfikat pośredni z podpisem krzyżowym „Usługi certyfikatów AAA”, który będzie ważny do 2028 roku i zachowa kompatybilność ze starszymi wersjami systemu operacyjnego.

Dodatek: Problem również objawia się w LibreSSL.

Źródło: opennet.ru

Dodaj komentarz