« Parolanız 8 karakter, bir büyük harf, bir küçük harf, bir rakam ve bir özel karakter içermelidir. »
Hepimiz bu kuralı biliyoruz. Ancak siber güvenlikte buna “güvenlik tiyatrosu” diyoruz. P@ssw0rd1! gibi bir parola bu kuralların hepsine uyar. Ama yaygın bir kelimenin öngörülebilir değiştirmelerle yazılmış hâlidir ve kırma araçlarının ilk denediği şey tam olarak budur.
Gerçek güvenlik, keyfi görsel kurallara değil, affetmez bir matematiksel gerçekliğe dayanır: entropi.
Claude Shannon’a Göre Entropi
Bir parolanın gücünü anlamak için bilgi teorisinin babası Claude Shannon’a bakmalıyız. Entropi, bilginin belirsizlik veya öngörülemezlik derecesini ölçer.
Parolalara uygulandığında entropi bit cinsinden hesaplanır. Bit sayısı ne kadar yüksek olursa, parolanın bir bilgisayar için öngörülmesi o kadar zor olur. Rastgele oluşturulmuş bir parolanın entropisi (E) için basitleştirilmiş formül şöyledir:
E = L × log2(R)
- L parolanın uzunluğudur.
- R havuz boyutudur (küçük harfler için 26, büyük harfler ve rakamlar eklendiğinde 62, yazdırılabilir tüm sembollerle birlikte 94). Oluşturucumuzun dört karakter kümesi 91 eder, çünkü sembol kümesinde 29 karakter vardır.
Havuz boyutunu artırmak (semboller eklemek) entropiyi artırır, ancak uzunluğu artırmak (karakter eklemek) bunu çok daha ciddi şekilde artırır. Ancak uzunluk, karmaşıklığı yalnızca tek bir şartla yener: parolanın tamamen rastgele oluşturulması gerekir.
Kaba Kuvvet (Brute Force) vs. Sözlük Saldırısı
Kelimeler veya öngörülebilir yapılar kullanırsanız, salt uzunluk kuralı çöker.
Bilgisayar korsanlığı yazılımları tüm harf kombinasyonlarını tek tek denemez (buna Kaba Kuvvet / Brute Force denir). Geçmiş veri sızıntılarından elde edilen gerçek parolaların devasa listelerini, yaygın kelime ve ifadelerle birlikte kullanırlar. Bu Sözlük Saldırısıdır (Dictionary Attack).
Parolanız uzun olsa bile sözlük kelimelerinden veya öngörülebilir değiştirmelerden oluşuyorsa, gerçek entropisi teorik matematiksel entropisinden önemli ölçüde düşüktür.
Aşağıdaki tablo tek bir kural kullanır: saniyede 100 milyar deneme, yani oluşturucumuzun sayfasının hızlı bir hash’e yapılan çevrimdışı bir saldırı için varsaydığı hız. Süreler ortalamadır (tüm olasılıkların yarısı) ve o sayfayla aynı formülle aşağı yuvarlanmıştır. Her parola için en hızlı yol kalın harflerle gösterilmiştir:
| Parola | Her karakter rastgele olsaydı entropi | Kaba kuvvet (ortalama) | Sözlük saldırısı (bizim tahminimiz) |
|---|---|---|---|
password123 | 56 bit (11 karakter, küçük harf ve rakam) | 7 gün | Bir saniyeden kısa |
S3cr3t!99 | 58 bit (9 karakter, dört kümenin hepsi) | 24 gün | Bir saniyeden kısa |
correct horse battery staple | 133 bit (28 karakter, küçük harf ve boşluk) | 1 trilyon yıldan fazla | 1 dakika |
gL7!pQ9z#vX2 | 78 bit (12 karakter, dört kümenin hepsi) | 51 bin yıl | Kestirme yol yok |
Sözlük sütunu bir tahmindir. Saldırganın tahminlerinin her parolanın yapısını izlediğini ve her temel kelimenin en yaygın 1.000 kelime arasında olduğunu varsayar:
password123: yaygın bir kelime ve üç rakam. Bu, 1.000 × 1.000, yani yaklaşık bir milyon tahmin eder.S3cr3t!99: yaygın bir kelime; büyük harfli ya da değil, her “e” “3” ile değiştirilmiş ya da değil, ardından herhangi bir üç karakterlik ek. Bu, yaklaşık 7 milyar tahmin eder.correct horse battery staple: dört yaygın kelime. Onu ünlü yapan xkcd çizgi romanı, 2.048 kelimelik bir listeden seçilen dört kelime için 44 bit sayar. Aynı hızla bu, ortalama 88 saniye eder; aşağı yuvarlanınca 1 dakika.gL7!pQ9z#vX2: ne kelime ne de desen var, bu yüzden en hızlı yol kaba kuvvettir.
Bu tahminler, her parolanın saldırgan tarafından bilinmediğini varsayar. Bu makaledeki her parola artık herkese açıktır, dolayısıyla her biri bir sözlükte yer almayı hak eder. Yayımlanmış bir parola, yanmış bir paroladır.
Leetspeak Yanılsaması ve Mutasyon Kuralları
S3cr3t!99 örneğini ele alalım. Görsel olarak karmaşık ve sağlam görünüyor. Oysa bu sadece sözlükteki “secret” kelimesidir, ’e’ harfleri ‘3’ ile değiştirilmiş ve sonuna çok yaygın bir ek (!99) eklenmiştir. Buna leetspeak denir.
Sözlük saldırısına karşı bu parola bir saniyeden kısa dayanır; uzunluğunun düşündüreceği 24 gün değil. Modern kırma yazılımları (Hashcat gibi) yalnızca statik kelime listelerini test etmekle yetinmez; otomatik olarak mutasyon kuralları uygularlar. Sözlüklerindeki her kelimeyi alırlar, olası tüm leetspeak kombinasyonlarını test ederler, büyük-küçük harfleri değiştirirler ve yıllar veya semboller eklerler. Leetspeak yalnızca yanlış bir güvenlik hissi sağlar.
Klavye Kaydırma Hilesi (Keyboard Shift)
Akılda kalıcı bir ifadeyi karmaşıklaştırmak için bazıları klavye düzenini kaydırma hilesini kullanır. Örneğin, my-cat gibi bir ifadeyi ezberlersiniz. Ancak bunu yazarken işletim sisteminiz AZERTY (Fransızca) olarak ayarlanmışken parmaklarınızı fiziksel bir QWERTY klavyeye yerleştirirsiniz.
- Düşünülen kelime:
my-cat - Yazılan sonuç:
,y)cqt(’m’ tuşu ‘,’ olur; ‘-’ ise ‘)’ olur; ‘a’ ise ‘q’ olur).
OPSEC’te bu iyi bir fikir mi? Hayır, tek başına kullanıldığında bu yöntem yeterli değildir. Tıpkı leetspeak gibi, klavye düzeni kaydırması da sabit bir değiştirmedir: bundan şüphelenen bir saldırgan aynı eşlemeyi her tahmine uygular. OPSEC’te bu gizlilik yoluyla güvenliktir: amatör bir saldırganı geciktirir, ancak hedefli ve donanımlı bir saldırıyı durdurmaz.
Zaten güçlü olan bir parolayla (uzun, rastgele bir parola öbeği gibi) birleştirildiğinde çok az şey katar. Bir saldırgan bin klavye düzeni çifti denese bile bu 10 bitten az ekler, çünkü log2(1.000) ≈ 9,97. Güç yine alttaki parola öbeğinden gelir.
Bir Ana Parola Oluşturmak (~250 bit)
Kelime listelerinin, leetspeak’in ve yazma hilelerinin sınırları varsa, uzun ömürlü bir ana parolayı nasıl oluşturabiliriz? Oluşturucumuz 80 biti zaten “Güçlü”, 100 biti ise “Çok Güçlü” olarak derecelendiriyor. Onlarca yıl dayanması gereken bir ana parola için bu makale çok daha yükseği hedefliyor: yaklaşık 250 bit entropi. Aşağıdaki kuantum bölümü bunun nedenini ve bu payın neyi sağlamadığını açıklıyor.
İhtiyaçlarınıza bağlı olarak bunu başarmanın iki yolu vardır:
1. Rastgele Karakterler (bir parola yöneticisi için)
Tamamen rastgele oluşturulmuş, bir makinenin yararlanabileceği hiçbir deseni olmayan bir karakter dizisi:
8}8,_$-p)M&n,XvUCT0o+.5hDE6P^w6b@U-evS0
Oluşturucumuzun 91 karakterinden rastgele çekilmiş 39 karakter: ≈ 253 bit. Bu makale için çekildi, dolayısıyla artık herkese açık. Asla kullanmayın.
2. Rastgele Bir Parola Öbeği (ezberlediğiniz bir parola için)
Rastgele kelimeleri hatırlamak, rastgele karakterlerden daha kolaydır. 7.776 kelimelik EFF listesinden çekilen her kelime yaklaşık 12,9 bit ekler; yani entropiyi kelime sayısı belirler. 12 kelime ≈ 155 bit verir; bu, oluşturucumuzun “Çok Güçlü” eşiğinin çok üzerindedir. Düz kelimeler 250 biti ancak 20 kelimede geçer.
Oluşturucumuz 12 kelimede durur. Daha az kelimeyle 250 biti geçmek için “Her kelimeden sonra rastgele rakam” seçeneğini işaretleyin ve ayraç olarak “Rakam + Sembol” seçin. 11 kelime o zaman ≈ 260 bit verir:
depletion78$sporting14~overlap11>macaw86>paced95,paramedic41}blot41$flagstone07;uncanny92/broadways77#say2
Bu makale için, tam olarak bu ayarlarla rastgele çekildi. Yayımlanmış bir parola, yanmış bir paroladır: bunu ya da okuduğunuz herhangi bir örneği asla kullanmayın. Yalnızca rastgele çekilen şey sayılır. Her kelimenin baş harfini büyütmek hiçbir şey katmaz; kendi seçtiğiniz kelimeler ise rastgele olanlardan çok daha zayıftır.
Kuantum Tehdidi: Grover Algoritması
128 bit günümüzün süper bilgisayarlarını zaten engelliyorken neden 250 biti hedefleyelim? Cevap, büyük kuantum bilgisayarların ortaya çıkma ihtimalinde yatıyor.
Kriptografide Grover algoritması, bir kuantum bilgisayarın sıralanmamış bir veritabanında klasik bir bilgisayardan çok daha hızlı arama yapmasını sağlar. Somut olarak Grover, simetrik bir anahtarın veya parolanın etkili güvenlik seviyesini yarıya indirir.
Grover algoritmasını çalıştıran bir kuantum bilgisayarına karşı, 128 bit entropili bir parola teoride yalnızca 64 bite eşdeğer bir direnç sunar. Bu çok daha ince bir paydır.
Entropiyi iki katına çıkarmak güvenlik payını korur: yaklaşık 256 bit, Grover’a karşı hâlâ yaklaşık 128 bit bırakır. Bu makalenin 250 bitlik hedefi buradan gelir. Bu, bir standarttan alınmış bir rakam değil, bu makalenin seçtiği bir önlemdir.
Bu payın sınırları vardır. Grover’ın sağladığı hızlanma karesel düzeydedir, sınırsız değildir. Her adımında yine sitenin parola özetinin (hash) hesaplanması gerekir, üstelik bunu çalıştıracak kadar büyük bir kuantum bilgisayarda. Karşılaştırma için, oluşturucumuzun sayfasının varsaydığı saniyede 100 milyar denemeyle, 100 bitlik ortalama bir arama bile en az 200 milyar yıl sürer.
Bu mantık Harvest Now, Decrypt Later (HNDL) yaklaşımına benzer: çalınmış bir parola özeti veritabanı bugün saklanıp daha sonra, daha iyi makinelerle saldırıya uğrayabilir. Daha büyük bir pay, buna karşı çıtayı yükseltir. Kalıcı bir garanti değildir.
Arpokrat Password Generator: Kendi Parolanızı Oluşturun
Erişiminizin güvenliğini şansa bırakmayın. Ücretsiz oluşturucumuz rastgele parolalar ve parola öbekleri üretir. Her biri için entropiyi bit cinsinden ve bir aramanın ortalama ne kadar süreceğini gösterir.
Yalnızca üretir: hâlihazırda kullandığınız bir parolayı derecelendirmez. Yukarıdaki 250 bitlik hedef için, dört karakter kümesinin hepsini içeren 39 karakterlik bir parola seçin. Oluşturucu bunu “≈ 253 bit” olarak gösterir.
Tarayıcınızda çalışır. Ürettiği hiçbir şey gönderilmez veya kaydedilmez.
Son Zayıf Halka: Geri Dönüşüm ve Erişim Yönetimi
Matematiksel entropi insan hatasına karşı koruma sağlamaz. 250 bitlik bir parola, sızdığı anda değerini kaybeder; birden fazla sitede yeniden kullanılırsa (Credential Stuffing adı verilen bir saldırı) veya ikinci bir kimlik doğrulama faktörü (2FA) ile korunmuyorsa.
Dijital hijyenin altın kuralı, sadece tek bir parolayı hatırlamak zorunda olmaktır: 250 bitlik ana parolanız (yukarıdaki gibi rastgele bir parola öbeği). Diğer tüm erişimleriniz (banka, sosyal ağlar, sunucular), kendileri için özel olarak oluşturulmuş benzersiz rastgele parolalar kullanmalıdır.
Hatırlayamayacağınız tüm bu parolaları saklamak için bir parola yöneticisi kullanın. Kasanızı eşitlemeden önce cihazınızda şifreleyen birini seçin (genellikle Sıfır Bilgi, yani Zero-Knowledge olarak adlandırılır); tercihen açık kaynaklı ve bağımsız olarak denetlenen bir yönetici.
