Kiedy pod koniec września 2015 roku Symantec wystawiał certyfikat pośredni dla firmy Blue Coat zapewne nie spodziewał się, że dziewięć miesięcy później w sieci zaczną pojawiać się instrukcje wskazujące jak usunąć ten certyfikat z zaufanych list poszczególnych systemów operacyjnych. Co jest powodem takiej sytuacji i czy ma ona swoje uzasadnienie? Czytajcie dalej.
Kontrowersyjne działania Blue Coat
Amerykańskiej firmy Symantec chyba nikomu nie trzeba przedstawiać. Oprócz tego, że jest twórcą jednego z popularniejszych programów antywirusowych, jest także jednym z największych urzędów certyfikacji na świecie, którego certyfikaty uznawane są za zaufane w większości systemów operacyjnych i aplikacji.
Z kolei Blue Coat to także amerykańska firma, ale oferująca różnego rodzaju rozwiązania sieciowe, mające głównie na celu podnoszenie bezpieczeństwa lub ułatwianie wykrywania zagrożeń. Jednym z przykładów jest ProxySG, który pozwala na identyfikację zagrożeń chociażby poprzez wykonywanie kontrolowanego ataku man-in-the-middle. I choć rozwiązania takie mogą prowadzić do nadużyć, to jednak wykonywane w dobrej wierze mogą znacznie podnieść poziom bezpieczeństwa np. wewnątrz organizacji. Firmie Blue Coat przypisywanych jest także wiele ciekawych odkryć i analiz bezpieczeństwa.
Niestety, istnieje także czarna strona historii tej firmy. W 2013 roku, w ogarniętej wojną domową Syrii odkryto urządzenia produkcji Blue Coat, co – jak można się domyślać – nie zostało odebrane najlepiej. Zwłaszcza, że nie był to pierwszy raz kiedy Blue Coat został przyłapany na sprzedawaniu oprogramowania tym złym i nie ulega raczej wątpliwości, że oprogramowanie firmy Blue Coat nie było wykorzystywane w tym czasie w Syrii do moralnie właściwych celów. Pojawiły się nawet głosy wprost mówiące o wspieraniu przez amerykańską firmę sił reżimowych.
Certyfikat pośredni dla Blue Coat
Powoli jasne staje się zatem skąd te poradniki o tym jak szybko i właściwie usunąć, wystawiony przez Symanteca, certyfikat pośredni Blue Coat. Zacznijmy jednak od tego czym – w skrócie – jest certyfikat pośredni.
Certyfikat pośredni to certyfikat wystawiony (podpisany) przez certyfikat głowny (Root CA), który posiada uprawnienia do wydawania certyfikatów końcowych np. certyfikatów SSL.
Jeżeli więc Symantec, jako zaufany urząd certyfikacji, wystawia taki certyfikat dla firmy, której praktyki dla wielu uznawane są za co najmniej kontrowersyjne, jest zrozumiałe, że może budzić to pewien niepokój i oburzenie. Głównie dlatego, że każdy certyfikat SSL wydany przez taki certyfikat pośredni byłby z automatu uznawany za zaufany np. we wszystkich liczących się na rynku przeglądarkach. Przeglądarki nie zgłaszałyby żadnych zastrzeżeń co do jakości wykorzystywanego certyfikatu SSL, ponieważ prowadziłby on do zaufanego Root CA Symanteca.
Czyż nie jest to idealny sposób na otwarcie możliwości przeprowadzania niczym niezakłóconych nadużyć, z podsłuchiwaniem obywateli poprzez deszyfrowanie ruchu HTTPS włącznie?
Certyfikat pośredni Blue Coat został zarejestrowany w publicznych logach Certificate-Tranparency w połowie maja dlatego też mowa jest o nim dopiero teraz.
Diabeł tkwi w szczegółach
I na tym, po wcześniejszym wykonaniu wspomnianych instrukcji, można by zakończyć temat. Można by, gdyby nie dwa szczegóły techniczne całej sytuacji. O jednym napisał w oficjalnym wyjaśnieniu Symantec, drugi został szybko wychwycony przez społeczność Reddita.
Zacznijmy od źródła zamieszania, Symantec:
The CA community is complex and nuanced, particularly given the issuance of certificates in a multitude of environments and devices. We’ve been reminded of that fact again this week by confusion over an intermediate CA used by Blue Coat. Companies often have their own intermediate CA so they can issue certificates only for their organization, which was the case for Blue Coat. These types of certificates are often used for testing purposes and usually are discarded once the tests are completed. When we issue an intermediate CA, our protocols state that Symantec maintains full control of the private key. That’s exactly what took place with Blue Coat. The company never had access to the private key and speculation that Blue Coast was issuing public certificates for other organizations is incorrect. Like any topic that is complex, it’s easy for things to get misconstrued. This was a routine CA request and nothing more.
i Reddit:
Don’t get wild for no reason. Take instead a look at the certificate. pathlen=0
Jak mogliście przeczytać w oświadczeniu, klucz prywatny certyfikatu pośredniego wydanego dla firmy Blue Coat nigdy nie opuścił infrastruktury Symanteca. Co to oznacza? A no to, że to Symantec w pełni kontroluje to jakie certyfikaty wystawia certyfikat Blue Coat. To po stronie Symanteca odbywa się weryfikacja domeny czy też innych danych wpisywanych do certyfikatów (sam urząd certyfikacji też może popełnić tutaj błąd, ale to już temat na całkiem osobny wpis). Symantec odpowiada także za publikację list CRL czy udostępnianie informacji o statusie certyfikatu poprzez protokół OCSP. Jeżeli więc wierzyć Symantecowi to nie ma możliwości, aby firma Blue Goat generowała certyfikaty SSL dla dowolnych domen i następnie podstawiała je niczego nieświadomym użytkownikom.
Wątpliwości może co prawda budzić fakt, że certyfikat został wystawiony na potrzeby testów. Po co w takim razie prosić o certyfikat pośredni publiczne CA? Wystarczyłoby wygenerować własny. W tym kontekście nie wprowadza to jednak elementu zagrożenia i najistotniejszą informacją płynącą z oświadczenia pozostaje to, że to urząd certyfikacji jest w wyłącznym posiadaniu klucza prywatnego.
Druga rzecz to wartość pola pathLenConstraint znajdującego się w rozszerzeniu basicConstraint tego certyfikatu. W skrócie, pole to określa jaka maksymalna liczba certyfikatów pośrednich można znajdować się poniżej tego certyfikatu w jego ścieżce certyfikacyjnej. W tym przypadku pathLenConstraint ustawiona została na 0 (słownie: zero) co oznacza, że certyfikat pośredni Blue Coat może jedynie wystawiać certyfikaty końcowe. Nawet więc jeśli Blue Coat miałby niecne zamiary i chciał wygenerować kolejny certyfikat pośredni (wtedy byłby w posiadaniu jego klucza prywatnego) i tym samym realizować złe rzeczy to dzięki ograniczeniu zapisanym w polu pathLenConstraint wszystkie implementacje poprawnie weryfikujące certyfikaty x509 odrzuciłyby taki certyfikat.
Podsumowanie
Jest raczej mało prawdopodobne, aby certyfikat pośredni Blue Coat wystawiony przez Symanteca stanowił zagrożenie dla bezpieczeństwa użytkowników Internetu. Wydaje się więc, że w całej sprawie większość nie zwróciła uwagi na realne, techniczne zagrożenie związane z wystawieniem przez Symanteca certyfikatu dla Blue Coat, ale oparła swoją opinię na podstawie wcześniejszych oskarżeń kierowanych pod kątem firmy Blue Coat. Czy słusznie? Pozostawiam to do oceny Tobie, czytelniku.
Pingback: Weekendowa Lektura 2016-06-04 – bierzcie i czytajcie | Zaufana Trzecia Strona
12 czerwca 2016 Symantec kupił BlueCoat-a
https://www.symantec.com/about/newsroom/press-releases/2016/symantec_0612_1