Şifre Kırma Arenasında GPU Gücü ve Hashcat Optimizasyonları

sifre-kirma-arenasinda-73

Modern ekran kartları yalnızca oyunlardaki ejderhaları gerçekçi göstermek için çalışmıyor; binlerce paralel çekirdeği sayesinde parola denetimlerinde de ciddi hesaplama gücü sunuyor. Hashcat, bu gücü kullanarak hash karşılaştırmalarını büyük ölçekte gerçekleştiriyor. Bu yazıdaki örnekler yalnızca size ait sistemlerde veya açıkça izin verilmiş güvenlik testlerinde kullanılmalıdır. ``

GPU neden bu kadar hızlı?

CPU çekirdekleri karmaşık ve birbirinden farklı görevleri hızla yürütmek üzere tasarlanır. GPU ise aynı matematiksel işlemi çok sayıda veri üzerinde eş zamanlı uygulamakta ustadır. Bir parola adayının hash değerini hesaplamak da çoğunlukla bu modele uygundur: Adaylar birbirinden bağımsız biçimde işlenebilir.

Bir sistem saniyede $R$ aday deneyebiliyor ve toplam anahtar uzayı $N$ aday içeriyorsa kaba kuvvet saldırısının yaklaşık tamamlanma süresi:

\[T = \frac{N}{R}\]

Ortalama bulunma süresi ise adayların eşit olasılıklı olduğu varsayımıyla yaklaşık $T/2$ olur. Sekiz karakterli, yalnızca küçük harflerden oluşan bir parola için uzay $26^8$ iken karakter kümesine büyük harf ve rakam eklenmesiyle bu değer $62^8$ olur. Küçük görünen tercihlerin maliyeti üstel biçimde büyütmesi işte bu yüzden önemlidir.

Özellik CPU GPU
Çekirdek yapısı Az sayıda, güçlü Binlerce, daha basit
Paralel hash hesabı Sınırlı Çok yüksek
Dallanan algoritmalar Daha başarılı Verim kaybedebilir
Güç ve ısı Genellikle daha düşük Yoğun yükte yüksek
Uygun senaryo Karmaşık genel görevler Tekrarlanan paralel işlemler

Her hash aynı kolaylıkta değildir

MD5, SHA-1 ve NTLM gibi hızlı algoritmalar GPU üzerinde çok yüksek deneme hızlarına ulaşabilir. Bu özellik dosya doğrulamada yararlı olsa da parola saklamak için tehlikelidir. bcrypt, scrypt ve Argon2 gibi parola türetme algoritmaları ise hesaplama maliyetini artırır; özellikle scrypt ve Argon2 bellek kullanımını da yükselterek GPU paralelliğini sınırlar.

Algoritma türü Tasarım hedefi GPU karşısındaki durum
MD5 / SHA-1 Hızlı özet üretmek Parolalar için zayıf
bcrypt Ayarlanabilir işlem maliyeti Daha yavaş deneme
scrypt İşlem ve bellek maliyeti Paralelliği zorlaştırır
Argon2id Modern parola saklama Genellikle güçlü tercih

Salt kullanımı da aynı parolaların aynı hash değerini üretmesini engeller ve önceden hazırlanmış tabloların etkisini azaltır. Ancak salt, zayıf bir parolayı tek başına güçlü hâle getirmez.

Maskeleme saldırısının mantığı

Kaba kuvvet her konumu bütün karakterlerle denerken maskeleme saldırısı bilinen biçimlerden yararlanır. Örneğin kurum testinde parolaların “bir büyük harf, üç küçük harf ve iki rakam” düzenini izlediği gözlemlenmişse anahtar uzayı:

\[N = 26 \times 26^3 \times 10^2\]

olur. Bu, altı konumda tüm karakterleri denemekten çok daha küçüktür. Verim artarken sadece maskeye uymayan parolaların bulunamayacağı unutulmamalıdır.

İzinli bir laboratuvarda donanımı tanımak için önce yerleşik benchmark çalıştırılabilir:

hashcat -b

Bu komut farklı hash modlarında yaklaşık performansı ölçer; gerçek saldırı sonucu üretmez. OpenCL veya CUDA aygıtlarını listelemek için:

hashcat -I

Test amacıyla hazırlanmış bir hash dosyasında örnek maske kullanımı şöyledir:

hashcat -m 0 -a 3 test-hashes.txt '?u?l?l?l?d?d'

Burada -m 0 MD5 modunu, -a 3 maske saldırısını belirtir. ?u, ?l ve ?d sırasıyla büyük harf, küçük harf ve rakam konumlarıdır.

Güvenli optimizasyon yaklaşımı

-O seçeneği optimize çekirdekleri etkinleştirebilir; ancak desteklenen parola uzunluğunu sınırlayabilir. -w iş yükü profili performans ile masaüstü tepkiselliği arasındaki dengeyi değiştirir. En yüksek değeri körlemesine seçmek yerine sıcaklık, güç tüketimi ve sürücü kararlılığı izlenmelidir. Dar ve gerçekçi maskeler, doğru hash modu ve güncel sürücüler genellikle rastgele ayarlardan daha değerlidir.

Savunma tarafındaki sonuç nettir: Uzun ve benzersiz parolalar, parola yöneticileri, çok faktörlü kimlik doğrulama ve doğru ayarlanmış Argon2id gibi algoritmalar GPU’nun milyarlarca denemelik kas gücünü pahalı ve verimsiz hâle getirir.

Yorumlar