Jakie hasła są bezpieczne?

Transkrypt

Jakie hasła są bezpieczne?
Jakie hasła są bezpieczne?
niedziela, 10 października 2010 20:59
Eksperci od lat wieszczą koniec haseł statycznych jako metody uwierzytelniania. Jak jednak
pokazuje praktyka, są to bardziej pobożne życzenia niż stan faktyczny. A skoro - jak wiele
wskazuje - hasła raczej pozostaną w użyciu, spróbujmy podsumować to, co pozwala na
korzystanie z nich w miarę bezpiecznie i wygodnie.
Za przykład potwierdzający utrzymywanie się haseł statycznych jako jednej z głównych metod
uwierzytelniania, niech posłuży historia znana autorowi niniejszego artykułu. Jakiś czas temu
wdrażano system uwierzytelniania dwuelementowego, opartego na tokenach znanego
producenta, w jednej z instytucji finansowych. Wdrożeniem były objęte systemy Windows i
Unix/Linux. Po pół roku od zakończenia wdrożenia już połowa administratorów systemów Unix
wróciła do haseł statycznych. Po kolejnych 6 miesiącach tokenów używało już tylko 25%
administratorów. Obecnie, gdy minęły ponad dwa lata od wdrożenia (okres działania tokenów
wynosi w tym projekcie 3 lata), tylko jeden administrator systemów Unix pozostał wierny
tokenom i stosuje je do uwierzytelniania w kluczowym z biznesowego punktu widzenia systemie
finansowym - jednym systemie. Tokeny pozostały w użytku w niezmienionej liczbie jedynie do
uwierzytelniania VPN.
Silne czy słabe?
Algorytm generowania haseł
Hasła statyczne należą do grupy mechanizmów uwierzytelniania jednoelementowego (obok
uwierzytelniania wieloelementowego). Możemy wyróżnić przynajmniej kilka ich kategorii.
Czasami korzysta się z haseł numerycznych przyjmujących postać PIN-ów. Z reguły nie są one
długie (do 6 znaków), a ich zastosowanie ogranicza się w korporacjach do urządzeń fizycznej
kontroli dostępu. Wykorzystuje się je również jako mechanizm zabezpieczania dostępu do
wieloelementowych urządzeń uwierzytelniania (np. tokenów). Najpopularniejsze są jednak
wieloznakowe hasła alfanumeryczne.
Siłę hasła zwykło się określać terminem entropia (stopień losowości i nieuporządkowania), który
zawdzięczamy nieżyjącemu już matematykowi Claude Shannonowi. Jednostką entropii jest
zwyczajowo bit. Im wyższą ma wartość, tym hasło bezpieczniejsze. Ponieważ - jak wiadomo "matematyka jest wszędzie," także w naszym przypadku powstało równanie, które może
posłużyć do obliczenia entropii hasła:
h=log2(b), a potem h*l
- gdzie "b" to zbiór znaków, z którego można stworzyć hasło, a "l" to liczba znaków w haśle.
Jeżeli przyjmiemy, że na klawiaturze komputera mamy do dyspozycji 94 znaki [h=log2(94)], to
entropia jednego znaku wyniesie 6.555. Jeżeli pomnożymy tą wartość przez długość hasła
uzyskamy entropię hasła w bitach.
Przyjmuje się, że bezpieczne hasło powinno składać się co najmniej z 8 znaków i zawierać
cyfry, duże i małe litery oraz znaki specjalne (np. #,$). Okazuje się przy tym, że nie bez
1/5
Jakie hasła są bezpieczne?
niedziela, 10 października 2010 20:59
znaczenia jest "mechanizm" generowania haseł. Hasła tworzone przez użytkowników mają
znacznie niższy poziom entropii niż hasła generowane losowo. Szacuje się, że np. 8-znakowe
hasło tworzone przez użytkownika może sięgnąć 30 bitów, podczas gdy hasło generowane
losowo - 52 bitów, przy założeniu, że wykorzystywany jest alfabet 94-znakowy (klawiatura
komputera). Dzieje się tak głównie dlatego, że użytkownicy podświadomie stosują pewne
wzorce, np. częściej używają "@" niż "/". Nie mówimy tutaj o królowej haseł wśród
administratorów: "dupa1" lub jego bardziej finezyjnej "DuP@1". Proponujemy wyliczenie entropii
takiego hasła.
Stosuje się zatem różne sposoby konstruowania haseł. Najbardziej intuicyjnym jest podmiana
określonych znaków tak, aby fonetycznie tworzyły wyraz (szczególnie w hasłach
anglojęzycznych np. "$afeP@ss0wrd") - istnieją już jednak słowniki haseł tego typu
wykorzystywane przez narzędzia do łamania haseł. Bardziej zaawansowane metody stosują
algorytmy losowe lub pseudolosowe. Dla przykładu: firma GRC (Gibson Research Corporation)
do generowania bezpiecznych, ale też ekstremalnie trudnych do zapamiętania haseł korzysta z
własnego algorytmu pseudolosowego.
Każdorazowe odwiedziny na stronie (ww.grc.com/passwords.htm) powodują losowe
wygenerowanie trzech rodzajów haseł: 64-bitowe (szesnastkowe), 63-bitowe (ASCII), 63-bitowe
(znaki alfanumeryczne).
Przeglądając różnego rodzaju statystki dotyczące czasu potrzebnego na odgadnięcie czy
złamanie hasła, można dojść do wniosku, że tak naprawdę za bezpieczne można uznać hasło
składające się z 9-10 znaków (stosując małe i duże litery, znaki specjalne, cyfry). Daje to 949
możliwych kombinacji (prawie 573 biliardy kombinacji). Złamanie takiego hasła zajęłoby
kilkanaście lat.
Na pomoc pamięci
Cały czas jednak musimy borykać się z podstawowym ograniczeniem - naszą pamięcią. O ile
hasła literowe łatwo zapamiętać, o tyle już takie losowe, wieloznakowe składanki mogą
stanowić problem. Tutaj pojawia się zadanie dla mniej lub bardziej zaawansowanych systemów
zarządzania hasłami. Jednym z najprostszych, ale jednocześnie bogatych w funkcje i
stosowanych w wielu korporacjach jest KeePass (keepass.info). Tabela przedstawia skrótowo
najważniejsze funkcje tego narzędzia.
Poza KeePassem spotyka się także inne narzędzia tego typu, np. darmowy Password Safe
(passwordsafe.sourceforge.net) czy płatny RoboForm (roboform.com).
Rzecz jasna, świetnym rozwiązaniem byłoby wdrożenie scentralizowanego systemu
2/5
Jakie hasła są bezpieczne?
niedziela, 10 października 2010 20:59
zarządzania tożsamością IAM (Identity and Access Management), obejmującego nie tylko
prostą kwestię przechowywania haseł, ale przede wszystkim zarządzanie ich cyklem życia,
procesem zakładania i kontroli kont użytkowników, synchronizacją. Funkcjonują także okrojone
systemy zarządzania hasłami, oferujące tylko pewien zakres funkcji, np. SSO (Single-Sign-On)
z wymuszaniem kontroli jakości i czasu zmiany hasła, czy RSO (Reduced-Sign-On). Jak jednak
już wspomniano, są takie miejsca w infrastrukturze, które nawet tym narzędziom potrafią się
wymknąć. Żaden administrator nie lubi poddawać się rygorystycznej polityce kontroli.
Walka z hasłem
Jak już wcześniej wspomniano, hasła często dają jedynie pozorne poczucie bezpieczeństwa.
Istnieje wiele zagrożeń, na które mechanizmy uwierzytelniania wieloelementowego są znacznie
mniej podatne. Do najczęściej występujących zagrożeń możemy zaliczyć przechwytywanie i
łamanie haseł. Przejęcie hasła może nastąpić na różnych etapach cyklu życia hasła.
U administratorów rolę żółtych karteczek pełnią często pliki tekstowe, arkusze Excel itp.
przechowywane w postaci niezaszyfrowanej. Nie jest więc potrzebny żaden szczególny wysiłek,
aby je przechwycić. Bardzo często zdarza się też, że tworzone są tzw. hasła powitalne - tzn.
przypisywane do nowego konta domyślnie (np. dla kont serwisowych hasło startowe to
"witaj.serwis"). Teoretycznie hasła te powinny być zmieniane już po pierwszym użyciu. W
praktyce proces zakładania konta szwankuje i zapomina się o wymuszaniu zmiany hasła, albo
brakuje mechanizmów kontroli jakości zmienianego hasła - nierzadko zmienia się hasło na to
samo.
Kolejny problem to przesyłanie haseł - zarówno do systemu, do którego ma nastąpić
uwierzytelnienie, jak i pomiędzy administratorami/użytkownikami.
Na każdym etapie transmisji istnieje ryzyko podsłuchania hasła. Może to nastąpić chociażby na
poziomie wpisywania hasła "dzięki" obecności keyloggera. Bardzo często pojawiają się
narzędzia, które kuszą użytkownika licznymi funkcjami, ale w rzeczywistości ich podstawowym
zadaniem jest kradzież danych uwierzytelniania. Do tego dochodzi przesyłanie haseł
protokołami, które domyślnie lub w ogóle nie pozwalają na szyfrowanie transmisji. Standardowo
to telnet (nadal stosowany w wielu urządzeniach sieciowych), FTP czy poczta. Skuteczną
techniką sniffingu jest stare dobre "wiszenie nad głową" oraz różne socjotechniki.
Jeżeli czegoś nie da się podsłuchać, można to próbować złamać. Tutaj mamy do dyspozycji
przynajmniej kilka technik i kilkaset narzędzi, które ułatwiają to zadanie.
Do najpopularniejszych ataków tego typu należą ataki słownikowe, oparte na przygotowanych
wcześniej bazach słów lub zwrotów - ostatnio modna jest baza danych tzw. haseł
3/5
Jakie hasła są bezpieczne?
niedziela, 10 października 2010 20:59
mnemonicznych. Jest to najszybsza metoda odgadywania haseł, jednocześnie jednak
wymagająca od łamiącego posiadania wielogigabajtowej bazy odpowiednich słów.
Wariantem metody słownikowej są tzw. tęczowe tablice (rainbow tables), które w
przeciwieństwie do słowników nie zawierają słów/wyrażeń, a listę wartości ich funkcji skrótu.
Najprostszą linią obrony przed łamaczami wykorzystującymi tęczowe tablice jest stosowanie
sumy kontrolnej hasła, generowanej z użyciem tzw. soli (salt), czy elementu losowego
"dorzucanego" do standardowego algorytmu generowania sumy kontrolnej. Salt sprawia, że to
samo hasło dla dwóch różnych użytkowników będzie miało zupełnie inną funkcję skrótu. Im
większa wartość soli, tym większy poziom bezpieczeństwa. Odmianą ataków słownikowych są
ataki mieszane, tzn. do zwrotów zawartych w słownikach są dodawane kolejno różne znaki
specjalne.
Jeżeli ten sposób zakończy się niepowodzeniem, można spróbować metody brute force, gdzie
podejmowana jest próba sprawdzenia każdej możliwej kombinacji liter i znaków. Brute force w
przypadku długich i złożonych haseł jest metodą niezwykle czasochłonną i w zasadzie mało
użyteczną. Skuteczność takich ataków maleje jeszcze bardziej, jeżeli systemy, do których
następuje uwierzytelnienie, mają włączoną blokadę konta po niewielkiej liczbie nieudanych
logowań. Dobrze, jeśli czas blokady wzrasta wraz z kolejną nieudaną próbą.
Wreszcie, jeżeli napastnik nabierze przekonania, że złamanie hasła zajmie zbyt wiele czasu,
może je zwyczajnie ominąć, wykorzystując choćby podatności systemu operacyjnego lub
słabości mechanizmów związanych z procesem obsługi haseł (np. źle zaprojektowany proces
odzyskiwania hasła). Przykładowo, dość popularnym atakiem jest wykorzystanie cechy
modułów FireWire (lub iLink), umożliwiającej bezpośredni dostęp do pamięci (DMA) z
pominięciem systemu operacyjnego. Nie ma więc znaczenia, czy przedmiotem ataku są
wiekowy XP, Vista czy Windows 7. Wystarczą kabel FireWire, odpowiednie narzędzie (np.
winlockpwn) i kilkunastosekundowy dostęp fizyczny do komputera. Na szczęście wymyślono
narzędzia chroniące przed tym atakiem (np. FirewireBlocker), które jednak nie są
preinstalowane na systemach Windows.
Lan Manager HASH w pigułceLM
Hash - Windows 2000, Windows XP (SP2), Windows 2003 domyślnie przechowują wartości
funkcji skrótu dla haseł. W Windows Vista LM Hash jest wspierany, ale wyłączony. Wszędzie
tam, gdzie LM Hash jest włączony, Microsoft zaleca wyłączenie tego mechanizmu
(support.microsoft.com/kb/299656)NTLM Hash (v1 i v2) - Vista, Windows 7 i Windows 2008
LM Hash - bardzo łatwy do złamania, ponieważ:
4/5
Jakie hasła są bezpieczne?
niedziela, 10 października 2010 20:59
- nie wykorzystuje tzw. salt (elementu losowego "dorzucanego" podczas generowania skrótu),
- zamienia wszystkie litery na wielkie,
- dzieli hasła na 7-bajtowe fragmenty.
Pierwszym narzędziem wykorzystującym Rainbow Tables do łamania haseł był OphCrack
(obecnie zarówno w wersji Windows XP, jak i Windows Vista).
Narzędzia:
Rainbow Tables - w większości przypadków płatne, część dostępna bezpłatnie z
www.freerainbowtables.com
OphCrack - (ophcrack.sourceforge.net/) - łamacz wartości hash LM/NTML
RainbowCrack - (project-rainbowcrack.com) - łamacz wartości hash LM, NTLM, MD5, SHA1,
MYSQLSHA1, HALFLMCHALL, NTLMCHALL
fgdump (www.foofus.net/fizzgig/fgdump/) - zrzucanie danych uwierzytelniających lokalnie lub z
systemów zdalnych
syskey - wbudowane narzędzie Windows, umożliwia szyfrowanie pliku SAM - jedno z
zabezpieczeń przed łamaczami haseł
cachedump - zrzucanie zapisanych w cache'u danych uwierzytelniających
John The Ripper - (www.openwall.com/john/) - narzędzia do odzyskiwania haseł
Cain and Abel - (www.oxid.it/cain.html) - narzędzie do "odzyskiwania" haseł
źródło: securitystandard.pl
5/5