2020年6月25日taoka
コラム

Chromeでブロックされる混合コンテンツとは?

混合コンテンツ(Mixed Contents)という言葉をご存知でしょうか?
ミックスコンテンツと呼ばれることもありますが簡単に説明しますとSSL化(https化)されたサイトの中でhttp接続で読み込もうとするコンテンツを指す言葉です。
おそらくいまいちピンとこない方もいると思いますが、この混合コンテンツが早ければ2020/07頃リリース予定のGoogle Chrome84においてSSL化されたサイト内ではhttp接続をブロックし強制的にhttps接続で読み込むように仕様が変更されることになります。
(当初は2020/04/07リリース済みのChrome81での仕様変更予定でしたが新型コロナウィルスの世界的感染拡大などの原因により延期となりました)
サイト自体がSSL化されていれば特に影響はないのでは?と思うかもしれませんが、外部サイトの画像を表示している場合にその外部サイトがSSL化されていなければ画像が表示されなくなるといった影響などが出てきます。今回は具体的に混合コンテンツとはどういったものか?なぜブロックされるのか?ブロックされることによりどのような影響がでるのか?など今回は混合コンテンツに関する説明をしていきます。

1.混合コンテンツとは?
2.混合コンテンツはなぜブロックされるのか?
3.ダウンロードも段階的に禁止されていく

4.混合コンテンツが含まれているかどうかの確認方法
5.終わりに

1. 混合コンテンツとは?

混合コンテンツとは暗号化されたhttpsサイト(SSL化)内で読み込まれているhttpコンテンツを指します。例えば下記のようなサイトURLがあるとします。
(サイトURL)
https://example.com

次にこのサイトURLの中で下記のように読み込まれている画像が2種類あるとします。
(画像URL)
<img src=”https://example.com/images/test_A.jpg”>
<img src=”http://example.com/images/test_B.jpg”>

この場合test_A.jpgはhttpsから始まるURLで読み込まれているので問題ありませんが、test_B.jpgは混合コンテンツとなります。
なぜならサイトのURLがhttpsで始まり通信が暗号化されているページにも関わらず画像のURLが暗号化されていないhttpで読み込まれてしまっているからです。
※上記のような絶対パスでの読み込みではなく下記のような相対パスやルート相対パスなどではSSL化されたドメインのhttpsのURLから読み込むので混合コンテンツとはなりません。
○相対パス:<img src=”images/test_C.jpg”>
○ルート相対パス:<img src=”/images/test_C.jpg”>
×絶対パス:<img src=”http://example.com/images/test_B.jpg”>

混合コンテンツが発生している場合はブラウザによってはアドレスバーが下記画像のように表示されてしまいます。
(Chrome)
 
(Internet Explorer:鍵マークが表示されていない)

(Edge)

(Firefox)

Chrome84以降ではhttpで接続表示しようとする画像などがあった場合はhttpで読み込まず強制的にhttpsで読み込もうとします。その結果、httpsでの接続表示に対応していない画像などの場合は表示されなくなります。

仮にhttps接続に対応していなかったり、URLがhttpのままの外部サイトの画像などの場合ではhttpsで強制的に通信するため画像など自体が表示されなくなります。
※httpサイト内でhttp接続で読み込まれる画像やhttpサイト内でhttps接続で読み込まれる画像などは混合コンテンツとは判断されませんが、混合コンテンツが発生している状態と同様にブラウザのアドレスバーに「保護されていない通信」と表示されてしまいます。

2. 混合コンテンツはなぜブロックされるのか?

一概には言えませんが、httpsサイトで読み込まれる混合コンテンツは通信が暗号化されませんので悪意のある第三者が意図的にデータを改ざんする恐れが高まると言われています。例えば、httpsサイトで表示されている株価のページ内でhttpで接続表示されている混合コンテンツの株価画像があった場合は、第三者が画像を差し替えることにより投資家を欺くと言った危険性をGoogleは例として挙げています。
(参考サイト)
https://blog.chromium.org/2019/10/no-more-mixed-messages-about-https.html

例えばChromeではhttpサイトにアクセスした場合は暗号化されていないサイトという理由により多くの権限が事前にブロックされていますが、httpsサイトの場合では暗号化されているサイトのため多くの権限が許可、もしくはユーザーの確認後許可できるようになっています。
左の画像:httpサイトの場合
右の画像:httpsサイトの場合

暗号化されているため多くの権限が許可されているhttpsサイトに、データの改ざんなどの恐れがある混合コンテンツがある場合はユーザーをセキュリティ上の危険にさらすため、今回のように混合コンテンツがブロックされる要因となっているかもしれません。

3. ダウンロードも段階的にブロックされていく

Googleは混合コンテンツのダウンロードもChromeのバージョンアップにより段階的にブロックしていくと下記のページに記載しています。
(参考サイト)
https://developers-jp.googleblog.com/2020/02/google-chrome.html

・Chrome81(2020/04/07リリース済み)
全ての混合コンテンツに警告

・Chrome82(新型コロナウィルスの影響により欠番、リリース予定だった機能はChrome83へ引継ぎ)

・Chrome83(2020/05/19リリース済み)
exeファイルなどをブロック、zipファイルなどに警告
実行ファイルといわれるexeファイルなどパソコン上でダブルクリックをするとプログラムが実行されるファイル形式は「特にユーザーへのリスクが高いファイル形式」とGoogleは判断しており、最も最初にブロックされることになっています。

・Chrome84(2020/07頃リリース予定)
zipファイルなどをブロック、pdfファイルなどに警告

・Chrome85(2020/08頃リリース予定)
pdfファイルなどをブロック、pngやmp3ファイルなどの画像や音声ファイルなどに警告

・Chrome86もしくは以降のバージョン(2020/10頃リリース予定)
混合コンテンツを全てブロック

(Chromeのバージョンアップ予定表)
https://chromiumdash.appspot.com/schedule

【豆知識】:新型コロナウィルスによるChrome82欠番について
Googleは2020年3月18日に「作業スケジュールが調整されたため」との説明によりChromeとChrome OSのリリース作業を一時中断すると発表しました。新型コロナウィルス対策の影響のため担当者らがテレワークになったことなどによる影響と言われていましたが、その後3月26日にリリース作業の再開が発表された際に新型コロナウィルスの感染拡大の影響を原因にChrome82の欠番も発表されました。
1の位のバージョン変更であるメジャーバージョンアップが欠番となるのはChrome史上初めての出来事となりました。

4. 混合コンテンツが含まれているかどうかの確認方法

今回はChromeとInternet Explorer、Firefoxでの2種類の確認方法をご紹介します。
1つ目はアドレスバーからの確認方法です。混合コンテンツが存在しないサイトではアドレスバーに下記のような鍵マークが表示されています。
(Chrome)

(Internet Explorer)

(Firefox)

一方で混合コンテンツが存在する場合は鍵マークが下記のように表示変更されます。
(Chrome)
 
(Internet Explorer:鍵マークが表示されていない)

(Firefox)

一目で混合コンテンツが存在しているか判断できるので便利ですね。
しかし、混合コンテンツと判定されている画像などがどこにあるのかまでは分かりませんのでその場合は2つ目のデベロッパーツールを使用した方法で確認して下さい。

【Chromeでの確認方法】
まずは確認したいサイトをChromeで表示しF12キー( Macは option + command + i)を押してデベロッパーツールを開きます。

次にConsoleタブをクリックします。すると混合コンテンツが存在していた場合は下記のような警告文が表示されます。

【Internet Explorerでの確認方法】
確認したいサイト上で右クリック→要素を検査→コンソールのタブを選択することで下記画像のように混合コンテンツのURLをチェックすることができます。

【Firefoxでの確認方法】
確認したいサイト上で右クリック→要素を調査→コンソールのタブを選択することで下記画像のように混合コンテンツのURLをチェックすることができます。

5. 終わりに

混合コンテンツの通信を制限するChromeにおける話ですがサイト自体がhttps接続(SSL化)に対応していれば、混合コンテンツと判定されている画像などが表示されなくなるといったことはありません。しかし、https接続に対応していない外部サイトなどから読み込んでいる場合は表示されなくなってしまうので早急な確認と対応をおすすめします。
また、
混合コンテンツの通信制限の結果、画像などが表示されなくなるなどの影響があるのは現時点ではChromeのみですが、Chromeのブラウザエンジンを採用したEdgeなど将来的には他のブラウザでも混合コンテンツのブロックを行うようになる可能性はありますので一度、管理しているサイトなどで混合コンテンツが発生していないかのチェックをおすすめします。