HTTPS Neden Yeterli Değildir?
Web Güvenliğinde HSTS’nin Teorik ve Pratik Gerekliliği
HTTPS Neden Yeterli Değildir?
Web Güvenliğinde HSTS’nin Teorik ve Pratik Gerekliliği
Web güvenliği konuşulurken, geliştiriciler arasında yaygın ama hatalı bir varsayım vardır:
“HTTPS kullanıyorsak güvenliyiz.”
Bu varsayım, teknik olarak eksiktir. Çünkü HTTPS bir şifreleme mekanizmasıdır, bir zorunluluk politikası değildir.
Bu yazıda, HTTPS redirection’ın neden tek başına yeterli olmadığını, HSTS’nin hangi problemi çözdüğünü ve bu iki kavramın neden sıkça karıştırıldığını, teorik temelleriyle birlikte ele alacağız.
1. HTTPS’in Güvenlik Modeli
HTTPS, HTTP’nin TLS (Transport Layer Security) ile sarmalanmış halidir. Sağladığı güvenlik özellikleri üç başlıkta toplanır:
- Gizlilik (Confidentiality) İstemci ile sunucu arasındaki veriler şifrelenir.
- Bütünlük (Integrity) Veri aktarım sırasında değiştirilemez.
- Kimlik Doğrulama (Authentication) Sunucunun kimliği sertifika ile doğrulanır.
Buraya kadar her şey doğrudur.
Ancak HTTPS şu soruya cevap vermez:
“Tarayıcı bu protokolü kullanmak zorunda mı?”
Cevap: Hayır.
2. HTTPS Redirection Nedir ve Ne Yapar?
HTTPS redirection, sunucu tarafında uygulanan bir yönlendirme mekanizmasıdır.
.NET tarafında tipik olarak şu middleware ile yapılır:
app.UseHttpsRedirection();
Bu mekanizmanın çalışması için HTTP isteğinin sunucuya ulaşması gerekir.
Yani akış şöyledir:
- Tarayıcı HTTP isteği gönderir
- Sunucu isteği kabul eder
- Sunucu HTTPS’e yönlendirir
Bu noktada kritik bir gerçek vardır:
HTTPS redirection, HTTP isteğini engellemez. HTTP isteği geldikten sonra çalışır.
Bu, güvenlik literatüründe ciddi bir farktır.
Photo by Caspar Camille Rubin on Unsplash
3. “İlk İstek” Problemi
Web güvenliğinde “ilk istek” her zaman özel bir yere sahiptir.
Çünkü:
- Şifreleme henüz başlamamıştır
- Tarayıcı henüz bir güvenlik politikası uygulamamaktadır
- Araya girme ihtimali teorik olarak mevcuttur
Bu boşluk, literatürde SSL Stripping olarak adlandırılan saldırı sınıfının temelini oluşturur. Bu konuyu detaylı olarak başka bir yazı ile anlatmak istiyorum
4. SSL Stripping Tehdidi (Kavramsal Çerçeve)
SSL Stripping saldırısında saldırgan:
- HTTP → HTTPS yönlendirmesini engeller
- Kullanıcıyı sürekli HTTP üzerinde tutar
- HTTPS’e hiç geçilmemesini sağlar
Bu saldırı genellikle:
- Açık Wi-Fi ağlarında
- Ortak router’larda
- DNS veya ARP spoofing ile
gerçekleşir.
Önemli bir nokta:
Bu saldırı HTTPS’i kırmaz. HTTPS’e hiç geçilmesine izin vermez.
Dolayısıyla çözüm:
- Daha güçlü şifreleme değil
- HTTP’nin tamamen yasaklanmasıdır
5. HSTS: Bir Güvenlik Politikası Olarak Tasarım
HSTS (HTTP Strict Transport Security), bir tarayıcı politikasıdır.
Sunucu, HTTPS cevabında aşağıdaki header’ı gönderir:
Strict-Transport-Security: max-age=31536000
Bu header’ın anlamı şudur
“Bu domain için HTTP protokolünü kullanma.”
Bu karar:
- Sunucu tarafından değil
- Tarayıcı tarafından uygulanır
Bu ayrım, HSTS’yi güçlü kılan temel unsurdur.
6. HSTS ile Tarayıcı Davranışının Değişmesi
HSTS aktif olduğunda tarayıcı:
- HTTP isteği oluşturmaz
- Redirect beklemez
- İlk bağlantıyı bile HTTPS ile kurar
Dolayısıyla akış şu hale gelir:
HSTS yokken
HTTP → Redirect → HTTPS
HSTS varken
HTTPS (doğrudan)
Bu, saldırı yüzeyini kökten ortadan kaldırır.
7. Sonuç: Kavramsal Netlik
HTTPS:
- Bir şifreleme protokolüdür
HSTS:
- Bir tarayıcı güvenlik politikasıdır
Bu iki kavram birbirini tamamlar ama birbirinin yerine geçmez.
Son cümle olarak şunları söyleyebiliriz:
HTTPS, veriyi korur. HSTS, davranışı zorlar. Güvenlik, zorlanan davranışlarla sağlanır.
메타데이터
- post_id
- d99fd5f9f1fa
- slug
- https-neden-yeterli-değildir-d99fd5f9f1fa
- url
- https://medium.com/@Ali0/https-neden-yeterli-de%C4%9Fildir-d99fd5f9f1fa
- canonical_url
- https://medium.com/@Ali0/https-neden-yeterli-de%C4%9Fildir-d99fd5f9f1fa
- author_url
- https://medium.com/@Ali0
- status
- ok
- fetched_at
- 2026-06-17 08:20:12