WWWを支える技術「HTTPS」
初めに
インターネットと聞いて多くの人が頭の中に思い浮かべるのはWorld Wide Web(WWW)ではないだろうか?
私が中学生の頃は、インターネットというのはgoogleやInternet Explorerなどのwebブラウザだとばかり思い込んでいた。
それから、大学生になり、授業で習うまではインターネットというのがWWWを含めるもっと広義なものであると知らなかった。
それほど、WWWは現在世界中の人々の私生活に浸透し、欠かせないものになっており、インターネットの中でも代表格の技術であると思う。
そこで今回はWWWを支える技術の一つであるHTTPSの概要をまとめてみる
HTTPSの概要
HTTPSとは「HTTP over SSL/TLS」の略で、
HTTPに 暗号化技術 を適用したものである。
まず、HTTPとは「Hyper Text Transfer Protocol」の略で、 1980~1990年代にかけてティム・バーナース=リーと ロバート・カイリューによって開発された技術である。
HTMLやXMLにより記述されたハイパーテキストを使い、 ネットワーク上で通信する仕組みで、 画像や音声といったデータを取り扱うことも可能である。
これらのデータをサーバとクライアントとの間で通信する時の通信規約(プロトコル)が、HTTPである。
しかし、HTTPで通信を行うと、第三者に通信の内容を盗み見られてしまうという問題点がある。
そこで第三者に情報を盗み見られることを防ぐために HTTPSが開発されることになった。
一方、SSLは「Secure Socket Layer」、
TLSは「Transport Layer Security」の略で、
それぞれネットワーク上で暗号化通信する仕組み(プロトコル)である。
現在はTLSで暗号化を行っており、 SSL自体は使われてはいないが、
常時SSLと言うのが一般的である[1]。
通常のHTTPを使った通信では、webサーバ側のTCPのポート番号は80番となっている。
一方HTTPSの場合は433番でSSL/TLSのポートを待ち受けしている。
Webブラウザがこのポート番号に接続することで、最初にSSL/TLSの通信路の開設処理を行う。
SSL/TLSはステートを持つプロトコルであり、暗号アルゴリズムの選択や証明書情報の交換、暗号化用の鍵データの交換などのやり取りを行って暗号化通信路を開設する。
以上の通信路開設処理を完了すれば、あとはその上でHTTPプロトコルによる通信を行う[2]。
つまりHTTPSとHTTPの違いはこの暗号化通信の開設をするかしないかである。
そして、通信がHTTPで行われているのか、HTTPSで行われているのかを知るには、webブラウザのアドレスバーを見る。http:/であればHTTP、https:/に合わせて鍵のマークが表記されていればHTTPSで通信していることになる。
また、HTTPSで通信をする目的としては、個人情報や機密情報といった第三者に傍受されたくない情報を含んだ通信を安全に行いたい場合に必要とされる。
特にECサイトやインターネットバンキングなどの個人情報を入力するサイトやページに適用され、通信中での第三者によるなりすましなどを防止する[1]。
以前は、ログイン画面等の個人情報を入力するページのみがHTTPS、その他はHTTP、というwebページ構成も多くあった。そして、最近ではコーポレートサイトや、サービスサイトなどの個人情報を取り扱わないサイトでも使用されるようになってきている。
次にHTTPSで暗号化通信路を開設する際にwebサーバからクライアントに送信されるSSLサーバ証明書について説明する。
webサーバがhttpsに対応するためには、信頼性が高いと認められた認証局(CA : Certification Authority)から発行されたSSLサーバ証明書というものを取得しなければならない。
SSLサーバ証明書は暗号化のカギとして利用されるだけでなく、そのwebサーバがある特定のドメインに属している正当なシステムであることを保証したり、ユーザに対して、そのドメインが正規の組織が管理しているドメインであることを表明する重要な役割を持つ。
SSLサーバ証明書にはwebサーバの所有者の情報や暗号化に必要な鍵などが含まれ、それが発行者によって電子署名されている。以下にwebサーバにセットする証明書の種類を表にして示す。
参考: https://www.atmarkit.co.jp/ait/articles/1704/13/news030_2.html
DVからOV、EVとなるにつれて所有者の存在確認などが厳しくなり、その分証明書としての信頼性が高くなるが、コストも上昇する。
また、Let’s Encryptのような無料の証明書サービスもあり、以前よりHTTPS導入のためのハードルは低くなってきている。以上がHTTPSの概要である。
参考文献
[1]https://www.shadan-kun.com/blog/measure/374/
[2]https://www.atmarkit.co.jp/ait/articles/1704/13/news030.html