SSL (ang. Secure Socket Layer) to protokół zaprojektowany w celu zapewnienia bezpiecznego przesyłania danych w Internecie. W przeciwieństwie do wielu stosowanych rozwiązań, zapewnia on poufność oraz integralność całej transmisji. Wbrew powszechnej opinii, głównym zadaniem protokołu SSL nie jest wyłącznie zapewnienia szyfrowanego połączenia, ale również uwierzytelnienie (zweryfikowanie tożsamości) komunikujących się stron. Dzięki temu, odwiedzając za pomocą bezpiecznego połączenia serwis Gmail lub też korzystając z internetowej bankowości, mamy pewność, że dany serwis należy do określonej organizacji. Czy aby na pewno?
Okazuje się, że w wyniku ataku ochrzczonego przez swych pomysłodawców mianem compelled certificate creation attack, władze są w stanie przechwycić dowolną komunikację zabezpieczoną za pomocą SSL. Co więcej, powstały już pierwsze komercyjne urządzenia zdolne do sprzętowego wsparcia tego typu działalności.
U podstaw bezpieczeństwa SSL leży specjalny system hierarchicznych certyfikatów. Kluczowe znaczenie mają tu urzędy certyfikacji (ang. certificate authority, CA), których zadaniem jest wydawanie certyfikatów poświadczających tożsamość poszczególnych instytucji. Poszczególne certyfikaty zostają podpisane należącym do CA certyfikatem głównym. Certyfikat zawiera więc zbiór danych jednoznacznie identyfikujących pewną jednostkę oraz jest potwierdzony przez jedną z grona zaufanych organizacji CA, co właśnie ma zapewniać bezpieczeństwo całego systemu.
Problem w tym, że każda z organizacji CA jest uznawana za równie zaufaną. Natomiast każda z wiodących przeglądarek internetowych (korzystając z własnego lub systemowego zbioru) rozpoznaje i w pełni akceptuje setki certyfikatów głównych i w konsekwencji powszechnie akceptowane są również wszystkie certyfikaty podpisane przez poszczególne urzędy CA.
Co najgorsze, z technicznego punktu widzenia, w pełni możliwe jest wystawienie certyfikatu poświadczającego tożsamość dowolnej organizacji przez dowolną organizację CA. Możliwe jest więc, by np. rosyjski urząd certyfikacji wystawił fałszywy certyfikat dla tożsamości mail.google.com! Z technicznego punktu widzenia taki zabieg jest banalny, wystarczy bowiem tylko w całym procesie przyznawania certyfikatu pominąć etap weryfikacji tożsamości ubiegającego się o jego wystawienie. Taki certyfikat, jeśli tylko certyfikat główny rosyjskiego CA będzie znany przeglądarce użytkownika, pozwala natomiast bez większego problemu na wykonanie ataku typu Man-in-the-Middle, czyli pośredniczenie w komunikacji użytkownika z usługą Gmail w celu przechwycenia całej komunikacji! Użytkownik nie zauważy niczego podejrzanego, ponieważ transmisja będzie zabezpieczona za pomocą certyfikatu wystawionego dla mail.google.com oraz potwierdzonego znanym certyfikatem głównym…
Compelled certificate creation attack polega więc na zmuszeniu przez władze lub służby specjalne (np. za pomocą nakazu sądowego, wywierania presji, gróźb itd.) lokalnego urzędu CA do wystawienia fałszywego certyfikatu poświadczającego tożsamość określonej organizacji, w celu przechwycenia komunikacji SSL prowadzonej przez lokalnych użytkowników z tą właśnie organizacją za pomocą ataku typu Man-in-the-Middle. Oczywiście crackerzy, a nawet duże organizacje przestępcze, prawdopodobnie nie są w stanie wykonać tego typu ataku, ponieważ nie znajdą sposobu na zmuszenie urzędu CA do wydania fałszywego certyfikatu.
Czy tego typu ataki są już obecnie stosowane? Okazuje się, że istnieją przesłanki mogące o tym świadczyć. Packet Forensics, amerykańska firma z Arizony, produkuje bowiem urządzenia niemal stworzone z myślą o przeprowadzaniu ataku typu compelled certificate creation attack.
Urządzenia te pozwalają na zautomatyzowane przechwytywanie szyfrowanych transmisji z wykorzystaniem kopii właściwego certyfikatu lub też fałszywego certyfikatu poświadczającego tożsamość określonej organizacji…
Skuteczna obrona przed tego typu atakami jest trudna, a w pewnych przypadkach może być praktycznie niemożliwa. W miarę skuteczną strategią obronną wydaje się być polityka kontrolowania certyfikatów typu Trust-On-First-Use (TOFU). Oznacza to przyjęcie założenia, że podczas pierwszego korzystania z określonej usługi jej certyfikat był prawidłowy. Monitorując więc za każdym razem jakiekolwiek zmiany certyfikatu tej organizacji, będziemy w stanie wykryć, że zmienił się przykładowo urząd CA poświadczający prawdziwość certyfikatu. Takie wykrycie będzie prawdopodobnie oznaczać zaistnienie ataku (pomimo, że oba urzędy CA w świetle zasad rządzących komunikacją SSL są zaufane). Co jednak w momencie, gdy władze określonego kraju wymuszą na dostawcy usługi udostępnienie w celach śledczych kopii głównego certyfikatu usługi? W takim przypadku internauci nie będą w stanie zauważyć jakiejkolwiek ingerencji w bezpieczne połączenie SSL…
Dodaj komentarz