PBKDF2

Från Wiki.linux.se
Hoppa till navigering Hoppa till sök

PBKDF2 (Password-Based Key Derivation Function 2) är en kryptografisk funktion som används för att härleda säkra nycklar från lösenord. Den är en del av standarden PKCS#5 v2.0 och definieras i RFC 8018.

Historia

PBKDF2 utvecklades för att förbättra säkerheten i lösenordsbaserade system genom att göra det svårare för angripare att knäcka lösenord via brute-force- eller ordboksattacker. Genom att introducera flera iterationer och användning av saltvärden höjs beräkningskostnaden för varje gissning.

Funktionalitet

PBKDF2 fungerar genom att applicera en pseudorandom-funktion, såsom HMAC kombinerad med en hashfunktion (t.ex. SHA-256), på ett lösenord tillsammans med ett saltvärde. Processen upprepas ett antal gånger (iterationer) för att öka beräkningstiden:

K = PBKDF2(P, S, c, dkLen)

där:

  • K är den härledda nyckeln
  • P är lösenordet
  • S är saltet
  • c är antalet iterationer
  • dkLen är önskad längd på nyckeln

Användningsområden

  • Lösenordslagring: Skyddar lagrade lösenord genom att göra det svårt att invertera hashvärdena.
  • Nyckelgenerering: Skapar kryptografiska nycklar från lösenord för användning i krypteringsalgoritmer.
  • Skydd mot attacker: Förhindrar användning av rainbow tables och minskar effektiviteten av brute-force-attacker.

Säkerhetsöverväganden

  • **Saltvärden**: Varje lösenord bör kombineras med ett unikt salt för att förhindra att samma lösenord genererar samma hashvärde.
  • **Iterationer**: Ett högre antal iterationer ökar säkerheten men påverkar prestandan. Rekommendationen är att använda så många iterationer som systemet kan hantera utan att påverka användarupplevelsen negativt.
  • **Val av hashfunktion**: Använd en säker och modern hashfunktion för att undvika svagheter i äldre algoritmer.

Referenser

  • RFC 8018 - PKCS #5: Password-Based Cryptography Specification Version 2.1
  • NIST SP 800-132 - Recommendation for Password-Based Key Derivation