Mehmet

WFN Üye
Konular
1,851
Mesajlar
1,852
Çözüm
0
Ticaret Puanı
0
Üyelik
1 Ay 6 Gün
Konum
YurtDışı
Web Sitesi
Var
Alanı
Google Adsense
1/1
Konu sahibi

SSL handshake nedir?​


SSL handshake, tarayıcı ile web sunucusunun HTTPS bağlantısını kurarken yaptığı kimlik doğrulama, şifreleme ve ortak bağlantı ayarı görüşmesidir. Günümüzde kullanılan teknik standart SSL’in devamı olan TLS’dir; ancak “SSL handshake” ifadesi hâlâ yaygın olarak kullanılır. Sertifikaya dayalı yeni bir HTTPS bağlantısında istemci sunucunun kimliğini doğrular ve taraflar trafiği koruyacak anahtarları türetir. Daha önceki bir oturumu sürdürme akışı farklı olabilir.

Handshake nasıl çalışır?​


Yeni, sertifikaya dayalı bir bağlantıyı basitleştirerek ele alalım. Gerçek TLS sürümüne göre bazı mesajlar birlikte veya farklı sırada gönderilir:

  1. Tarayıcı, desteklediği TLS sürümlerini, şifreleme seçeneklerini ve bağlantı için gerekli diğer bilgileri sunucuya bildirir.
  2. Sunucu, kullanacağı TLS sürümünü ve şifreleme yöntemini seçer; kendi sertifikasını tarayıcıya gönderir.
  3. Tarayıcı sertifikanın alan adıyla eşleştiğini, geçerlilik durumunu ve güvenilir bir sertifika otoritesi zincirine bağlı olduğunu kontrol eder.
  4. Taraflar, anahtar değişiminden elde edilen ortak gizli bilgiler üzerinden trafik anahtarlarını türetir. Anahtarın kendisi açık biçimde ağdan gönderilmez.
  5. Finished gibi doğrulama mesajlarıyla görüşmenin bütünlüğünü ve gerekli anahtarların elde edildiğini denetler. İki yöndeki trafik için ayrı anahtar malzemesi kullanılır.
  6. Normal yeni bağlantı akışında uygulama verisi kurulan TLS korumasıyla taşınır. TLS oturumunu sürdürme ve erken veri seçenekleri bu basit akışın ayrıntılarını değiştirebilir.

TLS 1.3 gibi yeni sürümlerde bu görüşme daha az ağ gidiş-dönüşüyle tamamlanabilir. TLS 1.2 gibi eski sürümlerde mesaj sırası farklı olabilir; ancak temel amaç değişmez: karşı tarafı uygun mekanizmayla doğrulamak, trafik anahtarlarını türetmek ve bağlantıyı korumak.

Somut örnek​


Kurgu bir örnekte kullanıcı https://example.com adresini açsın. Sertifikanın bu adı kapsaması, geçerli olması ve istemcinin kabul ettiği bir güven zincirine dayanması gerekir. Bunların sağlanması tek başına bütün ağ ve TLS uyumluluğu kontrollerinin geçtiği anlamına gelmez. Adres www.example.com iken sertifika yalnızca example.com için düzenlenmişse kimlik doğrulama başarısız olabilir. Bu durumda sunucu çalışıyor olsa bile tarayıcı güvenli bağlantı kurmaz veya uyarı gösterir.

Aşağıdaki ayrım, sorunun hangi aşamada aranacağını belirlemeye yardımcı olur:

BelirtiMuhtemel aşamaİlk kontrol
Sertifika alan adı uyarısıSertifika doğrulamasıSertifikanın kapsadığı alan adlarını kontrol edin
Sertifika süresi veya zinciri uyarısıGüven zinciriSertifika zinciri ve sunucu sertifika kurulumunu inceleyin
TLS sürümü veya şifreleme uyumsuzluğuOrtak bağlantı ayarıSunucu ve istemcinin ortak TLS ayarlarını karşılaştırın
Handshake timeout veya bağlantı kesilmesiAğ ya da sunucu görüşmesiSunucu günlüklerini, proxy katmanını ve güvenlik duvarını inceleyin

Bu tablo, hatayı kesin olarak tek başına teşhis etmez. Özellikle ters proxy, yük dengeleyici veya CDN kullanılıyorsa TLS handshake ziyaretçinin bağlandığı katmanda gerçekleşebilir; origin sunucunun sertifikası farklı bir katmanda bulunabilir.

Handshake hatasında izlenecek adımlar​


  1. Tarayıcıdaki sertifika ayrıntılarını açın ve sertifikanın hedef alan adını kapsadığını kontrol edin. Alt alan adları için uygun adların sertifikada yer alması gerekir.
  2. Sertifikanın geçerlilik tarihlerini ve sertifika zincirinin sunucu tarafından eksiksiz gönderildiğini kontrol edin. Eksik ara sertifika, bazı istemcilerde doğrulama hatasına neden olabilir.
  3. Sunucunun TLS sürümü ve şifreleme ayarlarını inceleyin. İstemci ile sunucunun ortak bir seçenek üzerinde anlaşamaması handshake hatası oluşturur.
  4. Hata yalnızca belirli bir ağda görülüyorsa proxy, güvenlik duvarı, antivirüsün HTTPS incelemesi veya yük dengeleyici gibi aradaki katmanları karşılaştırın.
  5. Sunucu ve web sunucusu günlüklerindeki hata zamanını tarayıcıdaki hata zamanı ile eşleştirin. Böylece sertifika doğrulaması ile bağlantı kesilmesi birbirinden ayrılabilir.
  6. Sorun düzeltildikten sonra farklı bir tarayıcı ve istemciyle yeniden deneyin; eski sertifika zinciri veya önbellek nedeniyle kalan yerel hatayı sunucu hatasıyla karıştırmayın.

Sık yapılan hatalar​


SSL sertifikasını kurmuş olmak handshake’in kesinlikle başarılı olacağı anlamına gelmez. Alan adı eşleşmesi, ara sertifikalar, sunucunun TLS yapılandırması ve aradaki proxy katmanı da birlikte doğru çalışmalıdır. HTTPS sayfanın HTTP kaynak yüklemesi karma içerik sorunudur; doğrudan TLS handshake hatasıyla aynı problem değildir. HTTP sayfanın HTTPS kaynak yüklemesi ise bu nedenle karma içerik sayılmaz.

Sertifika uyarısını tarayıcıda kalıcı olarak geçmek de çözüm değildir. Uyarıyı atlamak kimlik doğrulama sorununu gidermez; ziyaretçilerden bu korumayı aşmaları istenmemelidir. Önce sertifika kapsamı, zincir ve sunucu TLS günlükleri düzeltilmelidir.

Sık sorulan sorular​


Her HTTP isteğinde yeniden tam handshake yapılır mı?​


Hayır. Mevcut bağlantı birden fazla istekte kullanılabilir. Yeni bağlantıda da oturum sürdürme mekanizması, önceden kurulmuş güvenlik bağlamından yararlanabilir. Bu nedenle her sayfa dosyası için aynı sertifikalı tam görüşmenin tekrarlandığını varsaymayın.

Handshake web sitesindeki kullanıcı girişinin yerine geçer mi?​


Hayır. HTTPS sunucusunun kimliğini doğrulamak, uygulamadaki hesabı veya işlem yetkisini doğrulamak değildir. TLS istemci sertifikası kullanılan özel sistemler de vardır; sıradan form parolası TLS görüşmesinin zorunlu bir alanı değildir.

TLS erken veri özelliği bütün isteklerde kullanılmalı mı?​


Hayır. 0-RTT erken verisi yeniden oynatma riski taşır; ödeme veya veri değiştiren işlemlerde koşulsuz kullanılacak bir hızlandırma değildir. Uygulama ve TLS hizmeti bu davranışı açıkça desteklemeli ve güvenli istek sınırlarını tanımlamalıdır.
 

Sende şimdi bize katılmak ister misin?

Kayıt ol

Bize katılım kolay ve ücretsizdir!

Konuyu görüntüleyenler

Bu konuyu şu anda görüntüleyen üye bulunmuyor.