Ataki słownikowe i tęczowe tablice
Zobaczą Państwo, jak wstępnie obliczone tablice haszy umożliwiają szybkie łamanie haseł oraz jak sól kryptograficzna im przeciwdziała.
Ataki słownikowe i tęczowe tablice to bezpłatna lekcja Cryptology Academy na CoddyKit. To lekcja 2 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Cryptology Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Cryptology Academy zawiera 4 lekcji w sumie.
Ataki słownikowe: łamanie na podstawie list słów
Atak słownikowy nie testuje każdej możliwej kombinacji; zamiast tego sprawdza starannie dobraną listę prawdopodobnych haseł. Użytkownicy wybierają hasła z ograniczonego zasobu słów: popularnych wyrazów, imion, dat i fraz. Testowanie listy zawierającej milion prawdopodobnych haseł jest o wiele szybsze niż sprawdzenie wszystkich 8-znakowych ciągów (200 bilionów kombinacji). Ataki słownikowe odnoszą sukces, ponieważ wybory ludzi dotyczące haseł są przewidywalne.
rockyou.txt: zbiór danych z wycieku haseł
W 2009 roku serwis społecznościowy RockYou padł ofiarą wycieku, w wyniku którego ujawniono 32 miliony haseł użytkowników w postaci jawnego tekstu. Powstała lista, obecnie nazywana rockyou.txt, zawiera około 14 milionów unikalnych haseł i jest standardową pierwszą listą słów używaną przy łamaniu haseł. Analiza rockyou.txt pokazuje, że najczęstsze hasła to 123456, password oraz warianty imion zakończone cyframi.
Ataki hybrydowe: łączenie słowników i reguł
Atak hybrydowy rozszerza bazową listę słów, stosując reguły transformacji. Słowo takie jak password może zostać przekształcone w Password, P@ssword, p4ssword, password1, password123 i setki innych wariantów. Silnik reguł Hashcat pozwala dokładnie określić, jakie transformacje należy zastosować: zamienić pierwszą literę na wielką, dodać dwie cyfry, zastąpić litery symbolami. Znacznie zwiększa to zakres testowanych haseł bez sprawdzania naprawdę losowych ciągów.
Ataki oparte na regułach i leet speak
Podstawienia w leet speak (zastępowanie liter cyframi: e=3, a=4, i=1, o=0, s=5) były niegdyś uznawane za sposób na zwiększenie bezpieczeństwa haseł. Narzędzia do łamania oparte na regułach uwzględniają te podstawienia jako standardowe transformacje. Hasło takie jak s3cur1ty można trywialnie złamać, zaczynając od słowa security i stosując regułę podstawień leet. Narzędzia do łamania próbują również typowych wzorców: dodają !, 123 lub bieżący rok do dowolnego słowa ze słownika.
Tablice tęczowe: wstępnie obliczone łańcuchy hashy
Tablica tęczowa to duża, wstępnie obliczona baza danych, która mapuje wartości hashy na oryginalne hasła. Zamiast haszować kandydata i porównywać wynik, atakujący wyszukuje hash w tabeli. Zbudowanie tabeli wymaga ogromnej ilości czasu i miejsca na dane, ale każde wyszukanie trwa natychmiast. Tablice tęczowe dla MD5 wszystkich 8-znakowych haseł alfanumerycznych mogą zmieścić się w kilku terabajtach i złamać każde pasujące hasło w ciągu milisekund.
Kompromis czasu i pamięci w tablicach tęczowych
Tablice tęczowe są przykładem kompromisu czasu i pamięci: czas poświęcony na jednorazowe obliczenie tabeli pozwala później wykorzystać pamięć do szybkiego wyszukiwania. Tabela przechowuje łańcuchy hashy: każdy łańcuch zaczyna się od zgadniętej wartości, następnie jest ona haszowana, a funkcja redukcji generuje kolejną wartość i proces jest powtarzany. Przechowywanie wyłącznie końców łańcuchów pozwala odzyskać hasła z hashy dzięki procesowi rekonstrukcji łańcucha, który równoważy ilość zajmowanego miejsca i wymagane obliczenia.
Solenie niweczy tablice tęczowe
Sól to losowa wartość dołączana do hasła przed haszowaniem. Ponieważ sól jest unikalna dla każdego użytkownika, dwóch użytkowników z tym samym hasłem otrzyma różne wartości hashy. Oznacza to, że atakujący nie może wstępnie obliczyć tablicy tęczowej dla hasła z solą; musiałby zbudować osobną tabelę dla każdej możliwej wartości soli, co jest niewykonalne obliczeniowo. Solenie jest obowiązkowe w każdym bezpiecznym systemie przechowywania haseł.
Niesolone MD5: natychmiastowe złamanie
Wiele wczesnych aplikacji internetowych przechowywało hasła jako niesolone hashe MD5. MD5 ciągu password to 5f4dcc3b5aa765d61d8327deb882cf99, czyli stała wartość. Każdy, kto wcześniej widział ten hash lub wyszuka go w wstępnie obliczonej bazie danych, natychmiast zna hasło. Serwisy takie jak CrackStation przechowują miliardy wstępnie obliczonych hashy MD5 i SHA-1. Niesolone popularne hasła łamie się w mniej niż sekundę.
Have I Been Pwned
Have I Been Pwned (HIBP), utworzona przez badacza bezpieczeństwa Troya Hunta, agreguje hashe haseł pochodzące z dużych wycieków danych. Użytkownicy mogą sprawdzić, czy ich adres e-mail lub hasło pojawiły się w wycieku. Deweloperzy mogą korzystać z API HIBP, aby sprawdzać kandydujące hasła względem 850 milionów hashy pochodzących z wycieków, korzystając z modelu k-anonimizacji: do API wysyłanych jest pierwszych 5 znaków szesnastkowych hasha SHA-1, a API zwraca pasujące sufiksy, nie ujawniając serwerowi pełnego hasha.
Credential stuffing z użyciem wyciekłych list haseł
Ataki typu credential stuffing wykorzystują pary nazwa użytkownika–hasło pochodzące z jednego wycieku i testują je w innych usługach. Ponieważ wielu użytkowników ponownie używa haseł w różnych serwisach, wyciek z serwisu o niskim poziomie bezpieczeństwa może dostarczyć działające dane uwierzytelniające do celów o wysokiej wartości, takich jak bankowość i poczta elektroniczna. Automatyczne narzędzia wysyłają tysiące prób logowania na sekundę do wielu usług. Ograniczanie liczby żądań i uwierzytelnianie wieloskładnikowe to główne zabezpieczenia przed credential stuffingiem.
Ochrona: solone haszowanie adaptacyjne
Bezpieczne przechowywanie haseł łączy solenie z powolną, adaptacyjną funkcją hashującą. bcrypt, Argon2 i scrypt zaprojektowano tak, aby były kosztowne obliczeniowo i wymagały milisekund na obliczenie jednego hasha zamiast mikrosekund. Ogranicza to przepustowość atakującego z miliardów prób na sekundę do tysięcy. Parametr kosztu można zwiększać w miarę wzrostu szybkości sprzętu, utrzymując stały wymagany nakład pracy. Algorytmy te są obecnym standardem przechowywania haseł.
Solenie a tablice tęczowe
Dlaczego dodanie unikalnej losowej soli do każdego hasła przed haszowaniem uniemożliwia ataki z użyciem wstępnie obliczonych tablic tęczowych?
Ataki słownikowe i tablice tęczowe: najważniejsze wnioski
Ataki słownikowe testują prawdopodobne hasła, a nie wszystkie kombinacje. rockyou.txt zawiera 14 milionów przykładów pochodzących z rzeczywistego świata. Ataki hybrydowe i oparte na regułach rozszerzają listy słów o transformacje. Tablice tęczowe zapewniają natychmiastowe wyszukiwanie dla niesolonych hashy. Solenie niweczy tablice tęczowe, ponieważ sprawia, że każdy hash jest unikalny. HIBP sprawdza, czy hasła pojawiają się w znanych wyciekach. Adaptacyjne funkcje hashujące, takie jak bcrypt i Argon2, są wymagane do bezpiecznego przechowywania.
Często zadawane pytania
Czy lekcja „Ataki słownikowe i tęczowe tablice” jest bezpłatna?
Tak — pełny tekst „Ataki słownikowe i tęczowe tablice” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Cryptology Academy, przejdź na CoddyKit PRO. Kurs Cryptology Academy zawiera 4 lekcji w sumie.
Co nauczysz się w „Ataki słownikowe i tęczowe tablice”?
Zobaczą Państwo, jak wstępnie obliczone tablice haszy umożliwiają szybkie łamanie haseł oraz jak sól kryptograficzna im przeciwdziała. Ćwiczysz Cryptology Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.
Czy potrzebuję doświadczenia, aby zacząć Cryptology Academy?
Nie wymagamy żadnego doświadczenia. Cryptology Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 2 z 4.
Ile czasu zajmuje lekcja „Ataki słownikowe i tęczowe tablice”?
Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.
Czy mogę pisać i uruchamiać kod w tej lekcji Cryptology Academy?
Tak. Każda lekcja Cryptology Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.
Wszystkie lekcje w tym kursie
- Jak działają ataki brute force
- Ataki słownikowe i tęczowe tablice
- Dlaczego długość klucza kryptograficznego ma znaczenie
- Ograniczanie częstotliwości i blokowanie kont