HTTPSで暗号化されているので、VPNは不要だという意見がありますが、本当でしょうか。この記事では、HTTPSでは何が暗号化されて、何が暗号化されないか、VPNを使用するとどう変わるかについて、わかりやすく解説します。
HTTPSはどこまで暗号化される?
HTTPSの仕組みと暗号化の範囲、HTTPとHTTPSの違い、SNIとは何かについて解説します。
HTTPSとは
「HTTPS(Hypertext Transfer Protocol Secure)」とは、HTTPに「SSL(Secure Sockets Layer)」または「TLS(Transport Layer Security)」という暗号化プロトコルを組み合わせ、インターネット上で安全にデータをやり取りできるようにした通信方式です。
HTTPはデータを暗号化せずに平文で送信するため、第三者が通信内容を盗み見たり、改ざんしたりすることが容易にできます。また、サーバーが自身の正当性を証明する仕組みがないため、なりすましの可能性もあります。
HTTPSはこれらの問題点を改善しており、2024年現在では、ウェブサイト全体の95%がHTTPSを使用しています。
SSL/TLSとは
「SSL(Secure Sockets Layer)」は、1990年代にNetscape Communicationsが開発した通信プロトコルで、「暗号化」「認証」「改ざんの検出」という3つの機能を持っています。
「TLS(Transport Layer Security)」は、SSLの後継プロトコルで、SSLのセキュリティを強化するだけでなく、セッション管理やデータ圧縮などの機能も追加されています。
現在はほぼTLSしか使われていませんが、SSLという言葉がそのまま使われていることも多いです。
SSL/TLSは、HTTPSだけでなく、様々な用途で使われています。
- HTTPS:Webブラウザ
- FTPS:ファイル転送
- SMTPS:メール送信
- POP3S:メール受信
- IMAPS:Webメール
- VPN:暗号化通信
VPNとSSLの違いとは? なるべく分かりやすく解説します
2024/7/25
VPN、SSL、HTTPSなど、インターネットのセキュリティに関する用語は多くあり、混乱しがちです。この記事では、VPNとSSLの違いについて、なるべく分かりやすく解説しています。そのためには、ある程 ...
HTTPSの仕組み
HTTPSの処理の流れを簡単にご紹介します。
接続の開始
ユーザーがブラウザにHTTPSのURL(https://xxx.xxx)を入力すると、ブラウザはそのサーバーに接続を試みます。
この時は、ポート番号443が使用されます。
ハンドシェイク
ブラウザはサーバーに対して「SSL/TLSハンドシェイク」と呼ばれる、一連の処理を開始します。
まずブラウザは、サーバーに対してSSL/TLSの使用をリクエストします。この時に、ブラウザがサポートする暗号化方式も伝えます。
サーバーは、ブラウザのリクエストに応答し、使用する暗号化方式を伝えます。また同時にSSL/TLS証明書を送信します。この証明書には、サーバーの公開鍵と、認証局によって署名された情報が含まれています。
ブラウザは、受け取った証明書が有効であるか確認します。
ブラウザは、ランダムに作成した「プレマスターシークレット」をサーバーの公開鍵で暗号化し、サーバーに送信します。
ブラウザとサーバーは、プレマスターシークレットから、共通の「マスターシークレット」を作成します。これがセッションキーとなります。
通信の開始
ブラウザとサーバーは、セッションキーを用いて通信を暗号化し、データの送受信をおこないます。
通信の終了
通信が終わると、セッションキーは破棄されます。
再接続が必要な場合は、新たにハンドシェイクからおこなわれます。
HTTPとHTTPSの違い
HTTPパケットは、以下のような構造をしています。
- Ethernetヘッダー
- IPヘッダー
- TCPヘッダー
- HTTPデータ(平文)
HTTPSパケットは、以下のような構造をしています。
- Ethernetヘッダー
- IPヘッダー
- TCPヘッダー
- TLSデータ(暗号化)
つまりヘッダー部分は暗号化されていないので、第三者でも読み取ることができます。
各ヘッダーに含まれる主な情報は、以下の通りです。
- Ethernetヘッダー
- 宛先MACアドレス
- 送信元MACアドレス
- IPヘッダー
- パケットサイズ
- 宛先IPアドレス
- 送信元IPアドレス
- TCPヘッダー
- 宛先ポート番号
- 送信元ポート番号
また、TLSのハンドシェイクの際に「SNI」という、ホスト名が含まれた情報がやり取りされます。
SNIとは
「SNI(Server Name Indication)」とは、TLSプロトコルの拡張機能で、1つのIPアドレスに対して複数のドメインを割り当てる技術です。
SNIは、例えばレンタルサーバーなどで、1つのIPアドレスで複数のドメインのサイトを運用している場合に、適切な証明書を提供できないという問題を解決するためのものです。
クライアント(ブラウザ)が、ハンドシェイクの初期段階でサーバーにホスト名(ドメイン名)をサーバーに通知すると、サーバーは適切な証明書を選択して、クライアントに提供できます。
しかしSNIは暗号化前の段階でやり取りされるため、ISPやネットワーク管理者は、接続先のホスト名を知ることができ、プライバシー侵害の懸念があります。
このため、SNIを暗号化する「ESNI(Encrypted SNI)」や、その後継である「ECH(Encrypted ClientHello)」が提唱されていますが、普及には至っていません。
ECHが実装されてSNIが暗号化されたとしても、ヘッダーに含まれる宛先IPアドレスはそのままとなります。また、TLSハンドシェイク以前の、DNSによる名前解決も問題となります。
HTTPSとVPNの暗号化範囲はどこまで?
HTTPSとVPNの違い、VPNを使うメリットについて解説します。
HTTPSとVPNの暗号化範囲の違い
HTTP、HTTPS、VPNを使った場合に、それぞれISPが確認できる情報は、以下の表のようになります。
項目 | HTTP | HTTPS | VPN |
---|---|---|---|
送信元IPアドレス | ◯ | ◯ | ◯ |
宛先IPアドレス | ◯ | ◯ | ー VPNサーバーのIPアドレス |
ポート番号 | ◯ | ◯ | ー VPNプロトコルのポート番号 |
ドメイン名 | ◯ | △ SNIで見れることがある | ー |
URLのフルパス | ◯ | ー | ー |
URLのクエリパラメータ | ◯ | ー | ー |
HTTPヘッダー | ◯ | ー | ー |
HTTPボディ | ◯ | ー | ー |
データ | ◯ | ー | ー |
トラフィック量 | ◯ | ◯ | ◯ |
通信時間 | ◯ | ◯ | ◯ |
HTTPは何も暗号化されていないので、どのサイトに接続して、何をしているのか、すべて把握することができます。
HTTPSは暗号化されているので、検索した文字列や、どのページを閲覧したのかということは分からなくなります。しかしIPアドレスやドメインは分かるので、ある程度の推測をすることはできます。
VPN接続をすると、ISPはVPNサーバーに接続したということは把握できますが、そこから先どのサイトに接続したのかということは一切分からなくなります。
ただし通信時間やデータ量は分かるため、そこから分析をする手法もあります。例えば、ファイル共有ソフトの使用が疑われて制限がかけられることがあります。
クエリパラメータとは
クエリパラメータとは、サーバーに特定の情報を伝えるために、URLに付け加えられた文字列のことです。
以下のようなものです。
この例では「q」というキーに「vpn」という値が、「lang」というキーに「jp」という値が割り当てられています。
クエリパラメータは、以下のような用途があります。
- 検索文字列
- フィルタリング
- ソート順
- ページ番号
- 言語設定
- 表示設定
HTTPSやVPNを使うと、これらの情報が第三者に見られなくなります。
VPNの利点
HTTPSがあればVPNは不要という意見もありますが、VPNには以下のような利点があります。
検閲の回避
HTTPSだけだと、宛先のIPアドレスやドメイン名が漏れてしまいます。
VPNを使用することで、検閲されることを回避し、プライバシーを保護することができます。
最近、日本企業へのサイバー攻撃が続いていることに対し、政府は国として対応を強化しようとしています。
素晴らしいことのように思えますが、一歩間違えると、中国のような監視社会にもなってしまいます。
VPNは通信の自由を守る重要な手段となります。
地理的制限の回避
VPN接続をすると、Webサイトに伝わるIPアドレスが、VPNサーバーのIPアドレスに置き換わります。
海外のVPNサーバーに接続することで、特定の国でブロックされているコンテンツやサービスを利用することができます。
デバイス全体の保護
HTTPSはウェブサイトとの通信だけを暗号化しますが、VPNはデバイスのインターネット通信全体を暗号化します。
ブラウザ以外のすべてのアプリをまとめて保護することができます。
その他VPNを利用することのメリットは、下記の記事をご参照ください。
VPN接続で、できること・できないことのまとめ
2024/8/19
公衆Wi-Fiに接続するならばVPNが必須とはよく言われますが、具体的にVPNは何をしてくれるのかを理解しておくことは大切です。VPNは他のセキュリティソフトと一緒に提供されることが多いので、保護の対 ...
プライバシー保護ならNordVPNがおすすめ
世の中にVPNサービスはいろいろありますが、プライバシー保護という観点からおすすめなのは、NordVPNです。
VPNを使うことで、ISPから情報を隠すことはできますが、その情報はVPNサーバーに移ったというだけです。
無料のVPNサービスは、その情報を裏で販売していたり、特定の国に流したりしています。
信頼できるVPNサービスを利用することが、何よりも重要です。
NordVPNは、あらゆる手段でユーザーのプライバシーを守っています。
- ノーログポリシー
- 第三者機関による監査
- 本拠地をパナマに設置することで、政府による圧力を回避
- 二重VPN
- プライベートDNS
- キルスイッチ
- Tor連携
30日の返金保証もあるため、まず一度試してみることをおすすめします。