MDN’s new design is in Beta! A sneak peek: https://blog.mozilla.org/opendesign/mdns-new-design-beta/

混在コンテンツ

ユーザが HTTPS を通じてページにアクセスすると、ユーザと web サーバとの接続は TLS で暗号化され、盗聴や中間者攻撃から保護されます。もし HTTPS のページの中に通常の平文の HTTP で送られてくるコンテンツが含まれていた場合、その接続は部分的にしか暗号化されません。すなわち、暗号化されていないコンテンツは盗聴可能であり、中間者攻撃によってコンテンツの中身は改ざん可能となり、もはや接続は保護されません。そのような web ページは「混在コンテンツ」を含むページと呼ばれます。

混在コンテンツの種類

混在コンテンツには 受動的な混在コンテンツ能動的な混在コンテンツ 2 種類があります。この 2 つは、中間者攻撃によってコンテンツが改ざんされた場合に、最悪のケースとして脅威が影響を与える度合いで区別されます。受動的な混在コンテンツにおける脅威は低いものとなります(web ページのレイアウトが崩れるか、紛らわしい偽のコンテンツに差し替えられる)。能動的な混在コンテンツの場合、その脅威としてフィッシングや機密情報の漏えい、悪意あるサイトへのリダイレクトなどが想定されます。

スタイルシートは能動的なコンテンツと考えられるため、スタイルシートから参照されるコンテンツは受動的な混在コンテンツと見なされます。

受動的な混在コンテンツ

受動的な混在コンテンツは、HTTPS の web ページの中で HTTP 経由で送信されるコンテンツです。しかし、その web ページの他の要素を混在コンテンツから変更することは出来ません。 例えば、HTTP で送信された画像に対して、攻撃者は別の不適切な画像やメッセージへと差し替えてユーザに表示させることが出来ます。 また、攻撃者はユーザへ送信される画像を盗聴することで、ユーザの行動に関する情報を推測することが可能です。 なぜなら、画像ファイルの置かれている場所が web サイト中のある特定のページに固定されていることがままあるからです。もし攻撃者が特定の画像に対する HTTP リクエストを覗き見れば、ユーザが閲覧している web ページを特定することが出来るでしょう。

受動的なコンテンツの一覧

受動的なコンテンツとされる HTTP リクエストは以下の通りです。

  • <img>src 属性)
  • <audio> (src 属性)
  • <video>src 属性)
  • <object> サブリソース(<object> が HTTP リクエストを送信したとき)

能動的な混在コンテンツ

能動的な混在コンテンツは、その HTTPS ページのすべて、ないしは DOM の一部にアクセスできるコンテンツです。このタイプの混在コンテンツは HTTPS ページの動作を変更することができ、ユーザから機密情報を窃取することも可能です。従って、先程説明した受動的な混在コンテンツによる脅威に加え、能動的な混在コンテンツには他の攻撃ベクタへ向けた脆弱性が存在します。

能動的な混在コンテンツの場合、中間者攻撃の攻撃者はまず HTTP のコンテンツへのリクエストを横取りすることが出来ます。 その後、攻撃者はレスポンスを改ざんして悪意ある JavaScript コードを含めることも可能です。悪意ある能動的なコンテンツは、ユーザのログイン情報を窃取したり、ユーザに関する機密情報を取得したり、ユーザのマシンにマルウェアのインストールを試みることが出来ます(例えば、ブラウザやそのプラグインの脆弱性を利用することが考えられます)。

混在コンテンツに関係するリスクは、ユーザが閲覧している web サイトの種類と、そのサイトにどれだけ機微な情報が含まれているかに依存します。その web ページには世界中に公開されているデータもあれば、認証された時のみアクセスできる機密情報もあるでしょう。 もし web ページが公開されていて機微なデータは何もなかった場合でも、攻撃者は能動的な混在コンテンツを利用することにより、ユーザを他の HTTP ページへリダイレクトさせたり、 HTTP cookie をサイトから窃取したりできてしまうのです。

能動的な混在コンテンツの例

能動的なコンテンツとされる HTTP リクエストのうち、代表的なものは以下の通りです。

Web コンソール内の警告

閲覧しているページに混在コンテンツが含まれていた場合、Firefox の Web コンソールには警告が表示されます。 HTTP 経由で読み込まれた混在コンテンツのリソースは赤色で表示され、このページへのリンクである「混在コンテンツ」の文字列が併記されます。

Screen shot of the web console displaying a mixed content warning.

Firefox 23 以降より、能動的な混在コンテンツはデフォルトでブロックされるようになりました(受動的な混在コンテンツは設定によりブロック可能です)。 web 開発者が混在コンテンツのエラーに気付きやすくなるよう、ブロックされた混在コンテンツへのリクエストは Web コンソールのセキュリティペインにすべて記録されます。

A screenshot of blocked mixed content errors in the Security Pane of the Web Console

このエラーを修正するには、HTTP コンテンツへのリクエストをすべて HTTPS コンテンツへのリクエストに差し替えてください。よくある混在コンテンツには JavaScript ファイルやスタイルシート、画像、動画、その他のメディアファイルなどがあります。

関連情報

ドキュメントのタグと貢献者

 このページの貢献者: hashedhyphen, clariroid
 最終更新者: hashedhyphen,