Kilka dni temu miał miejsce ciekawy incydent – Google odkryło, że certyfikaty kilku jego domen zostały podrobione przez francuski podrzędny urząd certyfikacji, powiązany z tamtejszymi służbami specjalnymi. Jak do tego doszło?
Bezpieczeństwo danych, przesyłanych w ramach szyfrowanych połączeń SSL, zależy przede wszystkim od bezpieczeństwa funkcjonowania urzędów certyfikacji. Poświadczają one, że otrzymujący certyfikat jest faktycznie uprawniony do jego użycia. Wystawienie certyfikatu dotyczącego cudzej domeny może umożliwić atakującemu odczytanie cudzego zaszyfrowanego ruchu, zatem poprawność procesu weryfikacji jest kluczowa dla bezpieczeństwa całego systemu.
Błąd pracownika ministerstwa?
Trzeciego grudnia Google zauważyło, że ktoś wystawił nieautoryzowane certyfikaty dla kilku jego domen. Szybka analiza wykazała, że certyfikaty były wystawione przez urząd certyfikacji podrzędny w stosunku do francuskiego urzędu ANSSI. Google natychmiast zablokowało możliwość korzystania z certyfikatu podrzędnego urzędu w przeglądarce Chrome oraz poinformowało o incydencie ANSSI oraz innych producentów przeglądarek.
Incydent jest dość ciekawy, ponieważ ANSSI to francuska służba specjalna, odpowiedzialna za bezpieczeństwo informatyczne państwa, podległa francuskiemu Ministerstwu Obrony. Między innymi posiada ona swoje własne centrum certyfikacji, obdarzone zaufaniem przez większość przeglądarek. Wydaje ona też certyfikaty podrzędnych urzędów certyfikacji francuskim jednostkom rządowym. W przypadku tego incydentu ujawniła, że certyfikat podrzędny został wydany ministerstwu finansów. Według zapewnień ministerstwa, certyfikat, umożliwiający ataki MiTM, został użyty w urządzeniu, którego zadaniem było podsłuchiwanie ruchu internetowego pracowników i to za ich wiedzą, a na dokładkę to wszystko było efektem błędu pracownika. Tłumaczenie to jest raczej mało wiarygodne. Ten sam cel można zrealizować instalując własny zaufany certyfikat na urządzeniach końcowych użytkowników. Wykorzystanie certyfikatu zaufanego przez przeglądarki do generowania w czasie rzeczywistym certyfikatów wszystkich odwiedzanych serwisów www stosowane może być w sytuacji, gdy ma się odbywać bez wiedzy użytkowników.
Jak Google wykrywa podrobione certyfikaty
Google już od kilku lat podkreśla, że bezpieczeństwo SSL zależy przede wszystkim od identyfikacji i szybkiego reagowania na przypadki nadużyć. Od maja 2011 Google Chrome posiada funkcjonalność „przypinania certyfikatów” (certificate pinning). Polega ona na weryfikacji klucza publicznego otrzymanego certyfikatu z listą kluczy, zapisaną w programie. Mechanizm ten obejmuje certyfikaty kilku wystawców, w tym Google. Pozwala on na natychmiastowe wykrycie poprawnych certyfikatów wystawionych przez nieautoryzowane urzędy certyfikacji. Oprócz tego Google promuje inicjatywę Certificate Transparency, która dostarcza narzędzi umożliwiających weryfikację poprawności certyfikatów.
Inne podobne incydenty
Dzięki odpowiednio wdrożonym rozwiązaniom Google często jako pierwsze odkrywa (a przynajmniej jako pierwsze reaguje) na próby generowania nieautoryzowanych certyfikatów. Oprócz opisanego powyżej przypadku pod koniec zeszłego roku Google odkryło podobny incydent z udziałem tureckiego urzędu certyfikacji. Analogiczną wpadkę odnotował także urząd certyfikacji Trustwave, który sprzedał certyfikat podrzędnego urzędu certyfikacji firmie, która zamierzała wykorzystać go do ataków MiTM. Podobną technologię wdrożyła – choć bardzo nieudolnie – także firma Cyberoam. Google odkryło także włamanie do holenderskiego urzędu certyfikacji Diginotar, w trakcie którego wystawiono również fałszywe certyfikaty dla serwerów Google.
Komentarze
Electronic Frontier Foundation stworzyło rozszerzenie do przeglądarek o nazwie HTTPS Everywhere, które w opcjach pozwala włączyć wysyłanie informacji o certyfikatach do wspomnianej instytucji (Electronic Frontier Foundation). EFF później również zajmuje się analizą tych certyfikatów, by opisane przypadki zostały wykryte.
Istnieje również rozszerzenie Certificate Patrol, które informuje oraz umożliwia ręczne zaufanie certyfikatom podczas ich zmiany.
Co mamy zrobić? Wyp.. wszystkie certyf. z przegladarki?
Jeśli serwer do którego się łączysz jest w innym kraju to możesz na przykład oprócz normalnego połączenia, połączyć się przez Tor lub VPN w innym kraju i sprawdzić, czy certyfikat do serwera jest ten sam. Jeśli nie, to być może państwo w którym mieszkasz prowadzi atak Mitm wobec Ciebie.
Google jak zmieniało certyfikaty, to przedwcześnie to zapowiedziało, więc można nawet zahardcodować czasem do niektórych serwisów.
W sumie to brak pytań i odpowiedzi w tym artykule (co oczywiście nie jest psztyczkiem w nos ZTS).
Kto za to beknie, i kto coś w tym kierunku robi?
Czy Google (najbardziej zainteresowany), i inne instytucje dbające o bezpieczeństwo internetu, sobie to tak zostawią – kolejne odkrycie i… nic?
Chciałem wywalić ich certyfikat z listy zaufanych ale nie mam ani „SSI” ani „ANSSI”. Ktoś ogarnia jak nazywa się to CA?
W zasadzie znalazlem na reddicie, „PM/SGDN” -> IGC/A
Tłumaczą nam, że Google jest złe bo ma o nas wszystkie dane. A co robi w tym czasie rząd? Zazdrośnie stosuje podstępne metody inwigilacji własnych obywateli. Kpina z autorytetu władzy. Rok 1984 a nie demokracja.
Ja już kilka miesięcy temu uważałem, że taka sytuacja może zaistnieć, na podstawie tego, jak funkcjonuje protokół SSL.