暗号化・安全な通信

エンドツーエンド暗号化 (E2EE)

約 4 分で読めます

エンドツーエンド暗号化とは

エンドツーエンド暗号化 (End-to-End Encryption、E2EE) とは、送信者と受信者の端末間でデータを暗号化し、通信経路上のサーバーやサービス提供者を含む第三者が内容を読めない仕組みです。

通常の TLS/SSL 暗号化では、クライアントとサーバー間の通信は保護されますが、サーバー上ではデータが復号されます。つまり、サービス提供者はデータの内容にアクセスできます。E2EE ではサーバーを経由しても暗号化されたままであり、復号できるのは送信者と受信者の端末だけです。

この仕組みの核となるのが公開鍵暗号方式です。各ユーザーの端末で鍵ペアが生成され、秘密鍵は端末から外に出ません。

E2EE の仕組み - Signal プロトコルの例

現在最も広く採用されている E2EE の実装は Signal プロトコルです。WhatsApp、Google Messages、Facebook Messenger (オプション) などが採用しています。

  1. 鍵ペアの生成: 各端末で長期の ID 鍵と、メッセージごとに使い捨てる一時鍵 (エフェメラルキー) を生成する。
  2. 鍵交換: 初回通信時に Double Ratchet アルゴリズムで共有秘密を確立する。サーバーは暗号化された鍵交換メッセージを中継するだけで、共有秘密を知ることはできない。
  3. メッセージの暗号化: 各メッセージは固有の鍵で暗号化される。1 つの鍵が漏洩しても、他のメッセージは解読できない (前方秘匿性)。
  4. 鍵の更新: メッセージを送受信するたびに鍵が更新される (ラチェット)。過去の鍵は破棄されるため、端末が侵害されても過去のメッセージは保護される。

E2EE の限界と注意点

E2EE は強力なプライバシー保護技術ですが、万能ではありません。

  • メタデータは保護されない: 誰が誰に、いつ、どのくらいの頻度で通信したかという情報は暗号化されません。メタデータだけでも個人の行動パターンや人間関係を推測できます。
  • 端末が侵害されれば無意味: E2EE は通信経路を保護しますが、端末にマルウェアが仕込まれていれば、復号後のデータを盗まれます。端末のセキュリティが前提条件です。
  • バックアップの暗号化: クラウドバックアップが E2EE で保護されていない場合、バックアップ経由でメッセージが漏洩する可能性があります。iCloud や Google Drive のバックアップ設定を確認しましょう。
  • 鍵の検証: 中間者攻撃を防ぐには、通信相手の公開鍵が本物であることを確認する必要があります。Signal や WhatsApp の「安全番号の確認」機能がこれに該当します。

E2EE 対応サービスの選び方

E2EE を謳うサービスを選ぶ際は、以下の点を確認してください。

  • デフォルトで有効か: Signal や WhatsApp はデフォルトで E2EE が有効。Telegram は「秘密のチャット」でのみ有効で、通常のチャットは E2EE ではない点に注意。
  • ソースコードが公開されているか: Signal はオープンソースで、暗号化の実装を第三者が検証できます。クローズドソースのサービスは「E2EE」と主張していても検証が困難です。
  • 独立した監査を受けているか: セキュリティ企業による第三者監査の結果が公開されているサービスは信頼性が高い。
  • グループチャットの E2EE: 1 対 1 では E2EE でも、グループチャットでは無効になるサービスがあります。

暗号化メール安全なファイル共有など、メッセージング以外の分野でも E2EE 対応サービスが増えています。

よくある誤解

E2EE なら通信の全てが秘匿される
E2EE はメッセージの内容を保護しますが、誰が誰に通信したか (メタデータ) は保護しません。通信の存在自体を隠すには、Tor などの匿名化ネットワークが別途必要です。
E2EE は犯罪者のための技術
E2EE はジャーナリスト、人権活動家、企業の機密通信など、正当なプライバシー保護に不可欠な技術です。銀行のオンラインバンキングや医療情報の通信にも E2EE の考え方が応用されています。

E2EE と通常の TLS 暗号化の比較

TLS 暗号化 (通常)

クライアントとサーバー間の通信を暗号化。サーバー上ではデータが復号されるため、サービス提供者はデータにアクセス可能。

E2EE

送信者と受信者の端末間で暗号化。サーバーを含む中間者はデータを復号できない。サービス提供者もメッセージ内容を読めない。

関連用語

関連記事