E2EE (エンド・ツー・エンド暗号化) とは?
目次
はじめに
一般的なメッセージの仕組み
エンド・ツー・エンド暗号化の仕組み
エンド・ツー・エンド暗号化の長所と短所
まとめ
E2EE (エンド・ツー・エンド暗号化) とは?
ホーム記事
E2EE (エンド・ツー・エンド暗号化) とは?

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

中級者
Published Jul 3, 2020Updated Feb 23, 2022
8m

はじめに

現在のデジタルコミュニケーションの性質上、同僚などと直接コミュニケーションを取る機会は限られています。でも、実際には、あなたや友人が個人的にメッセージをやり取りしているように見えても、それらは記録され、中央のサーバーに保存されています。

自分と受信者の間でメッセージを渡す役割を担うサーバーに、メッセージを読まれたくない場合もあるでしょう。そのような場合、エンド・ツー・エンド暗号化 (より簡単に言えば、E2EE) が解決策になるかもしれません。

エンド・ツー・エンド暗号化とは、受信者と送信者の間で通信を暗号化し、その両当事者しかデータを復号化できないようにします。この技術は、1990年代にPhil ZimmermanがPretty Good Privacy (通称:PGP) を発表したことにさかのぼります。

E2EEを使用する理由とその仕組みを説明する前に、暗号化されていないメッセージがどのように機能するかを見てみましょう。


一般的なメッセージの仕組み

この記事では、スマホのLINEのようなメッセージングプラットフォームがどのように動作しているのかについて説明します。アプリケーションをインストールして、アカウントを作成すると、同じようにしている他の人たちとコミュニケーションをとることができます。メッセージを書き、友人のユーザーネームを入力して、中央のサーバーに投稿します。サーバーは、あなたが友人に宛てたメッセージであることを確認したので、それを宛先に渡します。


こうやって、ユーザー同士でのコミュニケーションが行われています。両者は、データをサーバー (S) を経由して、相互に送受信する必要があります。


これをクライアント・サーバー・モデルと呼ぶことがあります。クライアント (あなたのスマホ) はほとんど何もしない代わりに、サーバーがすべての重労働をこなします。しかしそれは、サービスプロバイダーがあなたと受信者の間の中間者として機能していることを意味します。

ほとんどの場合、図中のA<> SS<> Bの間のデータは暗号化されています。例えば、クライアントとサーバー間の接続を保護するために広く使用されているTLS (Transport Layer Security) がその一例です。
TLSや同様のセキュリティソリューションは、クライアントからサーバーへのメッセージの移動中に誰かに傍受されることを防ぎます。これらの対策により、外部の人間がデータにアクセスすることはできなくなりますが、サーバーがデータを読み取ることは可能です。ここで暗号化の出番です。AのデータがBに属する暗号鍵で暗号化されている場合、サーバーはそのデータを読んだりアクセスしたりすることができません。
E2EEの手法がなければ、サーバーは何百万もの他の情報と一緒にデータベースに情報を保存することができます。大規模なデータ漏洩がで何度も証明されているように、これはエンドユーザーにとって悲惨な影響を及ぼす可能性があります。


エンド・ツー・エンド暗号化の仕組み

エンド・ツー・エンド暗号化によって、あなたと他の人をつなぐサーバーでさえも、誰もあなたの通信にアクセスできません。問題となる通信は、プレーンテキストや電子メールから、ファイルやビデオ通話まで様々です。

データは、Whatsapp、Signal、Google Duoなどのアプリケーションで暗号化され、送信者と受信者だけが解読できるようになっています (おそらく)。エンド・ツー・エンド暗号化方式では、 鍵共有と呼ばれるプロセスを開始することで通信の暗号化を実行できます。


ディフィー・ヘルマン鍵共有とは?

ディフィー・ヘルマン鍵共有のアイデアは、暗号技術者のWhitfield Diffie、Martin Hellman、Ralph Merkleによって考案されました。これは、敵対する可能性のある環境下で、当事者が共有の秘密を生成することができる強力な技術です。

言い換えれば、鍵の作成は、安全ではないフォーラムで (傍観者が見ていたとしても)、その後のメッセージの秘密性を損なうことなく行えます。情報化時代には、当事者が物理的に鍵を共有しなくてもコミュニケーションができるという点で、特に価値があります。

共有そのものには、多くの数字と暗号学の魔法が使われています。難しくなりすぎるので、この記事では詳しい説明はしません。その代わりに、ここではペンキの色に例えて説明します。アリスとボブが廊下の反対側にある別々のホテルの部屋にいて、特定の色のペンキを共有したいと考えたとします。そして、そのことを他の誰にも知られたくないとします。

残念ながら、このフロアにはスパイが沢山います。この例では、アリスとボブはお互いの部屋に入ることができず、廊下でしか交流できないと仮定します。そして、廊下で共通の色、今回の例では黄色で合意したとします。そして、黄色い絵の具の缶を手に入れ、それを半分に分けて、それぞれの部屋に戻ったとします。

そして、部屋で他の誰も知らない秘密の色の絵の具を混ぜたとします。アリスは青、ボブは赤を混ぜたとします。肝心のスパイは、黄色に混ぜた秘密の色はわかっていません。しかし、アリスとボブは、緑 (青と黄) とオレンジ (赤と黄) を持って部屋から出てきた際に、スパイは混ぜた色を見ることができます。

そして、この緑とオレンジのペンキをアリスとボブがそれぞれ交換したとします。追加された色の正確な濃淡は判断できないため、その結果がスパイに見られるのは問題ありません。ただし、これはあくまでも例えであって、このシステムを支える数学によって、秘密の「色」を推測することは非常に困難です。

アリスとボブがそれぞれの混ぜ合わせたペンキを交換し、自分の部屋に戻ったとします。その後、自分の秘密の色を受け取ったペンキに追加します。

  • アリスは自分の秘密の色である青とボブのオレンジ (赤と黄) を組み合わせ、赤と黄と青を混ぜた色のペンキを作りました。
  • ボブは自分の秘密の赤とアリスの緑(黄と青)を組み合わせて、青と黄と赤を混ぜた色のペンキを作りました。

どちらの組み合わせも同じ色を使っているので、最終的にはまったく同じ色のペンキが出来上がるはずです。アリスとボブは、スパイに気づかれずに、2人しかわからない色のペンキを作るのに成功しました。



つまり、これがオープンな状態で共有の秘密を作るために使える原則なのです。違うのは、私たちが扱っているのは廊下やペンキではなく、安全ではないチャンネル、そして公開鍵と秘密鍵であるということです。


メッセージの交換

当事者が共有秘密を手に入れたら、それをもとに対称型暗号化スキームを構築することができます。一般的な実装では、より強固なセキュリティのために追加の技術が組み込まれていますが、これらの技術はすべてユーザーからは抽象化されています。E2EEアプリケーションで友人と接続すると、暗号化と復号化は (ソフトウェアに大きな脆弱性がない限り) 自分のデバイス上でのみ行われます。

ハッカーでも、サービスプロバイダーでも、さらには法執行機関だろうとそのメッセージを復号化できません。そのサービスが本当にエンド・ツー・エンド暗号化を有効にしているならば、たとえ誰かが自分のメッセージを傍受したとしても、文字化けした無意味なものにしか見えません。



エンド・ツー・エンド暗号化の長所と短所

エンド・ツー・エンド暗号化の欠点

エンド・ツー・エンド暗号化のデメリットは1つしかありません。ある人達にとっては、対応する鍵がなければ誰にもそのメッセージにアクセスすることができないので、E2EEの価値提案そのものに問題があると考えています。

反対派は、犯罪者がE2EEを利用することで、政府やハイテク企業に通信を解読できないという安心感を与えてしまうと主張しています。そういった人たちは、遵法精神のある人は、メッセージや電話を秘密にする必要はないと考えています。システムに裏口を開けて通信にアクセスできるようにする法案を支持する多くの政治家も似たような考えを持っています。もちろん、これではエンド・ツー・エンド暗号化の意味がなくなってしまいます。

ただし、E2EEを使用したアプリケーションが100%安全ではないことを知っておく必要があります。メッセージはデバイス間では難読化されていますが、エンドポイント (ノートPCやスマホ) では可読化されています。これはエンドツーエンド暗号化の欠点ではありませんが、覚えておいて損はありません。

メッセージは、復号化の前後で平文で見ることができます。


E2EEは、転送中のデータが誰にも読まれないことを保証します。しかし、他の脅威もまだ存在しています。

  • あなたのデバイスが盗まれる可能性があります。 PINコードが設定されていない場合や、攻撃者がPINコードを迂回した場合、あなたのメッセージにアクセスできます。
  • あなたのデバイスがハッキングされている可能性があります。ハッキングされ、情報を送信する前と後に情報を盗み見るマルウェアが搭載される可能性があります。

また、中間者攻撃によって、あなたと相手の間に誰かが割り込んでくるというリスクもあります。これは通信の開始時に発生します。鍵共有を行っている場合、通信が友人との間で行われているかどうかは確実にはわかりません。知らず知らずのうちに攻撃者との間で秘密を確立してしまう可能性があります。そして、攻撃者はあなたのメッセージを受け取り、そのメッセージを解読するための鍵を持っています。さらに、同じ手口であなたの友人を騙すことができます。つまり、メッセージを中継して、それを好きなように読んだり修正したりすることができてしまいます。

これを回避するために、多くのアプリは何らかのセキュリティコード機能を実装しています。これは、安全なチャネル (理想的にはオフライン) を介して連絡先と共有できる、数字の列またはQRコードです。番号が一致すれば、第三者があなたの通信を盗み見ていないことが確認できます。


エンド・ツー・エンド暗号化の長所

先に述べたような脆弱性がない環境では、E2EEは機密性とセキュリティを向上させる非常に価値のあるリソースであることは論を待ちません。オニオンルーティングも同様に、世界中のプライバシー保護活動家に支持されている技術です。こういった技術は、普段使っているようなアプリケーションにも簡単に組み込むことができるので、携帯電話を使える人なら誰でも利用できます。

E2EEのような技術を犯罪者や内部告発者のためだけの仕組みと考えるのは間違いです。一見、安全に見える企業でも、サイバー攻撃の影響を受けやすく、暗号化されていないユーザー情報が悪意のある第三者にさらされていることがわかっています。機密通信やID文書などのユーザーデータへのアクセスは、個人の生活に壊滅的な影響を与える可能性があります。

ユーザーがE2EEに依存している企業が侵害された場合、ハッカーはメッセージの内容について意味のある情報を引き出すことはできません(暗号化の実装がしっかりしている限りは)。攻撃をしてもせいぜい、メタデータを手に入れるくらいの結果しか得られないでしょう。これは、プライバシーの観点からはまだ問題がありますが、暗号化されたメッセージへのアクセスについては改善されています。


まとめ

前述のアプリケーションに加えて、自由に利用できるE2EEツールの数も増えています。AppleのiMessageやGoogleのDuoは、iOSやAndroid OSに同梱されており、プライバシーやセキュリティに配慮したソフトウェアが続々と登場しています。

繰り返しになりますが、エンド・ツー・エンド暗号化は、すべての形態のサイバー攻撃に対する魔法のバリアではありません。しかし、比較的少ない労力で、積極的に利用することができ、オンライン上で自分の通信が第三者に傍受されるリスクを大幅に軽減することができます。Tor、VPN、仮想通貨と並んで、E2EEメッセンジャーはユーザーのデジタルプライバシーを守るための武器になるでしょう。