Bezpieczeństwo na skróty

Słabości odkryte w popularnych funkcjach skrótu mogą w długim okresie zagrozić bezpieczeństwu poufności informacji w Internecie. Powodów do paniki nie ma, ale ostrożność jest wskazana.

Słabości odkryte w popularnych funkcjach skrótu mogą w długim okresie zagrozić bezpieczeństwu poufności informacji w Internecie. Powodów do paniki nie ma, ale ostrożność jest wskazana.

Niedawne informacje o nowych słabościach w najpopularniejszych algorytmach skrótu wiadomości - MD5 i SHA - wywołały spore zamieszanie w środowisku kryptologicznym. Niepokój jest jak najbardziej uzasadniony - algorytmy te leżą u podstaw podpisu elektronicznego. Ale nie tylko - funkcje MD5 i SHA są podstawowymi "klockami" służącymi do budowania mechanizmów ochrony integralności danych w sieciach czy systemach operacyjnych. Radykalne podważenie zaufania pokładanego w tych algorytmach mogłoby mieć poważne konsekwencje dla wszystkich systemów kryptograficznych będących w powszechnym użyciu, jak PGP, SSL czy IPsec.

Niebezpieczne kolizje

Ubiegły tydzień był dla funkcji skrótu pechowy z kilku powodów. Pierwszą złą wiadomością był e-mail francuskiego badacza Antoine Joux na lokalną listę dyskusyjną poświęconą kryptografii, dotyczący kolizji w funkcji SHA-0. Joux przedstawił po prostu dwa całkiem różne ciągi bitów, które po "przepuszczeniu" przez funkcję SHA-0 dały identyczny skrót. Nic dodać, nic ująć - jest to bezdyskusyjna kolizja (patrz ramka).

Mówiąc obrazowo, Francuz mógłby pokazać dwie różne wersje umowy biznesowej spisanej w formacie elektronicznym różniące się w detalach, takich jak cena czy termin. Fakt istnienia kolizji w funkcji skrótu umożliwiałby nieuczciwemu partnerowi przedstawienie przed sądem korzystnej dla siebie wersji umowy i dochodzenie swoich rzekomych praw na podstawie podpisu cyfrowego. W sytuacji, gdy poprawny podpis figuruje pod każdą z wersji umowy, rozstrzygnięcie tego, która jest prawdziwa, byłoby co najmniej trudne.

Wkrótce po tej informacji pojawił się artykuł czterech chińskich kryptologów, opisujący kolizje w innych popularnych funkcjach skrótu - MD5, MD4, HAVAL-128 i RIPEMD-160. Jeszcze później, na prestiżowej konferencji Crypto 2004 poświęconej nowym trendom w kryptografii dwóch izraelskich badaczy przedstawiło swoje prace nad słabościami w algorytmie SHA-0, omawiające szczegółowo to, co Joux pokazał w praktyce.

Nazwisko jednego z nich, Eli Bihama, nigdy nie wróżyło niczego dobrego szyfrom, które miały pecha pojawić się w tytule prezentacji razem ze słowem "słabości". Biham jest m.in. współodkrywcą dziur w szyfrowaniu GSM czy PkZip oraz współautorem tak zaawansowanych technik łamania szyfrów, jak kryptoanaliza różnicowa. Równocześnie Biham opowiedział też pokrótce o wstępnych wynikach prac nad kryptoanalizą algorytmu SHA-1, będącego nowszą wersją SHA-0. Ta informacja wzbudziła największe zaniepokojenie.

MD5 do lamusa

Problemy z algorytmem MD5 były znane już wcześniej. Funkcja ta, wynaleziona w 1991 r., generuje skrót o długości 128 bitów. To zbyt mało, by oprzeć się technikom kryptoanalizy dostępnym współcześnie. W związku z tym od kilku lat wśród producentów systemów kryptograficznych obserwuje się tendencję do odchodzenia od MD5 na rzecz SHA-1, dającego skrót 160-bitowy i będącego do niedawna standardem zalecanym przez Amerykański Instytut Standardów i Technologii (NIST).

Jednak nowe słabości MD5 są realnym problemem, bo funkcja ta jest używana powszechnie, głównie z tego powodu, że jest ona dużo szybsza od SHA-1. Skróty MD5 są używane przez wielu producentów oprogramowania do weryfikacji autentyczności pakietów z oprogramowaniem - większość oprogramowania open source korzysta z tej metody (również np. Sun Microsystems). Funkcja MD5 jest także często negocjowana przy połączeniach SSL oraz IPsec. Zagrożenie jest realne zwłaszcza w przypadku danych o długim okresie ważności, zabezpieczonych za pomocą MD5, takich jak certyfikaty X.509. Część certyfikatów głównych największych graczy na rynku podpisu elektronicznego (VeriSign, Thawte) jest zabezpieczona właśnie przez MD5, podobnie jak duża część certyfikatów wydanych przez te firmy klientom.

Jak wykazały prywatne testy autora, większość aplikacji generujących podpis cyfrowy dla poczty elektronicznej posługuje się funkcją SHA-1, co jest zgodne z aktualną wersją standardu S/MIME. Równocześnie jednak podpisy generowane przez starsze wersje PGP (standard alternatywny dla S/MIME) są podpisywane za pomocą MD5. Funkcja SHA-0 była pierwszą wersją opracowanego przez NIST nowego standardu skrótów, jednak po odkryciu w niej słabości wkrótce po publikacji została zastąpiona SHA-1. W związku z tym publikacja nowych błędów w SHA-0 nie ma większego znaczenia praktycznego. Cała nadzieja w SHA-1...

Podpis (na razie) bezpieczny

Należy podkreślić, że zaprezentowane na konferencji Crypto 2004 rezultaty prac Bihama i Chena są ważne z naukowego punku widzenia, jednak nie wpływają znacząco na bezpieczeństwo systemów wykorzystujących SHA-1. Izraelscy badacze znaleźli wiele kolizji w zredukowanej, a nie w pełnej wersji SHA-1. Analiza algorytmu o zredukowanej liczbie rund, czyli iteracji algorytmu jest typowym zabiegiem podczas kryptoanalizy, ataki opracowane na uproszczonym modelu czasami mogą się bowiem okazać przydatne do opracowania ataków na pełną wersję funkcji. Niemniej, liczba rund decyduje o odporności funkcji na złamanie.

Niedawne rewelacje powinny być wyraźnym sygnałem dla deweloperów i producentów oprogramowania, by korzystać z najnowszych zalecanych mechanizmów ochrony danych. W przypadku funkcji skrótu oznacza to, że nowo powstające aplikacje powinny wykorzystywać funkcję skrótu SHA-2, będącą aktualnie zalecanym przez NIST standardem. Jak stwierdził sam Biham: "Nie spodziewamy się, by doszło do złamania pełnej wersji SHA-1". Oznacza to, że nasze podpisy elektroniczne są na razie bezpieczne. Trzeba jednak sprawdzić, czy używane przez nas aplikacje wykorzystują najnowsze funkcje kryptograficzne.

Tylko w jedną stronę

Jednokierunkowa funkcja skrótu (hash, funkcja haszująca/funkcja mieszająca) jest przekształceniem, które z wiadomości o dowolnej długości generuje krótką wartość (skrót), unikalny i charakterystyczny dla tej wiadomości. Funkcje te są powszechnie wykorzystywane do ochrony integralności danych oraz na potrzeby podpisu elektronicznego. Warunkami, które muszą spełniać funkcje skrótu, są wrażliwość na zmiany w oryginalnym tekście oraz małe prawdopodobieństwo kolizji.

Pierwsza cecha oznacza, że nawet jeden zmieniony bit wiadomości powinien spowodować zmianę wszystkich bitów skrótu (stąd nazwa "funkcja mieszająca"). Odporność na kolizje oznacza, że prawdopodobieństwo istnienia dwóch różnych wiadomości o identycznych skrótach jest bardzo małe. Funkcja skrótu musi być także jednokierunkowa, inaczej: nieodwracalna. Oznacza to, że oryginalnego tekstu wiadomości nie da się obliczyć na podstawie jej skrótu. Współcześnie wykorzystywane funkcje skrótu dają wynik o długości minimum 128 bitów (MD5), najczęściej 160 bitów (SHA-1, RIPEMD-160). Niektóre warianty SHA-2 dają jednak wyniki o długościach: 256, 384 i 512 bitów.

Funkcje skrótu znajdują powszechne zastosowanie w ochronie integralności. Odbiorca szyfrogramu wykonuje funkcję skrótu na otrzymanej wiadomości i porównuje ze skrótem dostarczonym przez nadawcę. Trzeba jednak podkreślić, że o ile oparte na skrótach funkcje kryptograficzne są bezpieczne, o tyle wykorzystujące skróty w podobny sposób funkcje detekcji błędów, takie jak CRC - nie są. Po pierwsze, ich wynik (16 lub 32 bity) jest za krótki, by zapewnić odporność na kolizje, po drugie, ich konstrukcja umożliwia modyfikowanie wiadomości w taki sposób, by zachować oryginalne CRC.


TOP 200