Kriptografi (Cryptography) : Bilginin Gizliliği, Bütünlüğü ve Güvenli İletişimin Temelleri
Kriptografi, bilgilerin yetkisiz kişiler tarafından okunmasını, değiştirilmesini veya sahte olarak üretilmesini önlemek amacıyla matematiksel yöntemler kullanan bilim dalıdır.
Kelime kökeni Yunancadır.
Kryptos = Gizli
Graphia = Yazı
Yani anlamı:
Gizli Yazı Sanatı
Günümüzde kriptografi yalnızca şifreleme değildir.
Aşağıdaki güvenlik hizmetlerinin tamamını sağlar:
Gizlilik (Confidentiality)
Bütünlük (Integrity)
Kimlik Doğrulama (Authentication)
İnkar Edememe (Non-Repudiation)
Yetkilendirme
Güvenli Anahtar Paylaşımı
Bugün kullandığımız hemen her sistem kriptografi kullanır.
HTTPS
SSH
VPN
Wi-Fi (WPA2/WPA3)
Bankacılık
E-Devlet
Mobil uygulamalar
WhatsApp
Signal
Bitcoin
Elektronik imza
Bulut depolama
Kriptografinin Tarihçesi
Antik Çağ
İlk şifreleme yöntemleri askeri amaçlıydı.
Spartalıların Scytale Yöntemi
Silindir üzerine sarılan deri şerit kullanılırdı.
Doğru çapa sahip silindir olmadan mesaj okunamazdı.
Sezar Şifreleme (Caesar Cipher)
Julius Caesar tarafından kullanılmıştır.
Örnek
A → DB → EC → F
Mesaj
MERHABA
3 harf kaydırılır
PHUKDED
Avantaj
Basit
Dezavantaj
Kolay kırılır.
Orta Çağ
Monoalfabetik şifreler
Polialfabetik şifreler
En ünlüsü
Vigenère Cipher
300 yıl boyunca "kırılamaz şifre" olarak bilinmiştir.
II. Dünya Savaşı
Kriptografinin en önemli dönemi.
Enigma Makinesi
Almanya tarafından kullanılmıştır.
Alan Turing ve ekibi Enigma'yı çözerek savaşın seyrini değiştirmiştir.
Bu çalışma modern bilgisayar biliminin temelini oluşturmuştur.
Modern Kriptografi
1970 sonrası
Matematik tabanlı sistemlere geçildi.
DES
RSA
Diffie-Hellman
AES
ECC
SHA
TLS
Kriptografinin Amaçları
1. Gizlilik (Confidentiality)
Bilgi yalnızca yetkili kişiler tarafından okunabilir.
Örnek
E-posta
Şifrelenmeden
Merhaba Ali
Şifrelenmiş
AF23D9AA7712C98...
2. Bütünlük (Integrity)
Verinin değiştirilmediğinin garanti edilmesi.
Hash algoritmaları kullanılır.
SHA-256
3. Kimlik Doğrulama
Mesajı gerçekten gönderen kişinin doğrulanması.
Yöntemler
Dijital imza
Sertifika
HMAC
4. İnkar Edememe
Gönderen
"Daha önce bunu ben göndermedim."
diyemez.
Elektronik imza bunun için kullanılır.
Kriptografinin Temel Kavramları
Plaintext
Şifrelenmemiş veri.
Merhaba Dünya
Ciphertext
Şifrelenmiş veri.
98A3EF127BBAB...
Encryption
Şifreleme işlemi
Plaintext↓Encryption↓Ciphertext
Decryption
Şifre çözme
Ciphertext↓Decryption↓Plaintext
Cipher
Şifreleme algoritmasının kendisi.
Örneğin
AES
ChaCha20
RSA
Key (Anahtar)
Kriptografinin en önemli unsurudur.
Aynı algoritma
Farklı anahtar
↓
Tamamen farklı çıktı üretir.
Şifreleme Türleri
İki temel sistem vardır.
Kriptografi├── Simetrik└── Asimetrik
Simetrik Şifreleme
Tek anahtar kullanılır.
Gönderen↓AES↓Anahtar↓AES↓Alıcı
Şifreleme ve çözme anahtarı aynıdır.
Avantajları
Çok hızlı
Büyük dosyalar
Düşük CPU kullanımı
Dezavantajları
Anahtar paylaşımı zordur.
Simetrik Algoritmalar
AES
Günümüz standardıdır.
Anahtar boyutları
128 bit192 bit256 bit
Kullanım alanları
HTTPS
VPN
Disk şifreleme
BitLocker
FileVault
VeraCrypt
DES
56 bit
Artık güvenli değildir.
3DES
DES'in geliştirilmiş hali.
Yavaş olduğu için terk edilmektedir.
Blowfish
Bruce Schneier
64 bit blok
Twofish
AES yarışmasının finalistidir.
ChaCha20
Google tarafından yaygınlaştırılmıştır.
Mobil cihazlarda oldukça hızlıdır.
TLS ve VPN çözümlerinde yaygın olarak kullanılır.
Asimetrik Kriptografi
İki anahtar vardır.
Public KeyPrivate Key
Public Key
Herkese açıktır.
Private Key
Sadece sahibindedir.
Çalışma Mantığı
Ali
↓
Ayşe'nin Public Key'i ile şifreler
↓
İnternet
↓
Ayşe
↓
Private Key ile açar.
RSA
1977
Rivest
Shamir
Adleman
En yaygın asimetrik algoritmadır.
Anahtar
2048
3072
4096 bit
ECC (Elliptic Curve Cryptography)
RSA'dan daha küçüktür.
Daha hızlıdır.
Mobil cihazlarda yaygındır.
Örneğin
256 bit ECC
≈
3072 bit RSA güvenliği
Diffie-Hellman
Şifreleme yapmaz.
Anahtar paylaşımı sağlar.
İki taraf ortak gizli anahtar oluşturur.
VPN
SSH
TLS
bunu kullanır.
Hibrit Şifreleme
Modern sistemler tek bir algoritmaya bağlı kalmaz.
Örneğin HTTPS:
Sunucu açık anahtarını gönderir.
İstemci rastgele bir oturum anahtarı üretir.
Bu anahtarı sunucunun açık anahtarıyla şifreler.
Sunucu özel anahtarıyla çözer.
Sonraki tüm veri trafiği AES veya ChaCha20 gibi simetrik algoritmalarla korunur.
Bu yaklaşım, asimetrik şifrelemenin güvenli anahtar paylaşımını ve simetrik şifrelemenin yüksek performansını birleştirir.
Hash Fonksiyonları
Hash, veriden sabit uzunlukta bir özet (digest) üretir. Hash tek yönlüdür; yani özetten orijinal veriye geri dönülemez.
Özellikleri:
Tek yönlüdür.
Aynı girdi her zaman aynı çıktıyı üretir.
Küçük bir değişiklik tamamen farklı bir özet oluşturur (çığ etkisi).
Çarpışmalara (collision) karşı dirençli olmalıdır.
Yaygın algoritmalar:
SHA-256
SHA-384
SHA-512
SHA-3
BLAKE2
BLAKE3
Artık güvenli kabul edilmeyenler:
MD5
SHA-1
Örnek:
MerhabaSHA-2560f4a... (64 hexadecimal karakter)
Dijital İmza
Dijital imza, verinin gerçekten belirtilen kişi tarafından oluşturulduğunu ve değiştirilmediğini kanıtlar.
Temel süreç:
Mesajın hash'i alınır.
Hash değeri gönderenin özel anahtarı ile imzalanır.
Alıcı, gönderenin açık anahtarı ile imzayı doğrular.
Kullanım alanları:
Elektronik imza
Yazılım güncellemeleri
Kod imzalama
PDF imzalama
E-posta güvenliği
Dijital Sertifikalar ve PKI
Bir açık anahtarın gerçekten doğru kişiye veya kuruma ait olduğunu kanıtlamak için dijital sertifikalar kullanılır.
PKI (Public Key Infrastructure) bileşenleri:
Sertifika Otoritesi (CA)
Kayıt Otoritesi (RA)
Sertifika Depoları
İptal Listeleri (CRL)
OCSP doğrulama hizmetleri
Bir web tarayıcısı HTTPS bağlantısı kurarken sunucunun sertifikasını doğrular, sertifikanın güvenilir bir CA tarafından imzalanıp imzalanmadığını kontrol eder ve ardından güvenli iletişim başlatır.
Blok Şifreler ve Çalışma Kipleri (Modes of Operation)
AES gibi blok şifreler farklı çalışma kipleriyle kullanılabilir.
ECB (Electronic Codebook)
Aynı blok aynı çıktıyı üretir.
Desenleri gizleyemez.
Güvenli değildir.
CBC (Cipher Block Chaining)
Her blok bir önceki blokla ilişkilidir.
Başlatma Vektörü (IV) gerektirir.
Uzun yıllar yaygın olarak kullanılmıştır.
CTR (Counter Mode)
Sayaç tabanlı çalışır.
Paralel işleme uygundur.
Yüksek performans sağlar.
GCM (Galois/Counter Mode)
Hem şifreleme hem bütünlük doğrulaması sağlar.
TLS ve modern uygulamalarda en çok tercih edilen kiplerden biridir.
Anahtar Yönetimi
En güçlü algoritma bile anahtarlar kötü korunuyorsa güvenli değildir.
İyi anahtar yönetimi için:
Güçlü rastgele sayı üreteçleri kullanın.
Anahtarları düz metin olarak saklamayın.
Anahtar rotasyonu uygulayın.
Yetkisiz erişime karşı HSM veya güvenli anahtar kasaları kullanın.
Farklı amaçlar için farklı anahtarlar üretin.
Gerçek Hayatta Kriptografi Nerelerde Kullanılır?
| Teknoloji | Kullanılan Kriptografi |
|---|---|
| HTTPS | TLS, AES, ECDHE, SHA-256 |
| SSH | RSA, Ed25519, ChaCha20, AES |
| VPN | IPsec, WireGuard, AES, ChaCha20 |
| Wi-Fi | WPA2/WPA3, AES-CCMP |
| BitLocker | AES |
| FileVault | XTS-AES |
| Signal | Signal Protocol |
| Uçtan uca şifreleme (E2EE) | |
| Bitcoin | SHA-256, ECDSA |
| Git İmzalama | GPG veya SSH anahtarları |
Yaygın Saldırılar
Kaba kuvvet (Brute Force)
Sözlük saldırıları
Rainbow Table saldırıları
Ortadaki Adam (Man-in-the-Middle)
Yan kanal saldırıları (Side Channel)
Zamanlama saldırıları
Anahtar hırsızlığı
Sertifika sahteciliği
Rastgele sayı üretici zafiyetleri
Kriptografide En İyi Uygulamalar
AES-256 veya ChaCha20 gibi güncel algoritmaları tercih edin.
SHA-256, SHA-3 veya BLAKE2/BLAKE3 gibi güçlü hash fonksiyonları kullanın.
MD5, SHA-1, DES ve RC4 gibi eski algoritmalardan kaçının.
Çok faktörlü kimlik doğrulamayı (MFA) destekleyin.
Güvenilir rastgele sayı üreticileri kullanın.
Özel anahtarları güvenli donanım veya şifreli depolarda saklayın.
Sertifikaların süresini ve iptal durumunu düzenli olarak kontrol edin.
Yazılım ve kriptografik kütüphaneleri güncel tutun.
Sonuç
Kriptografi, modern bilgi güvenliğinin temel taşlarından biridir. İnternet üzerinden yapılan bankacılık işlemlerinden mobil mesajlaşmaya, bulut depolamadan elektronik imzaya kadar sayısız sistem; güvenli anahtar yönetimi, güçlü şifreleme algoritmaları, hash fonksiyonları ve dijital imzalar sayesinde güvenli çalışır.
Bir siber güvenlik uzmanı veya sistem yöneticisi için yalnızca algoritmaların isimlerini bilmek yeterli değildir. Simetrik ve asimetrik şifreleme, hibrit sistemler, hash fonksiyonları, dijital sertifikalar, PKI, anahtar yönetimi ve güvenli protokollerin nasıl birlikte çalıştığını anlamak; güvenli sistemler tasarlamak, yapılandırmak ve yönetmek için kritik öneme sahiptir.
Kriptografi, bilgiyi yetkisiz erişimden korumak, veri bütünlüğünü sağlamak ve iletişimin taraflarını doğrulamak için matematiksel yöntemler kullanan bilim dalıdır. Özellikle siber güvenlik laboratuvarlarında, ağ trafiği analizinde ve güvenli iletişim altyapılarında (SSH, VPN) karşılaştığımız şifreleme mekanizmalarının temelini oluşturur.
Bilgi güvenliğinin temelini atan üç ana unsuru (CIA Üçlüsü) sağlamak kriptografinin temel amacıdır:
Gizlilik (Confidentiality): Verinin yalnızca yetkili kişiler tarafından okunabilmesi.
Bütünlük (Integrity): Verinin iletim sırasında değiştirilmediğinin veya bozulmadığının garanti edilmesi.
Erişilebilirlik (Availability): Verinin ihtiyaç duyulduğunda yetkili kişilerce ulaşılabilir olması (doğrudan kriptografinin konusu olmasa da güvenlik mimarisinin ayrılmaz bir parçasıdır).
Kriptografi, mekanizmalarına göre üç ana kategoriye ayrılır:
1. Simetrik Şifreleme (Symmetric Encryption)
Simetrik şifrelemede, veriyi şifrelemek (encrypt) ve çözmek (decrypt) için aynı anahtar kullanılır. Hızlıdır ve büyük veri yığınlarını şifrelemek için idealdir.
Nasıl Çalışır? Gönderici, düz metni (plaintext) bir algoritma ve gizli bir anahtar kullanarak şifreli metne (ciphertext) dönüştürür. Alıcı, aynı anahtarı kullanarak şifreli metni tekrar düz metne çevirir.
Yaygın Algoritmalar: AES (Advanced Encryption Standard), DES, 3DES, ChaCha20.
Zorluk: Anahtar Dağıtımı. Taraflar iletişime geçmeden önce gizli anahtarı güvenli bir şekilde birbirlerine iletmek zorundadır. Ağa sızan bir saldırgan (örneğin Wireshark veya Tshark ile trafiği dinleyen biri) bu anahtarı ele geçirirse, tüm şifreli trafiği çözebilir.
Şifreleme mantığını temel seviyede anlamak için aşağıdaki etkileşimli aracı kullanarak klasik şifreleme algoritmalarının düz metinleri nasıl değiştirdiğini test edebilirsiniz:
2. Asimetrik Şifreleme (Asymmetric Encryption)
Asimetrik şifreleme, simetrik şifrelemenin "anahtar dağıtımı" sorununu çözer. Bu yöntemde birbiriyle matematiksel olarak bağlantılı iki farklı anahtar (Anahtar Çifti) kullanılır: Biri Herkese Açık Anahtar (Public Key), diğeri Özel Anahtar (Private Key).
Açık Anahtar (Public Key): Herkesle paylaşılabilir. Veriyi şifrelemek için kullanılır.
Özel Anahtar (Private Key): Sadece sahibinde kalmalıdır, asla paylaşılmaz. Açık anahtarla şifrelenen veriyi çözmek veya dijital imza oluşturmak için kullanılır.
Kullanım Senaryosu: Sunuculara şifresiz ve güvenli bir şekilde bağlanmak için OpenSSH yapılandırmalarında kullandığımız anahtar çiftleri (örneğin Ed25519 veya RSA anahtarları) doğrudan bu temele dayanır. İstemci, sunucuya açık anahtarını kaydeder ve bağlantı sırasında kendi bilgisayarındaki özel anahtarıyla kimliğini kanıtlar.
Yaygın Algoritmalar: RSA, ECC (Elliptic Curve Cryptography), Diffie-Hellman.
Önemli Not: Asimetrik şifreleme, simetrik şifrelemeye göre çok daha yavaştır (daha yoğun matematiksel hesaplama gerektirir). Bu nedenle modern sistemlerde (örneğin HTTPS/TLS) genellikle hibrit bir yapı kullanılır: Asimetrik şifreleme ile "simetrik oturum anahtarı" güvenli bir şekilde karşı tarafa iletilir, ardından hızlı olan simetrik şifreleme ile veri aktarımı başlar.
3. Özet Fonksiyonları (Hash Functions)
Hash fonksiyonları, herhangi bir uzunluktaki veriyi alıp, sabit uzunlukta, benzersiz bir karakter dizisine (özet) dönüştüren tek yönlü (one-way) matematiksel algoritmalardır. Şifrelemeden farkı, işlemin geriye döndürülememesidir; yani hash değerinden orijinal veriye ulaşılamaz.
| Özellik | Açıklama |
| Tek Yönlülük | Çıktıdan girdiyi bulmak hesaplama açısından imkansız olmalıdır. |
| Çarpışma Direnci | İki farklı verinin aynı hash değerini üretmesi (collision) neredeyse imkansız olmalıdır. |
| Çığ Etkisi | Girdideki tek bir karakterin (veya bitin) değişmesi, hash çıktısını tamamen değiştirmelidir. |
Kullanım Senaryosu: İşletim sistemlerinde kullanıcı parolalarının güvenli saklanması (parolaların kendisi değil, hash değerleri veritabanına kaydedilir) veya indirilen bir dosyanın bütünlüğünün doğrulanması. Ayrıca siber güvenlik CTF (Capture The Flag) yarışmalarında hash kırma (hash cracking) senaryoları sıkça karşımıza çıkar.
Yaygın Algoritmalar: SHA-256, SHA-3, MD5 (Artık güvensiz kabul edilir), bcrypt.
Kriptografik algoritmaların (AES, RSA, SHA-256) kendileri matematiksel olarak oldukça güvenlidir. Ancak veri ihlallerinin veya CTF yarışmalarındaki bayrak (flag) yakalama senaryolarının çoğu, algoritmanın kırılmasından değil, yanlış uygulanmasından (implementation flaws) kaynaklanır.
İster bir mobil uygulamanın (örneğin Flutter tabanlı bir istemcinin) API ile haberleşmesini tasarlıyor olun, ister bir laboratuvar ortamı için kasıtlı olarak zafiyetli bir web servisi yapılandırıyor olun, en sık karşılaşılan hatalar şunlardır:
1. Kaynak Kodda Sabitlenmiş Anahtarlar (Hardcoded Secrets)
Özellikle istemci tarafı uygulamalarda ve API arka uçlarında yapılan en büyük hatalardan biridir.
Senaryo: Geliştirici, veritabanı şifreleme anahtarını, API jetonlarını veya framework'ün (örneğin Django)
SECRET_KEYdeğerini doğrudan kaynak kodun (örneğinsettings.pyveya Dart dosyalarının) içine yazar.Zafiyet / Sömürü: Uygulamanın derlenmiş hali (APK vb.) tersine mühendislikle (reverse engineering) incelendiğinde bu anahtarlar kolayca çıkarılır. CTF'lerde, derlenmiş bir ikili dosyada
stringskomutu çalıştırarak veya basit statik analiz araçları kullanarak bu anahtarlar elde edilir ve JWT (JSON Web Token) imzaları taklit edilerek yetki yükseltilir (privilege escalation).
2. Zayıf Rastgele Sayı Üretimi (Insecure Randomness)
Kriptografide güvenlik, tahmin edilemezliğe dayanır. Jeton (token) oluştururken veya anahtar üretirken zayıf rastgele sayı üreteçlerinin kullanılması sistemi çökertir.
Zafiyet / Sömürü: Python gibi dillerdeki standart
randomkütüphanesi kriptografik olarak güvenli değildir (Mersenne Twister algoritmasını kullanır ve yeterince çıktı gözlemlenirse iç durumu tahmin edilebilir). API tabanlı bir sistemde oturum token'ları bu kütüphane ile üretiliyorsa, bir saldırgan bir sonraki token'ı tahmin edebilir.Doğru Uygulama: Güvenli uygulamalarda her zaman işletim sisteminin kriptografik olarak güvenli rastgele sayı üretecine (CSPRNG) başvuran kütüphaneler (örneğin Python'da
secretsmodülü veyaos.urandom) kullanılmalıdır.
3. Blok Şifrelemede Hatalı Mod Seçimi (ECB Zafiyeti)
AES gibi simetrik blok şifreleyiciler, veriyi belirli boyutlardaki bloklara (örneğin 16 byte) bölerek şifreler. Bu blokların birbirine nasıl bağlanacağı "Şifreleme Modu" ile belirlenir.
Zafiyet / Sömürü: ECB (Electronic Codebook) modu en güvensiz moddur çünkü aynı düz metin bloklarını her zaman aynı şifreli metin bloklarına dönüştürür. Bu durum, veri içindeki desenlerin (pattern) şifreli metinde de görünür kalmasına neden olur.
Doğru Uygulama: AES için CBC (Cipher Block Chaining) veya GCM (Galois/Counter Mode) gibi her blokta rastgelelik (Initialization Vector - IV) kullanan modlar tercih edilmelidir. GCM aynı zamanda bütünlük kontrolü de sağladığı için modern API tasarımlarında altın standarttır.
4. Padding Oracle Saldırıları
AES-CBC gibi modlarda, veri tam blok boyutuna ulaşmazsa son bloğa dolgu (padding) eklenir. Eğer sunucu (veya API), dolgunun hatalı olduğuna dair istemciye spesifik bir hata mesajı veya farklı bir HTTP durum kodu döndürürse, bu durum bir "Oracle" (Kahin) görevi görür.
Zafiyet / Sömürü: Saldırgan, şifreli metin üzerindeki bitleri değiştirip sunucuya gönderir ve sunucunun verdiği "Padding hatası" veya "Geçersiz token" tepkilerini analiz ederek, anahtarı bilmeden şifreli metni karakter karakter çözebilir. CTF web kategorisinde oturum çerezlerini (cookie) ele geçirmek için klasikleşmiş bir yöntemdir.
5. Zayıf veya Artık Kullanılmayan Hash Algoritmaları
Parolaları veya veri bütünlüğünü korumak için tek yönlü özet fonksiyonları kullanılır, ancak zamanla bilgisayarların işlem gücü arttığı için bazı algoritmalar ömrünü doldurmuştur.
| Algoritma | Durum | Neden Zayıf? |
| MD5 | Kırıldı | Çarpışma (collision) saldırılarına karşı savunmasızdır. İki farklı dosyanın aynı MD5 özetini üretmesi sağlanabilir. |
| SHA-1 | Kırıldı | MD5 gibi çarpışma direnci yitirilmiştir (Google'ın SHAttered saldırısı ile kanıtlandı). |
| Bcrypt / Argon2 | Güvenli | Brute-force saldırılarını yavaşlatmak için özellikle yavaş çalışacak (iş faktörü/work factor ayarlanabilir) şekilde tasarlanmışlardır. Parola saklamak için idealdir. |
CTF Senaryosu: Ele geçirilen bir Linux
/etc/shadowdosyasında MD5 hash'leri varsa, saniyeler içinde kaba kuvvet (brute-force) veya sözlük saldırıları ile kırılabilir. Modern sistemler, bu yüzden hash işleminden önce parolalara rastgele bir "Tuz (Salt)" ekler ve Bcrypt gibi yavaş fonksiyonlar kullanır.
Ağ trafiği analizi ve CTF (Capture The Flag) yarışmalarında şifreli iletişimi incelemek, protokol zafiyetlerini yakalamak veya kriptografik hataları saptamak için hem genel ağ analiz araçları hem de özelleşmiş kripto analiz kütüphaneleri kullanılır.
Bu araçlar, ham veriyi (PCAP dosyalarını) anlamlandırmak ve zayıf şifrelenmiş veya hatalı yapılandırılmış verileri çözmek için kategorilere ayrılır:
1. Ağ Trafiği ve Protokol Analiz Araçları
Ağ paketlerini yakalamak, paket akışlarını (TCP streams) yeniden birleştirmek ve protokol bazlı zafiyetleri tespit etmek için tercih edilen temel araçlar:
Wireshark: Ağ trafiği analizinde endüstri standardıdır. Yakalanan paketlerin (PCAP/PCAPNG) iceriğini görselleştirmek, HTTP/FTP gibi düz metin trafiğinden dosya çıkartmak (
Export Objects) ve şifreli TLS trafiğini çözmek için kullanılır.Tshark: Wireshark'ın komut satırı (CLI) sürümüdür. Otomatik pcap analizleri, büyük paket dosyalarının filtrelenmesi ve betiklerle (script) entegre çalışan CTF çözümleri için idealdir.
Zeek (Eski adıyla Bro): Ağ trafiğini oturum seviyesinde yapılandırılmış loglara (HTTP, DNS, SSL/TLS logları) dönüştüren güçlü bir ağ güvenlik izleme aracıdır.
Scapy: Python tabanlı ham paket oluşturma ve paket analiz kütüphanesidir. Özel protokol analizi yapmak veya PCAP dosyaları üzerinde otomatik veri aramak için sıklıkla kullanılır.
2. Kripto Analiz ve Şifre Kırma Araçları
Şifreli verileri, zayıf anahtarları veya ele geçirilen hash değerlerini analiz etmek için kullanılan araçlar:
| Araç | Kullanım Alanı | Öne Çıkan Özelliği |
| CyberChef | Encoding / Cipher Analizi | Web tabanlı "İsviçre çakısı". Base64, Hex, XOR, AES, Sezar ve veri akışı dönüşümlerini görsel olarak yapmayı sağlar. |
| Hashcat | Hash Kırma | Ekran kartı (GPU) gücünü kullanarak hash değerlerini (MD5, SHA, NTLM, Kerberos vb.) kaba kuvvet veya sözlük atağıyla kırar. |
| John the Ripper (JtR) | Hash & Arşiv Kırma | İşlemci (CPU) odaklı hash kırıcı. Özellikle şifreli ZIP, RAR ve SSH özel anahtar parolalarını çözmek için tercih edilir. |
| RsaCtfTool | RSA Zafiyet Analizi | Zayıf RSA anahtarlarını (küçük $e$ değeri, ortak asal çarpanlar $p, q$, Wiener atağı vb.) otomatik tespit edip mesajı çözer. |
| SageMath | İleri Kripto Analizi | Yanlış yapılandırılmış ECC (Elliptic Curve), LWE veya kafes tabanlı (Lattice-based) kriptografi problemlerini çözmek için Python tabanlı matematiksel ortamdır. |
3. Wireshark'ta Şifreli Trafik Nasıl Çözülür?
Siber güvenlik analizlerinde HTTPS/TLS gibi şifreli bir trafiği çözmek için doğrudan algoritmayı "kırmak" yerine genellikle istemci/sunucu tarafındaki oturum anahtarlarından (Session Keys) faydalanılır.
+-------------------+ SSLKEYLOGFILE +-------------------+| İstemci / Tarayıcı| ======================> | Wireshark |+-------------------+ (Oturum Anahtarlarını) +-------------------+ | | | 1. Şifreli TLS Trafiği (PCAP) | 2. Trafiği +-----------------------------------------------> Çözüp OkurSSLKEYLOGFILE Tespiti: İstemci (örneğin bir tarayıcı veya istemci uygulaması)
SSLKEYLOGFILEortam değişkeni tanımlanarak çalıştırıldığında, TLS oturum anahtarlarını bir metin dosyasına kaydeder.Wireshark İçe Aktarımı: Wireshark uygulamasında
Preferences -> Protocols -> TLS -> (Pre)-Master-Secret log filenameyoluna bu dosya tanıtılır.Sonuç: Wireshark, yakalanan şifreli paketleri arka planda bu anahtarlarla çözerek düz metin HTTP/2 veya uygulama trafiğini görünür kılar.
Siber güvenlik laboratuvarlarında şifreli paketleri incelemek veya ağ analiz senaryoları kurgulamak için TLS oturum anahtarlarını dışa aktarmak en güvenilir yöntemdir. Bu işlem, sunucunun özel anahtarına (private key) ihtiyaç duymadan, yalnızca o anki oturumun (session) anahtarlarını loglayarak çalışır.
Aşağıdaki adımlar, özellikle Linux (Pardus) ve macOS terminal ortamlarında bu yapıyı kurmak için kritik bir sırayı takip eder. Eğer tarayıcıyı ortam değişkenini tanımlamadan önce açarsanız, anahtarlar kaydedilmeyecektir.
Önemli İpucu:
tls_keys.logdosyasınıcat ~/tls_keys.logkomutuyla terminalden okursanız, içindeCLIENT_RANDOMile başlayan satırlar göreceksiniz. Bu satırların her biri, Wireshark'ın tek bir TLS oturumunu çözmesi için gereken spesifik simetrik anahtarı temsil eder.
Grafik arayüz (GUI) kullanmadan ağ analizini otomatikleştirmek için tshark, terminal ortamında mükemmel bir çözümdür. Wireshark'ta menüler aracılığıyla yaptığınız TLS anahtarı tanıtma işlemini, tshark komutunda -o (override/seçenek belirleme) parametresiyle tek satırda gerçekleştirebilirsiniz.
İşte şifreli trafiği çözmek ve okumak için kullanmanız gereken temel komut:
tshark -r yakalanan_trafik.pcap -o tls.keylog_file:tls_keys.log -Y "http or http2"
Parametrelerin Anlamı
-r yakalanan_trafik.pcap: Analiz edilecek ağ paketi (PCAP veya PCAPNG) dosyasını okur (read).-o tls.keylog_file:tls_keys.log: Wireshark grafik arayüzündeki ayarı terminal üzerinden ezer. Tshark'a TLS trafiğini anında çözmesi için daha önceden kaydettiğiniztls_keys.logdosyasındaki simetrik anahtarları kullanmasını söyler. (Not: Log dosyasının tam yolunu belirtmeniz gerekebilir, örneğin/home/kullanici/tls_keys.log).-Y "http or http2": Görüntüleme filtresi (display filter) uygular. Bu filtre sayesinde ekranda şifreli anlamsızApplication Datapaketlerini değil, yalnızca başarıyla çözülmüş düz metin HTTP veya HTTP/2 isteklerini görürsünüz.
İleri Seviye Tshark Kullanımı (Filtreleme ve Çıktı Alma)
Ağ trafiği analizlerinde veya CTF senaryolarında sadece paketleri ekrana dökmek genellikle yeterli olmaz. Çözülmüş trafikten hedef odaklı verileri ayıklamak için komutu daha da özelleştirebilirsiniz.
Sadece HTTP GET İsteklerini ve URL'leri Çekmek İçin:
Eğer bir kullanıcının hangi web adreslerine bağlandığını tespit etmek istiyorsanız, çıktıyı sadece belirli alanlarla sınırlayabilirsiniz:
tshark -r yakalanan_trafik.pcap -o tls.keylog_file:tls_keys.log -Y "http.request.method == GET" -T fields -e http.host -e http.request.uri
-T fields: Çıktı formatını belirli alanlarla (fields) sınırlandırır.-e <alan_adi>: Sadece komutta belirttiğiniz spesifik alanların değerlerini ekrana basar (örnekte hedef sunucu adı ve ziyaret edilen URI).
Çözülmüş HTTP Trafiğini Düz Metin Dosyasına Kaydetmek İçin:
Eğer çözülmüş trafiği daha sonra grep, awk veya diğer terminal komutlarıyla daha derinlemesine incelemek istiyorsanız, tüm ağaç detaylarını bir metin dosyasına aktarabilirsiniz:
tshark -r yakalanan_trafik.pcap -o tls.keylog_file:tls_keys.log -V > cozulmus_trafik.txt
-V: Paketlerin tüm protokol ağacı detaylarını (Verbose) yazdırır. Bu sayede HTTP başlıkları (headers), çerezler (cookies) ve veri gövdeleri (body) düz metin olarak dosyaya kaydedilir.
Yorumlar