Anahtar Türetme İşlevleri: PBKDF2, bcrypt ve Argon2
Parola özetleme algoritmalarını GPU ve ASIC saldırılarına karşı dayanıklılıkları bakımından karşılaştırın; iş faktörlerinin ve bellek zorluğunun nasıl ayarlandığını öğrenin.
Anahtar Türetme İşlevleri: PBKDF2, bcrypt ve Argon2, CoddyKit'te ücretsiz bir Cloud & IT Cert Prep dersidir. Bu, 4 dersinin 3. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Cloud & IT Cert Prep öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Cloud & IT Cert Prep kursu toplamda 4 dersten oluşur.
Parola Özütlemenin Farklı Olmasının Nedeni
Parolaları depolamak, parola özütleme işlevi (PHF) veya anahtar türetme işlevi (KDF) adı verilen özel bir kriptografik işlev sınıfı gerektirir. SHA-256 gibi normal kriptografik özetler hızlı olacak şekilde tasarlanmıştır; modern bir GPU saniyede milyarlarca SHA-256 özeti hesaplayabilir. Bu hız, parola depolama açısından felaket niteliğindedir: bir özet veritabanını ele geçiren saldırgan saniyede milyarlarca tahmin deneyebilir. Parola KDF'leri kasıtlı olarak yavaştır; meşru oturum açmaya milisaniyeler içinde izin verirken kaba kuvvet saldırılarını hesaplama açısından uygulanamaz hâle getirecek şekilde ayarlanabilir.
Giz Tuzu Kullanımı: Gökkuşağı Tablolarını Etkisiz Kılma
Özel parola KDF'leri ortaya çıkmadan önce saldırganlar, özet değerlerinden düz metin parolalara önceden hesaplanmış eşlemeler içeren gökkuşağı tablolarını kullanıyordu. Salt, özetleme işleminden önce parolanın başına veya sonuna eklenen ve kullanıcı başına benzersiz olan rastgele bir değerdir; aynı parolalar için bile her özetin benzersiz olmasını sağlar. Salt'lar veritabanında özetle birlikte saklanır; gizli değildir, yalnızca rastgele olmalıdır. Uygun bir salt en az 16 bayt uzunluğunda olmalı, kriptografik açıdan güvenli bir rastgele sayı üreteciyle oluşturulmalı ve kullanıcı başına saklanmalıdır (hesaplar arasında hiçbir zaman yeniden kullanılmamalıdır).
PBKDF2: Parola Standardı
PBKDF2 (Password-Based Key Derivation Function 2), RFC 8018'de tanımlanmış ve NIST tarafından onaylanmıştır. Yapılandırılabilir sayıda Iterations boyunca parolaya ve salt'a (genellikle HMAC-SHA-256 kullanarak) bir HMAC işlevini art arda uygulayarak çalışır. Iterations sayısı iş yükü katsayısıdır; NIST, 2023 itibarıyla PBKDF2-HMAC-SHA256 için en az 600.000 Iterations önerir. PBKDF2 yaygın olarak kullanılır (Django, iOS Keychain, WPA2-PSK); ancak bir zayıflığı vardır: GPU'larda verimli şekilde uygulanabilir ve bu nedenle alternatiflere kıyasla GPU saldırılarına daha az dirençlidir.
# PBKDF2 example (Python pseudocode concept)
# import hashlib
# dk = hashlib.pbkdf2_hmac(
# 'sha256', # hash algorithm
# b'password', # password bytes
# b'random_salt', # salt bytes
# 600000 # iterations
# )bcrypt: Bellek ve CPU Zorluğu
bcrypt, 1999'da Niels Provos ve David Mazieres tarafından tasarlanmış ve günümüzde de yaygın olarak kullanılmaktadır. Temel yeniliği, her artışta hesaplama süresini iki katına çıkaran bir Cost factor (rounds parametresi) kullanmasıdır. bcrypt, Eksblowfish key setup adı verilen ve hem CPU hem de bellek açısından yoğun olan bir kurulum işlemesine sahip, değiştirilmiş bir Blowfish şifresi kullanır; bu da PBKDF2'ye kıyasla GPU'larda hızlandırılmasını önemli ölçüde zorlaştırır. bcrypt ayrıca parola girdisini 72 baytla sınırlar (daha uzun parolalar kesilir); bu nedenle bazı uygulamalarda uzun parolaların önce SHA-256 ile özetlenmesi gerekir.
# bcrypt cost factor
# Cost 10 = ~100ms on modern hardware
# Cost 12 = ~400ms
# Cost 14 = ~1600ms
# Each +1 doubles the work
# Recommended: cost 12-14 for web apps
# Command: htpasswd -bnBC 12 username passwordArgon2: Modern Birincil Seçenek
Argon2, 2015'te Password Hashing Competition'ı kazandı ve günümüzde OWASP tarafından önerilmektedir. Üç çeşidi vardır: Argon2d (daha hızlıdır, yan kanal saldırılarına açıktır ve en iyi kullanım alanı kripto para birimleridir), Argon2i (sabit sürelidir ve parola özetleme için en uygunudur) ve Argon2id (hibrittir ve çoğu kullanım için Recommended seçenektir). Argon2id üç boyutta yapılandırılabilir: time cost (Iterations), memory cost (gereken RAM) ve Parallelism (iş parçacıkları). Yüksek bellek gereksinimleri, GPU'larda paralelleştirmeyi son derece zorlaştırır ve ASIC'lerde tamamen uygulanamaz hâle getirir.
# Argon2id recommended parameters (OWASP 2023)
# Memory: 64MB (65536 KiB)
# Iterations: 3
# Parallelism: 4 threads
# Output length: 32 bytes
# argon2 -id -t 3 -m 16 -p 4 -l 32Bellek Zorluğu: GPU Saldırılarını Neden Engeller?
GPU'larda binlerce çekirdek bulunur, ancak çekirdek başına bellek sınırlıdır; basit ve az bellek kullanan hesaplamaları paralelleştirmede başarılıdırlar. Argon2 ve scrypt gibi bellek-zor işlevler, her özet hesaplaması için yüksek miktarda RAM gerektirir. Saldırganın her biri 64 MB bellek gerektiren 10.000 paralel Argon2id hesaplaması çalıştırmak istediğini düşünün; bunun için 640 GB GPU RAM'i gerekir ve bu miktar herhangi bir GPU kümesinin sağlayabileceğinin çok üzerindedir. Bellek zorluğu adı verilen bu özellik, saldırganları ya yavaş ve sıralı hesaplamalar kullanmaya ya da saldırıları ekonomik olmaktan çıkaran olağanüstü donanım maliyetlerini üstlenmeye zorlar.
Uygulamada İş Yükü Katsayısını Ayarlama
Uygun iş yükü katsayısı donanımınıza ve kabul edilebilir gecikmeye bağlıdır. Genel hedef, her kimlik doğrulama için sunucunun üretim donanımında 100-300 ms değerine ulaşmaktır. Donanım geliştikçe iş yükü katsayısını artırmalısınız; bcrypt ve Argon2'nin parametreleri özetin yanında saklamasının nedeni budur. Bu, saydam yükseltmelere olanak tanır: bir sonraki oturum açmada parolayı doğrulayın, ardından yeni ve daha yüksek parametrelerle yeniden özetleyin. OWASP, PBKDF2, bcrypt ve Argon2id için her yıl gözden geçirilmesi gereken güncel Recommended minimum parametreleri yayımlar.
scrypt: Diğer Bellek-Zor KDF
scrypt, 2009'da Colin Percival tarafından tasarlanmış, yaygın olarak benimsenen ilk bellek-zor KDF'dir ve Litecoin ile birçok parola yöneticisi tarafından kullanılır. scrypt; N (CPU/bellek maliyeti), r (blok boyutu) ve p (paralelleştirme katsayısı) parametreleriyle yapılandırılır. Argon2'de olduğu gibi yüksek N değerleri, her hesaplama için büyük miktarda RAM gerektirir. scrypt güvenli kabul edilir; ancak Password Hashing Competition'ı kazandığı ve daha fazla kriptografik incelemeden geçtiği için yeni uygulamalarda genellikle Argon2id tercih edilir. Her ikisi de kabul edilebilir seçeneklerdir.
Kullanılmaması Gerekenler: MD5, SHA-1 ve Salt Eklenmemiş SHA
Parolalar için çeşitli özetleme yaklaşımları hiçbir zaman kullanılmamalıdır: MD5 (kırılmıştır; tüketici donanımında saniyede milyarlarca özet hesaplanabilir), SHA-1 (aynı sorun), salt eklenmemiş SHA-256 (hızlıdır ve gökkuşağı tabloları kullanmak çok kolaydır) ve basit şifreleme (tersine çevrilebilir; anahtarın çalınması tüm parolaların ele geçirilmesi demektir). LinkedIn (2012) gibi geçmişteki veri ihlallerinde salt eklenmemiş SHA-1 kullanılmış ve 117 milyon parola açığa çıkmış; bu parolalar birkaç gün içinde kırılmıştır. Adobe (2013) ise parolaları özetlemek yerine şifrelemiştir; bu temel bir yanlış anlama nedeniyle 153 milyon hesap açığa çıkmıştır. Bu olaylar Security+ sınavının bilgi kapsamındadır.
Şifreleme Anahtarları için Anahtar Türetme
KDF'ler, parola özetlerini depolamak yerine parolalardan şifreleme anahtarları türetmek için de kullanılır. Kullanıcı şifrelenmiş bir kasa için ana parola belirlediğinde uygulama, bu paroladan gerçek AES-256 şifreleme anahtarını türetmek için bir KDF kullanır. Parola yöneticileri kasanızın şifresini yerel olarak bu nedenle çözebilir: anahtar türetme işlevini ana parolanız üzerinde çalıştırarak aygıtınızdan hiçbir zaman ayrılmayan şifreleme anahtarını yeniden oluştururlar. HKDF (HMAC tabanlı Anahtar Türetme İşlevi), yüksek entropili tek bir gizli değerden birden çok anahtar türetme standardıdır; TLS 1.3'te el sıkışma ve uygulama anahtarlarını türetmek için kullanılır.
Kimlik Bilgisi Doldurma Saldırıları ve KDF Koruması
Kimlik bilgisi doldurma saldırıları, bir veri ihlalinde çalınan kullanıcı adı/parola çiftlerini diğer hizmetlerde yeniden dener. Güçlü KDF'ler, bir ihlalden sonra çevrim dışı parola kırma süresini uzatır — saldırganın her tahmin için mikrosaniyeler yerine 300 ms harcaması gerekiyorsa, 10 karakterlik rastgele bir parolayı kırmak hesaplama açısından uygulanamaz hâle gelir. Ancak KDF'ler, siteler arasında parola yeniden kullanımına karşı koruma sağlamaz — bunun için kullanıcıların benzersiz parolalar kullanması gerekir. Benzersiz parolalar + Argon2id depolaması + MFA birleşimi, kimlik bilgisine dayalı saldırıları pratikte etkisiz hâle getirir.
Hızlı Kontrol
Bu dersteki CompTIA Security+ (SY0-701) kavramlarını anlayıp anlamadığınızı test edin.
Ders Özeti
Bu derste şunları öğrendiniz: parola KDF'leri, çevrim dışı kaba kuvvet saldırılarını hesaplama açısından uygulanamaz hâle getirmek için ayarlanabilir iş faktörleriyle kasıtlı olarak yavaştır; Argon2id ve scrypt gibi bellek açısından zorlayıcı işlevler, her hesaplama için büyük miktarda RAM gerektirerek GPU paralelleştirmesini engeller; MD5, SHA-1 ve tuzlanmamış özetler, çok sayıda yüksek profilli veri ihlalinin de gösterdiği gibi parola depolama için tamamen yetersizdir. Sırada, RSA ve ECC'nin yerini alması için NIST tarafından seçilen algoritmaları ve kuantum sonrası kriptografiyi inceliyoruz.
Sıkça Sorulan Sorular
“Anahtar Türetme İşlevleri: PBKDF2, bcrypt ve Argon2” dersi ücretsiz mi?
Evet — “Anahtar Türetme İşlevleri: PBKDF2, bcrypt ve Argon2” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Cloud & IT Cert Prep kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Cloud & IT Cert Prep kursu toplamda 4 dersten oluşur.
“Anahtar Türetme İşlevleri: PBKDF2, bcrypt ve Argon2” dersinde ne öğreneceğim?
Parola özetleme algoritmalarını GPU ve ASIC saldırılarına karşı dayanıklılıkları bakımından karşılaştırın; iş faktörlerinin ve bellek zorluğunun nasıl ayarlandığını öğrenin. Cloud & IT Cert Prep ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
Cloud & IT Cert Prep öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te Cloud & IT Cert Prep, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 3. dersidir.
“Anahtar Türetme İşlevleri: PBKDF2, bcrypt ve Argon2” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu Cloud & IT Cert Prep dersinde kod yazıp çalıştırabilir miyim?
Evet. Her Cloud & IT Cert Prep dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.
Bu kursun tüm dersleri
- TLS 1.3 El Sıkışması ve 0-RTT Yeniden Başlatma
- Kimliği Doğrulanmış Şifreleme: AES-GCM ve ChaCha20-Poly1305
- Anahtar Türetme İşlevleri: PBKDF2, bcrypt ve Argon2
- Kuantum Sonrası Kriptografi: CRYSTALS-Kyber ve Dilithium