web-dev-qa-db-ja.com

一部のWebサイトが自己署名証明書のMitM攻撃の影響を受けないように見えるのはなぜですか?

私は最近、MitMを使用してWebサイトにアクセスしながらアカウント情報(ユーザー名とパスワード)を取得する実験を行いました。このシナリオでは2台のPCを使用しました。 1つはターゲットとしてInternet Explorerを実行し、もう1つは攻撃者としてettercapを実行します。ある試み(steamcommunity.comを装う)によって情報が得られました。ターゲットは、MitM攻撃によって提示された攻撃者の偽のCA自己署名証明書を受け入れました。もう1つの試み(facebook.comを装ったもの)では、ターゲットマシンの自己署名証明書の例外を追加することさえできませんでした。それで問題は、なぜ、あるウェブサイトが私に例外を追加することを許可したのに対して、他のウェブサイトはそうしなかったのですか?

37
Pierrot

FacebookはHSTS(プリロード[*]付き)を使用していますが、steamcommunity.comは使用していません。

HTTP Strict Transport Security は、次の2つの効果を持つHTTPヘッダーです。

  1. HTTPSを介してすべてのサイトへの接続を強制します(たとえ誤ってリンク/ブックマーク/ HTTPとして入力された場合でも)
  2. HTTPSエラーまたは警告が存在する場合は中止されます。これには、自己署名証明書の警告が含まれます。これは、これらの証明書を受け入れることができないことを意味します。

[*]プリロードとは、最初にアクセスする前でも、ブラウザがHSTSを認識していることを意味します。プリロードなしでは、HSTSが存在する場合でも、サイトへの最初のリクエストに対して中間者攻撃を実行する可能性があります。

47
tim