web-dev-qa-db-ja.com

ユーザーがHTTPSと入力すると、SSLStripが失敗するのはなぜですか?

ブラウザとサーバー間のHTTPS接続中-ブラウザからの最初のパケットは暗号化されていますか?私の推測では、クライアントとサーバーが暗号化パラメーターをネゴシエートした後にのみ暗号化を開始する必要があるため、答えは「いいえ」です。

さて、「いいえ」の答えが正しければ、ユーザーがアドレスバーにHTTPSを明示的に入力したときに、SSLStrip攻撃が機能しないのはなぜですか。攻撃者がhttps://またはhttp://を入力したかどうかに関係なく、最初のパケットは暗号化されていないため、攻撃者は接続を乗っ取って、どちらの場合も同じ方法で送信者と攻撃者の両方をだますことができます。これは、SSLStripがどちらの場合でも機能することを意味します。

1
Minaj

SSLstripは、サーバーから返されたWebページのHTTPSリンクをHTTPリンクに置き換えることで機能します。これは、標準のHTTP要求、応答交換中に発生します。

最初のHTTPS呼び出しは暗号化されていませんが、 TLSハンドシェイク の一部であり、標準のHTTP要求ではありません。 TLSハンドシェイクは、TLS接続または接続障害のみを引き起こす可能性があります。魔法のように標準のHTTPになる方法はありません。

したがって、SSLstripがHTTPS要求をダウングレードする方法はありません。

5
Neil Smithline