HTTPS, web iletişimini TLS adlı güvenlik protokolüyle şifreleyerek korur. TLS bağlantısı kurulurken istemcinin desteklediği sürümleri ve bağlantı tercihlerini bildiren ClientHello mesajı gönderilir. Encrypted ClientHello (ECH) kullanılmayan bağlantılarda bu mesajdaki SNI (Server Name Indication) uzantısı, istemcinin bağlanmak istediği sunucu adını açık olarak taşıyabilir.

ECH, gerçek SNI bilgisini ve diğer hassas ClientHello alanlarını şifreli ClientHelloInner yapısında taşır. Ağda ClientHelloOuter görünür kalır; şifreli iç yapıyı, istemci bağlantısını karşılayan ve ilgili ECH özel anahtarına sahip sunucu açar.

HTTPS Kullanılırken SNI Neden Görülebilir?

TLS el sıkışması başlarken istemci ve sunucu henüz ortak trafik anahtarlarını oluşturmamıştır. Bu nedenle ilk ClientHello mesajı şifrelenmeden gönderilir ve ECH kullanılmayan bağlantıdaki SNI uzantısı da bu mesajda açık bulunabilir.

SNI, aynı IP adresinde birden fazla HTTPS hizmeti bulunduğunda istemcinin ulaşmak istediği sunucu adını TLS sunucusuna bildirir. Bu bilgi sayfa içeriğini, web adresinin alan adından sonraki yol bölümünü veya form verisini göstermez; ancak ağdaki bir gözlemciye bağlanılmak istenen alan adını doğrudan gösterebilir.

ECH Nasıl Çalışır?

ECH iki ClientHello yapısı kullanır: gerçek bağlantı tercihlerini taşıyan ClientHelloInner ve ağ üzerinde görünen ClientHelloOuter. İşlem şu sırayla ilerler:

  1. İstemci, hedef hizmetin yayımladığı ECH yapılandırmasını çoğunlukla DNS üzerinden edinir. DNS, alan adları için IP adresi ve hizmet bilgilerini sağlayan sistemdir. Bağlantı parametrelerini bildiren SVCB veya web hizmetlerine özgü HTTPS kayıtlarının ech parametresi, ECH yapılandırmasını taşıyabilir. Başka güvenilir dağıtım yöntemleri de kullanılabilir. Bu yapılandırma açık anahtarı ve gerekli şifreleme parametrelerini içerir.
  2. İstemci gerçek sunucu adını ve korunması gereken diğer ClientHello alanlarını ClientHelloInner içinde hazırlar.
  3. ClientHelloInner, ECH yapılandırmasındaki açık anahtar kullanılarak HPKE (Hybrid Public Key Encryption) yöntemiyle şifrelenir. HPKE, açık anahtarlı ve simetrik şifrelemeyi birlikte kullanır.
  4. Şifreli veri, dışarıdan okunabilen ClientHelloOuter içindeki ECH uzantısına yerleştirilir. Dış mesaj bağlantının kurulabilmesi için gerekli bazı görünür alanları taşımaya devam eder.
  5. İstemci bağlantısını karşılayan sunucu, ilgili ECH özel anahtarıyla iç yapıyı açar. ECH kabul edilirse TLS el sıkışması ClientHelloInner tercihleriyle devam eder.

ECH verisini açan sunucu ile TLS bağlantısını sonlandıran sunucu aynı olabilir. Ayrı sunucular kullanıldığında ilk sunucu, çözdüğü ClientHelloInner mesajını asıl TLS sunucusuna iletir. Bu ayrım, ECH özel anahtarına sahip sunucunun uygulama verilerini de okuyabildiği anlamına gelmez.

ClientHelloOuter'da görünen sunucu adı, ECH yapılandırmasındaki public_name (dışarıya açık sunucu adı) değerini gösterebilir. Ağ gözlemcisi ortak TLS altyapısına bağlantı kurulduğunu anlayabilir, ancak aynı yapılandırmayı ve dış davranışı paylaşan alan adları arasındaki gerçek hedefi doğrudan okuyamaz.

ECH İçin Hangi Tarafların Desteği Gerekir?

ECH yalnız tarayıcıda açılan bir seçenek değildir. Başarılı kullanım için bağlantının birkaç parçasının birlikte çalışması gerekir.

  • İstemci desteği: Tarayıcı veya başka bir TLS istemcisi ECH'yi anlayabilmeli, uygun yapılandırmayı seçebilmeli ve ClientHelloInner yapısını şifreleyebilmelidir.
  • Sunucu desteği: İstemci bağlantısını karşılayan TLS altyapısı ilgili ECH özel anahtarına sahip olmalı ve dış mesajdaki şifreli iç yapıyı işleyebilmelidir.
  • ECH yapılandırmasının yayımlanması: İstemci bağlantıdan önce güncel ECH yapılandırmasını alabilmelidir. Bu bilgi çoğunlukla DNS'teki SVCB veya HTTPS kayıtlarıyla yayımlanır; önceden güvenilir biçimde yapılandırılması da mümkündür.

TLS bağlantısında ECH kullanılması için istemci TLS 1.3 veya daha yeni bir sürüm teklif etmeli ve sunucu bu sürümlerden birini seçmelidir. Taraflardan biri ECH'yi desteklemiyorsa ya da istemcideki yapılandırma sunucudaki anahtarla eşleşmiyorsa bağlantı ECH ile kabul edilmeyebilir.

ECH Hangi Bilgileri Gizlemez?

ECH yalnız TLS el sıkışmasındaki hassas ClientHello alanlarını korur. Ağ gözlemcisi aşağıdaki bilgileri doğrudan görebilir veya bu sinyallerden hedefi tahmin edebilir:

  • Hedef IP adresi ağ yolundaki gözlemciler tarafından görülebilir.
  • Bağlantının ne zaman kurulduğu, yaklaşık trafik miktarı, paket boyutları ve zamanlama kalıpları görünür olabilir.
  • ClientHelloOuter içindeki şifrelenmemiş alanlar ile istemci bağlantısını karşılayan sunucunun public_name değeri gözlemlenebilir.
  • Alan adı, normal ve şifresiz DNS ile sorgulanıyorsa DNS katmanında ayrıca açığa çıkabilir.
  • Tek bir alan adının kendine özgü IP adresi veya belirgin ağ davranışı varsa, SNI gizli olsa bile hedef başka sinyallerden tahmin edilebilir.

ECH, şifreli DNS'in yerine geçmez. Şifreli DNS, istemci ile sorguyu yanıtlayan DNS sunucusu arasındaki iletişimi korur; sorguyu o DNS sunucusundan gizlemez ve sonraki bütün DNS iletişimini kendiliğinden şifrelemez. ECH ise TLS bağlantısının ClientHello bölümündeki hassas bilgileri korur.

ECH ile VPN ve Proxy Arasındaki Farklar

ECH bir tünel oluşturmaz ve kullanıcının genel IP adresini değiştirmez. ECH, bağlantıyı farklı bir ağ yolu üzerinden göndermez; TLS el sıkışmasında hangi sunucu adına ulaşılmak istendiğini ve diğer hassas ClientHello ayrıntılarını gizler.

VPN, kapsadığı trafiği VPN sunucusuna taşıyan ayrı bir tünel kurar. Tünelden geçen bağlantılarda yerel ağ veya internet servis sağlayıcısı hedef hizmet yerine VPN sunucusunun IP adresini görür; VPN tünelinin çıkışından sonraki ağda hedef IP adresi gibi bilgiler yeniden görünür olabilir. ECH başarıyla kullanılırsa VPN tünelinin çıkışından sonraki TLS bağlantısında gerçek SNI bilgisinin açık taşınmasını da engeller.

Proxy, istemci adına başka bir sunucuya bağlantı kuran aracıdır. Proxy kullanımındaki görünürlük proxy türüne bağlıdır. İstemci proxyye hedef alan adını açıkça bildiriyorsa ECH bu bilgiyi proxyden gizlemez; ECH yalnız istemci ile nihai TLS hizmeti arasındaki ClientHello mesajının hassas alanlarını korur. Bu nedenle ECH, VPN veya proxy ile aynı işlevi görmez.

ECH Reddedilirse veya Yapılandırma Eskirse Ne Olur?

ECH anahtarları ve yapılandırmaları zaman içinde değişebilir. İstemci eski bir yapılandırmayla bağlanırsa sunucu ECH'yi reddedip güncel ECH yapılandırmalarını iletebilir; istemci de public_name için sunucunun sertifikasını doğruladıktan sonra yeni yapılandırmayla tekrar deneyebilir. Bu doğrulama başarısızsa yeni yapılandırma güvenilir kabul edilmez. Reddedilen ilk bağlantı uygulama verisi taşımak için kullanılmaz.

Protokol, ağdaki bir saldırganın ECH uzantısını trafikten çıkarıp istemciyi fark ettirmeden açık SNI kullanımına zorlamasını önleyen mekanizmalar içerir. İstemci, ECH'nin sunucu tarafından güvenli biçimde devre dışı bırakıldığını doğrularsa yeni bağlantıyı ECH olmadan kurabilir. Yalnız istemcide ECH özelliğinin bulunması, her bağlantının ECH ile tamamlandığı anlamına gelmez.

Bu koruma, istemcinin ECH yapılandırmasını edinmesinden önceki bütün saldırıları engellemez. Yapılandırmanın öğrenilmesi engellenirse veya hizmet hem ECH destekleyen hem desteklemeyen bağlantı seçenekleri yayımlarsa, istemcinin yeniden deneme davranışı ECH kullanılmayan bir bağlantıya yol açabilir. Bu nedenle yapılandırmanın nasıl alındığı ve bağlantı hatalarının nasıl ele alındığı da önemlidir.

ECH ile Alan Adlarının Ayırt Edilebilirliği Anonimlik Kümesine Bağlıdır

ECH başarıyla kullanıldığında pasif ağ gözlemcisinin TLS ClientHello içinden gerçek hedef alan adını doğrudan okuması zorlaşır. Aynı TLS altyapısı istemci bağlantılarını birden fazla alan adı için karşılıyor ve bu alan adları aynı ECH yapılandırmasıyla benzer dış TLS davranışını paylaşıyorsa bir anonimlik kümesi oluşur. Ağ gözlemcisi ortak TLS altyapısını görebilir, ancak küme içindeki kesin hedefi ayırt etmek için daha az bilgiye sahip olur.

Farklı alan adları ayrı ECH yapılandırmaları veya ayırt edilebilir TLS davranışları kullanıyorsa anonimlik kümesi küçülür. Hedef IP adresi, DNS sorguları ve trafik özellikleri de hedefi başka kanallardan belirginleştirebilir; bu nedenle ECH'nin sağladığı gizlilik dağıtım biçimine bağlıdır.