インスタントメッセンジャーアプリ「Telegram(テレグラム)」の開発者は、極めて高いセキュリティを自負しています。しかし実際のところ、それは事実ではありません。実際、Telegramにはさまざまなクセがあり、そのためにメッセージを保護するのにもコツを知る必要があります。しかもそれは、複雑な暗号方式の問題によるものではありません。メッセンジャーのインターフェイスと全般的なロジックの両方の観点から、一般的に注目されるほどセキュアではないと言える点を見ていきましょう。
セキュアメッセージングの陰
まず初めに、メッセンジャーでセキュリティを確保する仕組みについて考えてみます。最初に気付くのは、最新のメッセンジャーはほぼすべて、かなり以前からユーザーのデバイスとサーバーとの間のデータ交換を暗号化する方式に切り替えていることです。これはすべてのメッセンジャーが必ず備えているべき最低限の条件です。しかし、これだけではそのシステムを安全と見なすには不十分です。全体的なメッセージのセキュリティが保障されないからです。
なぜかと言うと、メッセージを送受信する当事者だけでなく、サービスを提供する運営側も会話にアクセスできるとすれば、それによりリスクが生じるためです。たとえば、運営側が過剰な好奇心を持っていたり、強欲であったりする可能性があります。また運営側は、ユーザーのデータを利用する悪意がなかったとしても、いつかそのサービスが他の企業に売却されたときに、次の運営も同様に誠実だという保証はありません。そして当然のことながら、サービスがハッキングに遭う可能性もあり、そうなればそのハッカーが通信内容にアクセスできます。
しかし、これらの危険性を回避し、将来にわたってサービスを信頼できるのかどうかという疑問に答えを出す、非常に効果的な方法があります。それが、エンドツーエンド暗号化です。この方法では、送信者のデバイスで情報が暗号化され、受信者のデバイスでのみ復号されます。そのためサービスは、暗号化されたメッセージの中継だけを行い、コンテンツにはアクセスしません。これにより自動的に、(現在および将来の)オーナーの詮索や、考え得るその他の問題から通信内容が保護されます。
ここで、非常にシンプルな解決策が出ました。セキュアなメッセンジャーとは、エンドツーエンド暗号化を使用するものだ、ということです。それでは、この点でTelegramはどうなっているかを見てみましょう。
1. Telegramを介した会話は「すべて等しく安全」ではありません
単刀直入に、問題の本質について考えてみましょう。Telegramは、通常のチャットとシークレットチャットという2種類のチャットがある独特なメッセンジャーです。通常のチャット は、エンドツーエンドで暗号化されません。シークレットチャット のみがエンドツーエンドで暗号化されます。
このようになっているメッセンジャーは他にありません。個人のデータを欲しがるザッカーバーグ帝国、Facebook傘下のWhatsAppでさえ、デフォルトでエンドツーエンド暗号化が使用されます。ユーザーがデフォルト設定を変更する必要はなく、特別なチェックボックスもなく、そのままの状態ですべての外部の者(およびサービス運営側)からメッセージが保護されます。
保護されているセキュアなメッセンジャーという位置付けのメッセンジャーを考えれば、SignalやThreemaに携わる人で、エンドツーエンド暗号化をするものとしないものという2種類の通信を用意しようと考える人は1人もいないでしょう。ユーザーを混乱させることなく、すべてのチャットを等しく安全にできるなら、わざわざそんなことをする必要があるでしょうか。しかし、Telegramではそうなっています。
2.デフォルトの設定について…
Telegramのチャットのデフォルトは、エンドツーエンド暗号化が使用されず、セキュアチャットのオプションについてユーザーへの通知もありません。秘匿性が高いとして知られるメッセンジャーをインストールしたユーザーが、わざわざ設定を非公開にしようと、誰が考えるのでしょうか。納得できる回答が欲しいものです。結論として、Telegramでは、ユーザーが新規チャットを作成する際に、セキュリティを確保する方法が提供されず、デフォルトのチャット以外の選択肢があることも提示されません。
デフォルトで安全に保護されているのだと完全に信じ切って、エンドツーエンド暗号化が使用されない通常のチャットを利用してTelegramのチャットに重要な秘密を託しているユーザーが、数百万人とは言わないまでも数千人規模でいるだろうと私は考えています。
特に興味深いのは、シークレットチャットのボタンが、すぐには見つけられない点です。チャットのインターフェイス自体には表示されません。その次のレベルにも表示されず、チャット相手の名前をタップして、プロフィールを開いても、求めているボタンはなく、さらに深いところまで探す必要があります。ドットが3つ並んだメニューをタップしてよく見ていくと、補助的な機能群の間にやっと、エンドツーエンドで暗号化されるシークレットチャットのオプションが見つかります。
3.そもそもなぜ「シークレット」なのでしょうか
Telegramのエンドツーエンド暗号化チャットに付けられた名前にも疑問を感じます。「セキュア」「保護された」「プライベート」など中立的な名前を付けることもできたはずですが、わざわざ「シークレット」としています。この「シークレット」という言葉は人の受け止め方にある種の影響を持つ言葉です。
私はこれまでに何度も、Telegramでシークレットチャットを開始したら、相手から「ジェームズ、何か内緒の話なの?!」などとからかうようなツッコミを入れられました。心配そうに、そんなに大切な話でもあるのか、あるいは、人に聞かせられないような話なのかと聞く人もいました。わざわざ「シークレット」にする必要性が引っかかるのです。
もちろん、毎回何か聞かれるわけではなく、このようなことを口に出さない人や何度か繰り返すうちに言わなくなる人もいます。それでも、シークレットチャットモードに切り替えると、何らかの感情的な反応が呼び起こされることは事実です。 スパイか筋金入りのゴシップ記者にでもなったか、秘密作戦にでも参加したような気分になります。「シークレット」はシンプルで害のない言葉に見えますが、非常に偏りのある反応を人の心に呼び起こします。
しかも、ここで強調しておきたいのは、この言葉を使う客観的な理由はまったくないことです。WhatsAppやSignalでチャットを開始する場合、エンドツーエンド暗号化を使用する理由を聞く人はいませんし、だれも気にも留めません。WhatsAppやSignalでは、何も指定しなくてもすべてのチャットが暗号化されるためです。それに対してTelegramでは、チャットを保護したいという当然の欲求がチャット自体の中に表れてきて、利用者は、まったくバカバカしいとは言わないまでも、少なくとも気まずさを感じることになっています。
4.オプション機能の不足
さらに状況を複雑にしてるのが、通常の暗号化なしのチャットでは使用できる機能のいくつかが、シークレットチャットでは使用できないという事実です。使用できない機能は多くはなく、絵文字によるリアクションとメッセージのピン留めくらいですが、これらがないだけで、セキュアなチャットの使用をためらう人もある程度いるでしょう。その気持ちも理解できなくはありません。プライバシーが十分に確保されないのは抽象的な感覚ですが、「いいね」の絵文字が送れない不便さはもっと具体的だからです。
しかも、これも客観的な理由があってのことではありません。WhatsAppでは絵文字のリアクションをまったく問題なく使えます。エンドツーエンド暗号化が問題になることは少しもないのです。Telegramの開発者にとってシークレットチャットは長い間付随的な課題に過ぎず、シークレットチャットへの新機能の実装は棚上げどころかその棚から滑り落ちてしまったのではないかと想像するほかありません。
5.1対1はよくても、3人以上は…
シークレットチャットモードにおかしなことは何もなく、使えない機能が多少あってもプライバシーが守られるならその方が良いと、チャット相手に納得してもらえたとしましょう。それだけでもなかなかのことで、だれでも上手くいくわけではありません。しかし、ここで安心していることもできません。遅かれ早かれ、次の課題に直面することになるでしょう。グループで何かを相談する必要が出てきます。もちろん、その会話もシークレットチャットでするのが望ましいでしょう。ところが驚くことに、Telegramでは、それはできません。Telegramのグループチャットはエンドツーエンドの暗号化ができないのです。そのためのオプションは用意されていません。
3人以上のグループで話すなら、セキュリティを犠牲にするか、全員で別のメッセンジャーのセキュアなチャットに移行する必要があります。チャット相手がTelegramを使い慣れているなら、前者になる可能性が高いでしょう。1人でも頑固な人がいれば、足を引っ張られるからです。
確かに、技術的な観点から見れば、グループチャットにエンドツーエンド暗号化を実装するのは簡単ではありません。とは言え、ここまでに名前を挙げたWhatsAppやSignal、Threemaではいずれも、1対1のチャットと同様、グループチャットでもデフォルトでエンドツーエンド暗号化が使用されます。それどころか、ビデオ会議の問題も解決されています。
6.多い方が良いとは限りません
Telegramには、ユーザーにとってあまりありがたくないことがもう一つあります。同じ相手とのシークレットチャットをいくつでも作成できることです。こうなっている理由は明白です。暗号化されたチャットは暗号化キーと結び付けられており、このキーはデバイス上に保存され、別のところに転送できないためです。Telegramの開発者がメッセンジャーを複数のデバイスで同時に使用できるようにしたいと考えたことは間違いありません。そこで、暗号化された会話が複数存在できるようになっていて、新しいデバイスごとに新しいシークレットチャットを作成する必要があります(WhatsAppでは、チャットの数を増やさずにこの問題を解決できているのですが)。いずれにしても、このようなオプションがすでに存在している以上、そこで終わりにする必要もありません。(通常のチャットに加えて)シークレットチャットをいくつでもユーザーが望むまままに作成できるようになっています。
少し特殊な状況では、同じ相手と複数のチャットを分けて作成できるのが便利な場合もありうるでしょう。しかし多くの場合は、非常に不便で、無用な混乱を招くことになります。特に、すぐに必要な電話番号などの情報(メールアドレスや口座番号、住所など)を送ってもらったのがどのデバイスのどのチャットだったかを思い出さなければならなくなった場合は面倒です。人によっては、このような混乱が生じることが、シークレットチャットモードを使用しない十分な理由になります。
7.もう一度お願いできますか?
暗号化されない、通常のチャットはTelegramのサーバーに保存され、どのデバイスでも、メッセンジャーにサインインすると自動的に表示されます。先ほどの説明のとおり、暗号化されるシークレットチャットではそうならず、特定のデバイスでのみ表示されます。
新しいスマートフォンを購入して、暗号化されたTelegramの会話も含めてすべてのデータを移行したい場合は、どうなるでしょうか。その方法はありません。Telegramでは、シークレットチャットを新しいデバイスに転送することはできません。Androidの場合は非公式の回避策がありますが、その方法は簡単でも安全でもありません。そしてiPhoneの場合は、そのような怪しげな方法さえも存在しません。つまり、新しいスマートフォンに切り替える場合、Telegramのシークレットチャット内のメッセージはすべて完全に失われます。
もう少し細かく見てみましょう。まず、古いデバイスで誰とチャットしていたかを思い出して、すべてのシークレットチャットを改めて設定し直す必要があります。次に、スマートフォンを新しくしたので、以前のチャットにアクセスできなくなり、新しいチャットを始める必要があることを、連絡先全員に説明する必要があります。こうした作業についてTelegramを頼ることはできません。チャット相手のデバイスには、まだ以前のチャットが残り続けます。向こうからそのチャットでメッセージを送ることもできますが、そこに送られたメッセージをあなたが見ることはできません。
シークレットはないものに
まとめると、Telegramでもシークレットチャットを使うことでセキュアにやり取りすることは理論上可能ですが、実際の上ではそう簡単ではありません。大抵の人はいつも最も抵抗の少ない方法を好み、そういう人たちは結局、エンドツーエンド暗号化のない通常のチャットを使うでしょう。おそらく、多くの人は自分が保護されていないチャットを使っていることに気付いてもいないでしょう。気付いていたとしても、プライバシーのために不便を受け入れる意味を理解しない場合が多く、セキュアな通信を求めることを懐疑的な目で見るでしょう。
繰り返しになりますが、Telegramですべての通信を保護するのは簡単ではありません。ユーザー側にさまざまな努力が必要で、それが成功する保証もありません。血と汗と涙で、安全に対話ができるようになったとしても、グループチャットはどうしても暗号化されない状態でいます。