Doğru oluşturucu,
doğru dil.
Tüm parola oluşturucular aynı değildir — kasanızın hangi dilde yazıldığı da yalnızca mühendislik ayrıntısı sayılmaz. Entropi, oluşturma modları ve Rust’ın neden kaputun altında öne çıktığına yakından bakıyoruz.
Bir yönetici “güçlü bir parola oluşturduğunda” iki soru ortaya çıkar: gerçekten öngörülemez mi (rastgeleliğin kalitesi) ve gösterildikten sonra bellekte ona ne olur? İlki oluşturma modlarıyla ilgilidir. İkincisi uygulamayı çalıştıran dille. Bu yazı ikisini de ele alıyor.
01 / TEMELLEREntropi: önemli olan tek ölçü
Bir parolanın gücü, hissedilen “karmaşıklığı” ile değil, entropisi ile ölçülür: saldırgan açısından belirsizliğin bit sayısı. Olası kombinasyon sayısı arttıkça brute-force saldırısının maliyeti katlanarak büyür. Tüm ASCII alfabesinden seçilmiş 16 karakterlik bir parola yaklaşık 100 bits seviyesine ulaşır — yani “çok güçlü” sınıfına.
Sık unutulan kritik nokta: entropi ancak rastgelelik kaynağı bir CSPRNG ise anlamlıdır (kriptografik olarak güvenli sözde rastgele üreteç). Klasik Math.random() öngörülebilirdir ve geri kalan her şeyi geçersiz kılar. İyi uygulamalar entropiyi işletim sisteminden okur: Unix üzerinde /dev/urandom veya getrandom(2), Windows üzerinde CNG.
02 / MODLARDört oluşturucu ailesi
İyi bir yönetici “tek” bir oluşturucu değil, kullanıma uygun birden fazla mod sunar. Kural şudur: akılda kalıcılık uzunlukla ödenir. En yoğun olandan en insani olana doğru dört aile şöyle.
Tamamen rastgele
j7$kQ!mP2#xR9vL@Passphrase (Diceware / EFF)
Granite-Bicycle-Phantom-Violet-9Akılda kalıcı / telaffuz edilebilir
Crimson7!Falcon$ReefSayısal PIN
8392 4471Doğru refleks: entropiyi kullanıma göre ayarlamak
Hız sınırlamalı bir giriş sayfasıyla korunan web hesabında saldırgan saniyede birkaç yüz denemeyle sınırlanır: 50 bits bile jeolojik zaman ölçeklerine dayanır. Aşırı entropi ancak çevrimdışı sırlar için anlamlıdır (şifreleme anahtarı, crypto cüzdan seed’i); çünkü bu saldırılar çok büyük ölçekte paralelleştirilebilir. Çok yüksek değerli bu sırlar için gerçek fiziksel zar atmak (kelimenin tam anlamıyla Diceware) nihai seçenek olmaya devam eder: CSPRNG kalitesine veya ele geçirilmiş bir tarayıcıya bağımlılığı ortadan kaldırır.
03 / KAPUTUN ALTINDARust neden oyunu değiştirir
İyi bir parola oluşturmak işin yarısıdır. Diğer yarısı: onu ortalıkta bırakmamaktır. Parolanız gösterildiğinde veya çözüldüğünde RAM içinde yaşar — işte uygulamanın dili burada belirleyici hale gelir.
Microsoft, karşılaştığı güvenlik açıklarının 70 %’inin bellek hataları olduğunu bildirdi (buffer overflow, use-after-free vb.). Google da Chrome ve Android üzerinde aynı oranı gözlemledi. Rust, bu hata sınıflarını sahiplik (ownership) ve ödünç alma (borrowing) modeliyle, garbage collector olmadan, derleme aşamasında ortadan kaldırır.
Google’ın rakamları çarpıcıdır: Android bellek açıkları 2019’da 223 iken 2024’te 50’nin altına düştü ve ilk kez toplamın 20 % sınırının altına indi. Yeni Rust kodu, tarihsel C/C++ koduna göre 1000× daha düşük bellek hatası yoğunluğu gösteriyor; ayrıca 4× daha az rollback ve 25 % daha kısa review süresi sağlıyor.
1. Garbage collector olmadan bellek güvenliği. Java veya Python gibi diller memory-safe kabul edilir, ancak garbage collector belleği deterministik olmayan şekilde serbest bırakır: bir sır memory dump veya cold-boot saldırısına açık şekilde belirsiz süreyle kalabilir. Rust, veri artık kullanılmadığı anda belleği deterministik olarak serbest bırakır.
2. zeroize ile açık silme. Rust serbest bırakılan belleğin üzerine yazılacağını garanti etmez. zeroize crate’i bu boşluğu kapatır: bir sırrı Zeroizing içine sararak, kapsamdan çıktığı anda — derleyicinin optimize edemeyeceği volatile write yoluyla — sıfırlarla üzerine yazılmasını garanti ederiz.
3. Crypto’nun doğru kullanımını zorlayan bir tip sistemi. Rust’ın katı tip sistemi hassas verinin nasıl ve kaç kez kullanılabileceğini sınırlandırmaya imkân verir. Örneğin yalnızca bir kez kullanılabilecek bir anahtar modellenebilir; derleyici her yeniden kullanımı reddeder.
Bellekte otomatik silmeuse zeroize::Zeroizing;
fn unlock_vault(master: &str) {
let dek = Zeroizing::new(derive_key(master));
// ... déchiffrement du coffre ...
} // `dek` est écrasé par des zéros ici, automatiquementBELLEK AÇIKLARI — ANDROID (TOPLAMIN %’İ)
RUST BENİMSENMESİ
Teknik dürüstlük: Rust sihirli değnek değildir
unsafe kod ve üçüncü taraf bağımlılıklar saldırı yüzeyi olmaya devam eder — Google, üretime geçmeden önce bir Rust ayrıştırıcısının unsafe bloğunda bir açığı (CVE-2025-48530) düzeltti. Bellek güvenliği bir katmandır, tek başına nihai hedef değildir: defense in depth ile birleşir (Argon2id gibi güçlü KDF, zero-knowledge mimari, otomatik kilitleme, MFA).
Garbage collector kullanan dil
- Deterministik olmayan bellek serbest bırakma
- Sırlar bellekte bilinmeyen süre kalır
- Açık silme zor veya imkânsızdır
- Dumps & cold-boot saldırılarına açık
Rust
- Deterministik serbest bırakma (ownership)
- zeroize ile anında silme
- Buffer overflow veya use-after-free yok
- Crypto hataları derleme aşamasında yakalanır
04 / AKILDA TUTULACAKLARBir yöneticiden ne beklemelisiniz
Bir parola yöneticisi seçerken — veya değerlendirirken — dört somut soru vardır:
Checklist
- 1. Oluşturucu bir sistem CSPRNG kullanıyor ve entropiyi bits olarak gösteriyor mu?
- 2. Ana parola için Diceware/EFF passphrase modu sunuyor mu?
- 3. Oluşturma yerel (client-side) olarak, sunucudan geçmeden mi yapılıyor?
- 4. Hassas çekirdek, sırların açıkça silindiği memory-safe bir dilde mi yazılmış?
Güvenli oluşturma. Uzun ömürlü tasarlanmış bir kasa.
Yüksek entropili parolalar, akılda kalıcı passphrases ve bellek güvenliği için tasarlanmış bir çekirdek.
Yaklaşımımızı keşfedin