メインコンテンツまでスキップ

4. Security Considerations (セキュリティに関する考慮事項)

4. Security Considerations (セキュリティに関する考慮事項)

ここで説明されているヘッダーフィールドにより, TTRPとバックエンドまたはオリジンサーバーは, クライアントの観点から見ると, 相互認証されたTLS接続を介したHTTPSの単一の論理的なサーバー側デプロイメントであるかのように一緒に機能できます。ただし, 意図されたユースケース以外でヘッダーフィールドを使用すると, TLSクライアント証明書認証によって提供される保護が損なわれる可能性があります。したがって, ヘッダーフィールドの送信とその値への依存の両方において, 意図しない使用を防ぐために, 以下に説明するような手順を講じる必要があります。

Client-CertおよびClient-Cert-Chainヘッダーフィールドの生成と使用は, それぞれTTRPおよびバックエンドサーバー (またはそのサーバー内の個々のアプリケーション) で構成可能なオプションであるべきです (SHOULD)。両方のデフォルト構成は, ヘッダーフィールドを使用しないことであるべきであり, したがってこの機能への"オプトイン"が必要です。

フィールドインジェクション (field injection) を防ぐために, バックエンドサーバーは信頼されたTTRP (またはTTRPからの信頼されたパス内の他のプロキシ) からのClient-CertおよびClient-Cert-Chainヘッダーフィールドのみを受け入れなければなりません (MUST)。TTRPは, フィールドの既存のインスタンスを削除または上書きすることによって, 転送する前に受信リクエストをサニタイズしなければなりません (MUST)。そうしないと, 任意のクライアントがバックエンドサーバーによって見られ使用されるフィールド値を制御できます。フィールドインジェクションの防止を怠ることは"フェイルセーフ" (fail safe) にはならないことに注意することが重要です。なぜなら, 悪意のある操作が可能な場合でも, 名目上の機能は期待どおりに動作するためです。そのため, 適切なフィールドのサニタイゼーションが整っていることを確認するために, 特別な注意が推奨されます。

TTRPとバックエンドサーバー間の通信は, 意図しない当事者による盗聴と変更から保護される必要があります。

構成オプションとリクエストのサニタイゼーションは, それぞれのサーバーの必要な機能です。その他の要件は, 特定のデプロイメントに基づいて異なるさまざまな方法で満たすことができます。たとえば, TTRPとバックエンドまたはオリジンサーバー間の通信は, 何らかの方法で認証される可能性があり, Client-CertおよびClient-Cert-Chainヘッダーフィールドの挿入と使用はその接続でのみ発生します。[HTTPSIG]の付録B.3は, HTTPメッセージ署名 (HTTP Message Signatures) の適用によるこの一例を示しています。あるいは, ネットワークトポロジーが, バックエンドアプリケーションがTTRPからのリクエストのみを受け入れることができ, プロキシがそのサーバーにのみリクエストを行うことができるようなプライベートネットワークを規定する場合があります。ここに記載されている要件を満たす他のデプロイメントも可能です。