エンドツーエンドの暗号化(E2EE)とは?

エンドツーエンドの暗号化により、メッセージサービスがユーザー間のプライベートな通信を盗み見ることを防ぎます。

学習目的

この記事を読み終えると、以下のことができるようになります。

  • エンドツーエンドの暗号化の仕組みを説明する
  • エンドツーエンドの暗号化と他の暗号化との比較
  • エンドツーエンドの暗号化のプライバシーへの影響を理解する

関連コンテンツ


さらに詳しく知りたいとお考えですか?

是非、Cloudflareが毎月お届けする「theNET」を購読して、インターネットで最も人気のある洞察をまとめた情報を入手してください!

当社がお客様の個人データをどのように収集し処理するかについては、Cloudflareのプライバシーポリシーをご確認ください。

記事のリンクをコピーする

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

エンドツーエンド暗号化(E2EE)は、すべての人からメッセージを秘匿化するメッセージ機能(メッセージサービスを含む)の一種です。E2EEを使用すると、復号化されたメッセージを見ることができるのは、メッセージを送信した人と受信した人に限定されます。送信者は会話の一方の「end(終端)」で、受信者はもう一方の「end(終端)」であるため、「エンドツーエンド」という名称がつけられています。

エンドツーエンド暗号化は、封書で郵送される手紙のようなものだと考えてください。手紙を送った人はそれを読むことができ、受け取った人もそれを開いて読むことができます。郵便局の職員は、封筒に封がされたままであるため手紙を読むことはできません。

エンドツーエンド暗号化と他の暗号化を比較した場合の特徴とは?

多くのメッセージサービスが提供する暗号化通信は真のエンドツーエンド暗号化ではありません。メッセージは送信者からサービスを提供しているサーバーまでの間と、サーバーから受信者までの間で暗号化されていますが、サーバーに到達すると、短い時間復号化されてから再び暗号化されます。(これは一般的な暗号化プロトコルであるTLSの場合です。詳しくは以下をご覧ください)。

誰かの手紙を受け取った後、封筒を開けて新しい封筒に手紙を移し替えてから受取人に届ける郵便サービスを想像してみてください。郵便局の職員に手紙の内容を知られてしまう可能性があります。

このサービスでは複合化されたメッセージを読むことは無いと約束すること(上記の郵便サービスの例で言えば、職員が新しい封筒に移している間に手紙を読まないと言う契約を交わすのと同じように)は可能です。しかし、メッセージを送信する人は、メッセージサービスがその約束を守ってくれることを信じるしかありません。

E2EEが「エンドツーエンド」であるのは、中間にいる人がメッセージを解読することは不可能であるためです。サービスがメッセージを読むことはそもそも不可能であるため、ユーザーは自分が使用しているサービスがそれをしないことを信じる必要はありません。例えば、手紙を封筒で送る代わりに、自分だけが鍵を持っている鍵付きの箱に入れて送ったとします。そうすれば、受取人以外の人がその手紙を読むことは物理的に不可能になります。これが、E2EEの仕組みです。

暗号化の仕組みとは?

暗号化は、と呼ばれる特定の知識を持っている人だけがデータを解釈できるようにデータを変更することによって機能します。アリスがボブにメッセージを送信し、チャックがボブに届ける途中でそのメッセージを盗んだとします。もし、アリスが自分とボブの2人が持っている鍵を使用してメッセージを暗号化した場合、チャックはそれを読むことができず、アリスのメッセージの秘密は保たれます。メッセージがボブに届けられた場合、ボブは自分が所有する鍵を使ってメッセージを復号して、それを読むことができます。

鍵は文脈によって様々な形をとることができます。上の例では、鍵はアリスのメッセージを解読するための説明書のような単純なものかもしれません。インターネット上の通信では、鍵はデータのスクランブルとスクランブル解除に使われる複雑な数学的方程式の役割を果たすビットの列です。

E2EEでは、メッセージを暗号化・復号化するための鍵は、ユーザーの端末に保存されたままになります。アリスとボブがE2EEメッセージアプリを使用する場合、アプリはアリスの携帯電話に鍵を保存し、ボブの携帯電話にも鍵を保存します。アリスの携帯電話は、自分のメッセージを鍵で暗号化し、暗号化されたメッセージをボブの携帯電話に送信します。ボブの携帯は自動的に鍵を適用してメッセージを復号化し、ボブがそれを読むことができるようにします。

E2EEではどのような種類の暗号化が使用されているか?

エンドツーエンドの暗号化には、公開鍵暗号方式と呼ばれる(非対称暗号化と呼ばれることもある)特殊な暗号化方式が使用されています。公開鍵暗号化により、安全でないチャネルを介して秘密鍵を送信することなく、2者間通信が可能になります。

公開鍵暗号方式では、1つの鍵ではなく2つの鍵(公開鍵と秘密鍵)を使用します。公開鍵は誰でも(メッセージサービスを含む)見ることができますが、秘密鍵を知っているのは1人だけです。公開鍵で暗号化されたデータは、公開鍵ではなく秘密鍵でのみ復号化することができます。これは1つの鍵のみを使用して暗号化と複合化の両方を行う対称鍵暗号化とは対照的です。

アリスとボブが通信の暗号化に使用している鍵を変更する必要があるとします。アリスは単純にボブに新しい鍵を送ればいいのでしょうか?いいえ、ボブに届けている途中にチャックが新しい鍵を盗んで複製してしまう可能性があり、そうすると彼らの今後の通信をすべて復号できてしまいます。代わりに、アリスとボブは公開鍵暗号方式を使うことにしました。アリスは自分用に秘密鍵を持ち、ボブには公開鍵を送ります。この方法では、アリスだけが秘密鍵を持っているので、チャックに途中で鍵を盗まれても問題ありません。

E2EEとTLSの違いは?

Transport Layer Security(TLS)は、E2EEと同様に公開鍵暗号方式を使用して仲介者がメッセージを読めないようにする暗号化プロトコルです。

ただし、TLSはユーザーとサーバーの間に実装されるものであり、ユーザー同士の2者間で実装されるものではありません。このため、サーバーに行き来する間のデータは安全に保たれますが、サーバー自体に到達したデータは復号化された形式となります。例えば、ユーザーがWebアプリケーションを使用してこれを行う場合、アプリケーションが機能するためにサーバーはユーザーのデータにアクセスする必要があります。しかし、プライバシーの観点から、これはすべての状況において適切であるとは言えません。例えば、ユーザー同士がお互いにメッセージをやり取りする場合、サービスプロバイダーはそのメッセージが見れないことが望ましいです。

エンドツーエンドの暗号化は、どのようにプライバシーをサポートするか?

E2EEでは、通信している2人以外がメッセージを見ることができないようにします(使用しているデバイスが侵害されていたり、盗まれたりしないことが条件です)。E2EEが適切に実装されていれば、ユーザはサービスで自分のデータが適切に扱われているかどうかを信じる必要はありません。このように、E2EEでは、誰が自分のメッセージを読むことができるかを完全にコントロールすることができ、メッセージを非公開にすることが可能です。

エンドツーエンドの暗号化の限界は?

E2EEは、メッセージの転送中(ある人から別の人に移動している間)の安全を確保します。しかし、目的地に到達した後のメッセージは保護されません。

アリスとボブがE2EEアプリを使っているときに、チャックがボブの携帯電話を盗んだとします。チャックはアリスからボブに送られたメッセージを見ることができます。また、チャックはわざわざボブの携帯電話を盗まなくても、ボブの背後に忍び寄り、彼の肩越しにアリスのメッセージを読むこともできます。あるいは、アリスのメッセージを盗み見るために、ボブの電話をマルウェアに感染させようとするかもしれません。いずれにせよ、E2EEだけではボブをこの種の攻撃から守ることはできません。

最後に、E2EEは将来性を保証するものではありません。最新の暗号化方式は、正しく実装されていれば世界で最も強力なコンピューターからの暗号解読の奮闘にも対抗できるほど強力です。しかし、将来的にはコンピューターがより強力になるかもしれません。量子コンピューターが開発されれば、最新の暗号化アルゴリズムを解読することができるようになるでしょう。E2EEを使用することで、現時点ではメッセージを安全に保つことができますが、永久に安全を保てるとは限りません。

エンドツーエンド暗号化のバックドアとは?

サイバーセキュリティにおいて、バックドアとはシステムの通常のセキュリティ対策を回避する方法のことを指します。すべてのドアに複数の鍵がかかっているセキュリティ万全の建物、ただし、奥の隠し扉だけは鍵がかかっておらず、一部の人しかそのことを知らないことを想像してください。暗号化のバックドアとは、そのようなものです。これは暗号化によって「ロック」されたデータにアクセスするための秘密の方法です。暗号化バックドアの中には、サービスプロバイダーが暗号化されたデータを見ることができるように、意図的にサービスに組み込まれたものも実在します。

あるサービスが安全なE2EEメッセージ機能を提供していると言っておきながら、実際にはそのサービスにはバックドアが組み込まれていたという複数の事例があります。これは、ユーザーのメッセージにアクセスし、不正行為やその他の違法行為がないかスキャンしたり、ユーザーを完全に監視するためなど、さまざまな理由で行われることがあります。ユーザーは、自分のメッセージを非公開にしたい場合は、サービスの利用規約および令状のカナリアを十分に確認する必要があります。

E2EEサービスプロバイダーは法執行機関が必要に応じてユーザーのメッセージを閲覧できるように、暗号化にバックドアを設けるべきだと主張する人もいます。バックドアは暗号化を弱体化させ、ユーザーのプライバシーを低下させるため、データプライバシー擁護派は反対する傾向があります。

Cloudflareの令状のカナリアの一文に次のようなものがあります。「Cloudflareは、法執行機関または他の第三者からの要請に応じて暗号を弱体化したり、安全性を損なったり、破壊したことはありません。」詳しくはCloudflareの透明性レポートをご覧ください。