httpsとは何か | Chromeはhttpsがお好き

httpsとは何か | Chromeはhttpsがお好き

イントロダクション

2018年8月アップデートのChrome68からSSL証明書を導入していないWebページは全て警告が表示されるようになります。発表されたのは2018年2月8日のChrome68に関する公式リリースだったので、もうすぐ4ケ月が経とうとしており、アップデート迄約2ケ月と迫りました(2018/5/31時点)。

私の勤めている会社はホームページ運営を外注しており、私自身が運営に直接かかわることはほぼありません。ただ外注先から「SSLサーバ証明書申請代行費用がかかる」という連絡があり稟議書を書いたところ、回議先から逐一「これ、何?」と言われて説明しに行ったので、途中から自分で稟議書を持って回って説明していきました。

上位役職の方に技術的な話をしても時間がかかるので、「これ入れないとホームページ表示した時に危ないサイトですって警告が出ます。お客さんが信頼してくれなくなります。」と伝えて稟議を通しました。幸いインターネットからの集客には関心が強い人が多く、「お客さんが信用してくれなくなる」は非常に効果がありました。

別に嘘を言っているわけではなく、事実を可能な限り縮めて説明しただけですが、一応「ちゃんと説明する」バージョンも考えておいたので、それを元に今回のお話を進めていこうと思います。

一つだけ前置きすると、「ちゃんと説明する」といってもTSLハンドシェイクやECDHE鍵交換について詳細を説明するような「ちゃんと」ではないのでご了承ください。

スポンサーリンク

httpsとは

まずは超速でhttpをおさらい

本題ではないのでまず3行にまとめます。

1.Webサーバとクライアント間のデータ授受を行うためのプロトコル
2.クライアント側のソフトがWebブラウザ
3.通信内容は暗号化されていない

TCP/IPの話からしだすときりがないのでそこは省略しますが、プロトコルというのは「決まり事」です。

1つ目について、httpは「HyperTextTransferProtocol」の略です。
HyperTextとはHTMLだったりXMLだったり、読み取りソフト(=Webブラウザ)を使うことでただのテキストより優れた情報を提供できるテキストです。
Transferは「移動」、転じて「通信」です。
Protocolは「決まり事」です。
つまりhttpは「HTMLとかを通信する時の決まり事」なのです。

2つめについて、Webブラウザは所謂HyperTextを描画するためのソフトであると同時に、Webサーバにhttpでデータ取得のリクエストを送ったり、送られてきたファイルを受け取る通信クライアントです。
ブラウザで使用するアドレス「http://www.〇〇〇~」は、「〇〇〇というドメインが管理しているwwwサーバのデータを、httpのルールに従って送ってください」というリクエストで、サーバから受け取った結果がブラウザに表示されたWebページです。

3つ目について、httpでやりとりされるデータは暗号化されていない平文なので、伝送経路上で中身を見ることができてしまいます。

SSL/TSLとは

やりとりをするデータ(HTML等)が比較的簡単に作れ、パソコンの普及と同時にWebブラウザも普及したことにより、誰でも簡単にhttpでデータを受け取れる環境が整ったため、httpは爆発的に普及しましたが、一番の問題はデータが暗号化されていないことでした。

それじゃいかんということで、1990年代にNetscape社がはじめたのが「http通信を暗号化するルール」であるSSLです。「Netscape」と聞いて何のイメージも湧かなかった人は多分お若い人じゃないでしょうか。私の学生の頃、図書館にあったIBMのパソコンの標準ブラウザはNetscapeでした。
それはさておき、Netscape社もがんばってみたのですが、独力で作ってみたらあちらこちらに脆弱性が出てしまい、安全な通信を保障するものにはなかなかできませんでした。

インターネットの普及に伴い様々なWebブラウザが乱立していた時期でもあったので、インターネットの標準規格を策定する組織であるIETFが、SSLを引き取って新たに「TSL」という名前で暗号化に着手。1999年に「TSL1.0」をリリースし、以後現在は「TSL1.2」までリリースされています。

TSLに移行されてからの期間の方が長いのですが、未だに「SSL」の名称の方が普及しており、そのため表記もわざわざ「SSL/TSL」と併記していることがあります。

http over SSL/TSL =https

httpsは「SSL/TSLで暗号化したhttp」ということです。
httpsで通信しているWebサイトは、Webブラウザで表示した時にこういう見え方をします(イメージはChrome)。

以前から金融機関やショッピングサイトではよく見ることがありました。
特に秘匿性の高いデータ(=お金の情報)のやり取りがあるところではいち早く対応が進められていましたが、近年はWebページ全体のhttps化が進んできています。

スポンサーリンク

中締め

というわけで初回はhttpsとは何かをざっと説明してみました。
もっと細かい技術的な話については他のサイトに譲ります(嘘書いてもいかんので)。

次回はhttps化によるメリットの話をしていきたいと思います。

ネットワーク・インフラカテゴリの最新記事