Learn

ネットワーク

TLSとは何か

HTTPSで使われるTLSが通信内容を暗号化する一方、通信先やログがすべて消えるわけではない点を整理します。

HTTPSの通信では、HTTPのデータをそのまま送るのではなく、TLSという仕組みで保護しています。

HTTPとHTTPSの違いは「暗号化されているかどうか」と説明されることがあります。しかし、TLSの役割は単なる暗号化だけではありません。通信内容を第三者に読まれにくくすること、通信途中で改ざんされにくくすること、そして接続先サーバーを確認することも重要な役割です。

この記事では、TLSが何を守り、何を守らないのかを整理します。

TLSとは

TLSとは、Transport Layer Securityの略で、ネットワーク上の通信を保護するためのプロトコルです。

Webでは、ブラウザとWebサーバーの間の通信を保護するために使われます。ブラウザでHTTPSのWebサイトを開くと、HTTPの通信内容はTLSによって保護された状態で送受信されます。

TLSが主に提供する保護は、次の3つです。

役割意味説明
機密性通信内容を読まれにくくする通信途中の第三者がデータの中身を理解しにくくする
完全性通信内容の改ざんを検出しやすくする途中でデータが書き換えられた場合に検出できるようにする
認証接続先を確認するサーバー証明書によって、接続先がそのドメインの正当な証明書を持っているか確認する

つまり、TLSは「通信を暗号化する仕組み」とだけ覚えるより、通信内容の保護と接続先確認をまとめて行う仕組みと理解したほうが正確です。

HTTPSはHTTPをTLSで保護したもの

HTTPSは、HTTPをTLSで保護した通信です。

HTTPは、ブラウザとWebサーバーがページ内容やフォームデータなどをやり取りするための仕組みです。しかし、HTTPだけでは通信内容が暗号化されません。そのため、通信経路上の第三者に内容を読まれたり、途中で改ざんされたりする危険があります。

HTTPSでは、HTTPのやり取りをTLSの内側で行います。これにより、HTTPで送受信されるリクエストやレスポンスの中身が、通信途中では読み取りにくくなります。

項目HTTPHTTPS
通信内容平文で送られるTLSで保護される
盗聴への耐性低い高い
改ざん検出弱いTLSによって検出しやすい
接続先確認基本的に弱いサーバー証明書で確認する
主な構造HTTPHTTP over TLS

HTTPSは、HTTPとは別の内容を扱う仕組みではありません。HTTPの通信を、TLSで保護して送る方式です。

TLSが守るもの

TLSが守る中心は、ブラウザとサーバーの間を流れる通信内容です。

通信経路上には、Wi-Fiルーター、プロバイダ、組織のネットワーク機器、インターネット上の中継設備などが存在します。TLSが使われていない場合、こうした通信経路上で内容を読み取られたり、改ざんされたりする危険があります。

TLSが有効な場合、通信内容は暗号化されます。そのため、通信途中の第三者がデータを取得しても、HTTPの中身をそのまま読むことは困難になります。

情報TLSによる保護説明
ページ本文保護されるサーバーから返されるHTMLや本文内容は通信途中で読まれにくい
フォーム入力内容保護されるログイン情報や問い合わせ内容などが暗号化される
HTTPヘッダー保護されるやUser-AgentなどのHTTPヘッダーはTLSの内側で送られる
Cookieの値保護される通信途中ではCookieの中身を読まれにくい
URLのパスやクエリ保護されるexample.com/search?q=.../search?q=... に相当する部分はHTTPリクエストとして保護される

ただし、ここでいう保護は、通信途中の第三者に対する保護です。接続先サーバーは、リクエストを処理する必要があるため、通信内容を復号して読み取ります。

サーバー証明書で接続先を確認する

TLSでは、通信内容を暗号化するだけでなく、接続先サーバーの確認も行います。

HTTPSのWebサイトにアクセスすると、サーバーはサーバー証明書を提示します。ブラウザは、その証明書が信頼できる認証局によって発行されているか、有効期限が切れていないか、アクセス先のドメイン名と一致しているかなどを確認します。

これにより、通信相手が意図したドメインの正当な証明書を持っているかを確認できます。

ただし、サーバー証明書があることは、そのサイトの運営者が安全であることや、サイト上の情報が正しいことを保証するものではありません。証明書が確認するのは、主に「そのドメインに対して有効な証明書を持っているか」です。

つまり、HTTPSの鍵マークは「通信経路がTLSで保護されている」ことを示しますが、「そのサイトが信頼できる内容を提供している」ことまでは保証しません。

TLSで暗号化される範囲

TLSで暗号化されるのは、主にHTTPの中身です。

たとえば、Webページの本文、フォーム送信内容、Cookieの値、HTTPヘッダー、URLのパスやクエリ文字列などは、TLSの内側で送られます。

一方で、TLSを使っていても、通信に必要な一部の情報や、通信の外側にある情報は残ります。

情報TLSで隠れるか説明
ページ本文隠れやすいHTTPレスポンスの内容としてTLSで保護される
フォーム入力内容隠れやすいHTTPリクエストの本文としてTLSで保護される
Cookieの値隠れやすいHTTPヘッダーとしてTLSで保護される
URLのパスとクエリ隠れやすいHTTPリクエストの中身としてTLSで保護される
接続先隠れない通信先へパケットを届けるために必要
アクセス元IPアドレス隠れないサーバーや中継先から見える
DNS問い合わせ別問題として残る通常のDNSでは問い合わせ先ドメインが見える場合がある
通信量隠れないどの程度のデータを送受信したかは観測される場合がある
通信タイミング隠れないいつ通信したかは観測される場合がある

この違いは重要です。TLSはHTTPの中身を保護しますが、通信の存在そのもの、通信量、タイミング、IPアドレスまで消すわけではありません。

TLSの終端に注意する

TLSは、どこからどこまでの通信を保護しているのかを意識する必要があります。

一般的な説明では「ブラウザとWebサーバーの間が暗号化される」と言われます。ただし、実際のWebサービスでは、CDN、ロードバランサー、リバースプロキシなどがTLSの終端になる場合があります。

TLSの終端とは、暗号化された通信が復号される地点です。

たとえば、ブラウザからCDNまではTLSで保護され、CDNからオリジンサーバーへは別の接続で転送される構成があります。この場合、ブラウザから見たTLSの接続先はCDN側になり、その先の通信保護はサービス側の設定に依存します。

これはTLSが弱いという意味ではありません。TLSは「エンドポイント間の通信を保護する」仕組みであり、どこがエンドポイントになるかはシステム構成によって変わるということです。

TLSは匿名化技術ではない

TLSは匿名化技術ではありません。

TLSは、通信途中の第三者から通信内容を守るための技術です。一方で、接続先サーバーには通信内容が届きます。サーバーはリクエストを処理する必要があるため、送信されたデータ、Cookie、ログイン情報、アクセス時刻、アクセス元IPアドレスなどを把握できる場合があります。

HTTPSのWebサイトにアクセスした場合、通信経路上の第三者はページ内容を読み取りにくくなります。しかし、接続先のWebサイト自体は、アクセスされたページ、送信されたフォーム内容、ログイン状態、Cookieなどを処理できます。

項目TLSで解決できるか理由
通信途中での盗聴解決しやすい通信内容が暗号化されるため
通信途中での改ざん解決しやすい改ざん検出の仕組みがあるため
接続先サーバーからの閲覧解決しないサーバーは通信内容を処理する必要があるため
アクセス元IPアドレスの秘匿解決しないサーバー側からアクセス元IPが見える場合があるため
Cookieによる識別解決しないCookieはサーバー側の利用者識別に使われるため
ログインによる本人との紐づけ解決しないアカウントに行動が結びつくため

暗号化と匿名化は目的が違います。

暗号化は、通信内容を第三者に読まれにくくするための技術です。匿名化は、誰が通信しているのか、どこへ接続しているのか、どの行動が同じ利用者のものなのかを分かりにくくするための考え方です。

TLSは前者に強い技術ですが、後者を単独で実現するものではありません。

TLSを理解する意味

TLSを理解すると、HTTPSの安全性を過大評価せず、正確に評価できるようになります。

HTTPSは、通信経路上の盗聴や改ざんへの対策として非常に重要です。ログイン、決済、個人情報の送信、管理画面へのアクセスなどでは、HTTPSが使われていることが前提になります。

一方で、HTTPSであっても、接続先サーバーには情報が届きます。サーバーログ、アクセス元IPアドレス、Cookie、アカウント情報、ブラウザ情報などは、TLSとは別の問題として残ります。

そのため、TLSを理解するうえでは、次のように分けて考える必要があります。

観点主な目的TLSとの関係
暗号化通信内容を第三者に読まれにくくするTLSの中心的な役割
完全性通信途中の改ざんを検出するTLSの重要な役割
接続先認証正当な証明書を持つサーバーか確認するTLSの重要な役割
匿名化利用者や接続関係を分かりにくくするTLSだけでは実現できない
追跡防止Cookieやアカウントによる識別を抑えるTLSとは別の対策が必要

TLSは、通信の安全性を支える基本技術です。しかし、プライバシーや匿名性の問題をすべて解決する万能な仕組みではありません。

まとめ

TLSは、HTTPSで使われる通信保護の中心的な仕組みです。

TLSは、ブラウザとサーバーの間の通信内容を暗号化し、通信途中の第三者が内容を読み取りにくくします。また、通信途中での改ざんを検出しやすくし、サーバー証明書によって接続先の確認も行います。

一方で、TLSは匿名化技術ではありません。接続先サーバーには通信内容が届き、アクセス元IPアドレス、サーバーログ、Cookie、アカウント情報などの問題は別に残ります。

TLSを正しく理解するには、「通信内容が暗号化されること」と「誰がどこにアクセスしているかが隠れること」を分けて考える必要があります。

HTTPSは通信を安全にするために重要ですが、匿名性や追跡防止まで自動的に実現するものではありません。

関連記事