Cryptology Academy · Lekcja

Dlaczego zwykły SHA-256 nie sprawdza się w przypadku haseł

Zrozumieć tablice tęczowe, szybkość ataków brute force i sól

Lekcja 1 z 413 kroki

Dlaczego zwykły SHA-256 nie sprawdza się w przypadku haseł to bezpłatna lekcja Cryptology Academy na CoddyKit. To lekcja 1 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.

Wprowadzenie

Bezpieczne przechowywanie haseł to jeden z najbardziej niezrozumianych tematów w bezpieczeństwie. W tej lekcji wyjaśnimy, dlaczego szybkie funkcje skrótu, takie jak SHA-256, są katastrofalnie złym wyborem do haseł.

Co się dzieje po wycieku baz danych

Do wycieków baz danych dochodzi nieustannie. W 2024 roku RockYou2024 ujawnił 10 miliardów haseł. Jeśli hasła użytkowników są przechowywane w sposób umożliwiający ich odzyskanie, napastnicy je odzyskają.

Naiwne przechowywanie z użyciem SHA-256

Zły wzorzec: hashed = sha256(password) store(username, hashed) Problemy: (1) sha256 działa błyskawicznie, (2) to samo hasło → ten sam skrót (brak soli), (3) dla popularnych haseł istnieją tablice tęczowe.

Atak z użyciem tablicy tęczowej

Tablica tęczowa to wstępnie obliczone odwzorowanie skrótu na hasło dla milionów popularnych haseł. SHA-256('password') zawsze daje ten sam skrót. Wyszukanie w tablicy: natychmiastowe odszyfrowanie większości haseł.

Rola soli

Sól = losowe bajty dołączane przed hasłem przed wykonaniem haszowania. hash = sha256(salt + password) Każdy użytkownik otrzymuje unikalną sól. Tablice tęczowe stają się bezużyteczne — napastnik musi przeprowadzić brute force osobno dla każdego użytkownika.

Sama sól nie wystarcza

Nowoczesny procesor GPU oblicza 10 MILIARDÓW skrótów SHA-256 na sekundę. Nawet przy unikalnych solach napastnik dysponujący wyciekłymi skrótami może złamać 8-znakowe hasła w ciągu kilku minut.

Problem szybkości

SHA-256 zaprojektowano z myślą o szybkości — do sprawdzania integralności plików, TLS itd. Szybkość jest wrogiem podczas haszowania haseł. Potrzebujemy celowo powolnych algorytmów odpornych na brute force.

Rozciąganie klucza

Rozciąganie klucza polega na wielokrotnym wykonywaniu funkcji skrótu, tysiące razy: for i in range(100000): h = sha256(h). Spowalnia to zarówno napastnika, jak i obrońcę — przewaga sprzętowa nadal jednak działa na korzyść napastnika.

Funkcje wymagające dużej ilości pamięci

Nowoczesne funkcje haszujące hasła wymagają dużej ilości pamięci RAM, a nie tylko cykli procesora. Procesory GPU mają ograniczoną ilość pamięci RAM przypadającą na rdzeń w porównaniu z procesorami CPU. Wymagania pamięciowe Argon2 neutralizują przewagę GPU i ASIC.

Typowe błędy

Czego nie robić: - sha256(password) - sha256(salt + password) without iteration - md5(password) (or any MD5) - Encrypting passwords (can be decrypted) - sha256(sha256(password)) (still fast)

Czego używać zamiast tego

Należy używać: bcrypt (najpowszechniej wdrażany), Argon2id (zalecany przez OWASP, wymagający dużej ilości pamięci), PBKDF2-SHA256 (zgodny z FIPS, akceptowalny). Wszystkie trzy rozwiązania są celowo powolne i z założenia używają soli.

Szybki test

Dlaczego SHA-256 nie nadaje się do haszowania haseł nawet przy użyciu soli?

Podsumowanie

SHA-256 nie nadaje się do haseł. Następnie omówimy bcrypt — algorytm, który celowo spowalnia haszowanie i jest odporny na przewagę sprzętową.
Bezpłatny start

Ucz się Cryptology Academy dzięki korepetycjom AI — za darmo

Pisz i uruchamiaj kod w przeglądarce, otrzymuj natychmiastową pomoc od korepetytora AI dostępnego 24/7 i kontynuuj naukę w sieci lub w aplikacji.

Kursy
67
Lekcje
261

Często zadawane pytania

Czy lekcja „Dlaczego zwykły SHA-256 nie sprawdza się w przypadku haseł” jest bezpłatna?

Tak — pełny tekst „Dlaczego zwykły SHA-256 nie sprawdza się w przypadku haseł” 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 „Dlaczego zwykły SHA-256 nie sprawdza się w przypadku haseł”?

Zrozumieć tablice tęczowe, szybkość ataków brute force i sól Ć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 1 z 4.

Ile czasu zajmuje lekcja „Dlaczego zwykły SHA-256 nie sprawdza się w przypadku haseł”?

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

  1. Dlaczego zwykły SHA-256 nie sprawdza się w przypadku haseł
  2. bcrypt: algorytm i współczynnik kosztu
  3. Argon2: haszowanie haseł wymagające dużej ilości pamięci
  4. PBKDF2 i wybór właściwego algorytmu
← Powrót do Cryptology Academy