web-dev-qa-db-ja.com

rfc6797が「HSTSホストは非セキュアなトランスポートを介したHTTP応答にSTSヘッダーフィールドを含めてはならない」と言うのはなぜですか?

RFC禁止 サーバーがHTTPを介してHSTSをクライアントに送信しないのはなぜですか?

HTTPクライアントがその安全でないHTTP応答に応答すると、そのサイトがクライアントにアクセスできなくなる可能性があることがわかりますが、サーバーがプロトコルにMUSTを持っている理由はありません。

むしろ、クライアントは安全でないHTTP応答でHSTSに応答してはならない(MUST NOT)が、私の心の正しいアプローチです。何が欠けていますか?

7.2。HTTPリクエストタイプ

HSTSホストが非セキュアなトランスポートを介してHTTPリクエストメッセージを受信した場合、ステータスコード301などの永続的なリダイレクトを示すステータスコードを含むHTTP応答メッセージを送信する必要があります( [RFC2616]のセクション10.3.2)。 )、およびHTTPリクエストの元の有効なリクエストURI( (セクション9)を参照 (「有効なリクエストURIの構築」を参照)を含むLocationヘッダーフィールド値は、 「https」、または「https」のURIスキームを使用してローカルポリシーに従って生成されたURI。

注:上記の動作は、次の理由により、「必須」ではなく「SHOULD」です。

  • サーバー側の非セキュアリダイレクトへのリスク[ OWASP-TLSGuide ]。

  • サイト展開の特性。たとえば、サードパーティのコンポーネントを組み込んだサイトは、非セキュアなトランスポートを介してアクセスされる場合にサーバー側の非セキュアなセキュアなリダイレクトを行うと正しく動作しない可能性がありますが、セキュアなトランスポートを介して均一にアクセスされると正しく動作します。後者は、サイトを既知のHSTSホストとして既に認識しているHSTS対応のUAが与えられた場合です(たとえば、以前のやり取りやUAの構成など)。

HSTSホストは、非セキュアなトランスポートを介して伝達されるHTTP応答にSTSヘッダーフィールドを含めてはなりません(MUST NOT)。

19

このクライアントの動作isRFCのセクション8.1 によって禁止されています:

安全でないトランスポートを介してHTTP応答が受信された場合、UAは現在のSTSヘッダーフィールドを無視する必要があります。

この仕様では、サーバーが安全でないHSTSディレクティブを送信することを禁止していますandクライアントが安全でないHSTSディレクティブを処理することを禁止しています。これにより、サーバーまたはクライアントのいずれかでの不完全な実装がHSTSを損なうのに十分ではないことが保証されます。弱点が存在するためには、両方に障害が存在している必要があります。


質問で述べたように、プレーンHTTPを介したHSTSは、攻撃者がHTTPを介して提供されるサービスにクライアントが強制する長期的なサービス拒否を実装するための優れた方法のように聞こえます。実際、 RFC 6797のセクション14. はこれに具体的に対処しています(さらに深刻な懸念事項も):

この[HSTSが安全な接続のみで提供されるという要件]の根拠は、「中間者」(MITM)がいる場合-正当に展開されているかどうかプロキシまたは不正なエンティティ-さまざまないたずらを引き起こす可能性があります(付録A(「設計決定ノート」)項目3、およびセクション14.6(「ブートストラップMITM脆弱性」)も参照)。例えば:

  • 既知のHSTSホストとしてのホストの不正な表記、サービス拒否の状況ホストがセキュアなトランスポートを介して均一にサービスを提供しない場合 セクション14.5(「拒否サービス ") )。

  • UAに返されるmax-ageヘッダーフィールドのパラメーター値を操作して、ホストが既知のHSTSホストとして指定されるまでの存続時間をリセットします。 max-ageがゼロとして返される場合、これにより、ホストはUAによって既知のHSTSホストと見なされなくなり、ホストへの安全でない接続またはホストがサービスを提供する場合にサービス拒否につながる安全な輸送のみ。

HTTPは簡単に偽装される可能性があるため、攻撃者はHSTSディレクティブを指定して、HTTP専用サイトをHTTPSサイトとして扱うことができます。クライアントはHTTPSを要求し、サーバーはそれを提供できなくなります。

さらに真剣に、RFCのこのセクションは、ホストに対してHSTSディレクティブを発行できる攻撃者がホストのステータスを既知のHSTSホストとして取り除き、クライアントがホストにプレーンHTTPリクエストを発行することを危険にさらす可能性があることを示しています。

27
apsillers

これは、このヘッダーを使用してサービス拒否攻撃を回避するためです。

安全でないHTTPのみのWebサイトを想像してみてください。このサイトから送信されたHTTPヘッダーを改ざんして、HSTSヘッダーを追加できる人物を想像してみてください。 RFCによると:

  • UAはHTTPを介してサイトにアクセスしようとするのをやめ、代わりにHTTPSのみを使用するようにします。
  • UAがHTTPS接続を確立できない場合、UAはこれをサーバー側のエラーであると見なし、エンドユーザーに手段を講じないようにする必要があります。

つまり、エンドユーザーはこのHTTP専用サイト、つまりDoSにアクセスできなくなります。

6
WhiteWinterWolf