Aşağıdaki araç, seçtiğiniz uzunlukta ve karakter kümelerinde rastgele bir parola üretir. Parola sizin tarayıcınızda oluşur; yazdığınız hiçbir ayar ve üretilen parola sunucumuza gönderilmez, kaydedilmez.
Parola bilgisayarınızda üretilir; yazdığınız hiçbir şey ve üretilen parola sunucumuza gönderilmez, kaydedilmez. Rastgelelik tarayıcının kriptografik üretecinden (crypto.getRandomValues) gelir; tahmin edilebilir olduğu için Math.random() kullanılmaz.
Parolayı güçlü yapan nedir?
Bir parolanın gücü, akılda kalması zor görünmesinden değil, kaç farklı ihtimalden biri olduğundan gelir. Bu sayının ikili tabandaki karşılığına entropi denir ve bit ile ölçülür. Havuzda N karakter varsa ve parola L karakter uzunluğundaysa ihtimal sayısı NL, entropi de bunun ikili logaritmasıdır.
Pratik sonucu şu: uzunluk, karmaşıklıktan daha ucuz bir güçtür. Havuza sembol eklemek her karaktere birkaç bit katar, ama parolaya bir karakter eklemek havuz kadar katlar. Aşağıdaki tablodaki her rakam bu sayfadaki aracın kendi motoruyla hesaplandı, elle yazılmadı.
| Karakter kümesi | Havuz | Uzunluk | Entropi | Değerlendirme | Kırılma süresi |
|---|---|---|---|---|---|
| yalnız küçük harf | 26 | 8 | 37,6 bit | orta | 10 saniye |
| küçük + büyük harf + rakam | 62 | 8 | 47,6 bit | orta | 3 saat |
| dört kümenin hepsi | 79 | 12 | 75,6 bit | güçlü | 10^4 yıl |
| dört kümenin hepsi | 79 | 16 | 100,9 bit | güçlü | 10^12 yıl |
| dört kümenin hepsi | 79 | 20 | 126,1 bit | güçlü | 10^20 yıl |
| dört kümenin hepsi | 79 | 24 | 151,3 bit | çok güçlü | 10^27 yıl |
Tablodaki ilk iki satır asıl dersi veriyor. Yalnız küçük harften oluşan 8 karakterlik bir parola, bugünün donanımıyla saniyeler içinde çözülür. Aynı uzunlukta büyük harf ve rakam eklemek süreyi saatlere çıkarır, ama hâlâ yeterli değildir. Güvenli tarafa geçiren şey uzunluktur: dört kümeyle 16 karakter, aynı saldırganı pratikte durdurur.
Rastgelelik nereden geliyor?
Araç, tarayıcının kriptografik rastgele sayı üretecini (crypto.getRandomValues) kullanır. JavaScript’in yaygın Math.random() işlevi kullanılmaz: o üreteç hız için tasarlanmıştır, çıktısı yeterince gözlendiğinde iç durumu kestirilebilir. Parolada kullanılması, aracı güvenlik satan bir süse çevirirdi.
İkinci ve daha az bilinen tuzak bölme sapmasıdır. Rastgele bir sayıyı doğrudan havuz boyuna göre mod alarak karakter seçmek kolaydır, ama havuz boyu ikinin kuvvetine tam bölünmediğinde havuzun ilk karakterleri diğerlerinden sık çıkar. Parola gözle rastgele görünür, gerçek entropi ise hesapladığınızın altına düşer. Araç bunun yerine reddetme örneklemesi yapar: eşit bölünmeyen artık aralığa düşen sayı atılır ve yenisi çekilir.
“Her kümeden en az bir karakter” seçeneği
Birçok site parolada en az bir büyük harf, bir rakam ve bir sembol ister. Araçtaki bu seçenek o şartı sağlar. Sezgiye aykırı ama bu şart parolayı biraz zayıflatır: bir kümeyi hiç kullanmayan bütün parolalar elenir, yani ihtimal sayısı küçülür.
Araç bu kaybı gizlemez, hesaplar. Dört kümeyle 12 karakterlik bir parolada şartsız entropi 75.65 bit, şartlıysa 75.21 bittir; fark 0,44 bit. Pratikte önemsiz bir fark, ama gösterilen rakam doğru olsun diye içerme-dışarma ilkesiyle tam olarak sayılır, yuvarlanmaz.
Bir ayrıntı daha: şartın düzgün dağılımı bozmaması için araç, “her kümeden birer karakter yerleştirip kalanı doldur” yolunu izlemez. O yol kolaydır ama bazı parolaları diğerlerinden olası kılar ve yukarıdaki entropi rakamını yalan yapardı. Bunun yerine şartı sağlayana kadar yeniden çekim yapılır; böylece şartı sağlayan parolaların hepsi eşit olasılıkta kalır.
Karıştırılan karakterleri çıkarmak
Sıfır ile büyük O, bir ile küçük l ve büyük I, beş ile S, iki ile Z, sekiz ile B gözle ayırt edilmesi zor çiftlerdir. Parolayı bir kâğıda yazıp başka bir cihaza elle gireceksiniz, bu seçenek işinizi kolaylaştırır.
Bedeli var: havuz 79 karakterden 67 karaktere iner. 16 karakterlik bir parolada entropi 100.9 bitten 97.1 bite düşer. Küçük bir kayıp, ama araç bunu da anında gösterir, tahmine bırakmaz.
Parolayı nerede saklamalı?
Güçlü parolanın tek sorunu akılda tutulamamasıdır. Doğru çözüm parolayı basitleştirmek değil, bir parola yöneticisi kullanmaktır: her hesaba ayrı ve uzun bir parola üretirsiniz, aklınızda yalnız yöneticinin ana parolası kalır. Ana parola için uzunluğu yüksek tutun.
İki nokta, parolanın gücünden bağımsız olarak önemlidir. Birincisi, aynı parolayı iki yerde kullanmayın: bir sitenin veri tabanı sızdığında saldırgan aynı parolayı diğer hesaplarınızda dener ve parolanın ne kadar güçlü olduğu bu saldırıyı hiç etkilemez. İkincisi, mümkün olan her yerde iki adımlı doğrulamayı açın; parola ele geçse bile tek başına yetmez.
Sık sorulanlar
Ürettiğim parola sunucuya gidiyor mu?
Hayır. Üretim tamamen tarayıcınızda olur, parola ağa hiç çıkmaz. Bu bilinçli bir karar: sunucuda üretilseydi istek günlüğüne düşebilir, ayrıca sayfa önbelleğe alındığı için sizin parolanız sonraki ziyaretçiye görünebilirdi.
Kaç karakter yeterli?
Dört karakter kümesini de açık bırakırsanız 16 karakter bugün için rahat bir seçimdir; tablodaki satır bu uzunluğun ne anlama geldiğini gösteriyor. Önemli hesaplarda 20 ve üzeri tercih edin. Sitenin izin verdiği en uzun parolayı seçmek neredeyse her zaman doğrudur.
Kırılma süresi tablosu kesin mi?
Kesin değil, varsayıma dayalı. Saniyede 10 milyar deneme rakamı, parolanın özet değerini ele geçirmiş ve onu kendi donanımında deneyen bir saldırganı temsil eder. Sitenin parolayı nasıl sakladığı bu hızı büyük ölçüde değiştirir. Tablo mutlak bir söz değil, kümeler arasında karşılaştırma yapmak içindir.
JavaScript kapalıyken çalışır mı?
Hayır ve bunu açıkça yazıyoruz. Rastgelelik tarayıcıdan geldiği için JavaScript kapalıyken parola üretilemez. Rastgele görünen ama tahmin edilebilir bir dizi göstermektense hiç göstermemeyi tercih ediyoruz.
Aynı parolayı tekrar üretebilir miyim?
Hayır. Araç hiçbir şey kaydetmez ve her üretim bağımsızdır. Sayfayı yenilediğinizde önceki parola kaybolur; kullanacaksanız üretir üretmez kopyalayın ve parola yöneticinize kaydedin.