Aktualny poziom bezpieczeństwa kryptograficznych funkcji skrótu
Opublikowany w ubiegłym miesiącu dokument NIST SP 800-107 zawiera, poza głównym tematem jakim jest randomizowany skrót na potrzeby podpisu cyfrowego, także interesującą analizę aktualnego stanu bezpieczeństwa kryptograficznych funkcji skrótu.
Pod uwage brana jest funkcja SHA1 oraz funkcje z serii SHA-2 czyli SHA-224, SHA-256, SHA-384 i SHA-512. Ich praktyczna odporność na ataki dotykające funkcji haszujących jest przedstawiona w poniższe tabeli zaczerpniętej z SP 800-107. Wszystkie odporności są mierzone w bitach:
| Atak / Funkcja | SHA1 | SHA-224 | SHA-256 | SHA-384 | SHA-512 |
|---|---|---|---|---|---|
| Kolizja | <80 | 112 | 128 | 192 | 256 |
| Preimage | 160 | 224 | 256 | 384 | 512 |
| Second preimage | 105-160 | 201-224 | 201-256 | 384 | 394-512 |
Dla SHA-1 podana jest wartość <80 czyli "mniej niż 80". Jest to o tyle istotne, że wartość 80 bitów to dolna granica złożoności obliczeniowej (odporności), jaką posługuje się NIST w stosunku do podstawowych algorytmów kryptograficznych. Aktualny szacunek dla SHA-1 według SP 800-107 to 60 bitów, czyli grubo poniżej granicy 80 bitów.
Podane wartości mają istotne znaczenie dla wyboru funkcji skrótu w różnych zastosowaniach. Na przykład większość dostępnych w Internecie serwerów SSL (banków, sklepów internetowych) negocjuje domyślnie SSL z funkcją skrótu MD5 i nie wywołuje to specjalnej sensacji, ze względu na krótkotrwały charakter tych połączeń.
Drugie zastosowanie funkcji skrótu w protokole SSL czyli ochrona autentyczności stron za pomocą certyfikatów X.509 wymaga długotrwałej odporności na wymienione ataki - i tutaj obecność MD5 w certyfikatach znanego CA wywołała niedawno umożliwiła ich podrobienie.
Zgodnie z zaleceniami NIST opisanymi we wspomnianej publikacji SP 800-107 oraz - szerzej - w 800-57 funkcja MD5 nie powinna być używana w zastosowaniach związanych z podpisem cyfrowym już od 1999 roku.
W stosunku do SHA-1 taką rekomendację wyznaczono na rok 2010. A ściślej, wyznaczono ją dla wszystkich algorytmów posługując się kryterium zapewnianej odporności mierzonej w bitach. I tak:
- do 2010 roku powinny być używane algorytmy zapewniające minimum 80 bitów - nie powinny być stosowane klucze RSA i DSA krótsze niż 1024 bity,
- w latach 2011-2030 powiny być używane algorytmy zapewniające min. 112 bitów - wycofany powinien zostać 3DES z dwoma kluczami (2TDEA), minimalna długość kluczy RSA i DSA to 2048 bitów,
- po roku 2030 powinny być używane algorytmy zapewniające min. 128 bitów - wycofany powinien być każdy warian 3DES, minimalne długości kluczy RSA i DSA to 3072 bity
Zgodnie z zaleceniami SP 800-57 po aktualizacji w 2008 roku SHA-1 jako zapewniające odporność mniejszą niż 80 bitów nie powinno być stosowane w noywych implementacjach.
- NIST Special Publication 800-107: Recommendation for Applications Using Approved Hash Algorithms, February 2009
- NIST Special Publication 800-57: Recommendation for Key Management - Part 3: Application Specific Key-Management Guide, August 2008 (DRAFT)
- NIST Special Publication 800-57: Recommendation for Key Management – Part 1: General (Revised), March 2007
- Zaloguj się lub zarejestruj by odpowiadać
- Generate PDF file
- Wersja do wydruku








