第1回 HTTPS(HTTP over SSL/TLS)とは:超入門HTTPS
昨今はWebサイトを常時HTTPS対応させることが多い。HTTPSとは何か、HTTPS対応させる意義や問題となる点などについてまとめておく。
本入門連載では、システム管理者やシステムエンジニアの方々を主な対象として、IT業界でよく使われる技術や概念、サービスなどの解説をコンパクトにまとめておく。
- 第1回「HTTPSとは」(本記事)
- 第2回「HTTPSの詳細」(最終回)
昨今はWebサイトを「HTTPS」対応させることが進んでいる。そこでHTTPSとは何か、HTTPプロトコルとはどう違うのか、HTTPS対応するとはどういうことかなどについてまとめておく。今回はHTTPSの概要について見ていく。
HTTPSとは何か?
Webサーバで利用されるプロトコルとはHTTPだが(連載「超入門HTTPプロトコル」参照、それを「SSL/TLS」という暗号化通信機能と共に利用できるようにしたのが「HTTPS(HTTP over SSL/TLS)」である。サイトへのログイン情報やユーザーのプライバシーに関する情報など、重要で漏えいしては困るような情報を保護したい時にHTTPS化が使われる。
HTTP接続とHTTPS接続の違い
HTTPSでは、通信経路が暗号化されて保護されるため、第三者に通信内容を盗聴されたり、内容を改ざんされたりする危険性がほぼなくなる。GoogleなどはHTTPSによる通信が推奨されている。
HTTPS化されるWebサイト(をブラウズするとどうなるか)
WebサイトがHTTP化されるとどうなるか? 一番よく分かる違いは、Webブラウザでサイトを開いたときに「鍵マーク」や「保護された通信」「会社名」などが表示されることである。
HTTPとHTTPSによるブラウザの表示の違い
HTTPS化されているサイトに接続すると、大抵のWebブラウザでは安全な通信であることを表す鍵マークなどが表示される。これはWindows 10上のMicrosoft Edgeでの表示例。
(1)HTTPS化されているサイトの例。URLの左側に鍵マークが表示される。
(2)HTTPS化されていないサイトの例。HTTPプロトコルでアクセスしている。
HTTPS化すると鍵マークなどが表示されるが、これは通信の内容が暗号化されて保護されていることを表す。
続々とHTTPS化されるWebサイト
例えばGoogleは以下のサイトで、Google ChromeブラウザにおけるHTTPSの利用率のデータを公開している。2016年末の時点で、ほぼ全てのプラットフォームで50%かそれ以上の利用率となっている。つまりユーザーのアクセス先がHTTPS化されている割合が半分を超えているということだ。
HTTPS接続のシェア
Googleが発表している、HTTPとHTTPSの割合の推移。HTTPS化が着実に進んでいる。
「Here’s to more HTTPS on the web!」[英語](Googleのブログ)より引用。
今までもWebサイトを構成するページのうち、一部のWebページをHTTPS対応させることは広く行われていた。だが最近ではサイト全体をHTTPS化させることがトレンドになっている(従来のHTTPでアクセスされた場合は、HTTPSのページへリダイレクトする)。その主な理由はやはりサイトの信頼性や安全性の向上の他、SEO(検索エンジンへの最適化)対策などが挙げられる。以下、それが具体的にどのような意味があるかについて見ていく。
WebサイトをHTTPS化する理由
HTTPに代えてHTTPS化するメリットは幾つかあるが、主な利点としては次のようなものが挙げられる。
●HTTPS化の利点1:盗聴や通信内容の改ざん対策
WebサーバとWebブラウザ間での通信が暗号化されるので、第三者に通信内容を盗聴されたり、内容を改ざんされたりすることがなくなる(脆弱性を悪用した改ざんなどは除く)。
HTTPSによる通信の暗号化は「エンド・トゥ・エンド」で行われる。WebサーバとWebブラウザにおいてのみ暗号化/復号が行われるので、通信経路の途中(プロキシサービスやキャッシュサーバ、ルーター、ハブ、LANケーブル、無線LANの電波など)で信号を盗聴したとしても、暗号化されていて内容を解読することはできない。また通信内容を改ざんして再送信するということも不可能になる。
●HTTPS化の利点2:なりすまし対策
HTTPSでは、PKI(公開鍵暗号基盤)を使ってHTTPSで利用する証明書などを管理している。これによりHTTPSで保護されているWebサーバが、正規のドメイン所有者によって運営されているということを保証している。不正な組織が偽のWebサイトを作ってユーザーを誘導しようとしても、正規のWebサーバ用の証明書を入手できなければ、正規のドメイン名のままHTTPS対応したWebサイトを作ることはできない。たとえ似たような名前のドメインを取得したとしても、正規のHTTPSのページなどに正しいリンクを配置しておけば、間違えて不正なサイトへ誘導されるリスクは小さくなる。
- 「5分で絶対に分かるPKI」(Security & Trustフォーラム)
●HTTPS化の利点3:Webブラウザの高速化や安全性の向上
HTTPとHTTPSでは、通信プロトコルが異なるだけで、その上でやりとりされるHTMLファイルや画像などのデータは(基本的には)同じである。Webサイトとしての外見や操作方法はほぼ変わらない。
だがHTTPS化すると「HTTP/2」というプロトコルが利用できるようになり、Webページの高速な表示が可能になる(HTTP/2にはHTTPSが必須)。HTTP/2については以下の記事参照のこと。
HTTP/2(+HTTPS)では、HTTPよりも少ないTCP接続数で、より効率的にデータ転送ができるので、結果的に高速化できる。
またブラウザによってはHTTPS化されたサイトとそうでないサイトで利用できる機能に差をつけていることがある(例:Internet Explorerの「信頼済みサイトゾーン」と「インターネットゾーン」の区別など)。当然前者の方が、より安全に高度な機能が利用できるので、ユーザーの安全性や利便性が向上する。
●HTTPS化の利点4:SEO対策
HTTPS化はSEO対策にも効果があるとされている。GoogleはWebサイトの安全性や信頼性、セキュリティ対策の向上などを推進するため、HTTPS化されているサイトの検索結果順位を、そうでないHTTPのサイトよりも少し上げることを表明している。
- 「HTTPS をランキング シグナルに使用します」(2014/08/07)(Googleウェブマスター向け公式ブログ)
検索結果のランキングを決める要素は何十も何百もあり、HTTPS化したからといって検索順位が大幅に上昇するわけではないが、多少なりとも加味される。HTTPのままだと、今までよりはランキングが下がることになるかもしれないので、何らかの対策が必要だろう。
HTTPS化によって変わること/受ける影響
HTTPSによる恩恵がある一方で、変わることやデメリットとなることも当然ある。以下、いくつか列挙しておく。
●HTTPS化によるデメリット:速度の低下
HTTPS化すると通信内容を暗号化/復号するためにいくらかのオーバーヘッドが生じる。その結果通信速度がいくらか低下する。ただし最近のシステムは(サーバ側もクライアント側も)十分高性能化されており、通信速度が目に見えて低下するといったことはほぼないと言える。
●HTTPS化によるデメリット:証明書の取得や暗号化のためのコストの増大
Webサーバを暗号化するには、暗号化に必要な証明書の導入やソフトウェアの追加など、維持管理のためのコストや手間がいくらか余計に掛かることになる。だが最近では無料の証明書サービスもあるので、以前よりは導入コストは下がっている。証明書については第2回で詳しく触れる。
●HTTPS化によるブラウザの挙動の変更:リファラ情報の欠落
WebサイトをHTTPS化すると影響を受ける項目として、Webブラウザのリファラ問題がある。リファラとは、Webページ上のリンクをクリックした時に、リンク先のサーバへ送られる情報の1つである(以下のページの「HTTPリファラ」の項目参照)。Webサイトではリファラ情報をたどることにより、どこのサイトやページからユーザーがやってきたかを追跡できるようになっている。
- 超入門 第3回の「HTTPリファラ」参照
HTMLの規格(RFC2616)では、HTTPSのサイトからHTTPのサイトへ飛んだとき、元のページのリファラ情報を送信しないように求めている。HTTPSで保護されたページからの情報漏えいを防ぐためである。
この結果、HTTPS化されたサイトからリンクされたページでは、ユーザーがどこのサイトやページから来たかを追跡できなくなっている。リファラの送信の許可/禁止を制御するようなHTMLの規格も提案されているが、まだ正式規格にはなっていないし、実装しているブラウザも多くはない。
このリファラの問題は、たとえ自社のWebサイトであっても、部分的にHTTPとHTTPSのページが混在していると生じることになる。だが全てのページをHTTPS化すればリファラ情報が常に渡されるようになり、解決するだろう。
●HTTPS化によるウイルスのすり抜けなどの可能性の増大
HTTPS化すると通信内容が暗号化され、第三者による盗聴などができなくなる。だがその一方で、経路の途中にあるファイアウォールやゲートウェイなどでのウイルスチェックも行えなくなる。この結果企業などでは、エンドユーザーが悪意のあるWebサイトに直接接続してウイルスなどに感染してしまう可能性が高くなる。
これを避けるには、全てのクライアントシステムにウイルス対策ソフトを導入したり、HTTPS通信に対応したゲートウェイ/プロキシ型の対策システム(HTTPSのサーバやクライアントとして振る舞うような形態のゲートウェイ)を導入したりする必要がある。
ただしHTTPSを使っても接続先のIPアドレス情報が秘匿されるわけではないので、IPアドレスやドメイン名などを使った、IPやTCPレベルでのパケットフィルタリングはHTTPの場合と同様に適用可能である。
部分的なHTTPS化と全体的なHTTPS化:常時HTTPS化(AOSSL)
WebサイトをHTTPS化する場合、今まではログインページや個人情報の管理ページなど、一部のページだけをHTTPS化することが多かった。サイト全体をHTTPS化するのとコストや手間が掛かるので、重要な情報がやりとりされる部分だけをHTTPS化で保護するためである。
HTTPのGETやPOSTメソッドを使った通信では、ユーザーが入力したデータは暗号化されずにそのまま送受信されるため(超入門「HTTPS入門」参照)、この方法を使えば最小限の情報保護機能を実現できる。
だが昨今では一部のページだけではなく、サイト全体を全てHTTPS化する「常時SSL」や「AOSSL(Always On SSL)」などがトレンドとなっている。
部分HTTPS化と常時SSL化
今まではサイト全体のうち、部分的なHTTPSがよく使われていた。だがこれからは、サイト全体を常にHTTPS化する常時SSL(AOSSL、常時HTTPS接続)が主流となる。HTTPでアクセスしてきた場合はHTTPSのページへリダイレクトすることになる。非HTTPSのページからHTTPS化されたページへリンクをたどった場合、(デフォルトでは)リファラ情報は送信されない。
HTTPS化には幾つかのデメリットがあるが、それにも以上に得られるメリットの方が多くなっている。今後はより多くのサイトがHTTPS化を進めることになるだろう。
今回はHTTPSの概要と常時SSL(常時HTTPS化)についてみてきた。次回はプロトコルや証明書などHTTPSの詳細について解説する。
「超入門HTTPS」
Copyright© Digital Advantage Corp. All Rights Reserved.