Zabezpieczenie SSL

Czy fakt stosowania szyfru RC4-MD5 w serwerze SSL jest już podatnością, którą należy wykazać w rapocie, czy też praktyką dopuszczalną z punktu widzenia bezpieczeństwa?

Chodzi konkretnie o zestaw algorytmów (cipher suite) dla protokołu SSL o nazwie TLS_RSA_WITH_RC4_128_MD5, czyli taki, w którym poufność zapewniona jest przez szyfr RC4, zaś autentyczność i integralność - przez HMAC-MD5. Argumentacja w raporcie, z którym się ostatnio zetknąłem brzmiała następująco: na oba algorytmy "są znane ataki" i dlatego trzeba się od nich trzymać z daleka. W rzeczywistości jest to jednak uzasadnienie dalekie od prawdy. A piszę o tym dlatego, że z każdej takiej "dziury" trzeba się potem tłumaczyć klientowi, więc raportowane na wyrost rzekome podatności przyczyniają się do siania FUD.

Realne błędy w konfiguracji SSL

Co należy zatem uznać za rzeczywiste błędy w konfiguracji SSL?

1. Użycie MD5 w podpisie cyfrowym w certyfikacie serwera lub klienta. Obecnie rzadkość, bo żaden znany mi root publiczny takich nie wystawia. Możliwe tylko w przypadku certyfikatów wystawianych w drzewach prywatnych.

2. Dopuszczalność stosowania algorytmów określanych jako "eksportowe" (exportable) lub "słabe" (weak). Zaliczają się do nich zestawy z kluczami symetrycznymi poniżej 128 bitów oraz asymetrycznymi (RSA, DSA) poniżej 1024 bitów.

3. Cała gama błędów związanych z certyfikatami SSL, które opisałem w artykule "Po co nam SSL?"

Dla szyfru RC4 znanych jest kilka praktycznych ataków. Do najszerzej znanych - i najpoważniejszych - należy atak Fluhrera, Mantina i Shamira, który umożliwia odtworzenie klucza szyfrującego, jeśli wiele bloków danych jest szyfrowanych tym samym kluczem z różnymi wektorami inicjalizującymi i z podobnym początkiem tekstu jawnego. Taka specyficzna implementacja stała się przyczyną złamania protokołu WEP. Jednak w przypadku SSL nie mamy do czynienia z taką implementacją - w protokole tym cała transmisja w ramach danej sesji SSL jest szyfrowana jednym losowym kluczem. Dla nowej sesji generowany jest nowy klucz sesyjny. Podsumowując, algorytm RC4 w tej konkretnej implementacji, jaką jest SSL nie jest podatny na żaden praktyczny dzisiaj atak.

Drugi z algorytmów, czyli MD5 również jest uważany za złamany, zwłaszcza po wykryciu szeregu problemów ułatwiających tworzenie kolizji oraz praktycznej demonstracji z użyciem fałszywych certyfikatów X.509. W szczególności problemy te dyskwalifikują go z zastosowań długoterminowych, takich jak jakakolwiek forma podpisu cyfrowego. Kwestia użycia MD5 jest w protokole SSL nieco bardziej skomplikowana, bo jest on używany w wielu miejscach. W szczególności - w skrótach chroniących poszczególne pakiety oraz w komunikacie końcowym, który też zawiera podsumowanie skrótu wszystkich wcześniejszych danych.

W przypadku MD5 stosowanego w SSL również zagrożenie ze strony znanych ataków nie jest praktyczne. MD5 jest wykorzystywany w trybie HMAC, czyli jako skrót sparametryzowany kluczem kryptograficznym. Ktoś kto nie zna tego klucza, nie może podejmować prób wygenerowania kolizji i znowu mamy do czynienia z atakiem realnym, ale niepraktycznym w tym konkretnym zastosowaniu. Podsumowując, zestaw TLS_RSA_WITH_RC4_128_MD5 jest nadal praktycznie bezpieczny w protokole SSL 3.

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

TOP 200