Was istHSTS?
HSTS(HTTPStrict Transport Security) ist ein Web-Sicherheitsmechanismus, der den Browsern sagt, nur mit einer Website überHTTPS, nieHTTPzu interagieren. Sobald ein Browser einenHSTS-Header sieht, wird er automatisch alle zukünftigen Anfragen anHTTPSaufrüsten und sich weigern, sich über einfacheHTTPzu verbinden, auch wenn der Nutzer explizithttp://.
WarumHSTSMaterie
Selbst mit einem gültigenSSL-Zertifikat existieren Schwachstellen:
SSLStripping Attack
1. Benutzertypen "example.com" (Nr. https://)
2. Angreifer nimmt den erstenHTTP-Antrag ab
3. Angreiferproxies zuHTTPS, präsentiertHTTPan den Benutzer
4. Benutzer denkt, sie sind sicher, aber Angreifer sieht alles
HSTSverhindert dies, indem sichergestellt wird, dass Browser diese anfänglicheHTTP-Anforderung niemals stellen.
Leistungen desHSTS
- ** Verhindert Downgrade-Angriffe*:HTTPRückfall möglich
- **Protects User Bookmarks*: Auch alteHTTPLesezeichen werdenHTTPS
- **Beseitigt gemischten Inhalt*: Quellen auch zuHTTPS
- **Verbesserte Leistung*: Nr.HTTP→§1Umleitungen erforderlich
HSTSHeader Syntax
Strict-Transport-Security: max-age=31536000; includeSubDomains; preload
Richtlinien
| Richtlinie | Warenbezeichnung |
|---|---|
| max. | Zweite zu erinnernHSTS(31536000 = 1 Jahr) |
| Zu den Themen SubDomains | Bewerben SieHSTSauf alle Subdomains |
| Vorspannung | Zustimmung zu Browser Preload-Liste Aufnahme |
DurchführungHSTS
Nginx
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" always;
Apache
Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains; preload"
Cloudflare
Ermöglicht inSSL/TLS→ Kantenzertifikate →HTTPStrenge Transportsicherheit
Express.js
const helmet = require('helmet');
app.use(helmet.hsts({
maxAge: 31536000,
includeSubDomains: true,
preload: true
}));
HSTSVorladeliste
DieHSTSPreload-Liste ist eine Liste von Domains, die in Browsern festcodiert sind, die nur überHTTPSaufgerufen werden sollten. Dies eliminiert auch die ersteHTTP-Anforderung an Verwundbarkeit.
Vorgabeanforderungen
1. GültigSSLZertifikat
2. AlleHTTPzuHTTPS§
3. HSTSHeader mit:
- max-age mindestens 31536000 (1 Jahr)
- inklusiveSubDomains-Richtlinie
- Vorladerichtlinie
4. Alle Subdomains müssenHTTPSunterstützen
Eintrag zur Vorladungsliste
1. Anforderungen: Verwenden Siehstspreload.orgzu überprüfen
2. Domain eintragen: Domain eingeben beihstspreload.org
3. Währung: dauert Wochen bis Monate für Browser-Updates
Warnhinweise vorladen
Die Vorladung ist permanent (praktisch). Entfernen aus der Liste dauert Monate und erfordert Browser-Updates. Nur Vorladung, wenn Sie sicher sind, dass alle SubdomainsHTTPSunbestimmt unterstützen.PrüfungHSTS
**Browser DevTools*:
1. DevTools öffnen → Registrykarte Netzwerk
2. Seite laden
3. Check Response Header für Strict-Transport-Security
** Verwendung von Curl*:
curl -I https://example.com | grep -i strict
**Verwendung vonDomScan*:
curl "https://domscan.net/v1/health?domain=example.com"
# Reports hasHSTS in security details
Status vorladen:
Überprüfen Siehstspreload.org, ob eine Domain vorgeladen wird.
HSTSArbeitsstrategie
Phase 1: Kurzer max.
Beginnen Sie mit einem kurzen max-age zu testen:
Strict-Transport-Security: max-age=300
Wenn etwas bricht, haben die Benutzer nur 5 Minuten gecached.
Phase 2: Erhöhung der Dauer
Nach BestätigungHTTPSfunktioniert überall:
Strict-Transport-Security: max-age=86400
Phase 3: Subdomains hinzufügen
Einmal alle Subdomains unterstützenHTTPS:
Strict-Transport-Security: max-age=2592000; includeSubDomains
Phase 4: Full Deployment + Preload
Nach Monaten stabiler Operation:
Strict-Transport-Security: max-age=31536000; includeSubDomains; preload
Geben Sie dann die Vorladungsliste ein.
GemeinsameHSTSEmissionen
**Subdomain ohneHTTPS*: beinhaltenSubDomains Pausen die Subdomain
**Entwicklungsumgebungen*:HSTSaus Produktionsunterbrechungen
CDN/Proxy-Header: Vergewissern Sie sich, dassHSTSHeader nicht von Vermittlern abgestreift wird**Mixed Content*: Alle Ressourcen müssenHTTPSsein;HSTSsetzt die eingebettetenHTTP-Ressourcen nicht fest
HSTSist für jede Website, die sensible Daten verarbeitet und für alleHTTPS-Websites dringend empfohlen.