Şifre Oluşturucu: Güçlü ve Rastgele Parola Üretin

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.

Uzunluk, parolayı güçlendiren en ucuz yoldur: her ek karakter olasılık sayısını havuz katı büyütür.
Kullanılacak karakterler
İkinci seçenek parolayı elle yazacaksanız işe yarar; havuzu küçülttüğü için entropiyi bir miktar düşürür ve bu aşağıdaki rakama yansır.

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
Kırılma süresi bir ölçüm değil, açıkça yazılan bir varsayımın sonucudur: saniyede 10 milyar deneme yapabilen, parolayı çevrimdışı kıran bir saldırgan. Ortalama olarak ihtimallerin yarısında bulunur.

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.