Wyłączyłeś hashe LM w Windowsie? A nieprawda!

dodał 4 marca 2012 o 00:30 w kategorii HowTo, Krypto, Wpadki  z tagami:
Wyłączyłeś hashe LM w Windowsie? A nieprawda!

Kiedy ponad rok temu badacze udowodnili, że są w stanie złamać 14-znakowe hashe LM systemu Windows w ciągu maksymalnie 5 sekund, główną rekomendacją było wyłączenie hashy LM i przejście na NTLM. Okazuje się to jednak niewystarczające.

Wraz z pojawieniem się dysków SSD pojawiło się również sporo ich nowych zastosowań. Jednym z nich okazało się przechowywanie i przeszukiwanie tęczowych tablic, zawierających ogromne ilości wcześniej wygenerowanych haseł, a używanych do łamania hashy. Szwajcarska firma Objectif Securite specjalizująca się w takich zastosowaniach dysków SSD opublikowała narzędzie umożliwiające odgadnięcie w ciągu kilku sekund zahashowanego hasła Windows XP do 14 znaków włącznie (bez względu na ilość użytych znaków specjalnych).

Jakim cudem (oprócz dysków SSD) osiągnięto tak spektakularne wyniki? Wynika to głównie z bardzo marnego zaprojektowania procesu hashowania. Wygląda on następująco:

  • hasło podane przez użytkownika jest konwertowane do dużych liter (jeśli zawiera litery)
  • hasło jest uzupełniane do długości 14 znaków (jeśli jest krótsze)
  • utworzone hasło dzielone jest na 2 części po 7 znaków
  • każda z części jest użyta w funkcji DES (bez soli) do stworzenia formy zaszyfrowanej
  • obie zaszyfrowane części są łączone, by utworzyć hash LM.

Główne wady procesu to obniżenie ilości dostępnych znaków z 95 do 69 (przez eliminację małych liter), redukcja problemu obliczeniowego z hasła 14-znakowego do 2 haseł 7-znakowych oraz brak stosowania soli, obniżający istotnie ilość obliczeń potrzebnych do odzyskania hasła.

Microsoft, zdając sobie sprawę ze słabości algorytmu, umożliwił świadomym użytkownikom wyłączenie stosowania i zapisywania hashy LM i przejście na bezpieczniejsze hashe NTLM. Już Windows Vista domyślnie nie przechowuje hashy LM na dysku, dostępne są też metody wyłączenia zapisywania w innych systemach. Można tez wymusić uwierzytelnianie użytkowników jedynie przy użyciu NTLM.

Na szczęście sa jeszcze administratorzy, którzy nie ufają systemom i weryfikują ich działanie. Jednym z nich jest Mike Pilkington, który opisał na swoim blogu ciekawy eksperyment (o jeszcze ciekawszym wyniku). Mike wyłączył na wszelkie możliwe sposoby używanie hashy LM i skontrolował, co zrobił system. Okazało się, że owszem, hashe LM nie zostały zapisane na dysku. Jednak gdy uruchomił Windows Credentials Editor, znalazł hashe LM swoich haseł w pamięci komputera! Wyszło na jaw, ze Windows, dla zapewnienia kompatybilności starszych rozwiązań, tak czy inaczej, bez względu na ustawienia, oblicza w trakcie logowania hashe LM i przechowuje je w pamięci.