BBC daha iyi güvenlik ve performans için HSTS'yi nasıl kullanıma sunuyor?

BBC, güvenliği ve performansı iyileştirmek amacıyla web sitesinde HSTS'yi kullanıma sunuyor. Bunun ne anlama geldiğini ve HSTS'nin size nasıl yardımcı olabileceğini öğrenin.

HTTPS kullanımı son yıllarda istikrarlı bir şekilde artmaktadır. HTTP Arşivi'nin 2021 Web Almanağı'na göre hem masaüstü hem mobil cihazlara yönelik tüm isteklerin yaklaşık% 91'i HTTPS üzerinden sunuldu. HTTPS'nin tek önemi yoktur. Aynı zamanda, Hizmet Çalışanı gibi özelliklerin yanı sıra HTTP/2 ve HTTP/3 gibi modern protokolleri kullanmak için ön koşul gereklidir.

Kısa süre önce BBC'de baş teknik mimar olan Neil Craig, bbc.com için HTTP Strict Transport Security'nin (HSTS) yavaş yavaş kullanıma sunulduğunu tweet'ledi. Bunun BBC için ne anlama geldiğini ve sizin için ne anlama geldiğini öğrenelim.

Sorun

Web sunucuları genellikle istekleri hem 80 hem 443 numaralı bağlantı noktalarından işler. Bağlantı noktası 80 güvenli olmayan HTTP istekleri, 443 ise güvenli HTTPS içindir. Bu durum sorun oluşturabilir, çünkü çoğu kullanıcıda olduğu gibi, https:// protokol öneki olmadan adres çubuğunuza bir adres girdiğinizde bazı tarayıcılar, eski nedenlerden dolayı trafiği bir sitenin güvenli olmayan HTTP sürümüne yönlendirir (ancak bu her zaman karşılaşılan bir durum değildir).

Kullanıcıların bir web sitesinin güvenli olmayan bir sürümüne erişmemesini sağlamanın yaygın bir yolu, tüm istekler için HTTP'den HTTPS'ye yönlendirme yerleştirmektir. Bu kesinlikle işe yarar ancak aşağıdaki etkinlik zincirini başlatır:

  1. Sunucu, HTTP aracılığıyla bir istek alır.
  2. Sunucu, istenen kaynağın HTTPS eşdeğerine gitmek için bir yönlendirme yayınlar.
  3. HTTPS üzerinden sağlanan sunucunun, tarayıcıyla güvenli bir bağlantı kurması gerekir.
  4. İçerik her zamanki gibi yüklenir.

Yönlendirmeler sorunsuz çalışsalar da, bir sitenin güvenli olmayan sürümüne erişime olanak verecek şekilde yanlış yapılandırılabilirler. Her şey düzgün bir şekilde yapılandırılmış olsa bile, yönlendirme aşamasında kullanıcının güvenli olmayan HTTP üzerinden bağlanmaya devam etmesi nedeniyle bir güvenlik sorunu devam eder. Bu da kullanıcıların tehlikeli ortadaki adam saldırılarına maruz kalmasına yol açar.

HSTS'yi girin

Tarayıcı Desteği

  • 4
  • 12
  • 4
  • 7

Kaynak

HSTS, HTTPS istekleri için Strict-Transport-Security HTTP yanıt başlığı tarafından belirtilir. Bu ayar ayarlandığında, bir web sitesine yapılan geri dönüş ziyaretleri, "307 Dahili Yönlendirme" olarak bilinen özel bir yönlendirmeyi tetikler. Bu işlem, yönlendirme mantığını sunucu yerine tarayıcının işlediğinde gerçekleşir. Böylece istek tarayıcıdan hiçbir zaman çıkmadığı için önlenmesi daha güvenlidir. Ek bir avantaj olarak, bu tür yönlendirme türleri son derece hızlıdır, böylece HTTP'den HTTPS'ye atlama sırasında gözle görülür gecikme yaşanmaz.

Bir HSTS üstbilgisi tarafından tetiklenen 307 dahili yönlendirmesi HTTP'den HTTPS'ye. 307 yönlendirmesi yalnızca 2 milisaniye sürer.

Cache-Control'in max-age yönergesine benzer şekilde, HSTS üst bilgisi max-age yönergesini belirtir. Bu yönerge, politikanın aşağıdakiler için ne kadar süre etkili olacağını belirten bir değeri saniye cinsinden alır:

Strict-Transport-Security: max-age=3600

Yukarıdaki örnekte, politika yalnızca bir saat boyunca etkili olacaktır.

HSTS'yi dağıtma

HSTS'yi dağıtmanın temel dezavantajı, kaynağı kesinlikle güvenli kabul etmeye hazır olmamanızdır. Kaynak sunduğunuz çok sayıda alt alan adınız olduğunu ancak hepsinin güvenli olmadığını varsayalım. Bu senaryoda, bir HSTS başlığı web sitenizi bozabilir.

BBC, HSTS'yi dağıtmak için doğru yaklaşımı benimsedi. Neil Craig'in tweet'inde bahsettiği gibi bbc.com için belirlenen ilk değer max-age=10 oldu.

Bu yaklaşım, politikanın başlangıçta yalnızca on saniye boyunca etkili olduğu anlamına gelir. Bu pek fazla fayda sağlamaz, ancak HSTS'nin uygulanmasında herhangi bir sorun olup olmadığını anlamaktır. Zamanla, politikayı aşamalı olarak artırabilir ve sorun olup olmadığını görebilirsiniz. Bu yazının yazıldığı tarihte bbc.com, max-age=86400 için bir HSTS politikası belirtiyor. Bu politika zaman içinde büyük olasılıkla artacaktır.

HSTS'yi dağıtırken kesinlikle uzun bir max-age değeriyle geçiş yapmak istemezsiniz. Kullanıcılar sorun yaşarken, siz de birdenbire sorunları düzeltmek için çaba sarf edebilirsiniz. Küçük başlayıp zamanla artırın. Her şeyin yolunda olduğundan emin olduğunuzda max-age yönergenizi çok daha uzun bir süreye ayarlayabilirsiniz. Tam olarak kullanıma sunulduğunda max-age alanının bir veya iki yıl olarak ayarlanması önerilir.

HSTS ön yükleme listesiyle daha güvenli ve hızlı ilk gezinme deneyimi

HSTS politikası yalnızca bir web sitesi ilk ziyaretinden sonra geçerlilik kazanır. Bu nedenle, avantajlar siteye yapılan ilk ziyarette geçerli olmaz. Bu işlem için yine de güvenli olmayan yönlendirme gereklidir. Bununla birlikte, web sitenizi HSTS ön yükleme listesine göndererek HSTS politikanızı önceden yükleyebilirsiniz. HSTS ön yükleme listesi, tarayıcının kesinlikle HTTPS olduğunu bildiği web sitelerini içeren sabit bir listedir. Siteniz ön yükleme listesindeyken, ilk ziyaret de korunur ve HSTS üzerinden HTTP'den HTTPS'ye yönlendirme gecikmesi anında olur.

Kendiniz deneyin

BBC HSTS'yi test etmek istiyorsa web siteniz için de aynısını yapma şansınız vardır. Web sitenizi deneyin ve kullanıcılarınıza daha güvenli ve daha hızlı bir deneyim sunacak herhangi bir hata olmadığından emin olduktan sonra sitenizi HSTS ön yükleme listesine ekleyin.