6. History Lists (Listes d'historique)
Les agents utilisateurs ont souvent des mécanismes d'historique, tels que des boutons "Retour" et des listes d'historique, qui peuvent être utilisés pour réafficher une représentation récupérée plus tôt dans une session.
Le modèle de fraîcheur (Section 4.2) ne s'applique pas nécessairement aux mécanismes d'historique. C'est-à-dire qu'un mécanisme d'historique peut afficher une représentation précédente même si elle a expiré.
Cela n'empêche pas le mécanisme d'historique d'indiquer à l'utilisateur qu'une vue pourrait être obsolète, ou de respecter les directives de cache (par exemple, Cache-Control : no-store).
7. IANA Considerations (Considérations IANA)
Cette spécification définit deux nouveaux registres pour l'utilisation par l'IANA, comme indiqué dans les sections suivantes. De plus, elle enregistre des champs d'en-tête précédemment définis, met à niveau leur statut et enregistre des types MIME précédemment non enregistrés.
7.1. Cache Directive Registry (Registre des directives de cache)
Le "Registre des directives de cache du protocole de transfert hypertexte (HTTP)" définit l'espace de noms pour les directives de cache. Il a été créé et est maintenant maintenu à http://www.iana.org/assignments/http-cache-directives.
7.1.1. Procédure
Une inscription DOIT (MUST) inclure les champs suivants :
- Nom de la directive de cache
- Pointeur vers le texte de spécification
Les valeurs à ajouter à cet espace de noms nécessitent un examen IETF (voir [RFC5226], Section 4.1).
7.1.2. Considérations pour les nouvelles directives Cache-Control
Les nouvelles directives d'extension devraient (ought to) envisager de définir :
- Ce que signifie spécifier la directive plusieurs fois,
- Ce que signifie la présence d'un argument lorsque la directive n'accepte pas d'argument,
- Ce que signifie l'absence d'un argument lorsque la directive accepte un argument.
Voir également Section 5.2.3.
Note : Pour plus de détails sur 7.1.3 (Enregistrements), 7.2 (Registre des codes d'avertissement) et 7.3 (Enregistrement des champs d'en-tête), veuillez consulter les fichiers de sous-section correspondants.
8. Security Considerations (Considérations de sécurité)
Cette section vise à informer les développeurs, les fournisseurs d'informations et les utilisateurs des problèmes de sécurité connus spécifiques à la mise en cache HTTP.
Les caches exposent des vulnérabilités potentielles supplémentaires, car le contenu du cache représente une cible attrayante pour une exploitation malveillante. Étant donné que le contenu du cache persiste après la fin d'une requête HTTP, les attaques sur les caches peuvent révéler des informations longtemps après que l'utilisateur pense que les informations ont été supprimées du réseau. Par conséquent, le contenu du cache doit être protégé comme des informations sensibles.
De plus, les aspects suivants des caches peuvent entraîner des problèmes :
8.1. Attaques temporelles
Étant donné que l'un des principaux usages des caches est d'optimiser les performances en évitant la transmission d'informations déjà conservées dans le cache, cette optimisation peut malheureusement être utilisée pour effectuer des attaques temporelles. Plus précisément, la capacité de détecter si un cache a récemment été utilisé pour accéder à certaines ressources peut révéler des modèles dans l'historique de navigation de l'utilisateur.
Les atténuations incluent l'utilisation de connexions cryptées pour empêcher l'observation par des tiers, et une conception soigneuse pour limiter la capacité d'un attaquant à sonder l'état du cache.
8.2. Exposition d'informations sensibles
Les caches partagés sont par définition accessibles par plusieurs utilisateurs et potentiellement plusieurs organisations. De tels caches doivent soigneusement distinguer le contenu autorisé du contenu non autorisé pour éviter de renvoyer des réponses inappropriées. Les implémentations de cache doivent veiller à respecter strictement les directives telles que private, no-cache et no-store, qui peuvent indiquer des informations sensibles.
8.3. Empoisonnement des caches
L'une des principales attaques contre les caches consiste à les "empoisonner" en introduisant de fausses réponses. L'impact de l'empoisonnement d'un cache dépend de la façon dont le cache traite la fausse réponse. Si le cache traite la fausse réponse comme une réponse faisant autorité, le cache peut être utilisé pour fournir des informations incorrectes pendant une longue période.
Atténuations : L'empoisonnement du cache peut être atténué en validant correctement les réponses avant de les mettre en cache et en utilisant des connexions sécurisées pour empêcher les attaques de l'homme du milieu.