Telegramは本当に暗号化されているのか?そのプロトコルを詳しく解析してみる。

Telegramは特にプライバシーとセキュリティを重視するユーザーの間で非常に人気が高まっています。このアプリは自身を安全なメッセンジャーとして謳っていますが、それは本当の意味で何を指しているのでしょうか?Telegramは本当に暗号化されているのか、もしそうならどの程度安全なのでしょうか?この記事では、ジョンズ・ホプキンス大学の著名な教授であり暗号学の専門家であるマシュー・グリーンの知見をもとに、これらの疑問に迫ります。
メッセージングアプリにおける暗号化の理解
まず、Telegramの暗号化について詳しく見る前に、メッセージングアプリの文脈で暗号化とは何かを理解することが重要です。現代のプライベートメッセージサービスは多くの場合、エンドツーエンド暗号化(E2EE)を使用しています。これは送信者と受信者だけがメッセージを読むことができることを保証するもので、サービス提供者(この場合はTelegram)でさえ復号鍵を持たないためメッセージを解読できません。このレベルの暗号化は通信におけるプライバシーとセキュリティのゴールドスタンダードとされています。
Telegramの暗号化のアプローチ
Telegramは独自の暗号化プロトコルであるMTProtoを使用しています。Telegramによると、このプロトコルはクライアント(ユーザー)とサーバー間の通信を保護するために設計されています。しかし、ここから話は複雑になります。
Telegramはすべてのメッセージに対してデフォルトでエンドツーエンド暗号化を使用しているわけではありません。標準チャットではサーバークライアント暗号化に依存しています。つまり、メッセージはあなたの端末とTelegramのサーバー間で暗号化されますが、Telegramはそれらを復号して読むことが可能です。このアプローチは、SignalやWhatsAppのようにサービス提供者でさえメッセージを読めないより安全なエンドツーエンド暗号化とは根本的に異なります。
Telegramで真のエンドツーエンド暗号化を利用したい場合は、手動でシークレットチャットという機能を有効にする必要があります。この機能は1対1の会話でのみ利用可能で、グループチャットには対応していません。マシュー・グリーンが指摘するように、これは大きな欠点です。「実際の影響としては、ほとんどの1対1のTelegram会話、そして文字通りすべてのグループチャットはおそらくTelegramのサーバー上で見られる可能性がある」ということです。
Telegramのシークレットチャットの課題
シークレットチャットを使う場合でも制限があります。まず、シークレットチャットは端末固有であり、例えばスマートフォンで開始したシークレットチャットをタブレットやパソコンで続けることはできません。さらに、シークレットチャットを有効にする手順は簡単ではなく、複数のステップが必要なため、技術に詳しくないユーザーはこの機能を使うのをためらうかもしれません。
グリーンは「Telegramでエンドツーエンド暗号化を有効にするのは、非専門家ユーザーにとっては奇妙なほど難しい」と述べています。この複雑さは、Signalのようにエンドツーエンド暗号化が常にオンで特別な設定を必要としないアプリとは対照的です。
TelegramのMTProtoプロトコルのセキュリティ
Telegramの独自