TLS el sıkışması (handshake), tarafların protokol sürümü, şifre seti ve ortak anahtar üzerinde anlaştığı ve sunucunun kimliğini kanıtladığı aşamadır. Bir bağlantı sorununu çözmek için bu adımları bilmek, hatanın hangi mesajda oluştuğunu anlamanızı sağlar.
TLS 1.2 akışı
- ClientHello: Sürüm, rastgele değer, cipher suite listesi, SNI (hedef ana bilgisayar adı) ve ALPN (h2, http/1.1) gönderilir.
- ServerHello: Seçilen sürüm ve cipher suite.
- Certificate: Sunucu sertifika zincirini gönderir.
- ServerKeyExchange / ServerHelloDone: ECDHE parametreleri sertifika anahtarıyla imzalanarak iletilir.
- ClientKeyExchange, ChangeCipherSpec, Finished: İstemci kendi anahtar payını yollar; iki taraf da oturum anahtarlarını türetip şifreli Finished ile doğrular.
Bu akış 2 gidiş-dönüş sürer. TLS 1.3'te anahtar payı ilk mesajda gönderildiği için 1-RTT yeterlidir ve sertifika şifreli taşınır.
Bir el sıkışmayı inceleme
openssl s_client -connect ornek.com:443 -servername ornek.com -state -msg
-msg mesaj türlerini, -state durum geçişlerini yazdırır. Wireshark'ta ise şu görüntüleme süzgeçleri işe yarar:
tls.handshake.type == 1 # ClientHello
tls.handshake.type == 2 # ServerHello
tls.handshake.extensions_server_name
Hata nerede oluşur?
- ServerHello gelmiyor: sunucu ortak sürüm/cipher bulamadı veya SNI'ye uygun site yok.
- Certificate sonrası kesiliyor: istemci sertifikayı reddetti (zincir, ad, süre).
- Finished aşamasında hata: anahtar türetme ya da ara cihaz müdahalesi.
Pratik ipuçları
Ek notlar
- SNI bilgisi TLS 1.2'de açık metin gider; TLS 1.3 ile birlikte kullanılan ECH eklentisi bunu gizlemeyi hedefler.
- ALPN sayesinde HTTP/2 ve HTTP/1.1 arasında el sıkışma sırasında seçim yapılır.
- Sertifika doğrulaması el sıkışmanın istemci tarafındaki en sık hata noktasıdır.
Bu üç bilgi, yakalanan bir paket kaydını okurken yön bulmanızı kolaylaştırır.
Kendi sitenizin el sıkışma sonucunu SSL denetleme aracıyla görebilir, kurulum sorunlarında SSL sorun gidericiyi kullanabilirsiniz. Özet: el sıkışmayı mesaj sırasıyla okumak, "SSL hatası" genel ifadesini somut bir adıma indirger.