İletişim

TLS (SSL) Nedir?

Kısa tanım

TLS (Transport Layer Security), iki uygulama arasındaki bağlantıyı dinlemeye, değiştirmeye ve sahte mesajlara karşı koruyan kriptografik protokoldür. HTTPS, güvenli e-posta ve birçok API bağlantısı TLS üzerinde çalışır. Halk arasında hâlâ kullanılan SSL adı, TLS'in öncülü olan ve artık güvensiz kabul edilen protokolden gelir. Bugün kullanılması gereken sürümler TLS 1.2 ve TLS 1.3'tür.

Diğer adları: Transport Layer Security, SSL, Secure Sockets Layer, TLS 1.3, TLS 1.2, SSL/TLS

İstemci ile sunucunun anahtar paylaşımı ve sertifika doğrulamasıyla TLS 1.3 el sıkışmasını tamamlayıp şifreli veri gönderdiği basitleştirilmiş dizi

SSL adı neden hâlâ yaşıyor?

Netscape'in 1990'ların ortasında geliştirdiği SSL (Secure Sockets Layer), web trafiğini şifrelemek için kullanılan ilk yaygın protokoldü. IETF protokolü devraldığında adı TLS olarak değişti; TLS 1.0, 1999'da SSL 3.0'ın halefi olarak yayımlandı. SSL 2.0 ve 3.0 bilinen ciddi zafiyetler nedeniyle yıllar önce resmen kullanımdan kaldırıldı; TLS 1.0 ve 1.1 de Mart 2021'de RFC 8996 ile aynı akıbete uğradı. Yani bugün "SSL" denildiğinde kastedilen neredeyse her zaman TLS'tir. "SSL sertifikası" ifadesi de bu alışkanlıktan kalmadır; aynı sertifika TLS ile kullanılır.

SürümYılDurum
SSL 2.0 / 3.01995 / 1996Kullanımdan kaldırıldı, kapatılmalı
TLS 1.0 / 1.11999 / 20062021'de kullanımdan kaldırıldı, kapatılmalı
TLS 1.22008Hâlâ yaygın; güçlü şifre takımlarıyla kabul edilebilir
TLS 1.32018Güncel sürüm, tercih edilmeli

El sıkışma kavramsal olarak nasıl ilerler?

Şifreli veri akmadan önce istemci ile sunucunun üç konuda anlaşması gerekir: hangi algoritmalar kullanılacak, karşı taraf gerçekten iddia ettiği kişi mi ve oturum boyunca kullanılacak gizli anahtar ne olacak. TLS 1.3'te bu süreç kabaca şöyle işler:

  1. İstemci, desteklediği sürümleri ve şifre takımlarını, bir de anahtar anlaşması için kendi payını içeren bir "ClientHello" mesajı gönderir.
  2. Sunucu birini seçer, kendi anahtar payını ekler ve SSL/TLS sertifikasını gönderir; sertifikadaki açık anahtara karşılık gelen özel anahtara sahip olduğunu bir imzayla kanıtlar.
  3. İstemci sertifika zincirini güvendiği kök sertifikalara kadar doğrular ve alan adının sertifikayla eşleştiğini kontrol eder.
  4. İki taraf, paylaştıkları değerlerden aynı oturum anahtarlarını bağımsız olarak türetir; bu anahtarlar ağ üzerinden hiç gönderilmez.

Bundan sonraki veri, AES-GCM ya da ChaCha20-Poly1305 gibi hızlı simetrik algoritmalarla şifrelenir. Asimetrik kriptografi yalnızca kimlik doğrulama ve anahtar anlaşması için kullanılır, çünkü büyük veri hacminde çok daha yavaştır.

TLS 1.3 neyi değiştirdi?

  • Daha kısa el sıkışma: Yeni bir bağlantı TLS 1.2'deki iki gidiş-dönüş yerine bir gidiş-dönüşte kurulur. Daha önce bağlanılmış bir sunucuya, isteğe bağlı 0-RTT özelliğiyle ilk istekle birlikte veri gönderilebilir; ancak bu veri tekrar oynatma (replay) riskine açık olduğu için yalnızca güvenle tekrarlanabilecek isteklerde kullanılmalıdır.
  • Zorunlu ileri gizlilik: Statik RSA anahtar değişimi kaldırıldı. Sunucunun özel anahtarı ileride ele geçirilse bile geçmişte kaydedilmiş trafik çözülemez.
  • Daha az seçenek, daha az hata: RC4 ve kimlik doğrulamalı şifreleme (AEAD) sunmayan eski modlar listeden çıkarıldı; yalnızca AEAD şifreleri kaldı.
  • Daha fazla gizlilik: Sunucu sertifikası artık el sıkışmanın şifreli bölümünde gönderilir.

HTTP/3'ün taşıma katmanı QUIC, TLS 1.3'ü doğrudan protokolün içine yerleştirir. Ayrıntılı tanım RFC 8446'dadır.

Sunucuda pratik ayarlar

Yalnızca TLS 1.2 ve 1.3'ü açık bırakın; eski sürümleri kapatmak bugün yalnızca çok eski cihazları etkiler. TLS 1.2 için ileri gizlilik sağlayan (ECDHE) ve AEAD modlu şifre takımlarını seçin. Sertifika süresini ve zincirin eksiksiz gönderildiğini izleyin; eksik ara sertifika, bazı istemcilerde "güvenilmeyen bağlantı" hatasının en sık nedenidir. TLS'in bağlantıyı koruduğunu, uygulamayı korumadığını da unutmayın: şifreli bir kanal üzerinden gelen kötü niyetli istek de sonuçta sunucunuza ulaşır.

İlgili terimler

← Sözlüğe dön