6. History Lists (Verlaufslisten)
User-Agents verfügen häufig über Verlaufsmechanismen, wie z. B. "Zurück"-Schaltflächen und Verlaufslisten, die verwendet werden können, um eine früher in einer Sitzung abgerufene Darstellung erneut anzuzeigen.
Das Frische-Modell (Abschnitt 4.2) gilt nicht unbedingt für Verlaufsmechanismen. Das heißt, ein Verlaufsmechanismus kann eine frühere Darstellung anzeigen, auch wenn sie abgelaufen ist.
Dies verbietet dem Verlaufsmechanismus nicht, dem Benutzer mitzuteilen, dass eine Ansicht möglicherweise veraltet ist, oder Cache-Direktiven zu respektieren (z. B. Cache-Control: no-store).
7. IANA Considerations (IANA-Überlegungen)
Diese Spezifikation definiert zwei neue Register für die Verwendung durch IANA, wie in den folgenden Abschnitten beschrieben. Darüber hinaus registriert sie zuvor definierte Header-Felder, aktualisiert deren Status und registriert zuvor nicht registrierte MIME-Typen.
7.1. Cache Directive Registry (Cache-Direktiven-Register)
Das "Hypertext Transfer Protocol (HTTP) Cache Directive Registry" definiert den Namensraum für Cache-Direktiven. Es wurde erstellt und wird jetzt unter http://www.iana.org/assignments/http-cache-directives gepflegt.
7.1.1. Verfahren
Eine Registrierung MUSS (MUST) die folgenden Felder enthalten:
- Cache-Direktivenname
- Zeiger auf Spezifikationstext
Werte, die zu diesem Namensraum hinzugefügt werden sollen, erfordern ein IETF-Review (siehe [RFC5226], Abschnitt 4.1).
7.1.2. Überlegungen für neue Cache-Control-Direktiven
Neue Erweiterungsdirektiven sollten (ought to) die Definition folgender Punkte in Betracht ziehen:
- Was es bedeutet, die Direktive mehrmals anzugeben,
- Was das Vorhandensein eines Arguments bedeutet, wenn die Direktive kein Argument akzeptiert,
- Was das Fehlen eines Arguments bedeutet, wenn die Direktive ein Argument akzeptiert.
Siehe auch Abschnitt 5.2.3.
Hinweis: Einzelheiten zu 7.1.3 (Registrierungen), 7.2 (Warncode-Registrierung) und 7.3 (Header-Feld-Registrierung) finden Sie in den entsprechenden Unterabschnittsdateien.
8. Security Considerations (Sicherheitsüberlegungen)
Dieser Abschnitt soll Entwickler, Informationsanbieter und Benutzer über bekannte HTTP-Caching-spezifische Sicherheitsprobleme informieren.
Caches setzen zusätzliche potenzielle Schwachstellen frei, da Cache-Inhalte ein attraktives Ziel für böswillige Ausnutzung darstellen. Da Cache-Inhalte nach Abschluss einer HTTP-Anfrage bestehen bleiben, können Angriffe auf Caches Informationen lange offenlegen, nachdem der Benutzer glaubt, dass die Informationen aus dem Netzwerk gelöscht wurden. Daher müssen Cache-Inhalte als sensible Informationen geschützt werden.
Darüber hinaus können die folgenden Aspekte von Caches zu Problemen führen:
8.1. Timing-Angriffe
Da eine der Hauptverwendungen von Caches darin besteht, die Leistung zu optimieren, indem die Übertragung von Informationen vermieden wird, die bereits im Cache gehalten werden, kann diese Optimierung leider verwendet werden, um Timing-Angriffe durchzuführen. Insbesondere kann die Fähigkeit, zu erkennen, ob ein Cache kürzlich zum Zugriff auf bestimmte Ressourcen verwendet wurde, Muster in der Browsing-Historie des Benutzers offenlegen.
Gegenmaßnahmen umfassen die Verwendung verschlüsselter Verbindungen, um Beobachtungen durch Dritte zu verhindern, und sorgfältiges Design, um die Fähigkeit eines Angreifers einzuschränken, den Cache-Zustand zu untersuchen.
8.2. Offenlegung sensibler Informationen
Gemeinsam genutzte Caches sind per Definition von mehreren Benutzern und potenziell mehreren Organisationen zugänglich. Solche Caches müssen sorgfältig zwischen autorisiertem und nicht autorisiertem Inhalt unterscheiden, um die Rückgabe unangemessener Antworten zu vermeiden. Cache-Implementierungen müssen darauf achten, Direktiven wie private, no-cache und no-store, die auf sensible Informationen hinweisen können, strikt zu befolgen.
8.3. Cache-Vergiftung
Einer der Hauptangriffe auf Caches besteht darin, sie durch Einführung gefälschter Antworten zu "vergiften". Die Auswirkungen der Cache-Vergiftung hängen davon ab, wie der Cache die gefälschte Antwort behandelt. Wenn der Cache die gefälschte Antwort als autoritative Antwort behandelt, kann der Cache verwendet werden, um falsche Informationen über einen längeren Zeitraum bereitzustellen.
Gegenmaßnahmen: Cache-Vergiftung kann durch ordnungsgemäße Validierung von Antworten vor dem Caching und durch Verwendung sicherer Verbindungen zur Verhinderung von Man-in-the-Middle-Angriffen gemildert werden.