Jak łamane są hasła?
Na konta rzadko włamuje się tak, jak pokazują to filmy. W praktyce hasło zdobywa się na jeden z trzech sposobów. Jest łamane: ustalane przez sprawdzanie jednego kandydata po drugim, zwykle na wykradzionej z serwisu bazie skrótów (hash) haseł. Jest kradzione: wpisane na fałszywej stronie albo skopiowane przez złośliwe oprogramowanie. Albo jest używane ponownie: atakujący biorą hasło z wcześniejszego wycieku i próbują go w innych serwisach, licząc na to, że właściciel użył go także tam. Różnica ma znaczenie, bo na każdy sposób pomaga co innego. Ten artykuł omawia główne metody i wskazuje, co pomaga na każdą z nich.
Hasła z wcześniejszych wycieków
Co roku dochodzi do włamań do serwisów, a ich bazy użytkowników trafiają na sprzedaż albo są swobodnie udostępniane. Atakujący biorą pary adresu e-mail i hasła z jednego wycieku i automatycznie próbują ich w bankach, u dostawców poczty, w sklepach i w mediach społecznościowych – taki atak nazywa się credential stuffing. Nie ma w nim żadnego zgadywania, a działa z prostego powodu: ludzie używają tych samych haseł ponownie. Nawet silne hasło tu nie pomoże, jeśli wszędzie jest to samo.
Co pomaga: inne hasło do każdego konta, żeby wyciek z jednego serwisu nie dawał dostępu do innych kont.
Phishing
Strona phishingowa to kopia prawdziwej strony logowania pod nieco innym adresem, do której prowadzi link z e-maila lub wiadomości, która ponagla do natychmiastowego działania: zablokowane konto, paczka, faktura. Cokolwiek tam wpiszesz, trafia prosto do atakującego. Długość i losowość hasła nie mają znaczenia, bo wpisujesz je samodzielnie.
Co pomaga: otwieraj strony z własnych zakładek, a nie z linków. Korzystaj z menedżera haseł: proponuje on wypełnienie hasła tylko pod adresem, dla którego je zapisano, więc jeśli nie proponuje zapisanego hasła, sprawdź adres, zanim wpiszesz je ręcznie. I włącz uwierzytelnianie dwuskładnikowe, dzięki któremu samo skradzione hasło nie wystarcza. Kody jednorazowe można jednak wyłudzić tak samo jak hasło. Kluczy dostępu (passkey) i kluczy bezpieczeństwa FIDO2 – nie, bo odpowiadają tylko prawdziwej stronie; to rozróżnienie NIST nazywa odpornością na phishing.
Złośliwe oprogramowanie
Programy nazywane infostealerami kopiują hasła zapisane w przeglądarce razem z plikami cookie sesji i wysyłają je w ciągu kilku sekund od uruchomienia, a keyloggery rejestrują to, co jest wpisywane. Skradziony plik cookie sesji może wpuścić atakującego na konto, które jest już zalogowane – bez hasła i bez drugiego składnika. Takie programy zwykle trafiają na urządzenie w pirackim oprogramowaniu, fałszywych aktualizacjach i załącznikach e-mail.
Co pomaga: instalowanie oprogramowania tylko z oficjalnego źródła, aktualizowanie systemu i przeglądarki oraz traktowanie niespodziewanych załączników jako potencjalnie niebezpiecznych – choć te środki nie gwarantują pełnej ochrony. Jeśli urządzenie zostało zainfekowane, działaj z innego urządzenia, o którym wiesz, że jest czyste: zmień hasła, w każdym serwisie użyj opcji wylogowania ze wszystkich sesji i sprawdź, czy pomocniczy adres e-mail, numer telefonu i ustawienia uwierzytelniania dwuskładnikowego nie zostały zmienione. Wyczyść zainfekowane urządzenie, zanim znów się na nim zalogujesz.
Zgadywanie hasła w formularzu logowania
Sprawdzanie haseł bezpośrednio na stronie jest powolne: dobrze zbudowany serwis po kilku błędnych próbach opóźnia odpowiedź, blokuje logowanie albo prosi o rozwiązanie captcha. Sprawdzanie wielu haseł na jednym koncie jest więc nieefektywne i często stosuje się podejście odwrotne: kilka najpopularniejszych haseł – 123456, password, qwerty123 – sprawdza się na milionach kont, co nazywa się password spraying. Zgadywanie ukierunkowane działa tak samo, ale z danymi osobistymi: imiona dzieci i zwierząt, daty urodzin, ulubiona drużyna – wszystko to łatwo znaleźć w mediach społecznościowych.
Co pomaga: każde hasło, które nie jest popularne ani zbudowane z faktów o Tobie – zobacz, jak stworzyć silne hasło.
Ataki offline na skradzione skróty haseł
Poprawnie zbudowany serwis nie przechowuje haseł w czytelnej postaci. Przechowuje skróty – wynik funkcji jednokierunkowej, z którego nie da się obliczyć hasła z powrotem. Gdy taka baza wycieknie, atakujący sprawdzają możliwe hasła: obliczają skróty kandydatów na własnym sprzęcie i porównują wyniki. Nie spowalnia ich żaden formularz logowania, a szybkość zależy od funkcji skrótu, którą wybrał serwis, i od jej ustawień. Dla szybkich, przestarzałych funkcji, takich jak MD5, jedna nowoczesna karta graficzna sprawdza dziesiątki miliardów kandydatów na sekundę. Funkcje zaprojektowane do przechowywania haseł – Argon2id albo, w starszych systemach, bcrypt – są celowo powolne i zmniejszają to tempo o wiele rzędów wielkości, dlatego aktualne zalecenia wymieniają właśnie je.
Ataki słownikowe
Kandydaci nie są losowi. Narzędzia do łamania haseł zaczynają od list prawdziwych haseł z wcześniejszych wycieków i od słowników wyrazów i imion, a potem stosują reguły naśladujące ludzkie nawyki: wielka pierwsza litera, rok lub wykrzyknik na końcu, litera zastąpiona podobnym symbolem. Hasło takie jak Summer2024! wygląda na złożone, a należy do pierwszych sprawdzanych kandydatów. Solenie – dodawanie unikalnej losowej wartości, czyli soli, do każdego hasła przed obliczeniem skrótu – uniemożliwia atakującym użycie wcześniej obliczonych tablic, zwanych tęczowymi tablicami, i złamanie wszystkich identycznych haseł naraz, ale nie sprawia, że przewidywalne hasło staje się mniej przewidywalne.
Atak siłowy (brute force)
Gdy słowniki się wyczerpią, pozostaje sprawdzanie każdej kombinacji, a przy losowo wygenerowanym haśle o wyniku decyduje długość. Dla ilustracji weźmy szybką funkcję skrótu i hasło, w którym każdy znak jest wybrany niezależnie, z równym prawdopodobieństwem, spośród 94 drukowalnych znaków ASCII, bez spacji. Takich haseł z 8 znaków jest około 6 × 1015; przy dziesięciu miliardach prób na sekundę sprawdzenie ich wszystkich zajmuje około tygodnia, a średnio właściwe znajduje się w połowie tego czasu. Dla 12 znaków sprawdzenie wszystkich na tym samym sprzęcie zajęłoby około 1,5 miliona lat, a dla 16 ta liczba wymyka się jakiemukolwiek sensownemu porównaniu. To cały argument za długimi losowymi hasłami: słowniki niewiele przeciw nim dają, a przy tych założeniach sprawdzanie każdej kombinacji nie jest praktyczne. Nasz generator silnych haseł tworzy je w Twojej przeglądarce i dla każdego pokazuje szacunek entropii w bitach.
Co pomaga: długie hasło bez przewidywalnych wzorców, czyli w praktyce wygenerowane. Nie masz wpływu na to, jak serwis przechowuje Twoje hasło, więc załóż najgorsze i wybierz takie, które oprze się zgadywaniu nawet wtedy, gdy jest przechowywane z użyciem szybkiej funkcji skrótu.
Podglądanie przez ramię i socjotechnika
Najstarsze metody nie wymagają techniki. Hasło odczytuje się przez ramię, z karteczki na monitorze albo z ekranu udostępnionego w wideorozmowie; albo atakujący po prostu o nie prosi, podając się za pracownika pomocy technicznej lub kolegę z pracy – to nazywa się socjotechniką. Żaden prawdziwy serwis nigdy nie poprosi Cię o hasło przez telefon, e-mail ani czat.
Co pomaga: nigdy nikomu nie podawać ani nie wysyłać hasła i nie trzymać go tam, gdzie mogą je zobaczyć inni.
Co z tego wynika
Na różne ataki pomagają różne zasady, a trzy z nich pomagają najbardziej: unikalne hasło do każdego konta, wygenerowane, a nie wymyślone, i do tego uwierzytelnianie dwuskładnikowe – albo klucz dostępu zamiast hasła, jeśli serwis go oferuje. Nie chronią one przed wszystkim – na przykład przed skradzioną sesją – dlatego ważne są też powyższe rady dotyczące złośliwego oprogramowania. Więcej artykułów znajdziesz w materiałach o hasłach.