私が応答コンテンツを変更したいが、被害者がhttp://を見て気にしていない邪悪なプロキシオペレーターであった場合はどうなりますか?ブラウザが https://example.com を要求したが、example.comに有効なSSL証明書がなかった場合はどうなるか ?ブラウザは自動的にhttp://バージョンにリダイレクトしますか?もしそうなら、邪悪なプロキシオペレーターはその応答をシミュレートできるはずですよね?
ブラウザーが https://example.com を要求したが、example.comが有効なSSL証明書を持っていない場合はどうなりますか?ブラウザは自動的にhttp://バージョンにリダイレクトしますか?
いいえ。最新のブラウザは、プレーンHTTPに自律的にダウングレードしません。証明書が無効な場合、ユーザーには証明書の警告が表示されます(最終的には例外を追加するオプションが表示されます)。
もしそうなら、邪悪なプロキシオペレーターはその応答をシミュレートできるはずですよね?
ブラウザーdidが無効な証明書を参照するときにプレーンHTTPにリダイレクトする場合、MITMは送信された証明書の詳細を変更することにより、新しい安全な接続を静かにダウングレードできます。これは大きなセキュリティ問題になります。そのため、最初からHTTPSを使用している限り、MITMはどこにもリダイレクトできません。
むしろ、攻撃者ができることは、接続がHTTPSにアップグレードされる前に、プレーンなHTTP応答をインターセプトすることです。たとえば、mybank.com
と入力すると、ブラウザはサイトがまだHTTPSを提供しているかどうかを認識せず、最初にhttp://mybank.com
を試します。このHTTPサイトがhttps://mybank.com
へのリダイレクトですぐに応答したとしても、MITMはすでに応答を傍受してリダイレクトを削除し、プレーンHTTPを維持することができます。 ( HTTP Strict Transport Security(HSTS) 機能は、常にHTTPS経由でサイトにアクセスし、プレーンHTTPを使用するすべての試みを拒否するようにブラウザーに指示することにより、この正確な攻撃を防ぎます。