ネット君 あー、ウチの大学のホームページにアクセスしたら、「保護されていない」とか言われてますよ?

インター博士 まだHTTPSに対応していないからな。HTTPS非対応のWebサイトにアクセスすると、Google Chromeではそう表示されるんだよ。

ネット君 はー、セキュリティーですねぇ…。そもそも、HTTPSって何をするのか知らないや。

 Webサービスを実現するためのプロトコルとして、HTTPが長年にわたって使われている。HTTPを使ったWebサービスはRESTに基づいたアーキテクチャーで優れたシステムではあるものの、主にセキュリティー面で問題がある。

 1つ目は、データを暗号化する仕組みがないこと(図1)。送受信するデータは暗号化されていない状態、つまり平文でネットワークを流れるため、盗聴される危険性がある。個人情報やクレジットカード情報など、重要なデータを送受信する際に大きな問題となる。

図1●データを暗号化しないので盗聴されやすい
HTTPを使う場合の問題点の1つ。HTTPにはデータを暗号化する機能がないので、通信途中のデータを盗聴される危険性がある。
[画像のクリックで拡大表示]

 2つ目は、通信相手を認証しないことである(図2)。認証には、サーバーを認証するサーバー認証と、クライアントを認証するクライアント認証の2種類がある。

図2●通信相手を認証しないのでなりすまされる
HTTPは通信相手を認証しないので、なりすまされる危険性がある。
[画像のクリックで拡大表示]

 HTTPを使ったWebサービスではサーバーを認証しないために、偽のWebサーバーに誘導されて、個人情報を盗まれる危険性がある。いわゆるフィッシング詐欺である。

 また、クライアントも認証しないので、Webサーバー側でも通信相手を確認できない。

 HTTPを使うことの問題の3つ目は、改ざんを検出する機能がないこと(図3)。データが送られている途中で改ざんされても分からない。

図3●通信データの改ざんを検出しない
HTTPには改ざんを検出する機能がないので、通信途中のデータを勝手に書き換えられる危険性がある。
[画像のクリックで拡大表示]

ネット君 ははぁ、結構な問題ですね。何というか、HTTPは無防備に近いんじゃないんですか?

インター博士 まぁ、昔のプロトコルは大体が無防備だがな。ともかく、HTTPのセキュリティーを強化するために生まれたのが、TLSを組み込んだHTTPSだ。

ネットスケープが開発

 TLSの前身であるSSLは、米ネットスケープコミュニケーションズが開発したトランスポート層のセキュリティープロトコルである。SSLは業界標準になって様々な製品に組み込まれたものの、IETFが定めたインターネット標準にはなっていない。SSLの最終バージョンはSSL 3.0。

 その後、SSL 3.0をベースに開発されたのがTLSである。TLS 1.0は、1996年11月からIETFが標準化作業を開始。1999年1月に標準化された。その後、SSLにはセキュリティーの問題が見つかったため、使用が禁止された

 TLSは大きく2つのプロトコルから成り立っている。1つは認証や暗号化のためのネゴシエーションを行うハンドシェークプロトコル。もう1つは、実際にメッセージをやりとりするレコードプロトコルである(次ページの図4)。

この先は有料会員の登録が必要です。「日経NETWORK」定期購読者もログインしてお読みいただけます。今なら有料会員(月額プラン)が2020年1月末まで無料!

日経 xTECHには有料記事(有料会員向けまたは定期購読者向け)、無料記事(登録会員向け)、フリー記事(誰でも閲覧可能)があります。有料記事でも、登録会員向け配信期間は登録会員への登録が必要な場合があります。有料会員と登録会員に関するFAQはこちら