Her kurumun kendine münhasır bir parola yönetim politikası olsa da günün sonunda parolalar kullanıcılar tarafından belirlenir. Kullanıcıların alışkanlıkları ve davranışları ise karşımıza benzer paternlere sahip parolalar olarak ortaya çıkıyor.
Yapılan araştırmalar parola güvenliğinin kurumun en zayıf halkası olduğuna işaret ediyor. Çünkü parola güvenliği konusunda kurumlar zımni kontrole sahip. Şöyle ki; kurumlar parola güvenliğine yönelik bir takım politikalar uygulamaktadır. Ancak bu politikaların güvenlik açısından etkinliği tartışma konusudur. Çünkü parolalar yıllar öncesinden kalma politikalar ile yönetilmekte ve çoğu kurum da parola yeniden kullanımına (Password Reuse) yönelik bir tedbir bulunmamaktadır.
Öncelikle kadim parola politikalarının etkinliğini değerlendirmek gerekecek. Bunun için parola politikalarında ekseriyetle yer alan ilkeleri tek tek inceleyelim.
Minimum Karakter Sayısı
Parolalar veri tabanlarında sabit uzunluğa sahip hash değerleri ile saklanır. Hash fonksiyonları şifreleme gibi olmayıp geri döndürülemez değerler üretir. Yani tek yönlü bir akış söz konusudur. Parola doğrulama işleminde girilen veri aynı hash fonksiyonuna tabi tutulur ve elde edilen sonuç veri tabanındaki değer ile karşılaştırılır. Eğer elde edilen sonuç veri tabanındaki hash değeri ile aynı ise parola doğrulanmış olur. MD5 ve SHA-2 genel amaçlı hızlı hash fonksiyonlarıdır; tek başlarına parola saklamak için uygun değildir. Parola saklamada Argon2id, scrypt, bcrypt veya uygun iş faktörüne sahip PBKDF2 gibi bu amaç için tasarlanmış yöntemler kullanılmalıdır.
Peki parolalarda karakter sayısının fazla olmasının ne faydası var?
Rainbow Tabloları, önceden hesaplanmış hash’lerin saklandığı büyük veri tabanlarıdır. Bir parola hash’lenmiş haldeyse ve bu tablo içinde bulunuyorsa, parola hızlıca kırılabilir. Karakter sayısı yüksek paralaların hash değerinin bu veri tabanlarında olma ihtimali düşüktür. Çünkü tüm olası parola değerleri bu veri tabanlarında bulunmamaktadır. Parola uzunluğu ve karmaşıklığı arttıkça Rainbow Tablo saldırısının başarılı olma ihtimali düşmektedir. Bir diğer konuda Brute-Force saldırılarıdır. Bu saldırılarda belli bir limite kadar tüm parola ihtimalleri test edilir. Bunun için de karakter sayısının artması tahmin edilebilir basit parolalar kullanımının bir nebze olsun önüne geçer.
Sonuç olarak minimum karakter sayısının sınırlanması ehven olsa da yeterli değildir. Çünkü burada hash değerlerinin güvenliği söz konusuysa Bcrypt, PBKDF2 ve Argon2 gibi daha modern algoritmalar kullanılmalı ve salting (her parolaya eklenen rastgele bir değer) gibi yöntemler tercih edilmelidir [1].
Parola Geçerlilik Süresi
Parolaların ele geçirilme ihtimali doğrultusunda kullanıcılar periyodik olarak parolalarını güncellemeye zorlanır. Burada genellikle 2,3 aylık periyodlar belirlenir. Ancak bu güncelleme beklenildiği gibi olmaz. Politikaları atlatmak için bir karakterin değişmesi yeterlidir. Sonuçta yeni parola çoğu zaman eski parolanın yeni bir versiyonu olacaktır. Diğer taraftan bu değişiklik parolanın ele geçirilmesi varsayımı ile yapılmaya zorlanıyordu. O halde parolanın ele geçirilmesi durumunda bu iki veya üç aylık periyod sonuna kadar hala saldırganlara tanınan bir süre olacaktır. Dolayısıyla periyodik olarak parolanın değiştirilmesi mahiyeti doğrultusunda etkin bir yöntem değildir. NIST [1], NCSC [2] ve Microsoft [3] gibi otoriteler tarafından parola geçerlilik süresinin uygulanması önerilmemektedir.
Bunun yanında parola değişikliği eski parolanın bir versiyonu olacağı için ele geçirilen parolalar aracılığıyla daha akıllı Brute-Force saldırıları ortaya çıkmaktadır. Brute-Force saldırılarıyla yapılacak binlerce test sayısı çok daha az test sayısına ve çok daha yüksek başarı oranına ulaşmaktadır.
Parola Karmaşıklığı
Parola karmaşıklığı büyük harf, küçük harf, rakam ve özel karakterlerden oluşan bir kombinasyondur. Burada köşeli parantez, kesme işareti…vb gibi bazı özel karakter kullanımına izin verilmez. Bunun gerekçesi ise bu tarz karakterlerin XSS ve SQL injection gibi saldırı yöntemlerinde kullanılmasıdır. Oysaki bu tarz karakterlerin engellenmesi web sitesinin güvenlik profili hakkında saldırganlara önemli bir ipucu vermektedir. Bu nedenle bu karakterlerin engellenmesi yerine XSS saldırı riski için ara yüz üzerinde parolanın görünürlüğünün kapatılması daha önemlidir. SQL injection riskine karşı parametreli sorgular kullanılmalı; parola TLS ile sunucuya ulaştıktan sonra sunucuda benzersiz salt ve uygun bir parola hash fonksiyonuyla işlenmelidir. NIST [1] tarafından boşluk dahil tüm ASCII [RFC 20] karakterlerinin parola için kullanılabiliyor olması önerilmektedir.
Parola karmaşıklığı ile tahmini zor ve güvenli bir parola belirlenmiş olduğu varsayılır. Bu ilkelere göre “Password.1” karmaşıklık gerekliliğini sağlayan “güvenli” bir paroladır. Ancak kontrol ettiğimiz de farklı veri setlerinde yaklaşık 7000 kez yer aldığını görüyoruz. “Password.1”in yaygın bir kullanıma sahip olduğu anlamını çıkarabiliriz. Bu parola saldırılarında da yaygın olarak kullanılacağı anlamına gelmektedir.
Sonuç olarak parola karmaşıklığının saldırganlara parolalar hakkında ipucu vermek dışında bir katkısı yoktur. NIST [1] ve Microsoft [3] tarafından parola karmaşıklığının parola güvenliği konusunda bir katkısı olmadığı belirtilmektedir.
Microsoft’un bu konuda şöyle bir açıklaması vardır:
“Çoğu insan benzer parola kalıplarını kullanır (örneğin, ilk karakter büyük harf, son karakter sembol ve son iki karakter sayı). Siber suçlular bunu bildikleri için, “$” yerine “s”, “@” yerine “a” ve “1” yerine “l” gibi yaygın değişikliklerle sözlük saldırılarını gerçekleştirirler. Bu tahmin edilebilir kalıplar, parola güvenliğini ciddi şekilde zayıflatır ve saldırganların parolaları daha kolay kırmasına neden olur.”
Eski Parola Kullanımı
Parola politikalarında yer alan bir diğer ilke de geçmiş parola kullanımın engellenmesidir. Kullanıcılar her parola değişiminde kozmetik bir takım değişikliklerle parolanın aslını korumaya yönelik alışkanlık sergilemektedir. Örneğin “Password.1” olan parolayı “Password.2” olarak değiştirmek gibi. Sonuç olarak bu politika ilkesi beklenildiği gibi tamamen yenilenmiş bir parolanın eski parolanın yerini almasıyla sonuçlanmamaktadır.
Eski parola politikaları güvenlik anlamında artık etkili değildir. Parola yöneticileri (Password Manager), captca ve iki faktörlü kimlik doğrulama (MFA) gibi çözümler parola güvenliği için artık zorunludur. Düzenli parola değişiminin parola güvenliğine bir katkısı olmayıp bunun yerine davranış analizine dayalı güvenlik önlemleri tercih edilmesi gerekmektedir. Ayrıca, kullanıcıların kendi parolalarını yaratmalarından ziyade otomatik üretilmiş parolaların tercih edilmesi de çok önemlidir.
[1] NIST SP 800–63 Digital Identity Guidelines
[2] https://www.ncsc.gov.uk/section/advice-guidance/password
[3] https://learn.microsoft.com/en-us/microsoft-365/admin/misc/password-policy-recommendations?view=o365-worldwide
