HTTP Strict Transport Security (HSTS), web sitelerinin erişimini sağlamlaştırmak için kullanılan bir ek güvenlik mekanizmasıdır.
HSTS, web tarayıcılarına bir web sitesinin sadece HTTPS (Hypertext Transfer Protocol Secure) üzerinden erişilmesi gerektiğini bildirir.
Bu sayede, kullanıcılar yanlışlıkla HTTP üzerinden siteye bağlansa bile tarayıcı otomatik olarak HTTPS bağlantısına yönlendirir. Böylece, man-in-the-middle saldırıları gibi güvenlik riskleri önemli ölçüde azaltılır.
HSTS Nasıl Çalışır?
HSTS, web sunucusu tarafından HTTP yanıtının “Strict-Transport-Security” başlığına eklenen bir yönerge ile etkinleştirilir.
Bu başlıkta, tarayıcının belirli bir süre boyunca (örneğin, 1 yıl) sadece HTTPS üzerinden siteye erişmesi gerektiği belirtilir.
Tarayıcı bu yönergeyi aldıktan sonra, siteye yapılan tüm istekleri otomatik olarak HTTPS’ye yönlendirir.
HSTS Yönergesi aşağıdaki gibi Örneklendirilebilir:
Strict-Transport-Security: max-age=31536000; includeSubDomains; preload.
- max-age: HSTS yönergesinin geçerlilik süresini saniye cinsinden belirtir. Bu örnekte, yönerge 1 yıl boyunca geçerlidir.
- includeSubDomains: Tüm alt domainler için HSTS’nin geçerli olduğunu belirtir.
- HSTS Preload: popüler web tarayıcılarının önceden bildiği HSTS yönergeleri listesidir. Web sitenizin HSTS Preload listesine eklenmesi, tarayıcıların daha hızlı ve güvenli bir şekilde HTTPS bağlantısı kurmasını sağlar.
HSTS’nin Faydaları
- HSTS, kullanıcıların yanlışlıkla HTTP üzerinden siteye bağlanmasını engelleyerek man-in-the-middle saldırılarının riskini azaltır.
- Tarayıcıların otomatik olarak HTTPS’ye yönlendirme yapması sayesinde kullanıcılar güvenli bir bağlantıya daha sağlıklı erişme imkanına sahip olurlar.
- Google gibi arama motorları, HTTPS kullanan siteleri daha güvenilir olarak değerlendirir ve arama sonuçlarında üst sıralara taşıyabilir.
- HSTS, web sitesi sahiplerinin güvenlik uygulamalarına verdiği önemi göstererek marka güvenilirliğini artırır.
HSTS Özelliğinin Sınırlamaları
- Bir kullanıcı ilk kez bir HSTS uyumlu siteye HTTP üzerinden bağlanırsa, tarayıcı HSTS yönergesini henüz bilmeyeceği için güvenli olmayan bir bağlantı kurulabilir. Bu sorunu çözmek için, siteye ilk kez erişen kullanıcıların HTTPS kullanmaya teşvik edilmesi önemlidir.
- HSTS yönergesi yanlış yapılandırılırsa, siteye erişimde sorunlar yaşanabilir. Örneğin, çok uzun bir “max-age” değeri belirlenirse, yanlışlıkla HTTP üzerinden erişim sağlamaya çalışan kullanıcılar uzun bir süre boyunca siteye erişemezler.
HSTS’yi web sitenizde uygulamak için web sunucunuzun konfigürasyon ayarlarında gerekli değişikleri yapmanız yeterli olacaktır.
Çoğu web sunucusu, HSTS yönergesini eklemek için kolay yöntemler sunar. Örneğin, Apache ve Nginx gibi popüler web sunucularında HSTS yönergesi, sunucu konfigürasyon dosyasına eklenerek etkinleştirilebilir.
Burada HSTS özelliğinin İİS Web sunucusu ayarlarını detaylı bir şekilde incelemeye çalışacağız.
IIS Web Sunucu HSTS Ayarları
IIS üzerinde HSTS’yi yapılandırmak için aşağıdaki adımları takip edebilirsiniz:
- IIS Yönetim Konsolunu açmak için Başlat menüsünden çalıştır komutu bileşenine ulaşarak, “inetmgr” yazıp tamam düğmesine tıklayın.
- Sol taraftaki ağaç görünümünde yapılandırmak istediğiniz web sitesini seçin.
- Seçili web sitesine sağ tıklayın ve “HTTP Başlıkları” seçeneğini bulun.
- Açılan sayfada “Özel Başlık Ekle” düğmesine tıklayın.
-
Açılan pencerede Name bölümüne “Strict-Transport-Security”,
Değer (Value) alanında ise, “max-age=31536000; includeSubDomains; preload” yazarak değişikleri kaydetmek için tamam düğmesine tıklayın.
Ek Yapılandırmalar ve Dikkat Edilmesi Gerekenler
- Eğer web sitenizde alt alan adları barındırıyorsanız, her biri için ayrı ayrı HSTS yapılandırması yapmanız gerekebilir.
- HSTS yapılandırmasını ayarladıktan sonra, değişikliklerin doğru bir şekilde uygulandığını test etmek için çevrim içi her hangi bir HSTS kontrol aracından faydalanabilirsiniz.
- SSL/TLS sertifikanızın süresi, HSTS yönergesinin süresinden daha uzun olmalıdır. Aksi takdirde, sertifika yenilendiğinde kullanıcılar siteye erişimde sorun yaşayabilir.
- Ayrıca, Web sitenizi HSTS Preload listesine ekleyerek, tarayıcıların daha hızlı ve güvenli bir şekilde HTTPS bağlantısı kurmasını sağlayabilirsiniz.
HSTS yönergesi bir kez gönderildikten sonra, tarayıcı belirtilen süre boyunca sadece HTTPS üzerinden siteye erişmeye çalışacaktır. Bu süre zarfında HSTS yönergesini kaldırmak isteseniz bile, tarayıcı bu yönergeyi hafızada tutmaya devam edecektir.
HSTS, HTTP/2 ile birlikte kullanıldığında daha da etkili hale gelir. HTTP/2, önceki sürüme göre, daha hızlı ve güvenli bir web deneyimi sunar.
Neticede HSTS, web sitelerinin güvenliğini önemli derecede artıracak güçlü bir araç olsa da, yapılandırma ayarlarının doğru bir şekilde uygulanması, diğer güvenlik önlemlerinin de alınması ve her zaman potansiyel risklerin göz önünde bulundurulması gerekir.