Tanım
TLS (Transport Layer Security), iki uygulama arasındaki iletişimi şifreleyen, verinin değiştirilmediğini doğrulayan ve sunucunun kimliğini sertifikayla kanıtlayan kriptografik protokoldür. SSL’in yerini alan protokoldür; HTTPS, IMAPS, SMTPS ve birçok güvenli bağlantı TLS üzerinde çalışır. Güncel sürümler TLS 1.2 ve TLS 1.3’tür.
TLS el sıkışması nasıl gerçekleşir?
TLS el sıkışması, veri aktarımı başlamadan önce istemci ile sunucunun şifreleme ayarlarında anlaşıp ortak anahtar ürettiği aşamadır. TLS 1.3’te süreç basitleşmiştir:
- İstemci desteklediği şifre takımlarını ve anahtar değişimi için açık değerini gönderir (ClientHello).
- Sunucu seçtiği takımı, kendi anahtar değişimi değerini ve SSL sertifikasını gönderir.
- İstemci sertifikayı doğrular; iki taraf aynı oturum anahtarını hesaplar.
- Şifreli veri aktarımı başlar.
TLS 1.3 bu işlemi tek gidiş-dönüşte tamamlar ve yalnızca ileri gizlilik (forward secrecy) sağlayan anahtar değişimlerine izin verir; TLS 1.2’de genellikle iki gidiş-dönüş gerekir.
Hangi TLS sürümleri kullanılmalı?
Sunucularda yalnızca TLS 1.2 ve TLS 1.3 etkin tutulmalıdır. SSL 2.0, SSL 3.0, TLS 1.0 ve TLS 1.1 bilinen zafiyetler nedeniyle kullanımdan kaldırılmıştır (TLS 1.0 ve 1.1 için RFC 8996) ve güncel tarayıcılar bu sürümlerle bağlantı kurmaz. Nginx’te bu ayar şöyle yapılır:
ssl_protocols TLSv1.2 TLSv1.3;
ssl_prefer_server_ciphers off;Apache’de eşdeğer ayar SSLProtocol -all +TLSv1.2 +TLSv1.3 satırıdır. Yapılandırmanın doğru olduğunu kontrol etmek için SSL testi nasıl yapılır yazısındaki araçları kullanabilirsiniz. TLS, HTTP/3 tarafında QUIC protokolünün içine yerleşik olarak çalışır.