Jak szybko może zostać złamane Twoje hasło

25-05-2014, 14:23

Każdy z nas słyszał o włamaniach do różnych serwisów internetowych zakończonych kradzieżą danych. Często wśród zdobytych w ten sposób informacji znajdują się hasła użytkowników, a okradzeni usługodawcy zwykle uspokajają, że hasła są przechowywane w postaci zahashowanej, więc nie ma o co się martwić. Czy rzeczywiście?

Metody przechowywania haseł

Rejestrując się w dowolnym serwisie internetowym, użytkownik wpisuje wymyślone przez siebie hasło do formularza. Stamtąd trafia ono do bazy danych. Jeżeli hasło zostanie zapisane w takiej postaci, w jakiej podał je użytkownik, to mówimy, że jest ono przechowywane w formie jawnej (ang. plaintext). Nie jest to bezpieczny sposób gromadzenia haseł, bo każdy, kto uzyska dostęp do bazy danych tego serwisu, wszystkie informacje dostanie jak na tacy.

Niektóre serwisy przed zapisaniem hasła w bazie szyfrują je algorytmem odwracalnym (symetrycznym lub asymetrycznym). Jest to lepsze rozwiązanie niż przechowywanie haseł w postaci jawnej, ale też nie do końca bezpieczne. Samo przechwycenie bazy danych włamywaczowi nie wystarczy, do odszyfrowania haseł będzie mu jeszcze potrzebny klucz. Problem w tym, że zapisuje się go zwykle na tym samym serwerze co bazę, więc włamywacz łatwo go odszuka.

Najbezpieczniej jest przechowywać w bazie danych nie hasła, tylko ich hashe wygenerowane za pomocą jednostronnej funkcji skrótu. Specjaliści zalecają hashowanie haseł przy użyciu algorytmów, których cechą wspólną jest jednoznaczne odwzorowywanie podanego ciągu znaków na pewien klucz o stałej długości (np. mojehaslo po zakodowaniu algorytmem MD5 będzie miało postać 8c2e680c62c356e648d8b8cfcfe23751). Podczas logowania do serwisu system generuje hash hasła wpisanego przez użytkownika, porównuje z zapamiętanym w bazie i udziela dostępu, jeśli są one identyczne. Ponieważ algorytm jest jednoznaczny, takie samo hasło generuje zawsze taki sam hash. To zaś, że funkcje skrótu są jednostronne, gwarantuje, że na podstawie hasha nie da się algorytmicznie odtworzyć hasła.

W celu wzmocnienia przechowywanych w bazie haseł wiele serwisów stosuje tzw. solenie, czyli doklejanie do nich – przed skróceniem – losowego ciągu znaków definiowanego w kodzie (ang. salt). Inną metodą wzmacniania haseł, wbudowaną w niektóre algorytmy, jest key stretching, który polega na wielokrotnym hashowaniu.

Do najczęściej stosowanych funkcji skrótu należą obecnie MD5 i SHA-1. Obie zostały już skompromitowane analitycznie, co w praktyce nie zagraża jeszcze bezpieczeństwu hashy, ale eksperci wolą dmuchać na zimno i zalecają stosowanie innych algorytmów. Wysoki poziom bezpieczeństwa zapewnia SHA-2, który jest jednak trudniejszy w implementacji. Na uwagę zasługują też BCrypt, PBKDF2, phpass i SCrypt.

Metody łamania haseł

Każda z funkcji hashujących jest niestety podatna na atak brute force, czyli sukcesywne sprawdzanie wszystkich możliwych kombinacji w poszukiwaniu właściwego hasła. Przy odpowiednio długim czasie można w ten sposób odzyskać dowolny ciąg znaków niezależnie od jego skomplikowania. W praktyce kluczowe znaczenie mają czas i sprzęt, jakim dysponuje atakujący.

Specjaliści udowodnili, że narzędzie whitepixel pracujące w oparciu o cztery karty graficzne Radeon HD 5970 łamie hashe MD5 z prędkością 33,1 mld na sekundę (zob. tabelę poniżej). To oznacza, że dowolne hasło złożone z 10 małych liter i cyfr może zostać złamane w czasie niewiele dłuższym niż jeden dzień. Jeśli skorzystamy z innego programu i tylko jednej karty graficznej, czas odzyskiwania tego samego hasła wydłuży się do 15 dni. Używając narzędzi działających w oparciu o procesor, uzyskamy jeszcze gorsze efekty. Jak wynika z tabeli, program Cain&Abel na procesorze Core2Duo z taktowaniem 3 GHz osiąga prędkość zaledwie 10 mln hashy na sekundę. W tym przypadku złamanie wybranego przez nas hasła potrwa aż 4231 dni.

Szybkość łamania haseł MD5. Źródło: Sekurak.pl

Szybkość łamania haseł MD5. Źródło: Sekurak.pl

Łatwo zauważyć, że skuteczność ataku brute force słabnie wraz ze wzrostem długości i złożoności hasła, nie jest to więc jedyna metoda wykorzystywana przez cyberprzestępców. Dużą popularnością cieszy się atak słownikowy, który polega na generowaniu hashy tylko z najczęściej występujących ciągów, takich jak imiona, daty urodzin, popularne nazwy itp. Eksperci szacują, że z pomocą odpowiednio rozbudowanych słowników atakujący może złamać ponad połowę hashy z przeciętnej bazy danych w czasie poniżej doby.

Jeszcze skuteczniejsze są ataki hybrydowe, które polegają na dołączaniu do każdego słowa ze słownika np. liczb od 1 do 99. Odpowiednio dobrane reguły pozwalają odzyskać wiele pozornie skomplikowanych haseł. W internecie można też zaopatrzyć się w tęczowe tablice (ang. rainbow tables), które zawierają miliony pregenerowanych hashy. Atak z ich użyciem pozwala w kilkanaście minut znaleźć popularne hasła o długości do 12 znaków ze skutecznością powyżej 95 proc.

Jak się zabezpieczyć – pięć porad dla każdego użytkownika

  1. Używaj długich, nieprzewidywalnych haseł składających się z małych i dużych liter, cyfr oraz znaków specjalnych.
  2. Korzystaj z unikatowego hasła w każdym serwisie internetowym, do którego się logujesz. W najgorszym wypadku cyberprzestępcy uzyskają dostęp tylko do jednego z Twoich kont.
  3. Regularnie zmieniaj hasła. Nie zapomnij o tym w szczególności, gdy dowiesz się o wycieku bazy danych z serwisu, w którym masz konto.
  4. Używaj menedżera haseł do przechowywania ich w postaci zakodowanej. W ten sposób możesz mieć skomplikowane hasło do każdej usługi, z której korzystasz, bez ryzyka, że je zapomnisz.
  5. Włącz podwójne uwierzytelnianie tam, gdzie to możliwe. Dzięki temu, nawet jeśli Twoje hasło zostanie wykradzione, atakujący nie będzie mógł nic zrobić, nie mając dostępu do Twego telefonu.

  
znajdź w serwisie

RSS  
RSS  
RSS - Wywiad
Wywiad  
RSS - Interwencje
RSS - Porady
Porady  
RSS - Listy
Listy  
« Grudzień 2019»
PoWtŚrCzwPtSbNd
 1
2345678
9101112131415
16171819202122
23242526272829
3031