web-dev-qa-db-ja.com

HTTP / 2を使用しているときにHSTSヘッダーを有効にしても意味がありますか?

SSLstripなどの攻撃に対する保護として、HSTSヘッダーは、ヘッダーの属性が適切に構成されている限り、攻撃者が接続をHTTPSからHTTPにダウングレードするのを防ぎます。

ただし、暗号化を必須にしないHTTP/2は、最新のブラウザーでは必須のTLS接続を使用して実装されています( wikipedia によると)。

その場合、HTTP/2を使用するときにHSTSヘッダーを有効にしても意味がありますか?攻撃者はクライアントに強制的にHTTP/1を使用させ、接続をSSLストリップすることはできますか? HTTP/2で十分ですか?それはHSTSヘッダーを廃止しますか?

21
user96649

はい、HSTSプリロードを含め、HSTSは引き続き必要です。

ブラウザがHTTP/2に接続する方法は、HTTP/1のURLとまったく同じように見えるURLを経由するため、URLを見ただけではHTTP/2である必要があることがわかりません。 http:// URLが指定されている場合は、プレーンクリアテキストHTTPを試行します。ブラウザがプレーンHTTPを試行しないようにする(および不正なWiFi APなどからの攻撃を受けない)ためには、URLがhttps://である必要があります(その後、ALPNを介してHTTP/2アップグレードが行われます)。ユーザーがアドレスバーまたは外部リンクに入力した内容に関係なく、HSTSを使用していることを確認する方法。

36
Z.T.

あなたはあなたの最初の2点の両方で正しいです。

SSLstripなどの攻撃に対する保護として、HSTSヘッダーは、ヘッダーの属性が適切に設定されている限り、攻撃者がHTTPSからHTTPに接続をダウングレードするのを防ぎます。

はい。そのため、HSTSヘッダーは、ブラウザーに安全な接続を介してのみWebサーバーにアクセスするように指示し、HTTPを介した接続を拒否し、HTTPSにリダイレクトします。

しかし、Wikipediaによると、暗号化を必須にしないHTTP/2は、最新のブラウザーでは必須のTLS接続で実装されています。

そうです、ほとんどの主要ブラウザは、HTTP/2 over HTTPSのみをサポートします。

その場合、HTTP/2を使用するときにHSTSヘッダーを有効にしても意味がありますか?攻撃者はクライアントに強制的にHTTP/1を使用させ、接続をSSLストリップすることはできますか? HTTP/2で十分ですか?それはHSTSヘッダーを古くしますか?

HTTP/2を実装するWebサーバーは、HTTPS接続を強制しません。 HTTP/2がTLSでのみサポートされることは、単なるブラウザ要件です。 HTTP/2は、HTTP URIとHTTPS URIの両方に定義されています。

ユーザーがHTTP経由でWebサイトをロードしようとするとどうなりますか? HTTP/2が失敗した場合のHTTP/1.1はフォールバックプロトコルです。そのため、HTTP/2対応サイトは、依然としてSSLストライピングMitM攻撃に対して非常に脆弱である可能性があります。

1
Kyle Fennell