Gelişmiş Şifreleme Rehberi: AES, RSA, ECC ve Kuantum Sonrası Kriptografi

Bu kapsamlı rehber, modern güvenli iletişim sistemlerinde kullanılan gelişmiş şifreleme kavramlarını, algoritmalarını ve protokollerini inceliyor. Geliştiriciler ve güvenlik uzmanları için ideal.

Not: Bu rehber, temel şifreleme kavramlarına aşinalık varsayar. Yeni başlayanlar için Yeni Başlayanlar İçin Güvenlik İpuçları rehberimizle başla.

Simetrik Şifreleme Algoritmaları

AES (Advanced Encryption Standard)

Simetrik şifrelemenin altın standardı, 2001'de ABD hükümeti tarafından kabul edildi.

Temel Özellikler

  • Anahtar boyutları: 128, 192 veya 256 bit
  • Blok boyutu: 128 bit
  • Turlar: Anahtar boyutuna bağlı olarak 10, 12 veya 14
  • Performans: Yüksek oranda optimize edilmiş, donanım hızlandırma mevcut

Yaygın Modlar

  • GCM (Galois/Counter Mode): Kimlik doğrulamalı şifreleme, çoğu kullanım durumu için önerilir
  • CBC (Cipher Block Chaining): Geleneksel mod, ayrı MAC gerektirir
  • CTR (Counter): Paralelleştirilebilir, bazı protokollerde kullanılır

ChaCha20

Daniel J. Bernstein tarafından tasarlanan modern akış şifresi, AES alternatifi olarak giderek daha popüler.

Avantajlar

  • Donanım hızlandırması olmayan cihazlarda AES'ten daha hızlı
  • Sabit zamanlı uygulama (zamanlama saldırılarına karşı dirençli)
  • Basit tasarım, güvenli bir şekilde uygulaması daha kolay
  • Kimlik doğrulamalı şifreleme için Poly1305 ile birlikte kullanılır

Asimetrik Şifreleme

RSA (Rivest-Shamir-Adleman)

Anahtar değişimi ve dijital imzalar için yaygın olarak kullanılır.

Temel Hususlar

  • Minimum anahtar boyutu: 2048 bit (uzun vadeli güvenlik için 4096 bit önerilir)
  • Performans: Simetrik şifrelemeye kıyasla hesaplama açısından pahalı
  • Padding şemaları: Şifreleme için OAEP, imzalar için PSS kullan
  • Kuantum tehdidi: Kuantum bilgisayarlara karşı savunmasız (Shor algoritması)

Elliptic Curve Cryptography (ECC)

Daha küçük anahtar boyutlarında eşdeğer güvenlikle RSA'ya göre daha verimli alternatif.

Popüler Eğriler

  • Curve25519: ECDH anahtar değişimi için tasarlandı, yaygın olarak benimsenmiş
  • Ed25519: Dijital imzalar için, SSH ve GPG'de kullanılır
  • P-256 (secp256r1): NIST standardı, yaygın olarak desteklenir
  • P-384, P-521: Daha yüksek güvenlik seviyeleri

RSA'ya Göre Avantajlar

  • 256-bit ECC ≈ 3072-bit RSA güvenliği
  • Daha hızlı hesaplama
  • Daha küçük anahtarlar ve imzalar
  • Daha düşük bant genişliği ve depolama gereksinimleri

Anahtar Değişim Protokolleri

Diffie-Hellman (DH)

İki tarafın güvenli olmayan bir kanal üzerinden paylaşılan bir sır oluşturmasını sağlar.

Varyantlar

  • Klasik DH: Orijinal uygulama
  • ECDH: Elliptic Curve versiyonu (daha verimli)
  • X25519: Curve25519 kullanan modern ECDH

Perfect Forward Secrecy (PFS)

Uzun vadeli anahtarlar ele geçirilse bile geçmiş iletişimlerin güvenli kalmasını sağlar.

Uygulama

  • Her oturum için geçici anahtar çiftleri oluştur
  • Oturum anahtarlarını kullandıktan sonra yok et
  • TLS 1.3, Signal Protocol vb.'de kullanılır

Hash Fonksiyonları

SHA-2 Ailesi

  • SHA-256: 256-bit çıktı, yaygın olarak kullanılır
  • SHA-384, SHA-512: Daha yüksek güvenlik seviyeleri
  • Uygulamalar: Dijital imzalar, sertifika doğrulama, şifre hash'leme (uygun tekniklerle)

SHA-3 (Keccak)

  • SHA-2'den farklı yapı (sponge fonksiyonu)
  • Uzunluk genişletme saldırılarına karşı dirençli
  • Yüksek güvenlik marjı gerektiren uygulamalar için uygun

BLAKE2/BLAKE3

  • SHA-2 ve SHA-3'ten daha hızlı
  • Kriptografik olarak güvenli
  • BLAKE3: Yüksek oranda paralelleştirilebilir, büyük veriler için mükemmel

Key Derivation Functions (KDF'ler)

PBKDF2 (Password-Based Key Derivation Function 2)

  • Amaç: Şifrelerden kriptografik anahtarlar türetmek
  • İterasyonlar: Minimum 100.000 (OWASP önerisi)
  • Kullanım durumu: Şifre depolama, anahtar türetme

Argon2

Password Hashing Competition'ın (2015) kazananı, yeni uygulamalar için önerilir.

Varyantlar

  • Argon2id: Hibrit (çoğu kullanım durumu için önerilir)
  • Argon2i: Yan kanal saldırılarına karşı optimize edilmiş
  • Argon2d: GPU saldırılarına karşı maksimum direnç

scrypt

  • Bellek yoğun fonksiyon (donanım saldırılarına karşı dirençli)
  • Litecoin, Tarsnap tarafından kullanılır
  • Güvenlik ve uyumluluk arasında iyi denge

Message Authentication Codes (MAC'ler)

HMAC (Hash-based MAC)

  • Hash fonksiyonunu gizli anahtarla birleştirir
  • Kimlik doğrulama ve bütünlük sağlar
  • Yaygın: HMAC-SHA256, HMAC-SHA512

Poly1305

  • Tek kullanımlık kimlik doğrulayıcı
  • Kimlik doğrulamalı şifreleme için ChaCha20 ile kullanılır
  • Hızlı ve sabit zamanlı

Kimlik Doğrulamalı Şifreleme

Neden Önemli

Şifreleme tek başına bütünlüğü garanti etmez. Bir saldırgan, şifreli metni tespit edilmeden değiştirebilir. Kimlik doğrulamalı şifreleme bunu çözer.

AEAD (Authenticated Encryption with Associated Data)

  • AES-GCM: En yaygın desteklenen
  • ChaCha20-Poly1305: Mobil cihazlarda daha iyi
  • AES-CCM: Bazı kablosuz protokollerde kullanılır

Dijital İmzalar

RSA İmzaları

  • Padding: PSS (Probabilistic Signature Scheme) kullan
  • Hash fonksiyonu: SHA-256 veya daha yüksek
  • Anahtar boyutu: Minimum 2048 bit

ECDSA (Elliptic Curve Digital Signature Algorithm)

  • RSA'dan daha küçük imzalar
  • Dikkatli nonce üretimi gerektirir (zayıf RNG = ele geçirilmiş anahtar)
  • Deterministik varyant (RFC 6979) önerilir

Ed25519

  • Deterministik (RNG gerektirmez)
  • Hızlı imza üretimi ve doğrulama
  • Küçük imzalar (64 bayt)
  • Yan kanal saldırılarına karşı dirençli

Modern Protokoller

Signal Protocol

Signal, WhatsApp, Facebook Messenger tarafından kullanılan son teknoloji uçtan uca şifreleme protokolü.

Temel Özellikler

  • Double Ratchet: Anahtarları sürekli günceller
  • Perfect Forward Secrecy: Geçmiş mesajlar güvenli kalır
  • Post-Compromise Security: Anahtar ele geçirilmesinden kurtulur
  • Asenkron: Alıcı çevrimdışı olsa bile çalışır

TLS 1.3

Transport Layer Security protokolünün en son sürümü.

İyileştirmeler

  • Zayıf algoritmalar ve cipher suite'ler kaldırıldı
  • Her zaman forward secrecy sağlar
  • Daha hızlı handshake (1-RTT, 0-RTT seçeneği)
  • Şifrelenmiş Server Hello

Noise Protocol Framework

Güvenli iletişim sistemleri oluşturmak için modern kriptografik protokol çerçevesi.

Uygulamalar

  • WireGuard VPN
  • Lightning Network
  • I2P mesajlaşma

Post-Quantum Cryptography

Tehdit

Kuantum bilgisayarlar, Shor algoritmasını kullanarak RSA ve ECC'yi kırabilir. Simetrik algoritmalar daha az etkilenir ancak daha büyük anahtarlar gerektirir.

NIST Post-Quantum Adayları

  • Kyber: Lattice tabanlı anahtar kapsülleme
  • Dilithium: Lattice tabanlı dijital imzalar
  • SPHINCS+: Hash tabanlı imzalar

Geçiş Stratejisi

  • Hibrit yaklaşım: Klasik ve post-quantum algoritmaları birleştir
  • Simetrik anahtar boyutlarını 256 bit'e çıkar
  • NIST standardizasyon sürecini takip et
  • Algoritma çevikliği için plan yap

Uygulama En İyi Pratikleri

Kendi Kripton Geliştirme

Yerleşik, hakemli kütüphaneleri kullan:

  • libsodium: Üst düzey, kullanımı kolay
  • OpenSSL: Kapsamlı, yaygın olarak desteklenir
  • BoringSSL: Google'ın OpenSSL fork'u
  • Ring: Rust kriptografi kütüphanesi

Anahtar Yönetimi

  • Kritik anahtarlar için donanım güvenlik modülleri (HSM) kullan
  • Anahtar rotasyon politikaları uygula
  • Anahtarları asla kaynak koduna göm
  • Birden fazla amaç için anahtar türetme kullan
  • Anahtarları kullandıktan sonra bellekten güvenli bir şekilde sil

Güvenli Rastgele Sayı Üretimi

  • Kriptografik olarak güvenli RNG (CSPRNG) kullan
  • Asla standart rand() fonksiyonlarını kullanma
  • İşletim sistemi RNG'leri: /dev/urandom (Linux), CryptGenRandom (Windows)
  • Dile özgü: crypto.randomBytes (Node.js), secrets modülü (Python)

Zamanlama Saldırısı Önleme

  • Sırlar için sabit zamanlı karşılaştırma kullan
  • Gizli verilere dayalı dallanmadan kaçın
  • Önbellek zamanlama saldırılarının farkında ol
  • Zamanlama saldırısı direnci ile tasarlanmış kütüphaneler kullan

Test ve Doğrulama

Güvenlik Denetimleri

  • Düzenli penetrasyon testleri
  • Güvenlik uzmanları tarafından kod incelemeleri
  • Üçüncü taraf güvenlik denetimleri
  • Bug bounty programları

Uyumluluk

  • FIPS 140-2/3: ABD hükümeti standardı
  • Common Criteria: Uluslararası güvenlik sertifikasyonu
  • PCI DSS: Ödeme kartı endüstrisi gereksinimleri

İleri Öğrenim İçin Kaynaklar

Kitaplar

  • "Cryptography Engineering" - Ferguson, Schneier ve Kohno
  • "Serious Cryptography" - Jean-Philippe Aumasson
  • "Applied Cryptography" - Bruce Schneier

Çevrimiçi Kaynaklar

  • Cryptopals Crypto Challenges
  • Stanford'un Cryptography kursları (Coursera)
  • IACR ePrint Archive
  • Crypto Stack Exchange
Şifrelemeyi çalışırken gör: SecretNote, mesajlarını korumak için güvenli anahtar türetme ile AES-256-GCM şifrelemesi kullanır. Hemen dene!