Hash Kırma ve Parola Denetimi
Hash türlerini tanıyın, yalnızca kendi laboratuvar hash’leriniz üzerinde John the Ripper ve Hashcat ile parola dayanıklılığını güvenli şekilde test edin.
1. Hash Nedir?
Hash, bir veriyi sabit uzunlukta bir özet değere dönüştüren tek yönlü matematiksel işlemin sonucudur.
Parolalar doğrudan saklanmak yerine uygun bir parola hash algoritmasıyla işlenerek saklanmalıdır.
Bu dokümandaki denemeleri yalnızca size ait test hash’leri ve açık izinli laboratuvar verileri üzerinde gerçekleştirin.
2. Hash Kırma Ne Anlama Gelir?
Hash kırma, hash değerinin doğrudan tersine çevrilmesi değildir. Aday parolalar hash’lenir ve hedef hash ile karşılaştırılır.
Yaygın yöntemler:
- Sözlük tabanlı deneme
- Kural tabanlı parola varyasyonları
- Mask tabanlı kontrollü deneme
- Önceden hesaplanmış tablolar
Bu işlemler savunma açısından zayıf parolaları belirlemek için kullanılabilir.
3. Yaygın Hash Algoritmaları
| Algoritma | Durum | Not |
|---|---|---|
| MD5 | Güvensiz | Çok hızlıdır ve parola saklama için uygun değildir. |
| SHA-1 | Güvensiz | Parola saklama için önerilmez. |
| SHA-256 | Tek başına yetersiz | Hızlı olduğu için parola hash’i olarak doğrudan kullanılmamalıdır. |
| bcrypt | Uygun | Maliyet faktörü ile yavaşlatılabilir. |
| scrypt | Uygun | Bellek maliyetli bir algoritmadır. |
| Argon2id | Önerilen | Modern parola hash algoritmalarındandır. |
4. Salt Nedir?
Salt, her parola için rastgele üretilen ve hash işlemine eklenen benzersiz değerdir.
Salt kullanımı aynı parolaya sahip kullanıcıların farklı hash değerleri üretmesini sağlar ve önceden hesaplanmış tablo saldırılarını zorlaştırır.
Salt gizli olmak zorunda değildir; benzersiz ve yeterince rastgele olması gerekir.
5. Güvenli Laboratuvar Gereksinimleri
- Kali Linux veya test amaçlı Linux sistemi
- Size ait örnek parola ve hash dosyaları
- John the Ripper veya Hashcat
- Küçük ve kontrollü sözlük dosyası
- İzole laboratuvar ortamı
- Gerçek kullanıcı verisi içermeyen test verileri
6. John the Ripper Kurulumu
Paket listesini güncelleyin:
sudo apt update
John the Ripper paketini yükleyin:
sudo apt install john -y
Kurulumu doğrulayın:
john --list=build-info
7. Hashcat Kurulumu
Hashcat paketini yükleyin:
sudo apt install hashcat -y
Sürüm bilgisini kontrol edin:
hashcat --version
8. Zararsız Test Hash’i Oluşturma
Laboratuvar için yalnızca size ait örnek bir parolanın SHA-256 hash değerini oluşturabilirsiniz:
printf 'LabParola123!' | sha256sum
Hash değerini dosyaya kaydetmek için:
printf 'LabParola123!' | sha256sum | awk '{print $1}' > lab-hash.txt
9. Küçük Test Sözlüğü Hazırlama
Yalnızca laboratuvar parolanızı içeren küçük bir test sözlüğü oluşturun:
cat > lab-wordlist.txt << 'EOF'
Parola123
Deneme123
LabParola123!
GuvenliTest2026
EOF
Dosyayı kontrol edin:
cat lab-wordlist.txt
10. John ile Güvenli Sözlük Denetimi
Yalnızca oluşturduğunuz laboratuvar hash’i üzerinde sözlük testi yapın:
john --format=Raw-SHA256 --wordlist=lab-wordlist.txt lab-hash.txt
Sonucu görüntülemek için:
john --show --format=Raw-SHA256 lab-hash.txt
11. Hashcat ile Güvenli Sözlük Denetimi
SHA-256 laboratuvar hash’i için Hashcat modu
1400 kullanılabilir:
hashcat -m 1400 -a 0 lab-hash.txt lab-wordlist.txt
Bulunan sonucu göstermek için:
hashcat -m 1400 lab-hash.txt --show
12. Hashcat Mod Mantığı
| Seçenek | Açıklama |
|---|---|
| -m | Hash türünü belirler. |
| -a 0 | Sözlük tabanlı denetim modudur. |
| --show | Daha önce bulunan sonuçları gösterir. |
| --status | İşlem durumunu görüntüler. |
13. Hash Türünü Belirleme
Hash uzunluğu ve biçimi algoritma hakkında ipucu verebilir, ancak kesin tespit sağlamaz.
| Örnek uzunluk / biçim | Olası tür |
|---|---|
| 32 hex karakter | MD5 olabilir |
| 40 hex karakter | SHA-1 olabilir |
| 64 hex karakter | SHA-256 olabilir |
$2a$,
$2b$
|
bcrypt |
$argon2id$ |
Argon2id |
Uygulamanın kaynak kodu ve parola saklama yapılandırması en güvenilir bilgiyi sağlar.
14. Performans ve Donanım
Hash denetim hızı kullanılan algoritmaya ve donanıma bağlıdır.
- MD5 ve SHA ailesi çok hızlıdır.
- bcrypt, scrypt ve Argon2 özellikle yavaş olacak şekilde tasarlanmıştır.
- GPU hızlı hash’lerde önemli performans sağlayabilir.
- Bellek maliyetli algoritmalar GPU avantajını azaltabilir.
Parola hash algoritmasının yavaş olması saldırganın deneme hızını azaltır.
15. Güçlü Parola Özellikleri
- En az 14–16 karakter uzunluk
- Tahmin edilmesi zor kelime kombinasyonları
- Her hesap için benzersiz parola
- Kişisel bilgi içermemesi
- Parola yöneticisiyle üretilmesi ve saklanması
- MFA ile desteklenmesi
16. Kurumsal Parola Politikası
| Politika | Öneri |
|---|---|
| Minimum uzunluk | En az 14 karakter |
| Yeniden kullanım | Farklı hesaplarda aynı parola kullanılmamalı |
| Sızıntı kontrolü | Bilinen ihlal parolaları engellenmeli |
| MFA | Kritik hesaplarda zorunlu olmalı |
| Parola yöneticisi | Kurumsal olarak desteklenmeli |
| Zorunlu periyodik değişim | Risk veya ihlal yoksa gereksiz sık değişimden kaçınılmalı |
17. Uygulamalar İçin Güvenli Parola Saklama
- Argon2id, bcrypt veya scrypt kullanın.
- Her parola için benzersiz salt üretin.
- Uygun maliyet parametreleri belirleyin.
- Parolayı şifrelemek yerine hash’leyin.
- MD5, SHA-1 veya doğrudan SHA-256 kullanmayın.
- Gerekirse sunucu tarafında pepper kullanın.
- Hash parametrelerini zaman içinde yükseltin.
18. Argon2id Örneği
Python’da Argon2id ile parola hash’leme örneği:
from argon2 import PasswordHasher
ph = PasswordHasher()
password_hash = ph.hash("GuvenliTestParolasi")
print(password_hash)
Parola doğrulaması için kütüphanenin kendi doğrulama fonksiyonu kullanılmalıdır.
19. bcrypt Örneği
Python bcrypt örneği:
import bcrypt
password = b"GuvenliTestParolasi"
password_hash = bcrypt.hashpw(
password,
bcrypt.gensalt()
)
print(password_hash)
20. Etik Kullanım İlkeleri
- Gerçek kullanıcılara ait hash dosyalarını izinsiz test etmeyin.
- Sızdırılmış parola verilerini indirmeyin veya paylaşmayın.
- Bulunan parolaları gerçek hesaplarda denemeyin.
- Test sonuçlarını yalnızca yetkili kişilerle paylaşın.
- Laboratuvar dosyalarını çalışma sonunda silin.
- Parola güvenliği testini kullanıcıları cezalandırmak için kullanmayın.
21. Laboratuvar Temizliği
Test dosyalarını listeleyin:
ls -lh lab-hash.txt lab-wordlist.txt
Artık gerekli değilse silin:
rm -f lab-hash.txt lab-wordlist.txt
22. Sık Karşılaşılan Hatalar
No password hashes loaded
Hash dosyasının biçimini ve seçilen formatı kontrol edin.
Token length exception
Hash türü ile seçilen Hashcat modunun uyuşmadığını gösterebilir.
john komutu bulunamadı
sudo apt install john -y
hashcat komutu bulunamadı
sudo apt install hashcat -y
GPU algılanmıyor
Sürücü ve OpenCL desteğini kontrol edin. Küçük laboratuvar testleri CPU ile de yapılabilir.
23. Komut Özeti
| İşlem | Komut |
|---|---|
| SHA-256 test hash’i |
printf 'LabParola123!' | sha256sum
|
| John sözlük testi |
john --format=Raw-SHA256 --wordlist=lab-wordlist.txt
lab-hash.txt
|
| John sonucu |
john --show --format=Raw-SHA256 lab-hash.txt
|
| Hashcat sözlük testi |
hashcat -m 1400 -a 0 lab-hash.txt
lab-wordlist.txt
|
| Hashcat sonucu |
hashcat -m 1400 lab-hash.txt --show
|
24. Sonuç
Bu dokümanda hash mantığı, salt kullanımı, güvenli laboratuvar hash’i oluşturma, John the Ripper ve Hashcat ile sözlük tabanlı parola denetimi ele alındı.
Parola güvenliği için modern parola hash algoritmaları, uzun ve benzersiz parolalar, parola yöneticisi ve MFA birlikte kullanılmalıdır.