Posts Tagged ‘certyfikat’

Kolizja w MD5 umożliwia wystawienie fałszywego certyfikatu SSL

8 January 2009

padlock

Na konferencji Chaos Communication Congress, która odbyła się 30 grudnia 2008 roku w Berlinie, grupa badaczy zaprezentowała sposób na uzyskanie sfałszowanego certyfikatu centrum certyfikacji CA. Wykorzystując kolizje w obecnie przestarzałej funkcji skrótu MD5, utworzyli własny certyfikat o tym samym skrócie co certyfikat używany przez prawdziwe CA. Dzięki niemu możliwe jest wystawienie fałszywych certyfikatów SSL dla dowolnej strony internetowej, które będą akceptowane przez większość przeglądarek. Użytkownik odwiedzający taką stronę będzie przekonany, że używa ona bezpiecznego połączenia (adres strony będzie zaczynał się od “https://”), widoczna będzie ikona zamkniętej kłódki, a ponadto szczegóły certyfikatu będą wskazywać, że jest on poprawny.

certificate1

Kolizje w funkcji skrótu MD5 odkryto już w 2004 roku i od tego czasu nie zaleca się użycia tej funkcji jako nie zapewniającej wymaganego poziomu bezpieczeństwa. Słabość ta polega na możliwości znalezienia dwóch różnych wiadomości, które będą miały ten sam skrót. Mimo tego MD5 jest nadal używana przez niektóre centra certyfikacji do podpisywania certyfikatów SSL (RapidSSL, FreeSSL, TrustCenter, RSA Data Security, Thawte, verisign.co.jp, przy czym według autorów tej metody 97% certyfikatów wykorzystujących MD5 jest wystawionych przez RapidSSL). Autorzy wygenerowali fałszywy certyfikat centrum RapidSSL, wykorzystując do znalezienia kolizji klaster składający się z 200 konsol Sony PlayStation 3 (ze względu na wyjątkowo wydajny w takich zastosowaniach procesor Cell). Zadanie było tym trudniejsze, ponieważ konieczne było znalezienie certyfikatu o ustalonym skrócie (odpowiadającym skrótowi oryginalnego certyfikatu). Złożoność obliczeniowa ataku wykorzystującego podejście brute-force w przypadku 128-bitowej funkcji hashującej jest rzędu 2128. Dla porównania znalezienie dwóch dowolnych wiadomości o tym samym skrócie ma o wiele mniejszą złożoność rzędu 264, co wynika z paradoksu dnia urodzin. Złożoność obliczeniowa zaproponowanej metody została zredukowana do około 251, a znalezienie wymaganej kolizji z wykorzystaniem klastra 200 konsol zajęło niewiele ponad dobę. Szczegóły zastosowanego algorytmu autorzy opisują w artykule “Creating a rogue CA certificate”.

Przeglądarki internetowe są dostarczane razem z certyfikatami zaufanych centrów certyfikacji (np. Firefox 3 zawiera ich 135), dzięki czemu mogą one weryfikować certyfikaty SSL witryn internetowych podpisane przez jedno z takich centrów.  Ponieważ uzyskany przez autorów ataku fałszywy certyfikat ma taki sam skrót jak jeden z certyfikatów posiadanych przez większość przeglądarek internetowych, witryny zweryfikowane z jego użyciem będą uznane przez przeglądarki jako zweryfikowane przez oryginalne CA (w tym przypadku RapidSSL).

Koncepcja pozwala więc na wystawienie certyfikatu SSL dla dowolnej strony internetowej, który będzie akceptowany przez większość przeglądarek. W połączeniu z lukami w protokole DNS możliwe staje się utworzenie niemalże idealnej strony phishingowej, która może być trudna do odróżnienia od jej oryginalnej wersji nawet dla doświadczonych internautów. Co więcej, jeśli fałszywa strona będzie kopią istniejącej już strony (np. w przypadku wspomnianych stron phishingowych), to jej certyfikat będzie zaakceptowany niezależnie od funkcji skrótu wykorzystywanej przez certyfikat oryginalnej strony. Administratorzy nie mają więc możliwości uchronienia się przed tego rodzaju atakami. Ochronę przed nimi zapewni jedynie wycofanie przez centra certyfikacji przestarzałej funkcji  MD5 z użycia w certyfikatach.

Firma VeriSign, która podpisała certyfikat CA wykorzystywany przez RapidSSL, już zaprzestała użycia algorytmu MD5 przy podpisywaniu certyfikatów dla RapidSSL, a do końca stycznia 2009 zapowiada jego całkowitą eliminację. Ponadto inne centra certyfikacji korzystające z MD5 także zapowiedziały przejście na bezpieczniejszą funkcję hashującą SHA-1.

Wykrywanie stron internetowych, które posiadają certyfikaty SSL wykorzystujące algorytm MD5 (lub podpisane przez centrum CA wykorzystujące MD5), umożliwia najnowsza wersja wtyczki do przeglądarki Firefox o nazwie SSL Blacklist. Ostrzeżenia o użyciu MD5 generowane przez ten plugin należy jednak traktować jedynie informacyjnie, ponieważ nie każda taka strona musi być fałszywa – nadal część CA wykorzystuje hashe MD5, a całkowita migracja na SHA-1 na pewno potrwa jakiś czas.

Więcej o fałszywych certyfikatach:
http://www.win.tue.nl/hashclash/rogue-ca/
https://blogs.verisign.com/ssl-blog/2008/12/on_md5_vulnerabilities_and_mit.php
http://www.kb.cert.org/vuls/id/836068