Microsoft zarzuci słabe szyfry

Microsoft oficjalnie zabronił swoim programistom stosowania przestarzałych lub słabych algorytmów kryptograficznych w nowym kodzie.

Zakaz jest częścią wydawanej w cyklu półrocznym oficjalnej, wewnętrznej polityki Microsoftu i będzie weryfikowany za pomocą automatycznych narzędzi skanująch kod źródłowy w poszukiwaniu odwołań do słabych szyfrów. Programiści, którzy zastosowali stare algorytmy będą proszeni o zamianę ich na nowsze.

Wśród algorytmów, z których nie wolno korzystać znalazły się DES, MD4, MD5 i w niektórych przypadkach SHA-1. Wszystkie z nich nie spełniają współczesnych wymagań bezpieczeństwa. Szyfr DES jako taki nie został do tej pory złamany, ale posiada zbyt krótki klucz (56 bitów). Zamiast niego stosuje się obecnie 3DES (168 bitów) lub - jak zaleca Microsoft - nowoczesny AES (klucz 128-256 bitów).

Funkcja skrótu MD4 posiada znane od dawna słabości. Stosunkowo niedawno pojawiły się nowe ataki na MD5 (które poza tym generuje skrót o długości 128 bitów, zbyt krótki jak na dzisiejsze wymagania) oraz SHA-1. Ta ostatnia funkcja, która stanowi podstawę bezpieczengo podpisu elektronicznego jest na razie bezpieczna ale Microsoft słusznie zaleca stosowanie nowej, silniejszej wersji SHA-2 w tych miejscach gdzie korzystanie ze SHA-1 nie jest konieczne (na przykład ze względu na standardy). SHA-2 generuje skróty o długościach 256 do 512 bitów.

Takie postawienie sprawy przez Microsoft jest jak najbardziej słuszne. "Dlaczego dopiero teraz, powinni to byli zrobić wiele lat temu" - zastanawia się jednak Bruce Schneier, autor wielu książek o kryptografii. I faktycznie, złudne są nadzieje na to że ta decyzja zmieni coś w bezpieczeństwie produktów Microsoftu w perspektywie nawet kilku lat. Polityka będzie dotyczyć bowiem tylko nowopowstającego oprogramowania.

Wyrugowanie protokołów opartych o słabe szyfry będzie trudne tak długo, jak Microsoft będzie zdecydowany zachować kompatybilność ze starszymi wersjami Windows. Problem ten dotyczy wbrew pozorom bardzo wielu części Windows a także aplikacji Microsoftu. Wśród nich można wymienić sieciowe mechanizmy uwierzytelniania SMB (oparte o słabe funkcje skrótu MD2, MD4, MD5), protokół PPTP (dwukrotnie złamany przez wspomnianego wyżej Schneiera i chętnie wykorzystywany przez wykładowców na uczelniach do demonstrowania jak nie pisać protokołów kryptograficznych) czy szyfrowanie dokumentów w Wordzie (w pierwszych latach oparte o trywialny do złamania XOR, a potem o względnie dobry RC4 ale i tak dziurawy bo... błędnie zastosowany).

Większość z mechanizmów bezpieczeństwa Windows związanych z kryptografią było w przeszłości wielokrotnie atakowanych z powodzeniem i w kolejnych latach wielokrotnie łatane ze zmiennym powodzeniem. Rezultat tej łataniny to niespójne, mętne i niestandardowe mechanizmy, których całe bezpieczeństwo zależy nieraz od poprawki wprowadzonej wiele lat temu po wykryciu kolejnej dziury.

Zaskakuje też swoboda jaką daje Microsoft swoim programistom w zakresie stosowania mechanizmów kryptograficznych. Z tego niewielkiego kawałka obrazu jaki ujawniono w opublikowanej informacji wynika że programiści dobierają algorytmy kryptograficzne według własnego widzimisię, a dopiero teraz ich praca będzie w jakiś sposób weryfikowana ale i tak post factum. w takim przypadku niestety nawet korzystanie z silnych algorytmów może zaowocować dziurawym produktem finalnym.

Każdego roku międzynarodowe organizacje kryptograficzne (IACR, CSRC NIST) publikują dziesiątki dopracowanych i starannie przebadanych standardów kryptograficznych przeznaczonych właśnie do stosowania przez firmy tworzące oprogramowanie. Normą jest to że standardy te są darmowe. Mimo to firmy programistyczne nadal tworzą własne wynalazki, zwykle dziurawe. Jak to wyjaśnić?


Zobacz również