RFC 6797 - HTTP Strict Transport Security (HTTP Strikte Transportsicherheit, HSTS)
Internet Engineering Task Force (IETF)
Request for Comments: 6797
Kategorie: Standards Track
ISSN: 2070-1721
Autoren:
J. Hodges (PayPal)
C. Jackson (Carnegie Mellon University)
A. Barth (Google, Inc.)
Veröffentlichungsdatum: November 2012
Zusammenfassung (Abstract)
Diese Spezifikation definiert einen Mechanismus, der es Websites ermöglicht zu deklarieren, dass sie nur über sichere Verbindungen zugänglich sind, und/oder der es Benutzern ermöglicht, ihren User Agent anzuweisen, nur über sichere Verbindungen mit bestimmten Websites zu interagieren. Diese Gesamtpolitik wird als HTTP Strict Transport Security (HSTS) bezeichnet. Die Politik wird von Websites über das Strict-Transport-Security HTTP-Antwortheaderfeld und/oder durch andere Mittel wie z.B. User-Agent-Konfiguration deklariert.
Status dieses Dokuments (Status of This Memo)
Dies ist ein Internet Standards Track Dokument.
Dieses Dokument ist ein Produkt der Internet Engineering Task Force (IETF). Es repräsentiert den Konsens der IETF-Community. Es hat ein öffentliches Review erhalten und wurde vom Internet Engineering Steering Group (IESG) zur Veröffentlichung genehmigt. Weitere Informationen zu Internet-Standards sind in Abschnitt 2 von RFC 5741 verfügbar.
Informationen über den aktuellen Status dieses Dokuments, Errata und wie man Feedback geben kann, sind erhältlich unter:
http://www.rfc-editor.org/info/rfc6797
Urheberrechtserklärung (Copyright Notice)
Copyright (c) 2012 IETF Trust und die als Dokumentautoren identifizierten Personen. Alle Rechte vorbehalten.
Dieses Dokument unterliegt BCP 78 und den rechtlichen Bestimmungen des IETF Trust in Bezug auf IETF-Dokumente (http://trustee.ietf.org/license-info), die zum Zeitpunkt der Veröffentlichung dieses Dokuments in Kraft sind. Bitte lesen Sie diese Dokumente sorgfältig durch, da sie Ihre Rechte und Einschränkungen in Bezug auf dieses Dokument beschreiben.
Inhaltsverzeichnis (Table of Contents)
- 1. Introduction (Einführung)
- 1.1 Organization of This Specification
- 1.2 Document Conventions
- 2. Overview (Überblick)
- 2.1 Use Cases
- 2.2 HTTP Strict Transport Security Policy Effects
- 2.3 Threat Model
- 2.4 Requirements
- 3. Conformance Criteria (Konformitätskriterien)
- 4. Terminology (Terminologie)
- 5. HSTS Mechanism Overview (HSTS-Mechanismus-Überblick)
- 5.1 HSTS Host Declaration
- 5.2 HSTS Policy
- 5.3 HSTS Policy Storage and Maintenance by User Agents
- 5.4 User Agent HSTS Policy Enforcement
- 6. Syntax
- 6.1 Strict-Transport-Security HTTP Response Header Field
- 6.2 Examples
- 7. Server Processing Model (Server-Verarbeitungsmodell)
- 7.1 HTTP-over-Secure-Transport Request Type
- 7.2 HTTP Request Type
- 8. User Agent Processing Model (User-Agent-Verarbeitungsmodell)
- 8.1 Strict-Transport-Security Response Header Field Processing
- 8.2 Known HSTS Host Domain Name Matching
- 8.3 URI Loading and Port Mapping
- 8.4 Errors in Secure Transport Establishment
- 8.5 HTTP-Equiv <Meta> Element Attribute
- 8.6 Missing Strict-Transport-Security Response Header Field
- 9. Constructing an Effective Request URI (Konstruktion einer effektiven Anfrage-URI)
- 9.1 ERU Fundamental Definitions
- 9.2 Determining the Effective Request URI
- 10. Domain Name IDNA-Canonicalization (Domainname-IDNA-Kanonisierung)
- 11. Server Implementation and Deployment Advice (Server-Implementierung und Deployment-Ratschläge)
- 11.1 Non-Conformant User Agent Considerations
- 11.2 HSTS Policy Expiration Time Considerations
- 11.3 Using HSTS in Conjunction with Self-Signed Public-Key Certificates
- 11.4 Implications of includeSubDomains
- 12. User Agent Implementation Advice (User-Agent-Implementierungsratschläge)
- 12.1 No User Recourse
- 12.2 User-Declared HSTS Policy
- 12.3 HSTS Pre-Loaded List
- 12.4 Disallow Mixed Security Context Loads
- 12.5 HSTS Policy Deletion
- 13. Internationalized Domain Names for Applications (IDNA): Dependency and Migration (Internationalisierte Domainnamen: Abhängigkeit und Migration)
- 14. Security Considerations (Sicherheitsüberlegungen)
- 14.1 Underlying Secure Transport Considerations
- 14.2 Non-Conformant User Agent Implications
- 14.3 Ramifications of HSTS Policy Establishment Only over Error-Free Secure Transport
- 14.4 The Need for includeSubDomains
- 14.5 Denial of Service
- 14.6 Bootstrap MITM Vulnerability
- 14.7 Network Time Attacks
- 14.8 Bogus Root CA Certificate Phish plus DNS Cache Poisoning Attack
- 14.9 Creative Manipulation of HSTS Policy Store
- 14.10 Internationalized Domain Names
- 15. IANA Considerations (IANA-Überlegungen)
- 16. References (Referenzen)
- 16.1 Normative References
- 16.2 Informative References
Anhänge (Appendices)
- Appendix A. Design Decision Notes (Design-Entscheidungsnotizen)
- Appendix B. Differences between HSTS Policy and Same-Origin Policy (Unterschiede zwischen HSTS-Politik und Same-Origin-Politik)
- Appendix C. Acknowledgments (Danksagungen)
Verwandte Ressourcen
- Offizieller Text: RFC 6797
- Offizielle Seite: RFC 6797 DataTracker
- Errata: RFC Editor Errata
- HSTS Preload-Liste: hstspreload.org
Schnellreferenz
Kernwert von HSTS
HSTS behebt die folgenden kritischen Websicherheitsprobleme durch Erzwingung von HTTPS-Verbindungen:
- SSL Stripping-Angriffe: Angreifer ersetzen HTTPS-Links durch HTTP
- Man-in-the-Middle-Angriffe: Abfangen und Ändern von unverschlüsseltem Datenverkehr
- Session-Hijacking: Diebstahl von Cookies, die über HTTP übertragen werden
- Mixed-Content-Probleme: HTTPS-Seiten laden HTTP-Ressourcen
Grundlegende Verwendung
Server-Konfigurationsbeispiel (Nginx):
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
Browser-Verhalten:
Benutzer besucht: http://example.com
Browser konvertiert automatisch zu: https://example.com
Zertifikatsfehler: Direkter Block, kein Umgehen erlaubt
Deployment-Empfehlungen
- Testphase:
max-age=300(5 Minuten) - Erstes Deployment:
max-age=86400(1 Tag) - Stabiler Betrieb:
max-age=31536000(1 Jahr) - Eintrag in die Preload-Liste:
max-age=63072000; includeSubDomains; preload
Wichtige Überlegungen
⚠️ Wichtige Warnungen:
- HSTS ist schwierig schnell zu widerrufen, sobald es gesetzt ist
- Stellen Sie sicher, dass alle Subdomains HTTPS unterstützen, bevor Sie
includeSubDomainsverwenden - Senden Sie keine HSTS-Header in HTTP-Antworten (sie werden entfernt)
- Vermeiden Sie die Verwendung von langfristigen max-age-Werten in Entwicklungsumgebungen
Diese RFC ist einer der Eckpfeiler der modernen Websicherheit und wird von allen großen Browsern unterstützt. Die ordnungsgemäße Bereitstellung von HSTS kann die Sicherheit von Websites erheblich verbessern.