İçeriğe geç

HKDF Anahtar Türetme

HMAC tabanlı Extract-and-Expand anahtar türetme fonksiyonu (TLS 1.3 / Signal).

RFC 5869

Parametreler: HKDF-SHA256 (RFC 5869). Girdiler UTF-8 metin olarak alınır.

Araç hakkında

HKDF ne işe yarar?

HKDF (RFC 5869), zaten yüksek entropili bir anahtar malzemesinden (ör. Diffie-Hellman ortak sırrı, ana anahtar) bir veya daha fazla bağımsız anahtar türetir. İki adımdan oluşur: extract adımı salt ile HMAC-SHA256 uygulayarak malzemeyi düzgün dağılımlı bir ara anahtara (PRK) çevirir; expand adımı bu ara anahtardan info bağlamına göre istenen uzunlukta çıktı üretir.

IKM: ikm   Salt: salt   Info: info
Çıktı (32 bayt): fe8f9615d2374c0d17f77d1aeaf408c2e75fe0466073d0def23c733e2f862dfd
Node.js crypto.hkdfSync('sha256', 'ikm', 'salt', 'info', 32) aynı sonucu verir.

Doğru kullanım

  • info ile aynı ana anahtardan farklı amaçlar için ayrı anahtarlar türetin (ör. "şifreleme" ve "imza"). Böylece bir anahtar sızarsa diğeri etkilenmez.
  • Salt gizli olmak zorunda değildir ama mümkünse rastgele olmalıdır. Boş bırakılırsa RFC gereği sıfırlardan oluşan bir salt kullanılır.
  • HKDF parolalar için değildir: düşük entropili girdiyi yavaşlatmaz. Paroladan anahtar türetmek için Argon2id veya PBKDF2 kullanın.

Bu araç tüm girdileri UTF-8 metin olarak alır. RFC 5869 test vektörleri hex bayt kullandığı için bu araçla doğrudan karşılaştırılamaz.

Kaynaklar