はじめに
インターネットの普及により、私たちの生活におけるネット利用は日常的なものとなっていますよね。それに伴いサイバー攻撃の手法も巧妙化し、多様な脅威が存在しています。中でも、ネットワーク上の通信を盗み見て個人情報や機密データを不正に取得するスニッフィング攻撃は、企業や個人にとって深刻なリスクとなっています(いわゆる乗っ取りなどの被害も含まれます)。
そこでスニッフィング攻撃のリスクを理解するために、Web通信の基本であるHTTPとHTTPSの違いを詳しくまとめておこうと思います。
1. HTTPとHTTPSの基本的な仕組み
1.1 HTTPの概要と脆弱性
**HTTP(Hypertext Transfer Protocol)**は、Webブラウザとサーバー間で情報をやり取りするためのプロトコルです。
-
暗号化がされていない通信
HTTPでは、データが平文のまま送信されるため、ネットワーク上を流れるパケットは誰にでも容易に読み取ることが可能です。 -
スニッフィング攻撃への脆弱性
攻撃者がパケットキャプチャツールを使用することで、ユーザーのログイン情報、個人情報、企業の機密データなどを簡単に傍受するリスクがあります。 -
典型的な利用シーン
主に公開情報や、個人情報を含まない一般的なコンテンツの配信に使われることが多く、セキュリティが特に重視されない用途で用いられます。
1.2 HTTPSの概要とセキュリティ強化の仕組み
**HTTPS(Hypertext Transfer Protocol Secure)**は、HTTPにTLS(Transport Layer Security)またはSSL(Secure Sockets Layer)を組み合わせたプロトコルです。
-
通信内容の暗号化
HTTPSでは、データが暗号化されるため、たとえ通信が傍受された場合でも、攻撃者が中身を理解することは非常に困難です。 -
TLS/SSLハンドシェイク
クライアントとサーバーは、最初の接続時にTLS/SSLハンドシェイクと呼ばれる手順を踏み、暗号化のための鍵交換や認証を行います。これにより、安全な通信チャネルが確立されます。 -
サーバー証明書による認証
HTTPSは、デジタル証明書を用いて、接続先が本物のサーバーであるかどうかを検証するため、フィッシングサイトなどの偽サイトに対する防御策ともなります。 -
データの整合性確保
送信中のデータが改ざんされていないことを確認する仕組みがあり、通信経路上での不正な変更を検知することが可能です。
2. HTTPとHTTPSの違いがもたらす影響
2.1 セキュリティ面での違い
-
暗号化の有無
-
HTTP(Hypertext Transfer Protocol) は、データを暗号化せずにそのまま送信するプロトコルです。つまり、送受信される情報は「平文」の状態でネットワーク上を流れます。このため、悪意のある攻撃者がパケットキャプチャツール(Wiresharkなど)を使ってネットワークを監視すれば、通信の内容を簡単に傍受・解析できてしまいます。
例えば、ユーザーがWebサイトにログインする際、HTTP経由で送信されたユーザー名やパスワードはそのまま読み取られ、悪用される危険があります。さらに、フォームに入力したクレジットカード情報や個人情報も同様に盗まれる可能性が高く、スニッフィング攻撃の大きなターゲットとなります。 -
HTTPS(Hypertext Transfer Protocol Secure) は、HTTPに TLS(Transport Layer Security)またはSSL(Secure Sockets Layer) という暗号化技術を組み合わせたプロトコルです。この技術により、通信内容が暗号化され、第三者がデータを傍受しても解読することがほぼ不可能になります。
たとえば、攻撃者がHTTPS通信を傍受した場合、取得できるのは「意味のわからない暗号化されたデータの塊」であり、パスワードや個人情報を読み取ることはできません。これにより、ユーザーのプライバシーが守られ、スニッフィング攻撃による情報漏洩のリスクが大幅に低減されます。
また、HTTPSを使用しているサイトは、データの改ざん防止機能も備えているため、悪意のある第三者が通信内容を途中で書き換えたり、フィッシングサイトにリダイレクトさせたりするリスクも減少します。そのため、銀行サイト、ECサイト、ログインが必要なWebサービスなど、機密情報を扱うサイトでは必ずHTTPSにする必要があります。
-
-
認証プロセス
-
HTTP(Hypertext Transfer Protocol)
HTTPでは、通信相手の正当性を確認する仕組みがないため、攻撃者が偽のWebサイトを作成し、ユーザーを騙して個人情報を入力させるフィッシング攻撃に対して非常に脆弱です。
例えば、攻撃者が本物の銀行サイトにそっくりなページを作成し、ユーザーが気づかないように誘導することで、ログイン情報やクレジットカード情報を盗み取ることができます。なぜHTTPが危険なのか?
HTTPでは、ユーザーが
「https://www.bank-example.com」
にアクセスしたと思っていても、実際には攻撃者が用意した
「http://fake-bank-example.com」
に誘導されてしまうことがあります。この際、HTTP通信ではサーバーの証明が行われないため、ユーザーは偽物のサイトであることに気づきにくいのです。 -
HTTPS(Hypertext Transfer Protocol Secure)
HTTPSでは、サーバー証明書(SSL/TLS証明書)を利用して、通信相手の正当性を保証します。銀行の正規サイトにアクセスした場合
ユーザーが「https://www.bank-example.com」
にアクセスすると、サーバーはSSL/TLS証明書をブラウザに送信します。ブラウザは、この証明書を認証局(CA: Certificate Authority)に問い合わせ、正規の発行元であるかどうかを確認します。
証明書が有効であれば、ブラウザは鍵マーク(🔒)を表示し、安全な接続が確立されたことを示します。これにより、ユーザーは本物の銀行サイトと安全に通信できることが保証されるのです。フィッシングサイトへのアクセスを防ぐ仕組み
仮に攻撃者が「https://fake-bank-example.com」
というフィッシングサイトを作成した場合、正規の認証局は攻撃者に本物の銀行名義の証明書を発行しません。
そのため、攻撃者のサイトは正規のHTTPSサイトのように見せかけることができず、ブラウザは「警告画面」を表示します。実際に、怪しいメールからリンクをクリックした際に、ブラウザが「このサイトは安全ではありません」や「警告:このサイトはフィッシングの可能性があります」と表示した経験がある方も多いのではないでしょうか。
HTTPSは単なる暗号化だけでなく、こうした偽サイトへのアクセスを防ぐ重要な役割も担っています。なぜHTTPSが必要なのか?
HTTPでは、ユーザーは本物のサイトと偽のサイトの違いをブラウザ上で判別できません。しかし、HTTPSを利用することで、サーバー証明書を通じてサイトの正当性を確認できるため、フィッシング詐欺に遭うリスクを減らせます。ただし、HTTPS対応のフィッシングサイトも存在するため、証明書の発行元やドメイン名を確認することが重要です。
実際の攻撃シナリオ
-
フィッシングメールの受信
「銀行からの重要なお知らせ」と書かれたメールが届く。
メール内のリンクをクリックすると、「銀行のログインページ」に似たサイトが表示される。 -
偽サイトへの誘導
ユーザーは、「https://」ではなく「http://」や、微妙に異なるURL(例:bank-example.com → bank-examp1e.com)に気づかず、ログイン情報を入力してしまう。 -
情報の窃取
攻撃者は入力されたログイン情報を盗み取り、本物の銀行サイトに不正アクセスする。 -
HTTPSがある場合
正規の銀行サイトなら、HTTPSが適用されており、ブラウザが信頼できる証明書を持っていることを確認するため、フィッシングサイトでは警告が表示される。これにより、ユーザーは偽サイトを回避しやすくなる。
-
-
-
データの整合性
- HTTP:通信途中でデータが改ざんされる可能性が高い。
- HTTPS:改ざん検知機能が組み込まれており、通信内容が意図しない形で変更された場合にその異常を察知できる。
2.2 利用シーンの違いと推奨される用途
-
HTTPの利用シーン
一般的な情報提供サイトやブログ、公開情報の配信など、個人情報や機密性の高いデータを取り扱わない場合にはHTTPが使われることがある。 -
HTTPSの利用シーン
ユーザーのログイン情報、決済情報、個人情報、企業の機密データなど、センシティブな情報を取り扱うすべてのシーンでHTTPSが推奨されます。
また、Googleなどの大手検索エンジンは、HTTPS対応サイトを評価項目の一要素としているため、SEO対策の面からもHTTPSの採用は重要です。
4. まとめ
いかがでしたか?HTTPとHTTPSの違いを正しく理解することはとっても大切なことでしたね😅
- HTTPは暗号化されていないため、スニッフィング攻撃のリスクが高い。
- HTTPSはTLS/SSL技術により、データの暗号化、整合性、認証を実現し、安全な通信を可能にする。
- セキュリティ意識を高め、HTTPS対応サイトの利用を徹底することで、安全なインターネット環境を実現できる。
スニッフィング攻撃やその他のサイバー攻撃から個人情報や企業データを守るためにももっと勉強していきたいです。
採用拡大中!
アシストエンジニアリングでは一緒に働くフロントエンド、バックエンドのエンジニア仲間を大募集しています!
少しでも興味ある方は、カジュアル面談からでもぜひお気軽にお話ししましょう!
お問い合わせはこちらから↓
https://official.assisteng.co.jp/contact/
参考資料
https://www.geeksforgeeks.org/what-is-sniffing-attack-in-system-hacking/
https://cybersecurity-jp.com/column/104376