NIST’e göre iyi parola nasıl olur? SP 800-63B-4 özeti
Bir web sitesine üyelik sistemi kurunca parola kuralları da senin sorumluluğuna giriyor. Ben de bu siteyi yaparken “en az bir büyük harf, bir rakam, bir sembol” gibi alışılmış kuralları mı koymalıyım diye baktım ve ABD’nin standart kurumu NIST’in kimlik doğrulama rehberine ulaştım. Bu yazı, rehberin parola maddelerinin özeti ve bu sitede nasıl uyguladığım.
NIST SP 800-63B-4 nedir?
NIST’in Dijital Kimlik Yönergeleri (SP 800-63) serisinin kimlik doğrulama bölümü 63B’dir ve dördüncü sürümü 2025’te yayımlandı. Parolalara ilişkin yükümlülükler 3.1.1.2 numaralı bölümde, “parola doğrulayıcıları” başlığı altında. Aşağıdaki maddeler oradan; kullanılan zorunluluk dili (SHALL, SHOULD gibi) aynen korunuyor.
Ne diyor?
- Uzunluk: Tek başına kimlik doğrulama aracı olarak kullanılan parolalar en az 15 karakter olmalı (SHALL). Yalnızca çok faktörlü doğrulamanın bir parçası olan parolalar daha kısa olabilir ama en az 8 karakter olmalı.
- Üst sınır: En az 64 karakterlik parolaya izin verilmeli (SHOULD).
- Karmaşıklık kuralı yok: Farklı karakter türlerinin karışımını zorunlu kılan başka bileşim kuralları dayatılmamalı (SHALL NOT).
- Zorunlu değişim yok: Kullanıcıdan parolasını periyodik olarak değiştirmesi istenmemeli (SHALL NOT).
- Kara liste: Aday parola, sık kullanılan, tahmin edilebilir ya da ele geçirilmiş parolaların listesiyle karşılaştırılmalı.
- Yapıştırma ve parola yöneticisi: Parola yöneticilerinin ve otomatik doldurmanın kullanımına izin verilmeli (SHALL); yapıştırma işlevine izin verilmesi önerilir (SHOULD).
- Unicode: Unicode karakterler kabul edilmeli (SHOULD) ve her kod noktası uzunluk hesabında tek karakter sayılmalı.
Neden uzunluk?
Bu kısım benim yorumum: “bir büyük harf, bir rakam, bir sembol” kuralı kullanıcıları tahmin edilebilir kalıplara itiyor; kelimenin başını büyük harf yapıp sonuna 1! eklemek gibi. Uzun bir cümle hem hatırlaması kolay hem de tahmin etmesi zor. NIST’in karmaşıklık kurallarını yasaklayıp uzunluğu öne çıkarması bu yönde okunabilir.
Bu sitede nasıl uyguluyorum?
- Üyelik parolası en az 15 karakter, en fazla 128 karakter. Büyük harf, rakam ya da sembol zorunluluğu yok.
- Parolalar düz metin olarak saklanmıyor; WordPress’in sağladığı tuzlu özet (hash) yöntemiyle saklanıyor.
- Seçilen parola, bilinen veri sızıntılarındaki parolalarla karşılaştırılıyor. Bunu Have I Been Pwned’in “k-anonymity” yöntemiyle yapıyorum: parolanın SHA-1 özetinin yalnızca ilk 5 hanesi gönderiliyor, tam parola ya da tam özet hiçbir yere gitmiyor. Hizmete ulaşılamazsa kayıt engellenmiyor.
- Parolada kişinin adı ya da e-posta adresi geçmemeli. Ayrıca çok bilinen birkaç zayıf parola için kısa bir liste de var; bu, NIST’in kastettiği tam kapsamlı kara liste değil, sızıntı denetimini tamamlayan basit bir ek.
- Zorunlu parola değişimi yok. Yapıştırma ve parola yöneticisi serbest.
Eksiğimi de söyleyeyim: bu sitede şu an iki adımlı doğrulama yok. NIST’in “tek faktör için 15 karakter” şartına uymak için asgari uzunluğu bu yazıyı hazırlarken 12’den 15’e çıkardım.
Okuyan için pratik öneriler
- Kısa ve karmaşık yerine uzun ve sıradan: dört beş kelimelik, sana özgü bir cümle.
- Her site için ayrı parola. Bir sızıntıda diğer hesaplarının güvenliği buna bağlı olmasın.
- Bir parola yöneticisi kullan. Rehberin kendisi de bunlara izin verilmesini zorunlu kılıyor.
- Mümkün olan yerde iki adımlı doğrulamayı aç.
Kaynaklar
- NIST SP 800-63B-4, Digital Identity Guidelines: Authentication and Authenticator Management, bölüm 3.1.1.2: pages.nist.gov/800-63-4/sp800-63b.html
- NIST CSRC: SP 800-63B-4 (yayın sayfası)
- Have I Been Pwned: Pwned Passwords API (k-anonymity)