HTTPとHTTPSの違い
HTTPとHTTPSの違い、HTTPSで守られる範囲、通信先やアクセスログが消えるわけではない点を整理します。
Webサイトを開くとき、ブラウザとサーバーはデータをやり取りしています。
このWebのやり取りに使われる基本的な仕組みがHTTPです。 そして、HTTPの通信を安全に行うための仕組みがHTTPSです。
HTTPSは、単に「通信内容を暗号化する仕組み」ではありません。 重要なのは、通信の途中にいる第三者による盗み見、改ざん、なりすましを防ぎやすくすることです。
そのためHTTPSでは、主に次の3つが重要になります。
- 通信内容を途中で読まれにくくする
- 通信内容を途中で改ざんされにくくする
- 通信している相手が意図した相手であるかを確認しやすくする
つまりHTTPSは、中間者攻撃への対策として非常に重要な仕組みです。
ただし、HTTPSは匿名化技術ではありません。 HTTPSを使っていても、接続先のWebサイトにはアクセスが届きます。 また、アクセス元、、ログイン状態、アクセスログなどは別の問題として残ります。
この記事では、HTTPとHTTPSの違い、HTTPSで守られるもの、HTTPSでも見える可能性があるものを整理して説明します。
HTTPとは何か
HTTPは、Webでデータをやり取りするための通信ルールです。
ブラウザでWebサイトを開くと、ブラウザはサーバーに対してリクエストを送ります。 たとえば、「このページのHTMLを送ってください」「この画像を取得したいです」といった要求です。
サーバーはそのリクエストに対して、HTML、画像、CSS、JavaScriptなどのデータを返します。
このような、ブラウザとサーバーのリクエスト・レスポンスのやり取りに使われる仕組みがHTTPです。
HTTPそのものは、Web通信の基本です。 しかし、HTTPだけでは通信内容を守る仕組みがありません。
HTTPでは、通信内容が暗号化されません。 そのため、通信経路上にいる第三者が、内容を読んだり、書き換えたり、偽の相手として振る舞ったりできる危険があります。
| HTTPの弱点 | 説明 |
|---|---|
| 盗み見に弱い | 通信内容が暗号化されないため、途中で読まれる危険がある |
| 改ざんに弱い | 通信途中でページ内容や送信内容を書き換えられる危険がある |
| なりすましに弱い | 通信相手が本当に意図したサーバーか確認しにくい |
たとえば、HTTPのログインフォームでパスワードを送信すると、そのパスワードが通信途中で見られる可能性があります。 また、HTTPで読み込んだページの内容が途中で書き換えられ、偽の入力フォームや不正なスクリプトを差し込まれる危険もあります。
HTTPはWeb通信の基礎ですが、そのままでは安全性に大きな問題があります。
HTTPSとは何か
HTTPSは、HTTPの通信を安全な通信路の中で行う仕組みです。
より正確に言えば、HTTPSはHTTPをTLSという安全な通信層の上で使います。 細かいTLSの仕組みまではここでは扱いませんが、HTTPSを理解するうえでは「HTTPの通信内容をTLSで保護している」と考えると分かりやすいです。
HTTPSで重要なのは、次の3つです。
| 要素 | 役割 | 説明 |
|---|---|---|
| 暗号化 | 通信内容を読まれにくくする | 通信途中の第三者が、パスワードやフォーム内容をそのまま読めないようにする |
| 改ざん検知 | 通信内容の書き換えに気づけるようにする | 途中でデータが変更された場合、正しい通信として受け入れにくくする |
| 通信相手の確認 | 意図した相手と通信しているか確認する | 証明書などを使い、接続先サーバーが正当な相手か確認する |
HTTPSの強さは、この3つが組み合わさっている点にあります。
暗号化だけでは不十分です。 たとえば、通信内容が暗号化されていても、攻撃者が偽のサーバーとして振る舞い、利用者をその偽サーバーに接続させられるなら、安全とは言えません。
そのためHTTPSでは、通信内容を守るだけでなく、通信している相手が意図したWebサイトであるかを確認する仕組みも使われます。
HTTPとHTTPSの違い
HTTPとHTTPSの違いは、URLが http[:]// か https[:]// かという見た目だけではありません。
HTTPでは、ブラウザとサーバーの通信が保護されません。 HTTPSでは、ブラウザとサーバーの間に安全な通信路を作り、その中でHTTPのやり取りを行います。
| 項目 | HTTP | HTTPS |
|---|---|---|
| URLの始まり | http[:]// | https[:]// |
| 通信内容の暗号化 | されない | される |
| 通信内容の盗み見対策 | 弱い | 強い |
| 通信内容の改ざん対策 | 弱い | 改ざんを検知しやすい |
| 通信相手の確認 | 基本的に弱い | 証明書などを使って確認する |
| 中間者攻撃への耐性 | 低い | 高い |
| 匿名化 | されない | されない |
HTTPSは、「HTTPに暗号化を足しただけ」と理解すると少し不十分です。 より正確には、HTTPの通信を安全な通信路で包み、盗み見、改ざん、なりすましを防ぎやすくする仕組みです。
中間者攻撃とは何か
中間者攻撃とは、ブラウザとサーバーの間に第三者が入り込み、通信を盗み見たり、書き換えたり、偽の相手として振る舞ったりする攻撃です。
利用者は本物のWebサイトにアクセスしているつもりでも、通信の途中にいる攻撃者が内容を見ているかもしれません。 また、攻撃者が通信内容を書き換え、偽のログインフォームや不正なコードを差し込む可能性もあります。
HTTPでは、このような攻撃に弱くなります。
HTTPSでは、通信内容が暗号化され、改ざんも検知され、通信相手の確認も行われます。 そのため、中間者攻撃を成立させることが難しくなります。
| 攻撃者がやりたいこと | HTTPの場合 | HTTPSの場合 |
|---|---|---|
| 通信内容を読む | 読まれる危険がある | 平文として読むことは難しい |
| パスワードを盗み見る | 危険が高い | 通信途中では盗み見しにくい |
| ページ内容を書き換える | 書き換えられる危険がある | 改ざんが検知されやすい |
| 偽のサーバーに接続させる | 利用者が気づきにくい | 証明書の検証により防ぎやすい |
| 通信相手になりすます | 比較的しやすい | 正当な証明書がないと難しい |
HTTPSの本質はここにあります。
「通信内容が暗号化される」だけでなく、 「途中で内容が書き換えられていないか」 「通信している相手が意図した相手であるか」 を確認できることが重要です。
HTTPSで守られるもの
HTTPSで守られる主なものは、ブラウザとサーバーの間を流れるHTTPの通信内容です。
たとえば、次のような情報はHTTPSによって通信途中で読まれにくくなります。
| 守られるもの | 説明 |
|---|---|
| パスワード | ログインフォームに入力したパスワードが、通信途中で読まれにくくなる |
| フォーム入力内容 | 名前、メールアドレス、問い合わせ内容などが、通信途中で読まれにくくなる |
| ページ内容 | 表示されるページの内容が、通信途中で読まれたり改ざんされたりしにくくなる |
| リクエスト内容 | ブラウザからサーバーへ送る内容が保護されやすくなる |
| レスポンス内容 | サーバーからブラウザへ返される内容が保護されやすくなる |
| Cookie | 通信中に送受信されるCookieが、途中で盗み見されにくくなる |
特に重要なのは、パスワードやCookieです。
Cookieは、ログイン状態の維持や利用者の識別に使われることがあります。 もしCookieが通信途中で盗まれると、場合によっては本人になりすましてアクセスされる危険があります。
HTTPSでは、Cookieも暗号化された通信路の中で送られるため、通信途中で盗み見されにくくなります。
ただし、HTTPSを使っていればCookieに関する問題がすべて解決するわけではありません。 Cookieの保存方法、サイト側の設定、ブラウザ環境、端末の安全性などは別の問題として残ります。
HTTPSでも接続先サーバーには内容が届く
HTTPSは、通信途中の第三者から内容を守る仕組みです。 接続先のWebサイトに対して内容を隠す仕組みではありません。
たとえば、HTTPSのログインフォームにパスワードを入力した場合、通信途中ではパスワードが読まれにくくなります。 しかし、ログイン処理を行うWebサイトのサーバーには、その情報が届きます。
これは当然です。 サーバーがログイン処理をするには、送られてきた情報を受け取る必要があるからです。
HTTPSで守られる範囲は、主に通信経路上です。
| 対象 | HTTPSの役割 | 説明 |
|---|---|---|
| 通信途中の第三者 | 強く防ぐ対象 | 盗み見、改ざん、なりすましを防ぎやすくする |
| 接続先サーバー | 通信の相手 | リクエスト内容はサーバーに届く |
| 利用者のIPアドレス | 直接は隠さない | HTTPSだけではアクセス元IPアドレスは隠れない |
| ログイン中のアカウント | 直接は隠さない | ログイン中の行動はアカウントと結びつく |
つまりHTTPSは、「途中の盗み見や改ざんを防ぐための仕組み」です。 「接続先に対して自分の情報を隠す仕組み」ではありません。
HTTPSでも見える可能性があるもの
HTTPSを使っていても、すべての情報が隠れるわけではありません。
通信内容は保護されます。 しかし、アクセス元に関する情報、接続先に関する情報、Webサイト側が受け取る情報は別の問題です。
| 情報 | 見える可能性がある相手 | 説明 |
|---|---|---|
| アクセス元IPアドレス | 接続先サーバーなど | Webサイト側は、どのIPアドレスからアクセスされたかを把握できる |
| アクセス時刻 | 接続先サーバーなど | いつアクセスしたかはログとして記録される可能性がある |
| リクエスト内容 | 接続先サーバー | HTTPSでも、送信先のサーバーには内容が届く |
| Cookie | 接続先Webサイト | 同じ利用者やブラウザを識別するために使われる場合がある |
| ログイン状態 | 接続先Webサイト | ログイン中であれば、行動はアカウントと結びつく |
| アクセスログ | 接続先Webサイト | どのページを見たか、どの操作をしたかが記録される可能性がある |
| ブラウザ情報 | 接続先Webサイト | User-Agentなどの情報が送られる場合がある |
| 接続先に関する情報 | 通信環境によって異なる | 通信内容は暗号化されても、どのサイトへ接続しているかが推測される場合がある |
ここで重要なのは、「通信内容」と「通信の事実」を分けることです。
HTTPSは通信内容を守ります。 しかし、どのIPアドレスからアクセスが来たか、いつアクセスしたか、どのアカウントでログインしているか、といった情報までは自動的に隠しません。
また、HTTPSではURL全体が常に第三者から丸見えになるわけではありません。 ページのパスやフォーム内容などは通信内容として保護されます。 一方で、接続先のドメイン名に関係する情報は、通信環境によって見える場合があります。
このため、HTTPSを使っているからといって、アクセスの痕跡や識別情報まで消えるわけではありません。
HTTPSは匿名化技術ではない
HTTPSは、匿名化技術ではありません。
HTTPSの目的は、主に次の3つです。
- 通信内容を途中で読まれにくくする
- 通信内容を途中で改ざんされにくくする
- 通信相手が意図した相手であるかを確認しやすくする
これは匿名化とは別の話です。
匿名性を考えるときは、「通信内容が守られているか」と「誰がアクセスしたかが隠れているか」を分ける必要があります。
HTTPSは前者に強く関係します。 しかし、後者を直接解決するものではありません。
| 観点 | HTTPSで解決できるか | 説明 |
|---|---|---|
| 通信内容の盗み見対策 | できる | 通信途中で内容を読まれにくくする |
| 通信内容の改ざん対策 | できる | 途中で内容を書き換えられにくくする |
| 通信相手の確認 | できる | 証明書などを使って接続先を確認する |
| IPアドレスの秘匿 | できない | HTTPSだけではアクセス元IPアドレスは隠れない |
| Cookieによる識別 | できない | Webサイト側の識別は別の問題として残る |
| ログイン状態の秘匿 | できない | ログイン中の行動はアカウントと結びつく |
| アクセスログの削除 | できない | Webサイト側のログ保存はHTTPSとは別の問題 |
「HTTPSなら匿名」という理解は誤りです。
HTTPSは、通信を安全にするための技術です。 匿名性を作るための技術ではありません。
HTTPSを正しく理解するための視点
HTTPSを正しく理解するには、「誰から何を守るのか」を分けて考える必要があります。
HTTPSが主に守る対象は、通信経路上の第三者です。
たとえば、同じWi-Fiにいる第三者、通信経路上の機器、悪意ある中継者などが、通信内容を盗み見たり、改ざんしたり、偽の相手として振る舞ったりすることを防ぎやすくします。
一方で、接続先のWebサイトは通信の最終的な相手です。 そのため、送信した内容はWebサイト側に届きます。
| 相手 | HTTPSで防ぎやすいこと | HTTPSで防げないこと |
|---|---|---|
| 通信途中の第三者 | 盗み見、改ざん、なりすまし | 端末そのものの侵害 |
| 接続先Webサイト | 通信途中での漏えい | サイト側によるログ記録やアカウント識別 |
| 同じWi-Fiの利用者 | 通信内容の盗み見 | アクセス先の推測が完全に消えるわけではない |
| 偽サーバー | 正当な証明書がなければ検出されやすい | 利用者が警告を無視した場合の危険 |
HTTPSは非常に強力な仕組みですが、万能ではありません。
たとえば、ブラウザが証明書に関する警告を表示しているのに、それを無視して進んだ場合、HTTPSによる安全性は大きく下がります。 また、端末自体がマルウェアに感染している場合、HTTPSで通信していても、入力内容を端末側で盗まれる可能性があります。
HTTPSは、ネットワーク上の盗み見、改ざん、なりすましに対して強い防御になります。 しかし、端末の安全性、Webサイト側の管理、アカウントの扱い、Cookie、ログなどは別に考える必要があります。
まとめ
HTTPは、Webでデータをやり取りするための基本的な仕組みです。 しかし、HTTPだけでは通信内容が暗号化されず、通信途中で盗み見や改ざんを受ける危険があります。
HTTPSは、HTTPの通信を安全な通信路の中で行う仕組みです。
HTTPSの重要な役割は、次の3つです。
- 通信内容を途中で読まれにくくする
- 通信内容を途中で改ざんされにくくする
- 通信している相手が意図した相手であるかを確認しやすくする
このためHTTPSは、中間者攻撃への対策として非常に重要です。
ただし、HTTPSは匿名化技術ではありません。 HTTPSを使っていても、接続先のWebサイトにはリクエストが届きます。 また、アクセス元IPアドレス、Cookie、ログイン状態、アクセスログなどは別の問題として残ります。
HTTPSは、通信を安全にするための技術です。 特に、通信経路上の盗み見、改ざん、なりすましを防ぐために重要です。
しかし、誰がアクセスしたかを隠す技術ではありません。
匿名性を考える場合は、HTTPSで守られる範囲と、HTTPSでは守れない範囲を分けて考える必要があります。 HTTPSは重要な前提ですが、HTTPSだけで匿名性が成立するわけではありません。