HSTS
HTTP Strict Transport Security
Kısaca
HSTS, tarayıcıya bir siteye belli bir süre yalnızca HTTPS ile bağlanmasını söyleyen, güvensiz HTTP'yi ve düşürme saldırılarını engelleyen güvenlik başlığıdır.
HSTS nedir?
HTTP Strict Transport Security ya da HSTS, bir web sitesinin “bundan sonra benimle yalnızca HTTPS üzerinden konuş” demek için gönderdiği bir yanıt başlığıdır. Bir tarayıcı Strict-Transport-Security başlığını gördükten sonra, o alan adı için gelecekteki her http:// bağlantısını ve yazılan adresi, makineden herhangi bir istek çıkmadan önce otomatik olarak https:// adresine yükseltir. Ayrıca kullanıcıların o sitedeki sertifika uyarılarını geçmesini de engeller.
Başlığın, tarayıcıya kuralı ne kadar süre hatırlayacağını söyleyen, saniye cinsinden ve çoğunlukla bir ya da iki yıllık bir max-age değeri ile bunu her alt alan adına uygulayan isteğe bağlı bir includeSubDomains bayrağı vardır. Tarayıcı başlığı yalnızca geçerli bir HTTPS bağlantısı üzerinden geldiğinde kabul eder. İlk ziyaret yine düz HTTP ile gerçekleşebileceğinden tarayıcılar yerleşik bir HSTS preload listesiyle de gelir: gereksinimleri karşılayan ve preload bayrağını ekleyen siteler listeye dahil edilebilir; böylece tarayıcılar onlar için ilk ziyarette bile HTTPS kullanır.
HSTS olmadan example.com yazan bir kullanıcı genellikle önce düz bir HTTP isteği yapar ve sonra HTTPS'e yönlendirilir; aynı herkese açık Wi-Fi'daki bir saldırgan bu ilk isteği yakalayıp kurbanı şifresiz bir bağlantıda tutabilir. Bu tekniğe SSL stripping denir. HSTS bu fırsat penceresini ortadan kaldırır. Bir bankada, büyük para çekme işlemlerinin yalnızca güvenli gişede yapılması gibi kalıcı bir kuraldır: kural dosyalandıktan sonra hiç kimse bir veznedarı kilitsiz yan kapıyı kullanmaya ikna edemez.
HSTS sıklıkla HTTPS'in kendisiyle ya da HTTP'den HTTPS'e yönlendirmeyle karıştırılır. HTTPS şifrelemeyi sağlar, yönlendirme ise güvensiz bir istek zaten yapıldıktan sonra kullanıcıları ona gönderir; HSTS ise tarayıcının o site için HTTP'yi hiç kullanmayı reddetmesini sağlar. includeSubDomains ve preload konusunda dikkatli olun; çünkü bu durumda her alt alan adının HTTPS'i desteklemesi gerekir ve bir siteyi preload listesinden çıkarmak aylar sürer.
Önemli noktalar
- HSTS, tarayıcılara bir site için belirli bir süre yalnızca HTTPS kullanmalarını söyler.
- HTTPS üzerinden
Strict-Transport-Securityyanıt başlığında gönderilir. - İlk ziyaretten sonra SSL stripping ve diğer düşürme saldırılarını engeller.
- Preload listesi, katılan siteler için ilk ziyareti bile korur.
- Uzun değerlere ve preload'a geçmeden önce kısa bir
max-ageile test edin.
Örnek
# Check whether a site sends the HSTS header
curl -sI https://example.com | grep -i strict-transport-security
# A typical strong policy: two years, all subdomains, eligible for preloading
# Strict-Transport-Security: max-age=63072000; includeSubDomains; preload
# Start with a short max-age (5 minutes) while testing
# Strict-Transport-Security: max-age=300Sık sorulan sorular
HSTS olmadan HTTP'den HTTPS'e yönlendirme yeterli midir?
Hayır. Yönlendirme yalnızca tarayıcı zaten güvensiz bir istek gönderdikten sonra gerçekleşir ve ağdaki bir saldırgan bunu yakalayabilir. HSTS, sonraki ziyaretlerde tarayıcının düz HTTP'yi tamamen atlamasını sağlar.
HSTS preload listesi nedir?
Büyük tarayıcılara yerleştirilmiş, ilk ziyarette bile her zaman HTTPS ile yüklenen alan adlarının listesidir. Bir site, uzun bir max-age, includeSubDomains ve preload içeren bir HSTS başlığı göndererek ve tüm alt alan adlarında HTTPS sunarak başvurabilir.
HSTS kullanan bir sitede sertifikam sona ererse ne olur?
Tarayıcılar siteyi, kullanıcıların geçemeyeceği bir hatayla engeller; çünkü HSTS sertifika uyarılarını atlamayı yasaklar. Uzun bir max-age etkinleştirmeden önce sertifika yenilemeyi otomatikleştirin.
İlgili sayfalar
- HTTPSGüvenlik, s. 15HTTPS, tarayıcı ile web sitesi arasındaki trafiği TLS ile şifreleyen, verileri dinlemeye ve değiştirilmeye karşı koruyan HTTP'nin güvenli sürümüdür.
- TLSGüvenlik, s. 44TLS, ağda gönderilen veriyi şifreleyen ve sunucunun kimliğini doğrulayan, HTTPS, e-posta ve birçok başka bağlantıyı güvenceye alan kriptografik protokoldür.
- Ortadaki Adam SaldırısıGüvenlik, s. 23Ortadaki adam saldırısı, bir saldırganın doğrudan konuştuğunu sanan iki taraf arasındaki mesajları gizlice iletmesi ve gerekirse değiştirmesiyle gerçekleşir.
- Sertifika OtoritesiGüvenlik, s. 35Sertifika otoritesi, bir açık anahtarın belirli bir web sitesine, şirkete veya kişiye ait olduğunu doğrulayan dijital sertifikalar veren güvenilir kuruluştur.
- Content Security PolicyGüvenlik, s. 4Content Security Policy, tarayıcıya sayfanın hangi betik, stil ve kaynakları yükleyebileceğini bildirip enjekte edilen kodu engelleyen HTTP yanıt başlığıdır.
Bu sayfada bir hata ya da eksik mi gördünüz?Düzeltme önerin