Przetestowałem swoje hasła: Oto, czego dowiedziałem się o ich bezpieczeństwie

Hasła to pierwsza linia obrony Twoich kont cyfrowych, ale czy zastanawiałeś się kiedyś, jak łatwo je złamać? Tworzenie silnych, unikalnych haseł to nie tylko chwilowa rekomendacja; to podstawa bezpieczeństwa Twoich danych.

Aby upewnić się co do skuteczności moich haseł, postanowiłem spróbować je złamać za pomocą narzędzia open source. Przetestowałem trzy różne hasła, aby zrozumieć, jak działają typowe ataki i odkryć, jakie czynniki sprawiają, że hasło jest bardziej bezpieczne przed hakerami.

W tym artykule dzielę się swoimi wnioskami i praktycznymi wskazówkami, jak poprawić bezpieczeństwo haseł i zadbać o bezpieczeństwo swoich danych.

Przetestowałem swoje hasła: Oto, czego dowiedziałem się o ich bezpieczeństwie

Co oznacza złamanie hasła?

Co oznacza złamanie hasła?

Kiedy tworzysz konto w usłudze online, dostawca zazwyczaj (i miejmy nadzieję, że tak będzie) szyfruje Twoje dane logowania na swoim serwerze. Odbywa się to za pomocą algorytmu generującegopodział”, czyli losowy ciąg liter i cyfr, unikalny dla Twojego hasła. Oczywiście, nie jest on w rzeczywistości losowy – to bardzo specyficzny ciąg znaków, który może wygenerować tylko używane przez Ciebie hasło – ale dla niewprawnego oka wygląda to jak bałagan.

Konwersja słowa na hash jest znacznie szybsza i łatwiejsza niż „dekodowanie” hasha z powrotem na słowo. Dlatego po ustawieniu hasła usługa, do której jesteś zalogowany, przeprowadza je przez proces hashowania, a następnie zapisuje wynik na swoim serwerze.

Jeśli wskazany plik z hasłami wycieknie, hakerzy podejmą próbę odszyfrowania jego zawartości za pomocą łamania haseł. Ponieważ szyfrowanie haseł jest szybsze niż ich odszyfrowywanie, hakerzy stworzą system, który przyjmuje potencjalne hasła jako dane wejściowe, szyfruje je tą samą metodą, co serwer, a następnie porównuje wynik z bazą danych haseł.

Jeśli wartość skrótu potencjalnego hasła pasuje do jakichkolwiek wpisów w bazie danych, haker wie, że każdy wynik jest zgodny Możliwe hasło To już zostało wypróbowane.

Jak zhakowałem swoje hasła za pomocą HashCat

Dobrze, zacznijmy łamać niektóre z haseł, które utworzyłeś, żeby zobaczyć, jak łatwo to zrobić. W tym celu użyję haszyszJest to darmowa i otwartoźródłowa aplikacja do łamania haseł, dostępna dla każdego.

W tych testach złamię następujące hasła:

  1. 123456Klasyczne hasło i koszmar cyberbezpieczeństwa: 123456 to najpopularniejsze hasło na świecie. North Pass 3 miliony kont korzystało ze 123456 1.2 haseł, z czego XNUMX miliona służyło do ochrony kont korporacyjnych.
  2. Susan48!Hasło zgodne ze wzorcami używanymi przez większość użytkowników do tworzenia bezpiecznych haseł. Takie hasło zazwyczaj spełnia podstawowe wymagania dotyczące higieny haseł, ale jak omówimy później, zawiera pewne krytyczne luki w zabezpieczeniach, które mogą zostać wykorzystane.
  3. t9^kJ$2q9a:Hasło utworzone za pomocą Generator BitwardenJest on ustawiony na generowanie hasła składającego się z 10 znaków, wykorzystujących wielkie i małe litery, symbole i cyfry.

Skoro mamy już hasła, zaszyfrowałem je algorytmem MD5. Tak wyglądałyby hasła, gdyby znajdowały się w pliku haseł przechowywanym na serwerze:

  1. 123456: e10adc3949ba59abbe56e057f20f883e
  2. Susan48!: df1ce7227606805745ee6cbc644ecbe4
  3. t9^kJ$2q9a: 450e4e0ad3ed8766cb2ba83081c0a625

Czas to teraz dokładniej przeanalizować.

Wykonywanie prostego złamania kodu za pomocą ataku słownikowego

Wykonywanie prostego złamania kodu za pomocą ataku słownikowego

No to zaczynajmy, zróbmy to. atak słownikowyTo jedna z najczęstszych metod ataków na hasła. To prosty atak, w którym tworzę listę potencjalnych haseł, proszę Hashcata o konwersję ich na MD5 i sprawdzam, czy któreś z nich pasuje do trzech powyższych wpisów. W tym eksperymencie używam pliku „rockyou.txt” jako słownika, który był jednym z największych wycieków haseł w historii.

Aby rozpocząć proces hakowania, przechodzę do folderu, w którym znajduje się Hashcat, klikam prawym przyciskiem myszy puste miejsce, a następnie klikam „Otwórz w terminalu”. Teraz, gdy terminal jest otwarty i ustawiony na katalog Hashcat, uruchamiam aplikację Hashcat za pomocą następującego polecenia:

.hashcat -m 0 -a0 plik z hasłemtxt rockyoutxt -o wynikówtxt

Oto co robi:

  1. .hashcat Hashcat dzwoni.
  2. -m 0:Określa szyfrowanie, którego będziemy używać. W tym przypadku użyjemy MD5, który jest oznaczony jako 0 w dokumencie pomocy Hashcat.
  3. i 0: Określa atak, który chcemy przeprowadzić. Dokumentacja Hashcata podaje atak słownikowy jako 0, więc wywołujemy go tutaj.
  4. plik_hasła.txt rockyou.txtPierwszy plik zawiera trzy zaszyfrowane hasła, które utworzyliśmy wcześniej. Drugi plik to cała baza haseł Rockyou.
  5. -o wyniki.txtTa zmienna określa, gdzie umieszczamy wynik. W poleceniu, które uruchomiłem, zapisane hasła są umieszczane w pliku TXT o nazwie „results”.

Pomimo ogromnego rozmiaru pliku rockyou, Hashcat przeskanował całą zawartość w sześć sekund. W pliku z wynikami Hashcat zgłosił złamanie hasła 123456, ale hasła Susan i Bitwarden pozostały niezhakowane. Wynika to z faktu, że hasło 123456 zostało użyte przez kogoś innego w pliku rockyou.txt, ale hasła Susan i Bitwarden nie były używane przez nikogo innego, co oznacza, że były na tyle unikalne, że pozostały odporne na ten atak.

Przeprowadzaj bardziej złożone hakowanie, stosując ataki siłowe i maski.

Przeprowadzaj bardziej złożone hakowanie, stosując ataki siłowe i maski.

Ataki słownikowe działają, gdy ktoś używa tego samego hasła z większej listy haseł. Są szybkie i łatwe do wykonania, ale nie mogą… Hakowanie haseł nie znaleziono w słowniku. Dlatego jeśli naprawdę chcemy przetestować nasze hasła, musimy użyć ataki siłowe.

Podczas gdy ataki słownikowe polegają na przekształcaniu predefiniowanej listy jeden po drugim, ataki siłowe robią to samo, ale z każdą możliwą kombinacją. Są trudniejsze w implementacji i zajmują więcej czasu, ale ostatecznie złamią każde hasło. Jak wkrótce zobaczymy, ta możliwość może czasami zająć bardzo dużo czasu.

Oto polecenie, którego użyłem do przeprowadzenia „prawdziwego” ataku siłowego:

.hashcat -m 0 -a3 celtxt--przyrost ?a?a?a?a?a?a?a?a?a?a -o wyjścietxt

Oto co robi to polecenie:

  • -3Ta zmienna określa atak, który chcemy przeprowadzić. Dokumentacja Hashcata wymienia ataki siłowe jako 3, dlatego nazywamy je tutaj.
  • cel.txt:Plik zawierający zaszyfrowane hasło, które chcemy złamać.
  • - przyrostNastępnie Hashcat będzie próbował sprawdzać wszystkie hasła składające się z jednego znaku, następnie z dwóch znaków, potem z trzech znaków i tak dalej, aż do znalezienia rozwiązania.
  • ?a?a?a?a?a?a?a?aNazywa się to „maską”. Maski pozwalają nam wskazać Hashcatowi, gdzie mają się znaleźć poszczególne znaki. Każdy znak zapytania reprezentuje pozycję znaku w haśle, a znak określa, co chcemy zrobić na każdej pozycji. Litera „a” reprezentuje wielkie i małe litery, cyfry i symbole, więc ta maska mówi: „Wypróbuj wszystko w każdym polu”. To okropna maska, ale później ją dobrze wykorzystamy.
  • -o wyjście.txt: Ta zmienna określa, gdzie umieścimy wynik. Moje polecenie umieszcza złamane hasła w pliku TXT o nazwie „output”.

Nawet z tą okropną maską, hasło 123456 zostało złamane w ciągu 15 sekund. Chociaż jest to najpopularniejsze hasło, jest również jednym z najsłabszych.

Hasło „Susan48!” było o wiele lepsze – mój komputer wskazywał, że złamanie go na ślepo zajmie cztery dni. Był jednak jeden problem. Pamiętacie, jak mówiłem, że hasło Susan ma kilka krytycznych wad? Największym z nich było to, że hasło zostało zaprojektowane tak, aby było przewidywalne.

Tworząc hasło, zazwyczaj umieszczamy określone elementy w określonych miejscach. Można sobie wyobrazić, że osobą tworzącą hasło była Susan. Początkowo próbowała użyć słowa „susan”, ale poproszono ją o dodanie wielkich liter i cyfr. Aby ułatwić jej zapamiętanie, zaczęła wielką literą i dodała cyfry na końcu. Następnie usługa logowania mogła poprosić o kod, więc nasz generator haseł wkleił go na końcu.

Dlatego możemy użyć maski, aby polecić Hashcatowi wypróbowywanie tylko określonych znaków w określonych miejscach, aby wykorzystać przewidywalność użytkowników podczas tworzenia haseł. W tej masce „?u” będzie używać tylko wielkich liter w tym miejscu, „?l” będzie używać tylko małych liter, a „?a” będzie reprezentować dowolną literę:

.hashcat -m 0 -a3 -1 ?a celtxt ?u?l?l?l?l?a?a?a -o wyjścietxt

Dzięki tej masce Hashcat łamie hasło w ciągu trzech minut i dziesięciu sekund, czyli znacznie szybciej niż cztery dni.

Hasło wygenerowane przez Bitwarden ma dziesięć znaków i nie opiera się na żadnych przewidywalnych wzorcach, więc musiałem przeprowadzić atak siłowy bez maski, aby je złamać. Niestety, kiedy poprosiłem Hashcata o to, zwrócił błąd, informując, że liczba możliwych kombinacji przekracza limit liczb całkowitych. Guru bezpieczeństwa IT Złamanie hasła Bitwarden zajęłoby trzy lata, więc to mi wystarczy.

Jak chronić swoje konta przed hakowaniem haseł

Czego zatem możemy się z tego wszystkiego nauczyć? Głównymi czynnikami, które uniemożliwiły mi złamanie hasła Bitwarden, były jego długość (10 znaków) i nieprzewidywalność. Dlatego tworząc hasła, staraj się, aby były jak najdłuższe i zawierały symbole, cyfry i wielkie litery. Zapobiega to hakerom w używaniu masek do przewidywania położenia każdego elementu i znacznie utrudnia złamanie hasła.

Być może znasz już stare powiedzenia dotyczące haseł, takie jak „używaj kombinacji znaków” i „rób tak długie, jak to możliwe”. Mam nadzieję, że rozumiesz, dlaczego ludzie polecają te pomocne wskazówki – oznaczają one różnicę między szybko złamanym hasłem a hasłem bezpiecznym. Możesz już sprawdzić Jak te proste zmiany sprawiły, że moje hasła stały się bezpieczniejsze i łatwiejsze do zapamiętania.

Idź do góry przycisk