Bir web sitesinde kimlik doğrulaması yapmak için bir kullanıcı adı ve şifre sağlamanız gerekir. Site daha sonra sağladığınız kimlik doğrulama ayrıntılarını veritabanında sakladığı ayrıntılarla karşılaştırarak kontrol eder. Ayrıntılar eşleşirse, erişim izni verilir. Ayrıntılar eşleşmezse erişim reddedilir.
Ne yazık ki, veri ihlalleri nispeten yaygın bir olaydır. Veri ihlalleri büyük bir sorun olabilir çünkü en sık hedeflenen veri parçalarından biri kullanıcı verileri, özellikle de kullanıcı adları ve parolalar listesidir. Parolalar olduğu gibi düz metin olarak saklanırsa, veritabanına erişimi olan herkes başka bir kullanıcının hesabına erişebilir. Sanki bir apartmandaki her kapının anahtarıyla birlikte bir anahtarlık verilmiş gibi.
İlk etapta veri ihlallerini önlemek için çok çaba sarf edilirken, derinlemesine bir savunma stratejisi önerilir. Spesifik olarak, güvenlik tavsiyesi, parolaların yalnızca parolanın karma değeri saklanacak şekilde özetlenmesi gerektiğini savunur. Hash işlevi, her zaman aynı girişi aynı çıktıya dönüştüren tek yönlü bir işlevdir. Girdideki küçük bir değişiklik bile tamamen farklı bir çıktı üretir. Kritik olarak, işlevi tersine çevirmenin ve çıktılanan hash'i orijinal girdiye geri döndürmenin bir yolu yoktur. Ancak yapabileceğiniz şey, yeni bir girdiye hash uygulamak ve çıktının veritabanında saklanan hash ile eşleşip eşleşmediğine bakmaktır. Varsa, gerçek şifreyi bilmeden şifrenin eşleştiğini bilirsiniz.
Yararlı bir şekilde bu, aynı zamanda, bir saldırgan veritabanını ihlal ederse, hemen kullanışlı parolaların bir listesini alamamaları, bunun yerine karmaları almaları anlamına gelir. Bu karmaları kullanabilmek için kırılmaları gerekir.
Smarts ile şifre karmalarını kırma
Bir parola karmasının kırılması, karmanın temsil ettiği orijinal parolanın ne olduğunu bulma işlemidir. Çünkü hash işlevini tersine çevirmenin ve hash'i parolaya dönüştürmenin bir yolu yoktur. Hash kırmanın tek yolu şifreyi tahmin etmektir. Yöntemlerden biri kaba kuvvet saldırısı kullanmaktır. Bu, kelimenin tam anlamıyla olası her şifreyi denemeyi içerir. Bu, "a" dan başlamak, her iki durumda da her harfi, her sayıyı ve sembolü denemek anlamına gelir. Ardından saldırganın tüm iki karakterli kombinasyonları, üç karakterli kombinasyonları vb. denemesi gerekir. Olası karakter kombinasyonlarındaki artış, her karakter eklediğinizde katlanarak artar. Bu, güçlü GPU kırma donanımlarıyla hızlı karma algoritmalar kullanıldığında bile uzun parolaları verimli bir şekilde tahmin etmeyi zorlaştırır.
Örneğin, sitenin parola gereksinimlerine bakılarak ve izin verilemeyecek kadar kısa veya sayı içermeyen parolaları denemeyerek bir miktar çabadan tasarruf edilebilir. Bu biraz zaman kazandıracak ve yine de izin verilen tüm parolaları deneyen bir kaba kuvvet saldırısı sınıfına uyuyor. Kaba kuvvet saldırıları yavaşken, - çok fazla işlem gücüyle yeterince uzun süre bırakılırsa - tüm olası kombinasyonlar deneneceği için sonunda herhangi bir şifreyi kıracaktır.
Kaba kuvvet saldırılarıyla ilgili sorun, çok akıllı olmamalarıdır. Sözlük saldırısı, çok daha fazla hedeflenen bir değişkendir. Herhangi bir olası parolayı denemek yerine, belirtilen parolaların bir listesini dener. Bu tür bir saldırının başarısı, parola listesine ve söz konusu sözlüğe bağlıdır.
Eğitimli tahminler yapmak
Parola sözlükleri genellikle diğer veri ihlallerinden kaynaklanan önceden kırılmış parolalardan oluşturulur. Bu sözlükler binlerce veya milyonlarca giriş içerebilir. Bu, insanların benzersiz parolalar oluşturmada kötü olduğu kavramına dayanmaktadır. Veri ihlallerinden elde edilen kanıtlar maalesef bunun da böyle olduğunu gösteriyor. İnsanlar hala "şifre" kelimesinin varyasyonlarını kullanıyor. Diğer yaygın konular spor takımları, evcil hayvan isimleri, yer isimleri, şirket isimleri, işinden nefret etme ve tarihe dayalı şifrelerdir. Bu sonuncusu, özellikle insanlar şifrelerini düzenli olarak değiştirmek zorunda kaldıklarında ortaya çıkma eğilimindedir.
Bir parola sözlüğü kullanmak, kaba kuvvet saldırısına kıyasla yapılması gereken tahmin sayısını büyük ölçüde azaltır. Parola sözlükleri ayrıca hem kısa hem de daha uzun parolalar içerme eğilimindedir; bu, yıllarca veya kaba kuvvet tahminleriyle bile ulaşılamayan bazı parolaların denenebileceği anlamına gelir. Yaklaşım da başarılı oluyor. İstatistikler, veri ihlaline ve kullanılan sözlüğün boyutuna ve kalitesine göre değişir ancak başarı oranları %70'i geçebilir.
Kelime yönlendirme algoritmaları ile başarı oranları daha da yükseltilebilir. Bu algoritmalar, şifre sözlüğündeki her kelimeyi alır ve ardından biraz değiştirir. Bu değişiklikler, standart karakter değiştirmeler ve sondaki sayılar veya semboller ekleme eğilimindedir. Örneğin, insanların "e" harfini "3" ile ve "s" harfini "$" ile değiştirmesi veya sonuna bir ünlem işareti eklemesi yaygındır. Kelime yönetme algoritmaları, şifre sözlüğündeki her girişin kopyalarını oluşturur. Her kopya, bu karakter değişimlerinin farklı bir varyasyonuna sahiptir. Bu, tahmin edilecek şifre sayısını önemli ölçüde artırır ve ayrıca başarı oranını bazı durumlarda %90'ın üzerine çıkarır.
Çözüm
Sözlük saldırısı, kaba kuvvet saldırısının hedeflenen bir çeşididir. Tüm olası karakter kombinasyonlarını denemek yerine, karakter kombinasyonlarının bir alt kümesi test edilir. Bu alt küme, daha önce bulunmuş ve gerekirse geçmiş veri ihlallerinde kırılmış parolaların bir listesidir. Bu, daha önce kullanılmış ve bazı durumlarda sık görülen şifreleri kapsarken yapılacak tahmin sayısını büyük ölçüde azaltır. Sözlük saldırısı, kaba kuvvet saldırısı kadar yüksek bir başarı oranına sahip değildir. Ancak bu, sınırsız zamanınız ve işlem gücünüz olduğunu varsayar. Bir sözlük saldırısı, bir kaba kuvvet saldırısından çok daha hızlı bir şekilde oldukça yüksek bir başarı oranı elde etme eğilimindedir. Bunun nedeni, son derece olası olmayan karakter kombinasyonlarıyla zaman kaybetmemesidir.
Parola oluştururken yapmanız gereken en önemli şeylerden biri, parolanın bir kelime listesinde yer almamasını sağlamaktır. Bunu yapmanın bir yolu karmaşık bir parola oluşturmak, diğeri ise uzun bir parola oluşturmaktır. Genellikle en iyi seçenek, birkaç kelimeden oluşan uzun bir parola oluşturmaktır. Bu kelimelerin tahmin edilebileceği gibi gerçek bir cümle oluşturmaması önemlidir. Tamamen ilgisiz olmalılar. Mutlak minimum olarak 8 olmak üzere 10 karakterden uzun bir şifre seçmeniz önerilir.