6. History Lists (Liste di cronologia)
Gli agenti utente hanno spesso meccanismi di cronologia, come pulsanti "Indietro" e liste di cronologia, che possono essere utilizzati per visualizzare nuovamente una rappresentazione recuperata in precedenza in una sessione.
Il modello di freschezza (Sezione 4.2) non si applica necessariamente ai meccanismi di cronologia. Cioè, un meccanismo di cronologia può visualizzare una rappresentazione precedente anche se è scaduta.
Ciò non impedisce al meccanismo di cronologia di informare l'utente che una vista potrebbe essere obsoleta, o di rispettare le direttive di cache (ad esempio, Cache-Control: no-store).
7. IANA Considerations (Considerazioni IANA)
Questa specifica definisce due nuovi registri per l'uso da parte di IANA, come delineato nelle sezioni seguenti. Inoltre, registra campi di intestazione precedentemente definiti, aggiorna il loro stato e registra tipi MIME precedentemente non registrati.
7.1. Cache Directive Registry (Registro delle direttive di cache)
Il "Registro delle direttive di cache del protocollo di trasferimento ipertestuale (HTTP)" definisce lo spazio dei nomi per le direttive di cache. È stato creato ed è ora mantenuto su http://www.iana.org/assignments/http-cache-directives.
7.1.1. Procedura
Una registrazione DEVE (MUST) includere i seguenti campi:
- Nome della direttiva di cache
- Puntatore al testo di specifica
I valori da aggiungere a questo spazio dei nomi richiedono una revisione IETF (vedere [RFC5226], Sezione 4.1).
7.1.2. Considerazioni per le nuove direttive Cache-Control
Le nuove direttive di estensione dovrebbero (ought to) considerare di definire:
- Cosa significa specificare la direttiva più volte,
- Cosa significa la presenza di un argomento quando la direttiva non accetta un argomento,
- Cosa significa l'assenza di un argomento quando la direttiva accetta un argomento.
Vedere anche Sezione 5.2.3.
Nota: Per i dettagli su 7.1.3 (Registrazioni), 7.2 (Registro dei codici di avviso) e 7.3 (Registrazione dei campi di intestazione), consultare i file delle sottosezioni corrispondenti.
8. Security Considerations (Considerazioni sulla sicurezza)
Questa sezione mira a informare gli sviluppatori, i fornitori di informazioni e gli utenti sui problemi di sicurezza noti specifici del caching HTTP.
Le cache espongono vulnerabilità potenziali aggiuntive, poiché il contenuto della cache rappresenta un obiettivo attraente per lo sfruttamento malevolo. Poiché il contenuto della cache persiste dopo il completamento di una richiesta HTTP, gli attacchi alle cache possono rivelare informazioni molto tempo dopo che l'utente ritiene che le informazioni siano state rimosse dalla rete. Pertanto, il contenuto della cache deve essere protetto come informazioni sensibili.
Inoltre, i seguenti aspetti delle cache possono causare problemi:
8.1. Attacchi temporali
Poiché uno degli usi principali delle cache è ottimizzare le prestazioni evitando la trasmissione di informazioni già conservate nella cache, questa ottimizzazione può purtroppo essere utilizzata per eseguire attacchi temporali. In particolare, la capacità di rilevare se una cache è stata recentemente utilizzata per accedere a determinate risorse può rivelare modelli nella cronologia di navigazione dell'utente.
Le mitigazioni includono l'uso di connessioni crittografate per impedire l'osservazione da parte di terzi e una progettazione attenta per limitare la capacità di un attaccante di sondare lo stato della cache.
8.2. Esposizione di informazioni sensibili
Le cache condivise sono per definizione accessibili da più utenti e potenzialmente più organizzazioni. Tali cache devono distinguere attentamente tra contenuto autorizzato e non autorizzato per evitare di restituire risposte inappropriate. Le implementazioni di cache devono fare attenzione a rispettare rigorosamente le direttive come private, no-cache e no-store, che possono indicare informazioni sensibili.
8.3. Avvelenamento delle cache
Uno degli attacchi principali contro le cache consiste nell'"avvelenare" introducendo risposte false. L'impatto dell'avvelenamento di una cache dipende da come la cache gestisce la risposta falsa. Se la cache tratta la risposta falsa come una risposta autorevole, la cache può essere utilizzata per fornire informazioni errate per un lungo periodo.
Mitigazioni: L'avvelenamento della cache può essere mitigato validando correttamente le risposte prima di memorizzarle nella cache e utilizzando connessioni sicure per prevenire attacchi man-in-the-middle.