Zabezpieczenie SSL
- Paweł Krawczyk,
- 22.09.2009
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.
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?"
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.