0Pricing
Cryptology Academy · Lekcja

PBKDF2 i wybór właściwego algorytmu

Porównać PBKDF2 z bcrypt i Argon2 oraz wybrać najlepsze rozwiązanie dla aplikacji

PBKDF2 i wybór właściwego algorytmu to bezpłatna lekcja Cryptology Academy na CoddyKit. To lekcja 4 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

W tej ostatniej lekcji dla początkujących omówimy PBKDF2, porównamy go z bcrypt i Argon2 oraz opracujemy schemat decyzyjny wyboru właściwego algorytmu haszowania haseł.

Omówienie PBKDF2

PBKDF2 (Password-Based Key Derivation Function 2) opublikowano w dokumencie RFC 2898 (2000). Algorytm wielokrotnie stosuje funkcję pseudolosową (zwykle HMAC-SHA256) do hasła i soli.

Wzór PBKDF2

PBKDF2(PRF, password, salt, iterations, keylen) Przykład: key = PBKDF2-HMAC-SHA256(password, salt, 600000, 32) OWASP zaleca 600 000 iteracji z SHA-256 (stan na 2023 rok).

PBKDF2 w Pythonie

import hashlib, os salt = os.urandom(16) key = hashlib.pbkdf2_hmac( 'sha256', password.encode(), salt, 600000, dklen=32 ) # Or using cryptography library: from cryptography.hazmat.primitives.kdf.pbkdf2 import PBKDF2HMAC

Zalety PBKDF2

Zgodność z FIPS 140-2/3. Wbudowany w standardowe biblioteki języków Python, Java i .NET. Szeroko stosowany w środowiskach korporacyjnych i rządowych. Łatwy do poprawnego zaimplementowania.

Wady PBKDF2

Nie wymaga dużej ilości pamięci. Przyjazny dla GPU: miliardy iteracji SHA-256 na sekundę. Przy 600 tys. iteracji GPU nadal osiąga około 1 mln haseł na sekundę. bcrypt, a zwłaszcza Argon2, znacznie utrudniają ataki brute force.

Tabela porównawcza algorytmów

Algorytm | Wymaga dużej ilości pamięci | FIPS | Szybkość (GPU) | Zalecenie bcrypt | Nie | Nie | 50 tys./s | Akceptowalny PBKDF2 | Nie | Tak | 1 mln/s | Środowiska regulowane Argon2id | Tak | Nie | 100/s | Najlepszy wybór

Schemat decyzyjny

Używaj Argon2id: w nowych aplikacjach bez wymagań dotyczących zgodności. Używaj bcrypt: gdy Argon2 jest niedostępny lub w starszych systemach. Używaj PBKDF2-SHA256: gdy wymagana jest zgodność z FIPS lub regulacjami rządowymi. Nigdy nie używaj: MD5, SHA-1, SHA-256 bez iteracji ani czegokolwiek bez soli.

Uwagi dotyczące zgodności

PCI-DSS: nie określa algorytmu, ale wymaga „silnego” haszowania. bcrypt i Argon2 spełniają ten wymóg. NIST SP 800-132: zatwierdza PBKDF2. Niektóre rygorystyczne systemy FedRAMP wymagają PBKDF2 z funkcją PRF zatwierdzoną przez FIPS.

Ewolucja liczby iteracji

Liczba iteracji OWASP dla PBKDF2-SHA256: 2010: 1000, 2016: 100000, 2023: 600000. Sprzęt staje się coraz szybszy — co 2 lata sprawdzaj wartości i je zwiększaj. Koszt bcrypt: 2010: 10, 2023: 12, docelowo w 2025: 13.

Bezpieczny przebieg resetowania hasła

1. Wygeneruj kryptograficznie losowy token: secrets.token_urlsafe(32) 2. Oblicz jego hash za pomocą SHA-256 (nie bcrypt — hash służy tylko do przechowywania) 3. Zapisz hash i wyślij token w wiadomości e-mail 4. Podczas resetowania: oblicz hash przesłanego tokena, porównaj go i natychmiast unieważnij token po użyciu

Szybkie sprawdzenie

W jakim środowisku PBKDF2 jest preferowany względem Argon2id, mimo że zapewnia mniejszą odporność na ataki z użyciem GPU?

Podsumowanie

Ukończyłeś ścieżkę Kryptologia dla początkujących! Rozumiesz hashe, szyfrowanie symetryczne i asymetryczne, podpisy, PKI oraz haszowanie haseł. Następny poziom: tematy dla średnio zaawansowanych — tryby szyfrów blokowych, szyfry strumieniowe i wymiana kluczy.

Często zadawane pytania

Czy lekcja „PBKDF2 i wybór właściwego algorytmu” jest bezpłatna?

Tak — pełny tekst „PBKDF2 i wybór właściwego algorytmu” 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 „PBKDF2 i wybór właściwego algorytmu”?

Porównać PBKDF2 z bcrypt i Argon2 oraz wybrać najlepsze rozwiązanie dla aplikacji Ć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 4 z 4.

Ile czasu zajmuje lekcja „PBKDF2 i wybór właściwego algorytmu”?

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