SSL ve Şifreleme Teknikleri

SSL ve Şifreleme Teknikleri
🔒 KZMBIM

SSL ve Şifreleme Teknikleri

Temelden Uygulamaya, Güvenlik Açıklarından Geleceğe

1 Kriptografinin Temelleri

1.1 Kriptografi Nedir?

Kriptografi, bilgilerin yetkisiz kişilerin erişimine karşı korunmasını sağlayan matematik ve bilgisayar bilimi disiplinidir. Yunanca kryptos (gizli) ve graphein (yazmak) kelimelerinden türeyen bu kavram, tarihin en eski güvenlik yöntemlerinden birini temsil eder. Modern kriptografi ise dijital çağda veri güvenliğinin temel taşı haline gelmiştir.

Bilgi güvenliğinde kriptografi dört temel amaca hizmet eder:

🔒
Gizlilik (Confidentiality)

Yetkisiz kişilerin veriye erişmesini önlemek

Bütünlük (Integrity)

Verinin iletim sırasında değiştirilmediğini garanti etmek

🪪
Kimlik Doğrulama (Authentication)

İletişim kuran tarafların kimliğini doğrulamak

📝
İnkar Edememe (Non-repudiation)

Bir tarafın gerçekleştirdiği eylemi sonradan reddetmesini engellemek

1.2 Şifreleme ile Hashleme Arasındaki Fark

🔄 Şifreleme (Encryption)
  • İki yönlüdür (geri döndürülebilir)
  • Anahtar kullanılarak yapılır
  • Veriyi okunaksız hale getirir
  • Deşifre edilebilir
  • Kullanım: Veri iletimi, depolama
  • Örnek: AES, RSA, TLS
🔑 Hashleme (Hashing)
  • Tek yönlüdür (geri döndürülemez)
  • Anahtar gerekmez
  • Sabit uzunlukta özet üretir
  • Deşifre edilemez
  • Kullanım: Parola saklama, bütünlük kontrolü
  • Örnek: SHA-256, MD5, bcrypt

1.3 Simetrik ve Asimetrik Şifreleme

Simetrik şifrelemede şifreleme ve deşifre işlemlerinin ikisinde de aynı anahtar kullanılır. Bu yöntem son derece hızlı ve verimlidir; ancak anahtarın güvenli bir şekilde paylaşılması kritik bir sorun oluşturur.

⚙️
Simetrik Şifreleme Örneği

Gönderen: Mesaj + Gizli Anahtar → Şifreli Veri
Alıcı: Şifreli Veri + Aynı Gizli Anahtar → Orijinal Mesaj
Algoritmalar: AES-128, AES-256, DES, 3DES, ChaCha20

Asimetrik şifrelemede birbirine matematiksel olarak bağlı iki farklı anahtar kullanılır: açık anahtar (public key) ve özel anahtar (private key). Açık anahtarla şifrelenen veri yalnızca o anahtara ait özel anahtarla çözülebilir.

🌐 Açık Anahtar (Public Key)
  • Herkesle serbestçe paylaşılır
  • Veriyi şifrelemek için kullanılır
  • Dijital imzayı doğrulamak için kullanılır
  • Sertifikalarda yer alır
  • Kaybedilse de güvenlik sorunu yaratmaz
🔐 Özel Anahtar (Private Key)
  • Yalnızca sahibinde bulunur
  • Şifreli veriyi çözmek için kullanılır
  • Dijital imza oluşturmak için kullanılır
  • Asla paylaşılmaz
  • Kaybedilirse tüm şifreli veriye erişim yitirilir

1.4 Klasik ve Modern Kriptografi

Klasik kriptografi, Sezar şifresi gibi karakter ikame yöntemlerine dayanır ve günümüz bilgisayarlarıyla kolayca kırılabilir. Modern kriptografi ise matematiksel karmaşıklığa —büyük asal sayıların çarpanlarına ayrılması ve ayrık logaritma problemi— dayanır. AES, RSA, ECC gibi algoritmalar günümüzün güvenlik standartlarını oluşturur.

2 SSL / TLS Protokolü

2.1 SSL Nedir ve Neden Geliştirilmiştir?

SSL (Secure Sockets Layer), Netscape Communications tarafından 1994 yılında geliştirilen güvenli iletişim protokolüdür. Web üzerinden alışveriş ve bankacılık işlemlerinin güvenliğini sağlama ihtiyacından doğmuştur. SSL’in geliştirilme motivasyonları; şifrelenmemiş HTTP trafiğinin saldırganlar tarafından okunabilmesi, sunucu kimliğinin doğrulanamaması ve aktarılan verinin bütünlüğünün garanti edilememesiydi.

2.2 TLS Nedir ve SSL’den Farkı Nedir?

TLS (Transport Layer Security), SSL 3.0’ın devamı niteliğinde olup IETF tarafından standardize edilmiştir. İsim değişikliğinin temel nedeni açık bir standart oluşturma isteğidir.

1995
SSL 2.0
⛔ Güvensiz
1996
SSL 3.0
⛔ Güvensiz
1999
TLS 1.0
⛔ Önerilmez
2006
TLS 1.1
⛔ Önerilmez
2008
TLS 1.2
⚠️ Yaygın kullanımda
2018
TLS 1.3
✅ En güncel standart

2.3 SSL/TLS Hangi Katmanda Çalışır?

SSL/TLS, OSI modelinin Oturum ve Sunum katmanları arasında, TCP/IP modelinin ise Uygulama ve Transport katmanları arasında konumlanır. TCP bağlantısı kurulduktan sonra devreye girer ve HTTP, SMTP, FTP gibi protokollere şeffaf biçimde güvenlik katmanı ekler.

3 TLS Handshake Süreci

3.1 TLS 1.2 Handshake

TLS handshake, istemci ile sunucu arasındaki güvenli bağlantının kurulmasını sağlayan müzakere sürecidir. Şifreleme algoritmaları kararlaştırılır, kimlik doğrulama gerçekleştirilir ve oturum anahtarı oluşturulur.

  • ClientHello: İstemci, desteklediği TLS sürümlerini, şifre paketlerini ve rastgele bir sayıyı (client random) gönderir.
  • ServerHello: Sunucu, seçilen TLS sürümünü ve şifre paketini, kendi rastgele sayısını (server random) gönderir.
  • Certificate: Sunucu, dijital sertifikasını (açık anahtarını) gönderir.
  • ServerHelloDone: Sunucu, ilk mesaj grubunu tamamladığını bildirir.
  • ClientKeyExchange: İstemci, pre-master secret’ı sunucunun açık anahtarıyla şifreleyerek gönderir.
  • ChangeCipherSpec: Her iki taraf da artık şifreli iletişime geçeceğini bildirir.
  • Finished: Her iki taraf da handshake’in başarıyla tamamlandığını doğrular.

3.2 TLS 1.2 vs TLS 1.3 Karşılaştırması

TLS 1.2 Handshake
  • 2 round-trip gerektirir
  • RSA anahtar değişimini destekler
  • Birçok eski şifre paketini destekler
  • Daha yavaş bağlantı kurulumu
  • Perfect Forward Secrecy opsiyoneldir
TLS 1.3 Handshake
  • Yalnızca 1 round-trip gerektirir
  • RSA anahtar değişimini kaldırmıştır
  • Eski ve güvensiz algoritmalar çıkarılmıştır
  • Çok daha hızlı bağlantı kurulumu
  • Perfect Forward Secrecy zorunludur

3.3 Perfect Forward Secrecy (PFS)

🛡️
Perfect Forward Secrecy Neden Önemli?

Her oturum için bağımsız ve geçici oturum anahtarları türetilir. Sunucunun özel anahtarı ele geçirilse dahi geçmiş oturumlar güvende kalır; zira her oturumun anahtarı o oturumla birlikte silinir.

PFS’i sağlayan algoritmalar: DHE (Diffie-Hellman Ephemeral) ve ECDHE (Elliptic Curve Diffie-Hellman Ephemeral). TLS 1.3 ile PFS artık zorunlu hale getirilmiş olup statik RSA anahtar değişimi tamamen kaldırılmıştır.

4 Kriptografik Algoritmalar

4.1 Simetrik Şifreleme Algoritmaları

AES (Advanced Encryption Standard) — 2001 yılında NIST tarafından DES’in halefi olarak standardize edilen blok şifreleme algoritmasıdır. 128 bitlik bloklar üzerinde çalışır; 128, 192 veya 256 bitlik anahtar uzunluklarını destekler. AES-256, günümüzde askeri ve devlet kurumlarının güvenilir standardı olarak kabul edilmektedir.

DES ve 3DES — DES, 1977 yılında standardize edilmiş 56 bitlik anahtar kullanan bir blok şifreleme algoritmasıdır. 1999 yılında 22 saatte kırılması üzerine güvensiz ilan edilmiştir. 3DES de bugün önerilmemektedir.

✅ AES-128 ✅ AES-256 ✅ ChaCha20 ⛔ DES ⛔ 3DES ⛔ RC4

4.2 RSA Algoritması

RSA, Ron Rivest, Adi Shamir ve Leonard Adleman tarafından 1977’de geliştirilen asimetrik şifreleme algoritmasıdır. Büyük asal sayıların çarpımını çarpanlarına ayırmanın hesaplama açısından çok güç olduğu gerçeğine dayanır.

RSA Nasıl Çalışır?
1. Büyük iki asal sayı (p ve q) seçilir
2. n = p × q hesaplanır (açık modül)
3. e değeri seçilir; (n, e) çifti açık anahtar olur
4. d değeri hesaplanır; (n, d) çifti özel anahtar olur

Şifreleme:  C = Mᵉ mod n
Deşifreleme: M = Cᵈ mod n

Güvenlik: p ve q bilinmeden d hesaplanamaz

4.3 Diffie-Hellman Anahtar Değişimi

1976’da Whitfield Diffie ve Martin Hellman tarafından önerilen bu protokol, iki tarafın güvenli olmayan bir kanal üzerinden ortak bir gizli anahtarda anlaşmasını sağlar. SSL/TLS’de ECDHE (Elliptic Curve Diffie-Hellman Ephemeral) varyantı kullanılmakta olup hem daha güçlü hem de daha hızlıdır.

4.4 Elliptic Curve Cryptography (ECC)

📐
ECC’nin RSA’ya Karşı Avantajı

256 bitlik bir ECC anahtarı, 3072 bitlik bir RSA anahtarıyla eşdeğer güvenlik sunar. Bu avantaj özellikle mobil cihazlar ve IoT sistemleri için kritik öneme sahiptir.

4.5 Hash Algoritmaları ve HMAC

Hash algoritmaları, herhangi uzunluktaki girdiyi sabit uzunlukta çıktıya dönüştürür. SHA-256 ve SHA-3 günümüzde güvenli kabul edilirken MD5 ve SHA-1 artık güvensizdir. HMAC, bir hash algoritmasını gizli bir anahtarla birleştirerek hem bütünlük hem de kimlik doğrulama sağlar; HMAC-SHA256, TLS’de mesaj bütünlüğünü doğrulamak için yaygın biçimde kullanılır.

5 Dijital Sertifikalar

5.1 Dijital Sertifika Nedir?

Dijital sertifika, bir varlığın kimliğini açık anahtarıyla ilişkilendiren elektronik belgedir. Pasaport veya nüfus cüzdanının dijital dünyadaki karşılığı olarak düşünülebilir. Güvenilir bir üçüncü taraf olan Sertifika Otoritesi (CA) tarafından imzalanır.

5.2 X.509 Sertifikası İçeriği

X.509 v3 Sertifika Alanları
• Sürüm numarası (Version)
• Seri numarası (Serial Number)
• İmza algoritması (Signature Algorithm)
• Yayımlayan CA bilgisi (Issuer)
• Geçerlilik tarihleri — başlangıç ve bitiş (Validity Period)
• Sertifika sahibi bilgisi (Subject)
• Açık anahtar (Public Key)
• Alternatif alan adları (Subject Alternative Names - SAN)
• Anahtar kullanım alanları (Key Usage)
• CA'nın dijital imzası

5.3 SSL Sertifikası Türleri

🏷️ Doğrulama Seviyesine Göre
  • DV (Domain Validation): Alan adı sahipliği doğrulanır, hızlı verilir
  • OV (Organization Validation): Kuruluş kimliği de doğrulanır
  • EV (Extended Validation): En kapsamlı doğrulama
🌐 Kapsam Genişliğine Göre
  • Single Domain: Yalnızca tek alan adını kapsar
  • Wildcard: *.example.com — tüm alt alan adlarını kapsar
  • Multi-Domain (SAN): Birden fazla alan adını tek sertifikayla kapsar

6 Güvenlik Açıkları ve Saldırılar

SSL/TLS protokolünün tarihsel gelişimi, çeşitli ciddi güvenlik açıklarının keşfedilmesi ve giderilmesiyle şekillenmiştir.

Saldırı / Açık Ciddiyet Açıklama
Heartbleed
CVE-2014-0160
Kritik OpenSSL’in TLS heartbeat uzantısındaki bellek okuma hatası. Saldırganlar sunucu belleğinden 64KB’a kadar veri okuyabiliyordu; özel anahtarlar ve parolalar dahil. 2014’te milyonlarca sunucu etkilendi.
POODLE
SSL 3.0
Yüksek SSL 3.0’ın CBC modundaki padding oracle açığı. Saldırgan, istemciyi SSL 3.0’a düşürerek şifreli HTTP çerezlerini kurtarabiliyordu. Çözüm: SSL 3.0’ı devre dışı bırakmak.
BEAST
TLS 1.0
Orta TLS 1.0’ın CBC modundaki IV tahmin edilebilirliği açığı. TLS 1.1+ ile giderildi.
CRIME / BREACH Yüksek TLS sıkıştırmasını kullanan saldırılar. Saldırgan şifreli trafikteki boyut değişimlerini izleyerek oturum token’larını kurtarabiliyordu. Çözüm: TLS sıkıştırmasını devre dışı bırakmak.
FREAK / Logjam Yüksek İhracat kısıtlı zayıf kriptografi algoritmalarının kullanımına zorlayan saldırılar. Saldırgan el sıkışma sürecini manipüle ederek zayıf anahtarların kullanılmasını sağlıyordu.
SSL Stripping
SSLstrip
Yüksek MITM saldırısının bir çeşidi. Saldırgan HTTPS bağlantısını HTTP’ye düşürür. HSTS ile önlenebilir.
Man-in-the-Middle
MITM
Kritik Saldırgan istemci ile sunucu arasına girerek trafiği okur ve değiştirebilir. Certificate Pinning ile önlenebilir.

7 Uygulama ve Kullanım Alanları

7.1 HTTPS Nasıl Çalışır?

HTTPS (HTTP Secure), HTTP protokolünün TLS şifrelemesiyle korunmuş versiyonudur. Varsayılan olarak 443. portu kullanır.

  • Tarayıcı, sunucuya TCP bağlantısı kurar (port 443)
  • TLS handshake gerçekleşir: sürüm ve şifre paketi müzakeresi, sertifika doğrulaması, oturum anahtarı türetimi
  • HTTP isteği, TLS üzerinden şifreli biçimde gönderilir
  • Sunucu yanıtı, aynı şifreli kanal üzerinden iletilir
  • Bağlantı kapatıldığında oturum anahtarları silinir

7.2 SSL Termination ve Load Balancer

SSL termination, şifreli TLS bağlantısının yük dengeleyici veya reverse proxy’de sonlandırılması pratiğidir. Bu mimari yaklaşım, arka uç sunucularını TLS işlem yükünden kurtarır ve sertifika yönetimini merkezileştirir.

⚠️
Dikkat: İç Ağ Güvenliği

Ara nokta ile arka uç sunucu arasındaki iç trafiğin de şifrelenmesi kritik önemdedir. Aksi takdirde ‘güvenli’ bağlantının iç ağda açık hale gelmesi söz konusudur.

7.3 CDN ve Reverse Proxy’de SSL

Cloudflare, Akamai gibi CDN sağlayıcıları TLS işlemlerini kenar sunucularında gerçekleştirir. Bu yapı hem coğrafi yakınlık nedeniyle gecikmeyi azaltır hem de DDoS gibi saldırılara karşı ek koruma sağlar.

8 Performans ve Optimizasyon

8.1 TLS Handshake Maliyeti

TLS handshake, hesaplama ve ağ gecikmesi açısından maliyetli bir süreçtir. 100ms round-trip gecikmesinde TLS 1.2 handshake 200ms’lik ek gecikmeye yol açarken TLS 1.3 bunu yarıya indirir.

8.2 Session Resumption

Session resumption mekanizmaları, tamamlanmış bir TLS handshake’in oturum kimliğini veya anahtarını saklayarak tekrar bağlantılarda tam handshake’i atlama imkânı tanır. TLS 1.3’te 0-RTT Pre-Shared Key (PSK) mekanizması devreye girer.

8.3 TLS 1.3 Performans Avantajları

Daha Hızlı Handshake

Round-trip sayısı 2’den 1’e düşürüldü

🚀
0-RTT Resumption

Daha önce bağlanılan sunuculara anında veri gönderilebilir

🧹
Sadeleştirilmiş Şifre Paketleri

Zayıf algoritmalar kaldırılarak karar karmaşıklığı azaltıldı

9 Gelecek Teknolojileri

9.1 Kuantum Bilgisayarlar ve Kriptografiye Etkisi

⚛️ Shor Algoritması (1994)
  • RSA ve ECC’nin güvenliğini tehdit eder
  • Büyük sayı çarpanlara ayırmayı polinom zamanda çözer
  • Yeterince büyük kuantum bilgisayar mevcut açık anahtar altyapısını kırabilir
⚛️ Grover Algoritması (1996)
  • Simetrik şifreleme için etkin anahtar uzunluğunu yarıya indirir
  • AES-128 etkili güvenliği AES-64’e eşdeğer hale gelir
  • AES-256 ise 128 bitlik güvenliğini korur
⚠️
“Harvest Now, Decrypt Later” Tehdidi

2026 itibarıyla mevcut kuantum bilgisayarlar RSA veya ECC’yi kıracak ölçeğe henüz ulaşamamıştır; ancak saldırganlar bugün şifreli veriyi biriktirip ileride çözme stratejisi kullanabilir.

9.2 Post-Quantum Cryptography (PQC)

NIST, 2016’dan bu yana sürdürdüğü standartlaştırma sürecini 2024’te tamamlamıştır.

NIST Onaylı Post-Kuantum Algoritmalar
ML-KEM (CRYSTALS-Kyber)
  → Kafes tabanlı anahtar kapsülleme mekanizması
  → TLS gibi protokollerde anahtar değişimi için

ML-DSA (CRYSTALS-Dilithium)
  → Kafes tabanlı dijital imza algoritması

SLH-DSA (SPHINCS+)
  → Hash tabanlı dijital imza
  → Kafes algoritmalarına alternatif

Temel Strateji: "Hibrit" yaklaşım
  → Mevcut algoritmalar (ECDH) + PQC algoritmalarını birlikte kullan

9.3 TLS’nin Geleceği

HTTP/3 + QUIC Encrypted Client Hello (ECH) Post-Kuantum Entegrasyonu ACME / Let’s Encrypt mTLS / Zero Trust

10 Uygulamalı Analiz

10.1 Wireshark TLS Filtreleri

Wireshark Filtre Komutları
tls                    → Tüm TLS trafiğini göster
tls.handshake          → Handshake paketlerini göster
tls.handshake.type==1  → ClientHello mesajlarını göster
tls.handshake.type==2  → ServerHello mesajlarını göster

Deşifre için:
Edit > Preferences > Protocols > TLS > (Pre)-Master-Secret log filename
Ortam değişkeni: SSLKEYLOGFILE (Chrome/Firefox)

10.2 OpenSSL Komutları

Temel OpenSSL Komutları
# Uzak sunucu sertifikasını incele:
openssl s_client -connect example.com:443 -showcerts

# Sertifika dosyasının içeriğini oku:
openssl x509 -in cert.pem -text -noout

# Self-signed sertifika oluştur:
openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -days 365

# TLS 1.3 desteğini test et:
openssl s_client -connect example.com:443 -tls1_3

10.3 TLS Test Araçları

🅰️
SSL Labs

Web sitelerinin TLS yapılandırmasını A+ ile F arası notalandırır; görsel rapor sunar

🖥️
testssl.sh

Komut satırından kapsamlı TLS analizi; protokol sürümleri, açık taraması

🐍
sslyze

Python tabanlı TLS tarayıcı; sertifika validasyonu ve güvenlik açığı taraması

10.4 Güvenli TLS Yapılandırması Kontrol Listesi

🔌 Protokol Sürümleri
  • TLS 1.2 ve TLS 1.3’ü etkinleştir
  • SSL 2.0, SSL 3.0, TLS 1.0, TLS 1.1’i devre dışı bırak
🔑 Şifre Paketleri
  • AES-GCM veya ChaCha20-Poly1305 tercih et
  • Perfect Forward Secrecy (ECDHE) zorunlu kıl
  • RC4, DES, 3DES, NULL şifrelerini devre dışı bırak
📜 Sertifika
  • RSA için en az 2048 bit (4096 önerilir) veya ECC P-256/P-384 kullan
  • SHA-256 veya üstü imza algoritması kullan
  • Sertifika geçerlilik süresini yakından takip et
🛡️ Ek Güvenlik Başlıkları
  • HSTS (HTTP Strict Transport Security) uygula
  • Certificate Transparency (CT) değerlendir
  • OCSP Stapling etkinleştir

Sonuç

SSL/TLS protokolü ve kriptografi, modern dijital güvenliğin temel direklerini oluşturmaktadır. 1994’te Netscape’in geliştirdiği SSL’den günümüzün TLS 1.3’üne uzanan yolculuk, hem teknolojinin evrimini hem de güvenlik araştırmacılarının bu protokole olan katkısını gözler önüne sermektedir.

Heartbleed, POODLE ve BEAST gibi kritik güvenlik açıkları, protokol tasarımının ne denli dikkat gerektirdiğini göstermiştir. Bugün TLS 1.3, geçmiş sürümlerin tüm hatalarından öğrenilerek tasarlanmış en güvenli ve performanslı standart olarak öne çıkmaktadır.

01 —
TLS 1.3 kullanın: Performans ve güvenlik açısından en iyi seçimdir.
02 —
Perfect Forward Secrecy zorunludur: Geçmiş verilerinizi gelecekteki saldırılara karşı korur.
03 —
Sertifika yönetimine özen gösterin: Süresi dolmuş sertifikalar ciddi güvenlik riskidir.
04 —
Post-kuantum geçişe hazırlanın: Hibrit algoritmalar stratejisini değerlendirin.
05 —
Yapılandırmanızı düzenli test edin: SSL Labs gibi araçlarla sürekli değerlendirin.