Wydłużanie skrótów

Kiedy kilka lat temu Ron Rivest z RSA zalecał stopniowe rezygnowanie z algorytmu MD5, miał na myśli, aby zacząć zastępować go silniejszymi funkcjami skrótu. Niektórzy zrozumieli to tak, że w sumie lepiej nie używać MD5 do poważnych zastosowań. Tak naprawdę wcale jednak nie przestali.

Kiedy kilka lat temu Ron Rivest z RSA zalecał stopniowe rezygnowanie z algorytmu MD5, miał na myśli, aby zacząć zastępować go silniejszymi funkcjami skrótu. Niektórzy zrozumieli to tak, że w sumie lepiej nie używać MD5 do poważnych zastosowań. Tak naprawdę wcale jednak nie przestali.

Kryptograficzne funkcje skrótu, zwane także funkcjami haszującymi, są obecne w rozwiązaniach, których nawet o to nie podejrzewamy. Ze względu na wieloletnie ograniczenia eksportowe w zakresie oprogramowania szyfrującego, które Stany Zjednoczone zniosły raptem kilka lat temu, tamtejsi producenci nauczyli się umieszczać algorytmy szyfrujące tylko tam, gdzie to absolutnie niezbędne. Ograniczeń w korzystaniu z kryptograficznych funkcji skrótu nie było, toteż były one powszechnie wykorzystywane na całym świecie. Wszyscy - i Amerykanie, i reszta świata - czerpali z bogatych zbiorów procedur skrótu danych udostępnianych przez amerykańskie firmy i uniwersytety.

Opracowana przez firmę RSA funkcja MD5 w latach 90. stała się branżowym standardem. Szybka i wydajna, dająca skrót o długości 128 bitów, cieszyła się większym powodzeniem niż jej młodsi i bezpieczniejsi kuzyni - opracowana przez amerykański NIST funkcja SHA-1 (Secure Hash Algorithm) i RIPEMD-160. Funkcje te, obie dające skrót o długości 160 bitów, a więc ponad 4 mln razy dłuższy niż MD5, zostały wprowadzone właśnie wtedy, gdy postęp w zakresie technik obliczeniowych zaczął dawać realne podstawy, by sądzić, że skrót o długości 128 bitów jest za krótki, aby oprzeć się mocy procesorów, które miały się pojawić w ciągu kilku lat.

Te kilka lat właśnie minęło. Wygenerowanie dwóch różnych wiadomości o identycznym skrócie MD5 jest dziś wykonalne przy stosunkowo niewielkim nakładzie środków i zajmie co najwyżej kilka miesięcy. Co więcej, podobny atak jest już możliwy dla SHA-1, co pokazał we wrześniu 2004 r. Francuz Antoine Joux (więcej: Bezpieczeństwo na skróty, CW 34/2004).

Komu zagraża MD5

Błędy w kryptografii mają to do siebie, że nie mszczą się od razu, lecz dopiero po jakimś czasie. Produkty reklamowane jako korzystające z "kryptograficznych standardów przemysłowych" dnia dzisiejszego mogą już za kilka lat okazać się niezdolne do spełnienia oczekiwań w dziedzinie poufności. Tym bardziej, im bardziej podczas ich projektowania nie wzięto pod uwagę czasu życia danych.

A bywają przecież informacje, które muszą być bezpiecznie przechowywane nie przez trzy czy pięć lat (tyle żyje sprzęt kryptograficzny), ale przez lat 30 i więcej. Zanim dokona się zakupu czy przymiarki do architektury bezpieczeństwa systemu, warto zdać sobie sprawę, że w okresie ostatnich 30 lat rozwoju kryptoanalizy dziedzina ta zrobiła większe postępy, niż przez wszystkie poprzedzające go stulecia.

Ostatnimi rewelacjami na temat "nieadekwatności" MD5 zwykli użytkownicy nie powinni się raczej niepokoić. Zagrożeni nie powinni się też czuć użytkownicy szyfrowanych sieci VPN, w których MD5 jest wykorzystywane do weryfikacji integralności i autentyczności danych (HMAC-MD5). Podobnie użytkownicy przeglądarek WWW, które w szyfrowanych połączeniach SSL wciąż jeszcze w większości przypadków negocjują słaby według dzisiejszych standardów szyfr RC4-MD5.

Nawet użytkownicy starszych wersji PGP czy S/MIME, które wykorzystywały MD5 do sprawdzania integralności danych i podpisów elektronicznych, mogą się specjalnie nie przejmować. We wszystkich tych przypadkach dane zabezpieczane funkcją MD5 zostały już dawno przesłane i podrobienie skrótu dzisiaj nic nikomu nie da.

Certyfikaty SSL

Nieco więcej zaniepokojenia powinni wykazywać właściciele certyfikatów X.509 (prywatnych certyfikatów do podpisu elektronicznego lub dla serwerów SSL), które zostały podpisane za pomocą MD5. Biorąc jednak pod uwagę, że certyfikaty takie są wydawane zwykle na rok, można mieć nadzieję że żaden liczący się urząd certyfikujący nie korzysta już z MD5. Prywatne testy autora przeprowadzone na serwerach SSL działających w Polsce potwierdzają tę tezę.

Nie wszyscy zrezygnowali jednak z MD5. Część certyfikatów głównych (root certificates) największych graczy na rynku potwierdzeń tożsamości serwerów i osób (VeriSign, Thawte) jest podpisana właśnie przez MD5. Certyfikaty urzędów certyfikacji tych firm były generowane i podpisywane jeszcze w latach 90. ubiegłego stulecia.

Podpisywanie oprogramowania

Na granicy zagrożenia są systemy dystrybucji oprogramowania wykorzystujące funkcje skrótu do weryfikacji integralności i autentyczności. Powszechnie wykorzystują je największe archiwa oprogramowania open source (w postaci pliku zawierającego nazwę pakietu i odpowiadającą mu sumę MD5), ale także dystrybutorzy komercyjni, np. Sun Microsystems czy Symantec. Głównym argumentem w obronie MD5 w tym wypadku jest fakt, że oryginalną intencją stosowania tych skrótów była weryfikacja integralności pakietu oprogramowania, tak by użytkownik, który pobiera za pomocą FTP, mógł łatwo sprawdzić, czy plik dotarł w całości. Co więcej, ochrona autentyczności zapewniana przez skrót MD5 opublikowany na tym samym serwerze co plik jest iluzoryczna.

Potencjalny włamywacz (a historia zna już takie przypadki - włamanie do archiwum projektu GNU czy Jabber) może podmienić i plik i skrót MD5. Jeśli użytkownik jest tego świadomy i nie oczekuje po MD5 absolutnie niepodważalnego potwierdzenia autentyczności, zastosowanie funkcji MD5 do potwierdzenia integralności pliku nie podlega dyskusji.

Pozytywnym trendem, do którego silny impuls dały właśnie włamania do serwerów open source, jest od kilku lat podpisywanie plików za pomocą PGP. Taka technika gwarantuje autentyczność pobranego archiwum. I tutaj nie należy się obawiać MD5 - tylko bardzo stare wersje PGP stosowały ten algorytm, od przynajmniej kilku lat w PGP i jego otwartym odpowiedniku GnuPG domyślnie wykorzystuje się SHA-1.

Zagrożone wyszukiwarki?

O ile zagrożenie przypadkowymi kolizjami w wyspecjalizowanych archiwach (dane medyczne, finansowe) nie jest jeszcze zbyt duże, o tyle może się ono stać problemem w przypadku archiwów CAS gromadzących dane nieuporządkowane, a więc wszelkiego rodzaju dokumenty. Nie wiadomo dokładnie, jaki system archiwizacji danych jest stosowany np. przez mechanizm Google Cache czy wyszukiwarkę obrazków Google. Wiadomo, że projekt Internet Archive korzysta z własnego formatu bazy danych, ale nie jest adresowany na podstawie treści plików.

Tymczasem charakterystyka archiwizowanych przez te wyszukiwarki danych to wręcz wymarzone zastosowanie dla CAS - w końcu miliony obrazków na stronach WWW to często jeden i ten sam plik GIF różnie nazywany. Nieco ponad 8 mld zindeksowanych przez Google stron WWW to wielokrotnie więcej plików - ilość niebezpiecznie szybko zbliżająca się do granicy, przy której kolizje niedostatecznie długich skrótów przestają być już odległą perspektywą.

W celu komercyjnej reprodukcji treści Computerworld należy zakupić licencję. Skontaktuj się z naszym partnerem, YGS Group, pod adresem [email protected]

TOP 200