Web ブラウザは宛先が http か https かをどのように認識するのでしょうか?

Web ブラウザは宛先が http か https かをどのように認識するのでしょうか?

Web トラフィックの分析には Wireshark を使用します。

Web ブラウザを開いて、アドレス stackexchange.com を入力すると、最初に DNS クエリが実行され、応答が受信され、次に TCP Syn パケットがポート 80 の適切な IP アドレスに送信されます。

しかし、www.paypal.com と入力すると、同じことが起こりますが、TCP Syn パケットがポート 443 に直接送信されます。

DNS の応答には宛先ポートが含まれていないようで、ブラウザとターゲット サイトの間でプロトコル ネゴシエーションも行われていません。ブラウザはどのようにして宛先ポートを認識するのでしょうか?

入力しないことに注意してくださいhttp://stackexchange.comまたはペイパル、単に stackexchange.com と www.paypal.com です。

答え1

ブラウザは、サイトとの以前のやり取りのポートとプロトコルを記憶します。

Paypal は HTTP Strict Transport Security を使用します。これは、あなたが閲覧を開始する前に、サーバーが (おそらくポート 80 経由で) 応答ヘッダーを送信したことを意味しますStrict-Transport-Security:max-age=63072000。表示される経過時間は秒単位です。したがって、ポート 80 にアクセスしてから次の 2 年間は、ブラウザーはポート 80 に再度アクセスする必要はなく、ポート 443 にアクセスする必要があります。実際、ポート 443 へのその後のアクセスでも同じ指示が受信されるため、毎年 Paypal を使用するユーザーには無期限に適用されます。

これは、ポート 80 への各リクエストが、より遅いポート 443 にリダイレクトされる以前の方式よりも改善されています。リダイレクトを使用すると、Paypal (または Paypal になりすました MITM 攻撃者) が突然 HTTPS から HTTP に変換してもブラウザーは気にしないため、リダイレクトに依存すると安全性が低下します。HTTP Strict Transport Security では、攻撃者はブラウザーとの通信に HTTPS を使用する必要があるものの、Paypal に発行された HTTPS サーバー証明書にはアクセスできないため、この種の攻撃ははるかに目立ちます。

答え2

ブラウザは通常、最初に HTTP を試行し、次に HTTPS にリダイレクトします。これは一般的なケースですが、唯一のケースではありません。

ChromeとFirefoxは、HTTP 厳格なトランスポートセキュリティプリロード リストは、HTTP URL で参照されている場合でも、HTTPS 経由でのみ接続する必要があるサイトのリストです。

より詳しい情報はここ

答え3

Google Chrome、Mozilla Firefox、Internet Explorer/Microsoft Edge は、HSTS をサポートする既知のサイトを含むリストである「HSTS プリロード リスト」を実装することでこの制限に対処しています。そのため、ブラウザからのリクエストは、https で直接、それぞれの HSTS 構成のサーバー ドメインに送信されます。

それ以外の場合は、http リクエストがあり、サーバーは https にリダイレクトする必要がありました (HSTS の場合、サーバーはヘッダーで応答します - HTTPS のみを使用します: Strict-Transport-Security: max-age=31536000)。

答え4

Web ブラウザは常にポート 80 を要求するため、SSL サービスはサーバー側で実行され、クライアントがサービスに接続すると、サーバーは接続を安全な接続または「https」にリダイレクトします。

関連情報