「HTTPS」は「HTTP」と何が違うのか? HTTPSが安全なのはなぜか:HTTPとHTTPSの違い【後編】
Webサイトを利用する時に使われるプロトコル「HTTPS」は「HTTP」から進化してきた。HTTPSはどのような仕組みで通信を保護しているのか。その仕組みを解説する。
その名前が示すように、「HTTPS」(Hypertext Transfer Protocol Secure)は「HTTP」(Hypertext Transfer Protocol)にセキュリティ機能を拡張したプロトコルだ。HTTPSの基本はHTTPと変わらない。だが、HTTPSはセキュリティ対策の仕組みを追加することで、安全な通信を実現している。どのような仕組みをHTTPSは搭載しているのか。
HTTPSが安全と言えるこれだけの理由
併せて読みたいお薦め記事
連載:HTTPとHTTPSの違い
通信を保護するいろいろな仕組み
HTTPSにおけるセキュリティ対策の仕組みの一つがデジタル証明書だ。HTTPSで通信する場合、Webサイトは、認証局(CA)が発行したデジタル証明書を取得する必要がある。通常、デジタル証明書を取得するためWebサイト運営者はCAに料金を払い、ドメイン所有権などの認証情報を提出する。
デジタル証明書には、ドメイン名などWebサイトの身元を証明する情報が含まれている。クライアントがデジタル証明書をインストールしたWebサイトにアクセスする時、クライアントはデジタル証明書をダウンロードして、その中に含まれる情報で相手を確認してから、通信の暗号化を開始する。
HTTPSは、通信の暗号化と復号に同一の鍵を用いる「共通鍵暗号方式」と、秘密鍵と公開鍵を使って平文を暗号化する「公開鍵暗号方式」の両方を利用する。以下の流れで通信を保護する。
- クライアントから通信のリクエストを受けて、Webサーバが公開鍵をクライアントに送付する
- クライアントは公開鍵を基に共通鍵を生成してWebサーバに送る
- クライアントは送りたいデータを、共通鍵を使って暗号化してからWebサーバに送る
- サーバは送られた共通鍵を利用して暗号化されたデータを復号する
HTTPSでは、通信の暗号化にネットワークセキュリティプロトコルの「SSL」(Secure Sockets Layer)や「TLS」(Transport Layer Security)を利用する。
HTTPSは、以下のようにHTTPのリスクに対処している。
- サーバ認証の不足
- クライアントデバイスがデジタル証明書を基にWebサーバのアイデンティティーを確認する
- 機密データの傍受
- 通信を暗号化するため、悪意ある攻撃者に傍受されるリスクを抑える
- データの改ざん
- HTTPSで使う共通鍵は、暗号化と復号の時に一度だけ利用する「セッション鍵」なので、攻撃者が鍵情報を窃取しても改ざんすることは容易ではない
- GETメソッドにおけるデータの漏えい
- セッション鍵によってURLを含む通信全体を暗号化しているため、外部からは意味不明な文字列に見える
HTTPからHTTPSへの切り替え
WebサイトおよびWebサーバの管理者は通常、HTTPSを採用している。HTTPSはHTTPに比べて追加の設定やコスト、サーバへの負荷といったデメリットがある。しかし、それらのデメリットを上回るメリットを得られるからだ。
HTTPSは機密性、データの完全性や真正性を提供するため、金融や医療などのプライバシーを重視するWebトランザクション(不可分な一連の処理)で重要な役割を果たす
小規模なサイトの運営者やネットワーク管理者でも、訪問者が正しいデータを確実に受け取ることができるよう、HTTPからHTTPSへの切り替えを検討した方がいいだろう。
HTTPSを採用するのでれば、サイトの運営者やネットワーク管理者はまず信頼できるCAからデジタル証明書をインストールすることから始めるべきだ。「Apache HTTP Server」のようなWebサーバ構築のためのソフトウェアは、デジタル証明書をインストールしてHTTPSで通信するための機能を用意している。
HTTPSを利用する場合、ネットワーク管理者はファイアウォールの設定変更が必要になる場合がある。というのも、HTTPとHTTPSはポート番号が異なるからだ。HTTPはポート80を利用し、HTTPSはポート443を利用するため、ファイアウォールの設定でポート443を許可することで、HTTPSで通信できる。
TechTarget発 世界のインサイト&ベストプラクティス
米国TechTargetの豊富な記事の中から、さまざまな業種や職種に関する動向やビジネスノウハウなどを厳選してお届けします。
Copyright © ITmedia, Inc. All Rights Reserved.