RFC 6797 - HTTP Strict Transport Security (Sicurezza Rigorosa del Trasporto HTTP, HSTS)
Internet Engineering Task Force (IETF)
Request for Comments: 6797
Categoria: Standards Track
ISSN: 2070-1721
Autori:
J. Hodges (PayPal)
C. Jackson (Carnegie Mellon University)
A. Barth (Google, Inc.)
Data di pubblicazione: Novembre 2012
Riepilogo (Abstract)
Questa specifica definisce un meccanismo che consente ai siti web di dichiarare che sono accessibili solo tramite connessioni sicure e/o che consente agli utenti di indirizzare il proprio user agent per interagire con determinati siti solo tramite connessioni sicure. Questa politica complessiva è chiamata HTTP Strict Transport Security (HSTS). La politica è dichiarata dai siti web tramite il campo di intestazione di risposta HTTP Strict-Transport-Security e/o tramite altri mezzi, come ad esempio la configurazione dell'user agent.
Stato di questo documento (Status of This Memo)
Questo è un documento Internet Standards Track.
Questo documento è un prodotto dell'Internet Engineering Task Force (IETF). Rappresenta il consenso della comunità IETF. Ha ricevuto una revisione pubblica ed è stato approvato per la pubblicazione dall'Internet Engineering Steering Group (IESG). Ulteriori informazioni sugli standard Internet sono disponibili nella Sezione 2 di RFC 5741.
Le informazioni sullo stato attuale di questo documento, eventuali errata e come fornire feedback possono essere ottenute presso:
http://www.rfc-editor.org/info/rfc6797
Avviso sul copyright (Copyright Notice)
Copyright (c) 2012 IETF Trust e le persone identificate come autori del documento. Tutti i diritti riservati.
Questo documento è soggetto a BCP 78 e alle disposizioni legali dell'IETF Trust relative ai documenti IETF (http://trustee.ietf.org/license-info) in vigore alla data di pubblicazione di questo documento. Si prega di esaminare attentamente questi documenti, poiché descrivono i propri diritti e le restrizioni relative a questo documento.
Sommario (Table of Contents)
- 1. Introduction (Introduzione)
- 1.1 Organization of This Specification
- 1.2 Document Conventions
- 2. Overview (Panoramica)
- 2.1 Use Cases
- 2.2 HTTP Strict Transport Security Policy Effects
- 2.3 Threat Model
- 2.4 Requirements
- 3. Conformance Criteria (Criteri di conformità)
- 4. Terminology (Terminologia)
- 5. HSTS Mechanism Overview (Panoramica del meccanismo HSTS)
- 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 (Sintassi)
- 6.1 Strict-Transport-Security HTTP Response Header Field
- 6.2 Examples
- 7. Server Processing Model (Modello di elaborazione del server)
- 7.1 HTTP-over-Secure-Transport Request Type
- 7.2 HTTP Request Type
- 8. User Agent Processing Model (Modello di elaborazione dell'user agent)
- 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 (Costruzione di un URI di richiesta efficace)
- 9.1 ERU Fundamental Definitions
- 9.2 Determining the Effective Request URI
- 10. Domain Name IDNA-Canonicalization (Canonicalizzazione IDNA del nome di dominio)
- 11. Server Implementation and Deployment Advice (Consigli sull'implementazione e distribuzione del server)
- 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 (Consigli sull'implementazione dell'user agent)
- 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 (Nomi di dominio internazionalizzati: dipendenza e migrazione)
- 14. Security Considerations (Considerazioni sulla sicurezza)
- 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 (Considerazioni IANA)
- 16. References (Riferimenti)
- 16.1 Normative References
- 16.2 Informative References
Appendici (Appendices)
- Appendix A. Design Decision Notes (Note sulle decisioni di progettazione)
- Appendix B. Differences between HSTS Policy and Same-Origin Policy (Differenze tra politica HSTS e politica same-origin)
- Appendix C. Acknowledgments (Ringraziamenti)
Risorse correlate
- Testo ufficiale: RFC 6797
- Pagina ufficiale: RFC 6797 DataTracker
- Errata: RFC Editor Errata
- Lista di precaricamento HSTS: hstspreload.org
Riferimento rapido
Valore fondamentale di HSTS
HSTS risolve i seguenti problemi critici di sicurezza web forzando le connessioni HTTPS:
- Attacchi SSL Stripping: Gli aggressori sostituiscono i link HTTPS con HTTP
- Attacchi Man-in-the-Middle: Intercettazione e modifica del traffico non crittografato
- Hijacking della sessione: Furto di cookie trasmessi tramite HTTP
- Problemi di contenuto misto: Pagine HTTPS che caricano risorse HTTP
Utilizzo di base
Esempio di configurazione del server (Nginx):
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
Comportamento del browser:
L'utente visita: http://example.com
Il browser converte automaticamente in: https://example.com
Errore del certificato: Blocco diretto, nessun bypass consentito
Raccomandazioni per la distribuzione
- Fase di test:
max-age=300(5 minuti) - Distribuzione iniziale:
max-age=86400(1 giorno) - Operazione stabile:
max-age=31536000(1 anno) - Ingresso nella lista di precaricamento:
max-age=63072000; includeSubDomains; preload
Considerazioni importanti
⚠️ Avvisi importanti:
- HSTS è difficile da revocare rapidamente una volta impostato
- Assicurarsi che tutti i sottodomini supportino HTTPS prima di utilizzare
includeSubDomains - Non inviare intestazioni HSTS nelle risposte HTTP (verranno eliminate)
- Evitare di utilizzare valori max-age a lungo termine negli ambienti di sviluppo
Questa RFC è uno dei pilastri della sicurezza web moderna ed è supportata da tutti i browser principali. La corretta distribuzione di HSTS può migliorare significativamente la sicurezza del sito web.