Teknoloji

HSTS Nedir? Nasıl Kurulur?

HSTS Nedir? HSTS Nasıl Kurulur? HTTPS çok güvenlidir, ancak bir kusuru vardır: Varsayılan olarak açık değildir. Ortadaki bir saldırgan, siz ona HTTPS kullanmasını söylemeden önce bir kullanıcının bağlantısını ele geçirebilir. HSTS bu sorunu çözer ve site genelinde HTTPS’yi etkinleştirir.

İlk etapta SSL şifrelemesine sahip olmak HSTS için bir ön koşuldur, çünkü aksi takdirde HSTS’yi etkinleştirmek sitenizi erişilemez hale getirir. Web sitenizde HTTPS’yi etkinleştirmek için LetsEncrypt ile ücretsiz SSL sertifikaları kurma konusundaki kılavuzumuzu okuyabilirsiniz.

HSTS Nedir?

HSTS, “HTTP Strict Transport Security”nin kısaltmasıdır. Bu, bir web sitesinin tarayıcılara, siteye sadece HTTPS üzerinden erişim izni verilmesini sağlayan bir güvenlik politikası mekanizmasıdır. HSTS, web sitesinin ziyaretçilerinin tarayıcılarında HTTP üzerinden erişmeye çalıştıklarında, tarayıcıları otomatik olarak HTTPS’e yönlendirir. Bu, site ziyaretçilerinin bilgilerinin güvenliğini artırır ve “man-in-the-middle” saldırılarına karşı koruma sağlar.


HSTS Nasıl Çalışır?

HSTS, HTTP Katı Taşıma Güvenliği anlamına gelir ve bir kullanıcının tarayıcısının web sitenize nasıl bağlanması gerektiğini yönetir.

Sitenize bağlantı genellikle şu şekilde çalışır. Bir kullanıcı web sitenize bağlanmak istiyor ve sunucunuza bağlanma isteği gönderiyor. Sunucunuz sorumlu olanı yapar ve tarayıcıya bir 301 Moved Permanently yanıtı göndererek, istediği HTTP adresinin HTTPS’ye yeniden yönlendirilmesi gerektiğini söyler. Kullanıcı güvenli bir şekilde gezinmeye normal şekilde devam eder.

Ancak, bağlantı üzerinde kontrole sahip bir saldırgan (ortadaki adam saldırılarında olduğu gibi) 301 yanıtını kolayca engelleyebilir ve bu kullanıcının göz atma oturumunun kontrolünü ele geçirebilir. Bu, siteyi şifreleme amacını ilk etapta geçersiz kıldığı için önemli bir sorundur.

HSTS etkinken, sunucu aynı 301 Moved Permanently yanıtını gönderir, ancak aynı zamanda “Hey, HTTP’yi desteklemiyorum. Daha fazla HTTP isteği yapmayı denemeyin, çünkü hepsini yeniden yönlendireceğim. ” Tarayıcı mesajı alır ve herhangi bir şey göndermeden önce kendisini HTTPS’ye yönlendirir. Bu, sitenizin varsayılan olarak her zaman tamamen HTTPS olmasını sağlar.


HSTS Ön Yükleme

Bununla birlikte, standart HSTS’nin büyük bir kusuru vardır: Bir kullanıcının yaptığı ilk bağlantı hala güvensizdir. Bir kullanıcı sitenizi daha önce kullandıysa, tarayıcı gelecekte HSTS isteğine saygı gösterecektir. Ancak ilk HSTS yanıtı güvenli değildir, bu nedenle bir kullanıcı bir kafede geziniyor ve sitenizi ilk kez açıyorsa (veya bir mobil cihazda ilk kez), bağlantısı yine de ele geçirilebilir.

HSTS önyüklemesi, bu sorunu çözmek için Chromium projesinin bir girişimidir. Chromium Project, HSTS’nin her zaman etkin olduğu web sitelerinin bir listesini tutar. Bu liste çoğu büyük tarayıcıda yerleşiktir ve tarayıcı, yeni sitelere istekte bulunmadan önce listeyi kontrol eder.

Listedeyseniz, bir kullanıcı sitenizle daha önce hiç etkileşime girmemiş olsa bile, kullanıcı HSTS başlığınızı görmüş gibi davranacak ve asla HTTP ile iletişim kurmayacaktır. Bu, bağlantıyı baştan itibaren tamamen güvenli hale getirir.


HSTS’yi Etkinleştirme ve Ön Yükleme Listesine Katılma

HSTS, sunucunuzun gönderdiği tüm yanıtlara eklenen basit bir başlık ile açılabilir:

Katı Taşıma Güvenliği: maks-yaş = 300; includeSubDomains; önyükleme

Bunu web sunucunuzun yapılandırma dosyasına ekleyebilirsiniz. Örneğin, Nginx’te, add_header sunucu bloğunuza bir satır ekleyerek başlığı ayarlayabilirsiniz :

add_header Strict-Transport-Security 'max-age = 300; includeSubDomains; önyükleme; her zaman;'

Ve Apache için, komut Header always set satırı kullanılarak benzerdir :

Üstbilgi her zaman Strict-Transport-Security "max-age = 300; includeSubDomains; preload" olarak ayarlandı

Bununla birlikte, her şeyin doğru şekilde çalışmasını sağlamak ve ön yüklemeye uygun olmak için birkaç adım daha var.

Öncelikle, tüm HTTP isteklerini HTTPS’ye yönlendirdiğinizden emin olun. Nginx’te bunu, tüm bağlantı noktası 80 isteklerini (HTTP) dinleyerek ve URL HTTPS eşdeğerine değiştirilmiş bir 301 isteği göndererek yapabilirsiniz:

sunucu {80 dinle; dönüş 301 https: // $ host $ request_uri; }

Ön yüklemeye hak kazanmak için, tüm alt etki alanlarınızın SSL sertifikanız kapsamında olduğundan ve bunları HTTPS üzerinden sunduğunuzdan da emin olmalısınız. Bunu, LetsEncrypt’ten ücretsiz olarak alabileceğiniz bir joker karakter sertifikası ile yapabilirsiniz. Ön yükleme yapmıyorsanız, bu gerekli değildir, ancak yine de tavsiye edilir.

HSTS’nin doğru çalışıp çalışmadığını, sitenizi başlık etkin olarak yükleyerek ve ardından  “HSTS / PKP etki alanı sorgulama” arama aracına gidip  site adınızı girerek kontrol edebilirsiniz. Siteniz bu şekilde çıktı görüntülüyorsa, HSTS etkinleştirilmiştir.chrome://net-internals/#

Ek olarak, strict-transport-security başlığın sitenizin yanıt başlıklarına dahil edilip edilmediğini kontrol etmelisiniz, bunu Chrome geliştirme konsolundaki Ağ sekmesinden yapabilirsiniz:

Tüm bunları yaptıktan sonra, her şeyin çalıştığını ve HSTS’yi açtığınızda hiçbir şeyin bozulmadığını test etmelisiniz. Herhangi bir sorun yoksa, ön yükleme gönderim sayfasına gidebilir, alan adınızı girebilir ve web sitenizi gönderebilirsiniz.


HSTS ve HSTS Ön Yükleme ile ilgili sorunlar

HSTS ile siteniz artık her şey için HTTPS kullanmak zorunda kalıyor  . Bu, her alt alanı, hatta dahili araçları içerir. Sahip olduğunuz her alt alan, geçerli bir SSL sertifikasına sahip olmalı ve HTTPS ile güvence altına alınmalıdır, aksi takdirde HSTS başlığı süresince erişilemez (iki yıla kadar olabilir). Wildcard sertifikanız varsa, bu sorunlardan bazılarını çözebilirsiniz, ancak uzun süre etkinleştirmeden önce test yapmanız gerekir.

HSTS önyüklemesiyle ilgili ana sorun, çok kalıcı olmasıdır. Minimum süre max-age bir yıldır ve siteniz listeye alındıktan sonra, değişiklikleri uygulamak için her kullanıcının bir tarayıcı güncellemesi yapmasını gerektiren uzun bir kaldırma sürecinden geçmeden listeden ayrılamazsınız.

Pratikte başlıca sorunların neler olduğunu görmek için, kaldırma taleplerinin bu meta hata listesine bakabilirsiniz. Uber, alt alan adlarıyla ilgili sorunlar yaşadı. Üçüncü ve daha yüksek düzey alt etki alanları, normal joker karakter sertifikalarında desteklenmeyebilir. İsveç’ten bir web sitesi, yerel reklamverenler kaynaklarını HTTPS üzerinden yüklemediğinden ve HSTS, kullanıcı web sitenize bağlıyken yapılan her güvenli olmayan HTTP isteğini engellediğinden, önemli ölçüde daha düşük reklam gelirini bildirdi.

Bu sorunları önlemenin en iyi yolu, önceden yüklemeye kalıcı geçiş yapmadan önce HSTS’yi aşamalı olarak kullanıma sunmaktır. Chromium Projesi max-age, çalışıp çalışmadığını test etmek için değeri ilk beş dakikaya ayarlayarak aralıklarla test yapılmasını önerir :

maks-yaş = 300; includeSubDomains

Daha uzun bir test için bir haftaya kadar:

maks-yaş = 604800; includeSubDomains

Sonra, bir sorun olmadığından emin olana kadar bir ay boyunca:

maksimum yaş = 2592000; includeSubDomains

Bir şeyler ters giderse ve gerçekten uzun bir max-age özellik ayarlarsanız , yerel bayrağı Chrome net-internals sayfasından temizleyebilirsiniz .

Her zaman yalnızca HTTPS kullanmanın yanlış olmayacağından emin olduktan sonra, max-ageiki yıla ayarlayabilir , preload yönergeyi ekleyebilir ve sitenizi önyükleme için gönderebilirsiniz.


👉 Öğrenci Gündemi’ ni İnstagram’dan Takip Etmek İçin Tıklayınız

İlgili Makaleler

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Başa dön tuşu