メニュー 閉じる

HTTPS接続なのに保護されていない通信になるケース

時々Webページを開くと「保護されていない通信」と表示されていることがあります。
これはSSL(Secure Sockets Layer)接続していないWebページに表示されます。

しかし、この表示が出ても必ずしもHTTPS通信による暗号化をしていなかったのではなく、
SSL接続による通信の設定をしていたにも関わらず表示されることがあります。

でもこれまで通りのHTTP通信だと何が問題なのでしょうか。
少しだけ遠回りになるのですが、HTTPSが普及すべき理由についてご説明いたします。

インターネットの仕組みは基本的にHTTPという通信の仕組みの上に成り立っています。
これまで30年近くこの仕組みを使ってインターネット上で様々な通信が行われてきました。

技術的に何か問題があるのかと言うと決定的な問題を抱えているわけではありません。
しかし、私達のインターネットの使い方がこの30年の間に大きく変化したために、
HTTPSというあたらしい暗号化されたプロトコルを採用することが望ましくなったのです。

確かに20年前まではインターネットは一部のユーザーが「ホームページ」と呼ばれる、
それぞれの情報発信の場として活用されたり、掲示板での雑談がそのメインの利用法でした。

つまり、インターネットは明らかに公の空間として考えられてきました。

しかし、ここ10数年はSNSが生まれ、インターネットバンキングやオンライン証券、
クラウドストレージを利用したデータの保存と取得が当たり前になっています。

すると情報が秘匿性の高いものに変化したのです。
例えばこれらの情報はプライバシー情報を含みます。
個人的な情報などあらゆる公にしたくない情報が通信されるようになると、
インターネットの情報の大多数が秘匿性の高いものに変化するのは必然です。

すると、従来の公開することが当たり前であったインターネットを前提とした、
HTTP通信ではセキュリティ上問題が発生する場合が増えてきたのです。

 

HTTP通信だと途中で傍受された場合は解読可能

 

次に簡単にWebの仕組みについてご紹介します。

インターネットではブラウザというソフトを通して、
運営者のサーバーにWebを介してアクセスし、そこで得たハイパーテキストを表示しています。
このハイパーテキストを通信するプロトコルがいわゆる「HTTP」通信です。

しかし、このHTTP通信は平文ですので途中で通信を傍受した場合は、
誰でもそのまま「何を見ているのか、何を通信しているのか」が分かってしまいます。

しかし、先程も述べたように近年ではSNSや企業間通信などにも用いられることが一般的です。
当然オープンなインターネットの良いところを利用しつつも、
情報としては秘匿性の高い通信が求められ始めました。

もちろん、これまでも秘密の情報は専用回線などを引くことによって、
誰にも傍受されない仕組みを作ることは実務的にも行われていましたが、
物理回線の設置コストは莫大であり、すべての事業者ができるわけではありません。

そこで生み出されたのが暗号化という技術です。

SSLという方法を用いると、このデータが暗号化されます。
これを利用した通信が「HTTPS」という接続方法になります。

これはすなわちハイパーテキストを暗号化するためのプロトコルです。
暗号化されたデータはそれぞれが持つ暗号鍵によってのみ解読することができますから、
結果的に途中で通信を傍受したとしても解読することができません。

現在Googleは検索エンジンにおいてHTTPS通信ができるWebページを優先して表示ます。
それくらいにHTTPS通信されていることが普通に求められるようになっています。

 

HTTPSではないとどういう表示になるのか

 

現時点ではほとんどのWebサイトはHTTPS通信を利用しています。
Googleの統計によればすでに9割近くの通信がHTTPSを利用して行われています。

https://transparencyreport.google.com/https/overview

 

そのため、むしろ現在ではHTTP通信を行っているサイトに注意するようブラウザが警告を与えることが一般的です。

例えばChromeというインターネットブラウザを利用した場合、
通常のHTTP通信をしているWebページには以下のような警告がされます。

一方でHTTPS通信をしているWebページには鍵マークが付いています。

プライバシー情報がHTTP通信によりされていたらどうでしょうか?
HTTP通信でもしプライベートな画像を非公開でアップロードしたとすると、
どういう画像をアップロードしたかは通信のあいだに介在するかもしれない第三者に漏れてしまいます。

現在のFacebookやmixiなどではHTTPS通信が行われているので、
何を通信しているかは私達ユーザーと企業しかわかりません。

ただし、あくまで通信が暗号化されていると言うだけで、
その通信先が情報をどのように利用するか、
情報をどのように守っているかについては当然保証されていないことには注意が必要です。
(昨今のファーウェイ問題やTikTok問題などはここが背景になっています)

さて本題です。
今回のようにHTTPSの設定をしているにも関わらず、
「保護されていない通信」という表示はなぜ出てくるのでしょうか?

多くのWebサーバーではちゃんとHTTPSの設定が行われています。
にも関わらずなぜかブラウザで確認すると「保護されていない通信」と表示されてしまうことがあるのです。

この理由はWebのデータの一部がHTTP通信により行われていたからです。
具体的にはどのようなデータがHTTP通信されていたのでしょうか。

Webページの素材である動画データがHTTP通信になっていることが多いようです。

おそらく、HTTPS接続の設定以前にアップロードされた素材データを、
そのままのURLでWebに表示するための素材として利用したことによるものでしょう。

実際問題、今回のようなWebの表示にかかわる素材がHTTP通信だったからと言って、
傍受されてもWebで表示されているデータが何かわかるだけなので大きな危険性はありませんが、
IDやパスワードを入力するような通信をHTTPで行うというのは大変危険です。

「カフェのFree Wi-Fiを使うな!」というのはそういう問題があるからです。

 

ChromeでのHTTPS通信の問題確認方法

 

万が一、HTTPS通信の設定をしているにも関わらず、
自社のWebページが「保護されていない通信」と表示される場合、
どのようにしたら原因を特定することができるでしょうか?

各種ブラウザには開発者ツールと呼ばれる機能が備わっています。
今回はChromeを用いた確認方法をご紹介します。

まず、ブラウザ右上の「設定」を開きます。
「その他のツール」から「ディベロッパーツール」を選択します。
すると、下のようにディベロッパー用の画面が表示されます。

この右側の画面の上部に「Security」というタブが表示されます。
ここをクリックすると表示しているサイトのセキュリティ情報が表示されます。

問題なくすべての通信がHTTPSになっている場合は、
「This page is secure (Valid HTTPS)」というメッセージが表示されます。

いくつかの素材の通信がHTTPで行われている場合は問題のある、
ものについてどれがHTTP通信となっているかも表示されます。

 

Let’s Encryptは無料だがちゃんとしたHTTPS認証局

 

今回はHTTPS認証について詳しく解説はしませんが、
暗号化通信は公開鍵と秘密鍵を用いることで行われています。

その電子証明書を発行する機関を「認証局(CA)」と呼びます。
例えば「Webページが本当にその会社の運営しているものか」ということは分かりますか?
見た目が似ていても全く違う人が運営している可能性があります。

このWebページの他にも一般的によく利用されているLet’s Encryptもれっきとした認証局です。

この認証局の特徴は無料でHTTPS認証行えるということにあります。

無料のHTTPS認証局は信用が無いかと言うとそういう訳でもありません。
確かに登記事項証明書など公的書類を使って、
人間が確認してから証明書を発行するということはしていません。

 

公開鍵暗号と共通鍵暗号を用いた認証の仕組み

 

それではどうやってそのサイトが暗号化されていることを確認できるのでしょうか。
それは利用しているサーバーに置かれる公開鍵をつかって識別しているのです。

正確に言えば「ハイブリッド方式」と呼ばれる方法を使っているのですが、
すこしだけ複雑なので興味のある方は別の解説記事をご参照下さい。
https://www.ssl.ph/compare/ssl/datalibrary/contents06.html

ただし、この方法だとドメインとサーバーの関係(ドメイン認証)については証明されていますが、
そもそもそのドメインとサーバーをどこの誰が運用しているかはわかりません。

それではどこの誰が運用しているかまで証明するにはどうしたら良いのでしょうか。

それは、企業認証(OV)を行っているHTTPS認証局、
つまり登記事項証明書などで運用者を確認する有料のHTTPS認証局になります。

もちろん、人が電話をかけたり登記事項証明書をチェックする必要があるために、
これらの企業認証を行っているSSL証明書の取得手数料は高額です。

おおよそ、年間で10万円ほど費用がかかることが一般的です。

しかしながら、そのサイトで重要な情報を入力したり通信を行うような機能をもたせるのであれば、
利用者の安心を得るためにはそのコストも決して高いものではありません。