Zmiany w publicznym PKI zazwyczaj są dla większości organizacji niemal niewidoczne. Certyfikaty root rotują się powoli, certyfikaty pośrednie pojawiają się i znikają, a infrastruktura TLS po prostu działa. Tym razem sytuacja wygląda inaczej. Komunikat opublikowany przez DigiCert nie dotyczy wyłącznie nowych hierarchii CA ani standardowej migracji infrastruktury. Dotyczy samego modelu zaufania, na którym przez lata opierało się WebPKI.
To ważne rozróżnienie.
Przez ostatnią dekadę publiczny ekosystem certyfikatów funkcjonował w modelu, który można określić jako „adaptacyjny”. Klient TLS nie oczekiwał jednej, sztywno określonej ścieżki walidacji. Wystarczyło, że był w stanie odnaleźć dowolną poprawną drogę prowadzącą do zaufanego root CA. Cross-signing, współdzielone certyfikaty pośrednie oraz szerokie EKU sprawiały, że infrastruktura była niezwykle tolerancyjna na różnice pomiędzy środowiskami.
Dla operatorów oznaczało to jedną rzecz: nawet jeśli konfiguracja nie była idealna, TLS zazwyczaj nadal działał. DigiCert właśnie zamyka ten etap.
Spis Treści
DigiCert poinformował o przejściu z multipurpose PKI do dedykowanych hierarchii TLS zgodnych z wymaganiami programu Google Chrome Root Program. W praktyce oznacza to odejście od modelu, w którym ten sam element infrastruktury zaufania mógł obsługiwać jednocześnie TLS, S/MIME oraz Code Signing. Nowe hierarchie TLS mają być:
To fundamentalna zmiana filozofii działania WebPKI.
Żeby zrozumieć znaczenie tej zmiany, trzeba spojrzeć na to, jak naprawdę działała walidacja certyfikatów. Formalnie klient TLS otrzymuje chain od serwera i próbuje zbudować ścieżkę prowadzącą do zaufanego roota. W praktyce oznaczało to jednak coś znacznie bardziej elastycznego: klient nie był ograniczony do jednej ścieżki.
Jeżeli serwer prezentował chain:
Leaf → DigiCert TLS RSA SHA256 2020 CA1 → DigiCert Global Root CA
ale klient posiadał w trust store inny wariant certyfikatu pośredniego lub cross-signed root, nadal był w stanie zakończyć walidację sukcesem.
W wielu środowiskach dokładnie ten sam certyfikat był interpretowany alternatywnie:
Leaf → DigiCert SHA2 Secure Server CA → DigiCert Global Root CA (cross-signed)
To nie był wyjątek ani obejście. To był świadomie zaprojektowany mechanizm kompatybilności. Cross-signing rozwiązywał bardzo konkretny problem: fragmentację trust store pomiędzy systemami operacyjnymi, przeglądarkami, appliance’ami oraz bibliotekami TLS. Dzięki temu:
Z perspektywy użytkownika WebPKI wydawało się stabilne. W rzeczywistości było po prostu bardzo tolerancyjne.
Problem multipurpose PKI nie polegał na tym, że nie działało. Problem polegał na tym, że współdzielone hierarchie rozszerzały zakres zaufania w sposób trudny do kontrolowania. Jeżeli jeden certyfikat pośredni CA może obsługiwać jednocześnie:
to jego kompromitacja wpływa na wiele różnych obszarów infrastruktury jednocześnie. To właśnie ten model zaczęły eliminować programy root store. Najlepiej pokazuje to zestawienie starego i nowego podejścia:
| Obszar | Multipurpose PKI | TLS-only PKI |
|---|---|---|
| Zakres użycia | TLS, S/MIME, Code Signing | Wyłącznie TLS |
| EKU | Szerokie lub mieszane | Ograniczone do serverAuth |
| Cross-signing | Powszechny | Eliminowany |
| Walidacja | Adaptacyjna | Deterministyczna |
| Zakres kompromitacji | Wiele domen zaufania | Ograniczony do TLS |
W praktyce WebPKI przechodzi z modelu elastycznego do modelu restrykcyjnego.
To właśnie tutaj pojawia się najważniejsza zmiana operacyjna. W starym modelu klient TLS próbował znaleźć poprawną ścieżkę walidacji. W nowym modelu klient oczekuje jednej, konkretnej ścieżki.
Nowy chain DigiCert wygląda znacznie bardziej jednoznacznie:
Leaf → DigiCert TLS RSA4096 SHA256 2026 CA1 → DigiCert TLS Root G5
Nie ma alternatywnych ścieżek. Nie ma fallbacków. Nie ma cross-signed rootów, które „uratowałyby” starsze środowisko. Jeżeli klient nie posiada odpowiedniego roota albo oczekuje innej ścieżki walidacji, proces kończy się błędem. I właśnie dlatego organizacje zaczną obserwować sytuacje, które na pierwszy rzut oka wydają się nielogiczne:
Źródłem problemu nie jest sam certyfikat. Źródłem problemu jest niezgodność pomiędzy oczekiwanym a rzeczywistym modelem zaufania.
Nowe wdrożenia zazwyczaj nie będą miały problemu z nowymi hierarchiami. Problemy pojawią się w istniejących środowiskach, które przez lata polegały na kompatybilności zapewnianej przez cross-signing. Wyobraźmy sobie appliance bezpieczeństwa lub load balancer wykorzystujący własny CA bundle aktualizowany raz na kilka lat. Do tej pory takie środowisko nadal było w stanie zweryfikować certyfikat DigiCert, ponieważ klient potrafił odnaleźć alternatywną ścieżkę prowadzącą do starszego roota. Po przejściu na nowe hierarchie TLS ten mechanizm przestaje istnieć.
Efekt może wyglądać następująco:
verify error:num=20:unable to get local issuer certificate
To jeden z bardziej mylących błędów TLS, bo certyfikat jest poprawny, chain jest poprawny, CA jest zaufane. Problem polega wyłącznie na tym, że klient nie posiada dokładnie tego elementu infrastruktury zaufania, którego oczekuje nowy model.
Jednym z najbardziej niedocenianych aspektów tej zmiany jest ograniczenie Extended Key Usage. W starszych hierarchiach certyfikatów pośrednich CA bardzo często zawierały zarówno:
TLS Web Server Authentication
TLS Web Client Authentication
To umożliwiało wykorzystanie publicznych certyfikatów TLS w scenariuszach mTLS oraz client authentication.
W nowych hierarchiach DigiCert pozostawia wyłącznie:
TLS Web Server Authentication
Ta zmiana wygląda niepozornie, ale w praktyce redefiniuje rolę publicznego WebPKI.
| Zastosowanie | Model wcześniejszy | Nowy model |
|---|---|---|
| HTTPS | Tak | Tak |
| mTLS | Możliwe | Eliminowane |
| Client authentication | Możliwe | Poza WebPKI |
| Publiczne API trust | Często spotykane | Niespójne z kierunkiem |
Publiczny TLS przestaje być uniwersalnym mechanizmem zaufania. Staje się wyspecjalizowanym systemem służącym wyłącznie do uwierzytelniania serwera.
Przez lata wiele organizacji traktowało chain jako coś relatywnie statycznego. Rooty zmieniały się bardzo wolno, certyfikaty pośrednie żyły latami, trust store aktualizowano sporadycznie. Nowy model działa inaczej. Hierarchie TLS stają się:
W połączeniu ze skracaniem ważności certyfikatów prowadzi to do bardzo istotnej zmiany operacyjnej: TLS przestaje być konfiguracją, TLS staje się procesem.
To oznacza konieczność:
| Obszar | Wcześniej | Obecnie |
|---|---|---|
| Rotacja chainów | Sporadyczna | Regularna |
| Aktualizacja trust store | Niska priorytetyzacja | Krytyczna |
| Monitoring zgodności | Opcjonalny | Konieczny |
| Automatyzacja lifecycle | Przydatna | Niezbędna |
To właśnie dlatego zmiana DigiCert ma znaczenie znacznie wykraczające poza same certyfikaty. Dotyczy sposobu utrzymania całej infrastruktury TLS.
Najważniejszą konsekwencją tej zmiany jest odejście od modelu WebPKI, którego głównym celem przez lata było utrzymywanie możliwie szerokiej kompatybilności pomiędzy różnymi środowiskami i implementacjami TLS, nawet kosztem niejednoznaczności w interpretacji łańcucha zaufania. Nowe podejście działa odwrotnie: priorytetem staje się jednoznaczność i przewidywalność walidacji. Mechanizmy takie jak cross-signing są eliminowane, multipurpose hierarchie znikają, a zakres EKU zostaje ograniczony wyłącznie do jasno określonych zastosowań. W praktyce klient TLS przestaje „interpretować” chain i wybierać jedną z możliwych ścieżek walidacji, a zaczyna sprawdzać zgodność z precyzyjnie zdefiniowanym modelem zaufania. Dla operatorów oznacza to koniec sytuacji, w której infrastruktura działa poprawnie mimo częściowych niezgodności lub nieaktualnych komponentów trust store.
W nowym modelu:
To subtelna zmiana semantyczna. Ale właśnie ona definiuje nową generację WebPKI.