サイトの作成と管理において、サイト全体をHTTPS化して安全性を高めるアプローチは一般的となりました。しかし、HTTPからHTTPS化したサイトを中心に一部で混合コンテンツのリスクが残っています。

そして、2020年3月17日にリリース予定のChrome 81 (安定版リリース)では、混合コンテンツを含むサイトは、HTTPSに自動アップグレードした上でアクセスできなかった場合、そのリソースをブロックするとされています。では、具体的に何がリスクで、どのように対応すればよいのでしょうか。

混合コンテンツとは?

混合コンテンツとは、HTTPSサイト内のHTTPコンテンツです。サイトのURL自体はHTTPSページで暗号化されているにもかかわらず、サイト内の画像、動画、追加HTML、スクリプトなどがHTTPで暗号化がされていないもので、ソースコード上では以下のように表示されます。

サイトページURL:https://globalsign.com/blog/
サイト内画像のソースコード:<img src="http://globalsign.com/blog/image/test1.jpg">

上記では、HTTPでリンクされている画像は通信が暗号化されないため、第三者がサイトを書き換えて、リンク先の画像や動画を改ざんしてしまう可能性があります。これが、混合コンテンツが危険と言われる理由です。

ちなみに混合コンテンツは、過去にHTTPで運用していたサイトに、後からSSLサーバ証明書を入れて暗号化したサイトに多く見られます。全てのページのURLがHTTPS化されたからといって、その中にある画像や動画への接続が自動でHTTPSに切り替わるわけではないためです。

ちなみに、「混合コンテンツ」は、「HTTPSサイト内のHTTPコンテンツ」であり、HTTPサイト内のHTTPコンテンツは混合コンテンツとはみなされません。こちらは、2020年3月以降のChrome 81でも混合コンテンツとしてブロックはされませんが、Chromeでは2018年7月以降、HTTPサイト自体に警告表示が出てしまうといった別の問題があります。

なぜ、混合コンテンツが制限されるのか

今回HTTPサイト上のHTTPコンテンツは制限されないのに、HTTPSサイト上のHTTPコンテンツのみ『混合コンテンツ』として取り締まられるのを疑問に思う方もいるかもしれません。これには明確な理由があります。中間者攻撃からサイト訪問者を守るためです。

ブラウザからHTTPサイトにアクセスした場合は、「暗号化されていない安全ではないサイト」という理由で、ブラウザ側で多くの権限があらかじめブロックされます。しかし、HTTPSサイトの場合、「暗号化されているサイト」であることから多く権限が許可、またはユーザの確認後、許可されるよう設定されています。

http_chrome_auth_red.jpg
HTTPサイトの場合
https_chrome_auth_0.jpg
HTTPSサイトの場合

安全であるはずのHTTPSサイトの中に、安全でない混合コンテンツがある場合、「混合コンテンツがないHTTPSサイト」と同じ権限を付与することは、ユーザを危険にさらすことになります。

例えば、HTTPSサイト内にあるJavaScriptやカスタムHTMLへの接続にHTTPが用いられていた場合、攻撃者(中間者)がJavaScript自体を書き換えてページ全体を制御できるようになります。実は、こうした攻撃の大半は、既にブラウザ側で対策がされています。しかし、今後混合コンテンツを理由にこのような攻撃を受ける可能性があり、未知のリスクからユーザを守るために、ブラウザ側で混合コンテンツ自体をブロックする動きとなったのではないでしょうか。

混合コンテンツの確認・修正方法

では、管理するサイト内の混合コンテンツをどのように確認すればよいでしょうか。確認する方法は以下の通りです。

Chromeを起動し、確認したいサイトを開く

  • 混合コンテンツがある場合は、HTTPS化したサイトであっても、アドレスバーの鍵が正しく表示されません

F12を押してデベロッパーツールを起動し、混合コンテンツ (mixed content) に関するエラーが表示されていないかを確認

  • もし混合コンテンツがあれば、どのコンテンツが問題となっているかが全て表示されます。
  • 問題があるコンテンツが発見された場合、ソースコードを編集し、”http://...” を、”https://...” に修正。これで対応完了です

例: 修正前 <img src="http://globalsign.com/blog/image/test1.jpg">
例: 修正後 <img src="https://globalsign.com/blog/image/test1.jpg">

1つ1つのサイトに混合コンテンツが存在しているかどうかを確認する時間、また見つかった混合コンテンツの修正時間は、少なければ数分程度で完了します。注意すべきなのは、多数のサイトを管理・運営している場合です。各サイトを都度チェックする必要があるため、Chrome 81がリリースされる2020年3月17日に間に合うよう、十分な余裕をもって対応することが重要となってきます。また、WordPressなどのCMSを利用している場合は、混合コンテンツを一括修正するプラグインを利用すれば、都度修正の手間が省けます。

サイト管理者は一刻も早い対応を

この混合コンテンツの変更についてのアナウンスは、Google Chromeのサイトではなく、Google Chromeのブラウザエンジンをオープンソース化した Chromiumのサイトで行われています。現時点で、混合コンテンツをブロックすると表明しているChromiumベースのブラウザは Google Chromeのみですが、Microsoft Edge (Chromiumベースのバージョン) や、Amazon Silk (Amazon販売のタブレット上で動作)、OperaなどのChromiumベースのブラウザも、この動きに追随する可能性が高いと考えられます。

現在最も利用されているブラウザであるChromeに加えて、今後新たに出荷されるWindowsで標準ブラウザとして搭載されるChromiumベースのMicrosoft Edgeなどに問題なく対応するため、サイト管理者は一刻も早い混合コンテンツ対応をお勧めします。

トピック関連記事

#

2016年04月28日

迫るSHA-1の廃止、SHA256への移行~各ベンダーが利用期限見直しの動き~

#

2022年10月31日

OpenSSL、緊急レベルのセキュリティ脆弱性に関しまして

#

2016年07月29日

大手ウェブサービスの常時SSL化進む!担当者が知っておきたいSSLの選び方

この記事を書きました

グローバルサインブログ編集部

グローバルサインカレッジ編集部
所属:GMOグローバルサイン マーケティング部
当サイトの運営・管理を担当。