Hasła w systemach operacyjnych i aplikacjach

Hasła ukryte za gwiazdkami

Hasła w systemach operacyjnych i aplikacjach

Wśród programów, które umożliwiają odczytanie haseł przechowywanych w systemie, jest ActMon Password Recovery. Oprogramowanie jest płatne, jednak wersja demo umożliwia podejrzenie trzech pierwszych znaków hasła.

Ukryte za gwiazdkami dane są przechowywane najczęściej w formie jawnej w systemie - nie są tylko wyświetlane na ekranie. Chcąc odczytać ukryte w ten sposób dane, wystarczy pobrać i zainstalować jeden z wielu programów, które umożliwiają odczytanie takich haseł. Wymienimy tylko niektóre: Asterisk Key, Asterisk Password by Thegrideon Software, Revelation, ShowPass, Password Spectator.

Wielu użytkowników korzysta z opcji przechowywania haseł w programach. Szczególnie dotyczy to przeglądarek internetowych, programów pocztowych oraz komunikatorów. Opcja taka powoduje, że nie musimy za każdym razem podawać hasła, co jest oczywiście wygodniejsze. Jednak należy pamiętać o tym, że hasła zapamiętywane w ten sposób są przechowywane w postaci jawnej lub zaszyfrowane z użyciem prostych funkcji dwukierunkowych. Oznacza to, że hasła te można w łatwy sposób odszyfrować. Może to powodować niebezpieczeństwo odkrycia naszych haseł przez niepowołane programy/osoby. Najczęściej jedynym elementem potrzebnym do odkrycia naszych haseł jest uzyskanie dostępu do naszego komputera lub uruchomienie na nim odpowiedniego oprogramowania.

Funkcje jednokierunkowe (funkcje skrótu, funkcje haszujące)

W większości systemów uwierzytelniania do przechowywania haseł stosuje się tzw. funkcje jednokierunkowe. Są to algorytmy, które na podstawie danych wejściowych wykorzystywane są do obliczenia ciągu wyjściowego (tzw. skrótu). Z założenia jednak operacja odwrotna (otrzymanie ze skrótu danych wejściowych) jest obliczeniowo niemożliwa do wykonania. Powoduje to, że w systemie w rzeczywistości nie mamy przechowywanych haseł, które system mógłby wykorzystać do logowania np. w innym systemie. System jest w stanie określić czy wynik działania tej funkcji dla podanego przez nas hasła zgadza się z tym przechowywanym w bazie. Powszechnie stosowanymi funkcjami skrótu są: MD4, MD5, SHA-0, SHA-1, SHA-2, HAVAL, RIPEMD, RIPEMD-160. Funkcje takie powinny być tak skonstruowane, by nie tylko odwrócenie funkcji było niemożliwe, ale również znajdowanie kolizji było trudne obliczeniowo. Poprzez kolizję określamy sytuację, gdy dla dwóch różnych ciągów wejściowych otrzymujemy identyczny skrót.

Należy zwrócić uwagę, że dla algorytmów MD4, MD5, HAVAL, RIPEMD, SHA-0 opracowano skuteczne metody kryptoanalizy umożliwiające złamanie tych algorytmów (znalezienie kolizji) w bardzo krótkim czasie, np. znalezienie kolizji dla algorytmu MD5 z wykorzystaniem ataku autorstwa Xiaoyun Wang zajmuje na przeciętnym komputerze zaledwie godzinę. Dla algorytmu SHA-1 zaproponowano kilka ataków kryptoanalitycznych, jednak poziom bezpieczeństwa gwarantowany przez ten algorytm jest nadal stosunkowo wysoki. Zaleca się jednak jego stopniowe zastępowanie przez SHA-2. Dla algorytmu RIPEMD-160 nie opublikowano skutecznych ataków kryptoanalitycznych.

W celu zwiększenia bezpieczeństwa w wielu systemach przed obliczeniem skrótu, do hasła dodaje się tzw. sól.

Tęczowe tablice

Hasła w systemach operacyjnych i aplikacjach

Odkrywanie haseł za pomocą Ophcrack z tęczowymi tablicami dla wszystkich znaków alfanumerycznych.

Jest to stosunkowo nowa metoda łamania haseł i systemów uwierzytelniania opartych na funkcjach skrótu, zaproponowana przez Szwajcara Philippe Oechslina. W celu wykonania ataku należy wcześniej przygotować odpowiednie tablice skrótów. Ze względu na ograniczoną przestrzeń dyskową nie można stworzyć tablic przechowujących wszystkie możliwe hasła i odpowiadające im skróty. Dlatego też tablice stosowane w tej metodzie zawierają jedynie część haseł i skrótów, ale jednocześnie umożliwiają odtworzenie pozostałych haseł. Wielkość tablic nawet po takiej redukcji jest nadal duża (gigabajty lub terabajty danych) i zależy od algorytmu oraz od zbioru znaków, dla którego zostały one stworzone. Oczywiście generowanie takich tablic jest czasochłonne, jednak jednorazowe ich wygenerowanie pozwala na późniejsze odkrywanie haseł w bardzo krótkim czasie - do kilku minut.

Tablice mają jednak swoje ograniczenie - nie można ich stosować do systemów wykorzystujących sól. W tym przypadku dla każdej wartości soli należałoby stworzyć osobne tablice.

Ophcrack jest przykładem programu wykorzystującego metodę tęczowych tablic do łamania haseł otrzymanych z wykorzystaniem algorytmu Lan Manager. Oprogramowanie dostępne jest m.in. w wersji samobootującej się płyty CD. Wystarczy włożyć płytę do napędu i uruchomić z niej komputer. Po chwili otrzymamy wykaz kont w systemie wraz z informacjami o hasłach. Wersja na płycie ma jedynie niewielki zestaw tablic, który zapewnia odszyfrowanie haseł o długości do 14 znaków, składających się z cyfr oraz małych i wielkich liter z prawdopodobieństwem równym 99,95%.

Innym programem opartym na tej metodzie jest RainbowCrack, który można zastosować do łamania haseł obliczonych z wykorzystaniem algorytmów: LM, MD5, SHA-1.

Metoda tęczowych tablic może być również skutecznie zastosowana dla metody NTLM, jak również dla metod uwierzytelniania stosowanych w MySQL oraz Cisco PIX.

Należy zaznaczyć, że w celu przeprowadzenia skutecznej kryptoanalizy z wykorzystaniem tej metody potrzebujemy skrótów haseł, co wymaga wcześniejszego uzyskania dostępu do systemu.

Przechowywanie haseł w systemach operacyjnych MS Windows

Hasła w systemach operacyjnych i aplikacjach

Zmiany w rejestrze systemu Windows XP

Zarówno hasła, jak i identyfikatory przechowywane są w systemie MS Windows z wykorzystaniem funkcji haszujących. W starszych wersjach systemu, jak np. MS Windows 98, wykorzystywany był algorytm Lan Manager. LM pozwala na przechowywanie haseł o długości mniejszej niż 15 znaków.

Poniżej przedstawiono działanie tego algorytmu.

1. Zamień wszystkie małe litery alfabetu na duże.

2. Jeżeli hasło ma więcej niż 14 znaków, to obetnij nadmiarowe znaki.

3. Podziel hasło na dwa 7-znakowe bloki.

4. Korzystając z algorytmu DES, utwórz skróty dla obu bloków.

5. Połącz otrzymane 8-znakowe ciągi w jeden ciąg składający się z 16 znaków.

Podany algorytm ma dwie podstawowe wady. Pierwszą z nich jest podzielenie hasła na dwa ciągi po 7 znaków. Drugą natomiast jest fakt zmiany wszystkich małych liter na duże. Pierwotnie hasło składające się z małych i dużych liter oraz cyfr dawało 284 różnych możliwości. Jednak po podzieleniu hasła na dwa bloki liczba potrzebnych do sprawdzenia możliwości spadła zaledwie do 242. Wyeliminowanie z hasła małych liter spowodowało następny spadek liczby kombinacji do 236. Sprawdzenie wszystkich możliwych haseł na zwykłym komputerze PC zajmie w tym przypadku zaledwie kilka godzin. Zastosowanie tęczowych tablic redukuje ten czas do pojedynczych minut, a nawet sekund.

W nowszych wersjach systemu został zaimplementowany lepszy sposób przechowywania haseł eliminujący powyższe błędy. Wykorzystano algorytm NT Lan Manager. Algorytm ten stosuje funkcję MD4. Jednak Microsoft w celu zachowania kompatybilności ze starszymi systemami domyślnie wprowadził przechowywanie haseł zarówno za pomocą metody LM, jak i NTLM. Powoduje to, że systemy korzystające z nowszej wersji algorytmu nadal są podatne na ataki dotyczące algorytmu LM. Opcję tę można wyłączyć, korzystając z jednego z dwóch sposobów przedstawionych poniżej:

1. Zaimplementuj zasadę NoLMHash za pomocą zasad grupy. W celu wyłączenia przechowywania wartości skrótów obliczonych z wykorzystaniem algorytmu LM dla haseł użytkowników w bazie danych SAM komputera lokalnego za pomocą lokalnych zasad grupy (system Windows XP lub Windows Server 2003) lub w środowisku usługi Windows Server 2003 Active Directory za pomocą zasad grupy w usłudze Active Directory (system Windows Server 2003) wykonaj następujące kroki:

  1. W zakładce Zasady grupy rozwiń węzeł Konfiguracja komputera -> Ustawienia systemu Windows -> Ustawienia zabezpieczeń -> Zasady lokalne, następnie kliknij pozycję Opcje zabezpieczeń
  2. Na liście dostępnych zasad kliknij dwukrotnie pozycję Zabezpieczenia sieciowe: nie przechowuj wartości mieszania (hash) programu LAN Manager dla następnej zmiany hasła
  3. opcję Włączone, a następnie kliknij przycisk OK

2. Umieść odpowiednie wpisy w rejestrze, korzystając z Edytora rejestru:

System Windows 2000 z dodatkiem SP2

  1. Uruchom edytor rejestru regedt32.exe (Menu Start -> Uruchom -> regedt32.exe -> OK)
  2. Znajdź klucz rejestru HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa
  3. Dodaj nowy klucz o nazwie: nolmhash (menu Edycja -> Dodaj klucz)
  4. Zamknij rejestr systemy
  5. Uruchom ponownie komputer

System Windows XP i Windows Server 2003

  1. Uruchom edytor rejestru regedit.exe (Menu Start -> Uruchom -> regedit.exe -> OK)
  2. Znajdź klucz rejestru HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa
  3. Dodaj nową wartość DWORD o nazwie NoLMHash (menu Edycja -> Nowy -> Wartość DWORD)
  4. Zmodyfikuj zawartość NoLMHash, tak aby przyjęła wartość 1
  5. Zamknij rejestr systemy
  6. Uruchom ponownie komputer

Uwaga! Zmiana wartości rejestru w przypadku systemu Windows 2000 nie powoduje wyczyszczenia historii haseł (nadal pozostaną stare wartości LM).

Atak ze znanym tekstem jawnym

W kryptografii jest to atak na szyfr, gdy znamy część lub całość tekstu jawnego, który został zaszyfrowany. W przypadku łamania hasła archiwum ZIP/ARJ atak taki polega na podaniu pliku lub jego fragmentu podczas kryptoanalizy.


TOP 200