Parola Güvenliği

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.

17 Temmuz 202618 dk okumaBaşlangıç–Orta Seviye

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.

Yetkili kullanım

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.

Önemli

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:

bash
sudo apt update

John the Ripper paketini yükleyin:

bash
sudo apt install john -y

Kurulumu doğrulayın:

bash
john --list=build-info

7. Hashcat Kurulumu

Hashcat paketini yükleyin:

bash
sudo apt install hashcat -y

Sürüm bilgisini kontrol edin:

bash
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:

bash
printf 'LabParola123!' | sha256sum

Hash değerini dosyaya kaydetmek için:

bash
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:

bash
cat > lab-wordlist.txt << 'EOF'
Parola123
Deneme123
LabParola123!
GuvenliTest2026
EOF

Dosyayı kontrol edin:

bash
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:

bash
john --format=Raw-SHA256 --wordlist=lab-wordlist.txt lab-hash.txt

Sonucu görüntülemek için:

bash
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:

bash
hashcat -m 1400 -a 0 lab-hash.txt lab-wordlist.txt

Bulunan sonucu göstermek için:

bash
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.
Savunma amacı

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:

python
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:

python
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:

bash
ls -lh lab-hash.txt lab-wordlist.txt

Artık gerekli değilse silin:

bash
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ı

bash
sudo apt install john -y

hashcat komutu bulunamadı

bash
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.

© 2026 Kemal Tokmak — Gerçek Deneyimler, Gerçek Dokümantasyon