2012'de LinkedIn'in 6.5 milyon parola özeti sızdığında, parolalar SHA-1 ile özetlenmiş ama TUZLANMAMIŞTI — saldırganlar hazır gökkuşağı tablolarıyla milyonlarca parolayı saatler içinde çözdü; tek bir rastgele tuz bu felaketi önleyebilirdi.
NEDİR? Salt (tuzlama), bir parolanın özeti (hash) hesaplanmadan ÖNCE parolaya eklenen, her kullanıcı için benzersiz ve rastgele üretilen bir veri parçasıdır. Amaç, aynı parolayı kullanan iki kullanıcının bile veritabanında farklı özetlere sahip olmasını sağlamak ve önceden hesaplanmış saldırı tablolarını işe yaramaz hâle getirmektir. Tuz gizli bir anahtar DEĞİLDİR; özetin yanında açıkça saklanabilir — gücü gizliliğinden değil, benzersizliğinden ve rastgeleliğinden gelir. NASIL ÇALIŞIR? 1) Kullanıcı kaydolurken sistem kriptografik olarak güvenli bir rastgele tuz üretir (örneğin 16 bayt / 128 bit). 2) Tuz, kullanıcının parolasıyla birleştirilir: hash = HASH(tuz + parola). 3) Veritabanına parolanın kendisi değil, üretilen özet ile birlikte tuz saklanır. 4) Giriş sırasında sistem saklı tuzu alır, kullanıcının girdiği parolayla yeniden birleştirir, aynı özetleme işlemini yapar ve sonucu saklı özetle karşılaştırır. Eşleşirse parola doğrudur. Her kullanıcının tuzu farklı olduğu için, iki kullanıcı aynı parolayı seçse bile veritabanındaki özetleri tamamen farklı görünür. NEDEN ÖNEMLİ / İŞ YERİNDE Tuz olmadan, saldırganlar 'gökkuşağı tabloları' (rainbow table) denilen, milyonlarca parolanın önceden hesaplanmış özetini içeren listelerle bir veritabanı sızıntısındaki tüm özetleri toplu olarak çözebilir. Tuz, her parola için ayrı bir hesaplama zorunluluğu getirerek bu hazır tabloları işe yaramaz kılar; saldırganın her kullanıcı için ayrı ayrı uğraşması gerekir. Kurumsal bağlamda, bir veritabanı çalınsa bile tuzlanmış ve modern bir algoritmayla işlenmiş parolaların toplu olarak kırılması pratik olarak imkânsız hâle gelir — bu, KVKK/GDPR gibi düzenlemelerde 'uygun teknik tedbir' kapsamına da girer. DİKKAT / İYİ UYGULAMA • Tuz HER kullanıcı için benzersiz ve rastgele olmalı; sabit/ortak tek bir tuz kullanmak korumanın büyük kısmını yok eder. • Tuz, kriptografik güvenli bir rastgelelik kaynağıyla üretilmeli (örn. işletim sistemi CSPRNG'i). • Parolalar için düz SHA-256/MD5 yeterli değildir; bcrypt, scrypt veya Argon2 gibi tuzu içeren ve kasıtlı olarak yavaş (iş-faktörlü) algoritmalar tercih edilmelidir. • Pepper (biber), tuzdan farklı olarak gizli ve uygulama genelinde ortak tutulan, kodda/HSM'de saklanan ek bir sırdır; tuzun yerine değil tamamlayıcısı olarak kullanılır.
• Salt (tuz), özet alınmadan önce parolaya eklenen, kullanıcıya özel rastgele değerdir. • Aynı parolaların farklı özetlere dönüşmesini sağlar; gökkuşağı tablolarını etkisizleştirir. • Gizli değildir — özetin yanında saklanabilir; gücü benzersizlik ve rastgelelikten gelir. • En iyi uygulama: bcrypt/scrypt/Argon2 gibi tuzu içeren, kasıtlı yavaş algoritmalar kullanmak.