Anahtar Türetme nedir?
Anahtar türetme, bir kaynak değeri — genellikle bir parola, parola cümlesi veya paylaşılan gizli bilgi — yüksek entropili anahtar materyali üretmek üzere tasarlanmış belirleyici bir algoritma kullanarak bir veya daha fazla kriptografik anahtara dönüştürme işlemidir.
İnsan tarafından seçilen parolalar, kriptografik anahtar olarak doğası gereği zayıftır. Kısa, sınırlı karakter kümelerine sahip ve öngörülebilir kalıpları takip eden parolalar için bir anahtar türetme fonksiyonu (KDF), parolayı şifreleme için uygun sabit uzunluklu bir anahtar üreten hesaplama yoğun bir algoritma aracılığıyla işleyerek bu boşluğu kapatır.
Anahtar türetme fonksiyonları bilerek yavaş ve kaynak yoğun olacak şekilde tasarlanmıştır. Bu, hızın değer taşıdığı yazılımın çoğu alanı için alışılmadık bir durumdur; ancak KDF'ler için yavaşlık bir güvenlik özelliğidir. Bir parolayı kaba kuvvetle çözmeye çalışan saldırgan, her tahmin için KDF'yi çalıştırmak zorundadır. KDF her deneme için 100 milisaniye gerektiriyorsa, bir milyar parolayı denemek üç yılı aşkın bir süre alır; hızlı bir karma fonksiyonuyla aynı işlem saniyeler içinde tamamlanır.
Yaygın KDF'ler arasında PBKDF2, bcrypt, scrypt ve Argon2 yer alır. Her biri farklı saldırı stratejilerine karşı direnç sağlamak için farklı kaynakları (CPU süresi, bellek, paralellik) dengeler. KDF seçimi ortama bağlıdır: tarayıcı tabanlı uygulamalar genellikle Web Crypto API aracılığıyla kullanılabildiği için PBKDF2'yi tercih eder; sunucu tarafı uygulamalar ise bellek sertliği nedeniyle Argon2'yi tercih edebilir.
Vaulted Anahtar Türetme nasıl kullanır
Bir gizli bilgi için isteğe bağlı bir parola cümlesi belirlediğinde, Vaulted bu parola cümlesini bir sarmalama anahtarına dönüştürmek için anahtar türetme kullanır. Somut olarak, Web Crypto API aracılığıyla 100.000 iterasyon, SHA-256 ve rastgele 16 baytlık bir tuz ile PBKDF2 çalıştırır. Türetilen anahtar, orijinal AES-256-GCM şifreleme anahtarını sarmak (anahtar sarmalama) için AES-KW ile kullanılır. Alıcı, aynı sarmalama anahtarını türetmek, şifreleme anahtarını açmak ve gizli bilgiyi çözmek için aynı parola cümlesini girmek zorundadır.