6. History Lists (履歴リスト)
ユーザーエージェントには、セッション中に以前に取得した表現を再表示するために使用できる「戻る」ボタンや履歴リストなどの履歴メカニズムがあることが多い。
鮮度モデル(セクション4.2)は、必ずしも履歴メカニズムに適用されるわけではない。つまり、履歴メカニズムは、期限が切れている場合でも、以前の表現を表示できる。
これは、履歴メカニズムがユーザーにビューが古い可能性があることを伝えたり、キャッシュディレクティブ(例えば、Cache-Control: no-store)を尊重することを禁止するものではない。
7. IANA Considerations (IANA考慮事項)
この仕様では、以下のセクションで概説されているように、IANAが使用する2つの新しいレジストリを定義する。さらに、以前に定義されたヘッダーフィールドを登録し、そのステータスをアップグレードし、以前に登録されていなかったMIMEタイプを登録する。
7.1. Cache Directive Registry (キャッシュディレクティブレジストリ)
"ハイパーテキスト転送プロトコル(HTTP)キャッシュディレクティブレジストリ"は、キャッシュディレクティブの名前空間を定義する。これは作成され、現在 http://www.iana.org/assignments/http-cache-directives で維持されている。
7.1.1. 手順
登録には次のフィールドを含めなければならない (MUST):
- キャッシュディレクティブ名
- 仕様テキストへのポインタ
この名前空間に追加される値にはIETFレビューが必要である([RFC5226] のセクション4.1参照)。
7.1.2. 新しいCache-Controlディレクティブの考慮事項
新しい拡張ディレクティブは次のことを定義することを考慮すべきである (ought to):
- ディレクティブが複数回指定された場合の意味、
- ディレクティブが引数を受け入れない場合に引数が存在することの意味、
- ディレクティブが引数を受け入れる場合に引数が欠落していることの意味。
セクション5.2.3も参照。
注: 7.1.3(登録)、7.2(警告コードレジストリ)、7.3(ヘッダーフィールド登録)の詳細については、関連するサブセクションファイルを参照してください。
8. Security Considerations (セキュリティ考慮事項)
このセクションは、HTTPキャッシング固有の既知のセキュリティ問題について、開発者、情報提供者、およびユーザーに通知することを目的としている。
キャッシュは、悪意のある悪用のための魅力的なターゲットを表すため、追加の潜在的な脆弱性を露呈する。HTTPリクエストが完了した後もキャッシュコンテンツが残るため、キャッシュへの攻撃は、ユーザーが情報がネットワークから削除されたと考えた後ずっと後に情報を明らかにする可能性がある。したがって、キャッシュコンテンツは機密情報として保護される必要がある。
さらに、キャッシュの次の側面が問題を引き起こす可能性がある:
8.1. タイミング攻撃
キャッシュの主な用途の1つは、すでにキャッシュに保存されている情報の転送を回避することでパフォーマンスを最適化することであるため、残念ながら、この最適化を使用してタイミング攻撃を実行できる。具体的には、キャッシュが最近特定のリソースにアクセスするために使用されたかどうかを検出する能力は、ユーザーのブラウジング履歴のパターンを明らかにする可能性がある。
緩和策には、第三者による観察を防ぐための暗号化接続の使用、および攻撃者がキャッシュ状態を調査する能力を制限するための慎重な設計が含まれる。
8.2. 機密情報の露出
共有キャッシュは、定義上、複数のユーザーおよび潜在的に複数の組織によってアクセス可能である。このようなキャッシュは、不適切なレスポンスを返すことを避けるために、承認されたコンテンツと承認されていないコンテンツを注意深く区別する必要がある。キャッシュ実装は、機密情報を示す可能性のあるprivate、no-cache、no-storeなどのディレクティブに厳密に従うように注意する必要がある。
8.3. キャッシュのポイズニング
キャッシュに対する主な攻撃の1つは、偽のレスポンスを導入することによって「ポイズニング」することである。キャッシュをポイズニングする影響は、キャッシュが偽のレスポンスをどのように処理するかに依存する。キャッシュが偽のレスポンスを信頼できるレスポンスとして扱う場合、キャッシュは長期間にわたって誤った情報を提供するために使用される可能性がある。
緩和策: キャッシュポイズニングは、キャッシュする前にレスポンスを適切に検証し、中間者攻撃を防ぐためにセキュア接続を使用することによって緩和できる。