Ugrás a tartalomhoz

key stretching

A Wikiszótárból, a nyitott szótárból


Főnév

key stretching (tsz. key stretchings)

  1. (informatika) Key stretching (kulcshosszabbítás) egy kriptográfiai technika, amelynek célja, hogy gyenge jelszavakból erősebb kriptográfiai kulcsot állítson elő — azaz lassítsa a brute-force és szótár-alapú jelszótörési támadásokat.



🔑 Miért van rá szükség?

A felhasználók gyakran rövid, kis entrópiájú jelszavakat választanak (pl. „password123”). Ezek nem megfelelőek titkosítási kulcsnak, mert könnyen feltörhetők.

Key stretching célja:

  • növelni a jelszóval kapcsolatos számítási költséget,
  • így megnehezíteni a támadónak, hogy rövid idő alatt sok próbálkozást végezzen.



⚙️ Hogyan működik?

A folyamat lényege, hogy egy jelszóból (P) és sóból (salt, S), többszöri ismétléssel egy hosszú, erős kulcsot generálunk.

Általános képlet:

ahol:

  • P = jelszó
  • S = só (véletlenszerű, a rainbow table ellen)
  • iterations = több ezer vagy millió iteráció (pl. 100 000)
  • K = kinyert kulcs, amit a titkosításhoz használnak



🔄 Főbb algoritmusok

Név Leírás
PBKDF2 Password-Based Key Derivation Function 2; RFC 8018
bcrypt Beépített salting, fix számú kör, lassított feldolgozás
scrypt Memóriaigényes is, nem csak CPU-igényes → ASIC/FPGA ellen hatékony
Argon2 Legmodernebb, memóriára és időre is paraméterezhető; 2015 Password Hashing Competition győztese



🔐 Példa: PBKDF2 (Python)

import hashlib
import os

password = b"my_weak_password"
salt = os.urandom(16)
key = hashlib.pbkdf2_hmac("sha256", password, salt, 100000)

🚫 Támadás elleni védelem

Támadás típusa Hogyan véd ellene a key stretching
Brute-force Lassítja minden próbálkozás számítását
Szótár-alapú A só miatt minden jelszóhoz más hash
Rainbow table A salt kizárja az előre generált táblák használatát



💡 Összefoglalás

Fogalom Magyarázat
Key stretching Gyenge jelszavakból erős kulcs készítése számításigényes művelettel
Célja Brute-force és szótáralapú támadások lassítása
Kulcselemek Só (salt), iterációs szám, KDF algoritmus
Használat Titkosítás, digitális aláírás, kulcsmenedzsment