httpsとは何か | Chromeはhttpsがお好き
前回のおさらい
前回お話した内容は以下のようになります。
・SSL/TSLとは:暗号化されていないhttpを暗号化するためのプロトコル
・https:SSL/TSLを実装したhttp
今回はhttpsにした場合のメリットからお話していきます。
httpsのメリットとは
通信の盗聴・改ざんが行えなくなる
暗号化プロトコルを使っているわけですから、最初のメリットは当然セキュリティです。
httpsで通信する場合、データはWebサーバとWebブラウザ間のみ暗号化されます。
復号化にはWebサーバとWebブラウザがそれぞれで作成した鍵が必要になるので、Webサーバ→Webブラウザへの通信、Webブラウザ→Webサーバへの通信のどちらかだけ盗聴できても復号化することができません。
そのためデータが通信経路内で盗聴・改ざんされることが無く、安全なデータのやり取りが保証されるのです。
誤ったサーバへ接続されなくなる
通信経路がダメならWebサーバになりすまして通信を受け取ってしまえばいい!
ということを防ぐための仕組みも実装されています。
一つ目は「サーバ証明書」によって、通信元のサーバが本物かどうかWebブラウザ側が確認する仕組みです。「サーバ証明書」は「私はこういうサーバであることが証明されています」というデータです(図①)。
証明書自体が偽造されている可能性もあるので、「あなたの証明書は信頼できる第三者に証明してもらったものですか?」をクライアントが確認します。クライアントには「信頼できる第三者」である認証局の証明書(ルート証明書)があらかじめ入っており、サーバ証明書の署名が本物であるか、有効期間が切れていないか確認し、OKだったら「信頼できる証明書」となります(図②)。
しかしこれでもまだ不十分です。サーバ証明書はhttps通信の度にWebブラウザに送られていますから、「信頼できる証明書」がそこら中に転がっていることになります。
渡された名刺は本物だけど渡してきた人は別人、ということを防ぐために、名刺の持ち主だけが持っている特殊なインクを塗らないと文字が出てこないようになっています。
よくわからない例えになったので普通に言うと、最後にサーバから暗号化された署名が届くので、クライアントは受け取っているサーバ証明書で署名を復号化できたら、通信相手がサーバ証明書の持ち主のサーバで間違いない、ということになります(図③)。
これ以上長ったらしくならないよう端折りましたが、本当はここにもう一つ「中間証明書」というものが出てきますので、引き続き興味のあるかたは調べてみてください。
もう一つはhttpsはSSL/TSLの認証の最初と最後にWebサーバとWebブラウザが情報を送りあって、途中で相手が変わっていないか確認する仕組みです。
「電話で話している途中に、実は電話口の人が別の人になっていた」のを防ぐために、「電話の最初に名乗りあう」「電話の最後に名乗りあう」ということをしています。
もちろん偽名を使われる恐れがあるので、最後に名乗りあうのは「これまで話した内容を本人たち同士でしかわからない言語に変換したもの」です。
再びわかりにくい感じになったので普通に言います。要はSSL/TSLの認証のために行ったやりとりをハッシュ化して送付して、全ての送受信の内容が一致しているかを確認します(図④)。
つまりこんなややこしいやりとりをしてまで通信の安全を守ってくれているのがhttps、ということです。
そしてわかりやすく説明するための図がただのお遊びになったことを深くお詫びします。
SEO対策になる
SEO対策とは、簡単に言うと「Webページが検索サイトで上位に表示されるための対策」です。企業サイトでもECサイトでもアフィリエイトでも、検索上位=訪問者数が増える=広告宣伝になるし、実際に買い物してくれたりお金が発生するということで、Webサイト運営者や企業はこぞってSEO対策に躍起になっています。
そんな中、Googleがウェブマスター向けのブログで「現在でもhttpsかどうかはわずかながらSEOに影響しており、今後期間をかけて強化していく」と述べています。
「わずかながら」と違約しましたが、原文では「1%未満」であるため、現在の影響はほんのわずかですが、多くのサイトはそのわずかな影響でも取りこぼさないための対策に奔走しており、まして世界最大級の検索サイトであり、検索ランクの決定方法を明かしてくれないGoogleが「(1%未満だけど)影響あるよ」と言えば食いつかないわけがありません。
第1回の冒頭にあるように、「Chromeでhttps以外のページは警告する」くらいGoogleはhttps化を強く推進しており、SEO対策はhttps化推進のためのニンジンかもしれません。
確かにhttpsでセキュリティが確保されているページの方がGoogleも安心してお勧めできると思いますが、真意はもっと先にあるのです。
その辺は後程お話したいと思います。
セキュリティが高くなるのに表示速度があがる!?「http/2」とは
最後は今現在普及が進みつつある「http/2」についてです。
通常httpの通信とhttpsの通信を比較すると、SSL/TSLによる認証プロセスがある分httpsのほうが速度は出ません。サーバスペックもPCスペックも向上してきているので、体感的に大きな差が発生するほどではない場合が多いですが、データ数やデータ量によってはブラウザでの表示速度に影響が出る場合もあります。
httpの話はものすごくざっくりしかしませんでしたが、基本的にはWebサーバとWebブラウザが1つのボールを投げたり投げ返したりしているイメージで通信を行っています。
しかしhttpを発展させたバージョンである「http/2」は、WebサーバとWebブラウザ間の通信は「ストリーム」という概念により並行して複数のデータを行ったり来たりさせることができるようになったのです。これにより時間当たりに送受信されるデータ量は増大し、結果的に表示速度を速めることができるのです。
http/2の規格は2015年に承認され、対応したブラウザやサーバも徐々に増えてきています。
http/2は一世代前のバージョンであるhttp/1.1と完全な互換性があり、httpとhttpsのどちらもサポートしているのですが、実際の取り扱いに差が出ています。
http/2の機能をフルで使おうとすると、多くのブラウザはhttpsのみに対応しているのです。
つまりhttp/2での通信を行うとすると、httpsは必須要件となっているのです。
中締め・その2
今回はhttpsのメリットについてお話しました。
要約すると以下のようになります。
・通信中のデータが暗号化されるので盗聴・改ざんが行われない
・サーバー証明書等のやりとりでWebサーバのなりすまし等が防げる
・(1%未満だけど)SEO対策になる(とGoogleが言っていた)
・http/2による画面表示の高速化ができるのはhttpsだけ
これだけメリットがあるんだから、いずれはみんなhttpsになっていくだろうと思う中、GoogleはChromeの警告表示を開始します。
次回は何故Googleがhttps化を急ぐのかという話をしていきたいと思います。
この記事が気に入ったら
いいね!をお願いします