メッセージングアプリの匿名性考察

TL;DR

メッセージングアプリの匿名性には、会話相手に対する水平的匿名性と、運営に対する垂直的匿名性という二つの軸があります。 LINE・WhatsApp・iMessage・Signalなどの主要アプリは、登録に電話番号などを要求するため運営に対する匿名性を持ちません。 垂直的匿名性を実現しているのはThreema・Session・SimpleXの3つで、相手と直接IDを交換する必要があるという利便性の代償を伴います。

Cover
Table of Contents

Threema GmbH(以下、Threema社)の公式ブログに「システムレベルの匿名性についての記事」という記事が投稿されました。

メッセージングアプリの匿名性について論じています。以前、市川の強盗傷害事件をきっかけに暗号化やメタデータで機能比較した記事を書きましたが、匿名性という観点はなかったのでこの記事を参考に解説したいと思います。

メッセージングアプリの匿名性について

Threema社の技術記事では、匿名性を二種類に分けています。

水平的匿名性
会話の相手に対する匿名性です。ユーザー名だけで連絡先を交換できれば、相手は電話番号や本名を知りません。対等な利用者どうしの間で成り立ちます。
垂直的匿名性
サービス運営者に対する匿名性です。登録時に電話番号やメールアドレスを渡していなければ、運営は身元を特定する手がかりを持ちません。利用者とサービスという上下の関係で成り立ちます。

Threema社は、ユーザー名機能で水平的匿名性は広まったものの、プライバシー保護で本当に重要なのは垂直的匿名性であり、これはセキュリティにおけるエンドツーエンド暗号化に相当する基盤だと主張します。あくまで同社の枠組みですが、この二軸はアプリを見比べる土台として使えます。

垂直的匿名性の重要性について

なぜ運営に対する匿名性がそれほど問題になるのでしょうか。

メッセージングアプリでは、登録時に電話番号やメールアドレスを要求するものがあります。

ユーザー名で連絡先を交換できるサービスでも、相手にこうした個人情報を見せずに済むだけで、登録の段階では運営に渡しています。 電話番号やメールアドレスは本人確認や他サービスの登録にも使われる、生活に密着した識別子です。 運営がこれを保持していれば、別々の文脈で集めた情報を同一人物に結びつける手がかりとして使えてしまいます。

この紐付けは、広告で収益を上げるサービスでは特に意味を持ちます。利用者の行動を束ねてプロフィールを作るほど広告の精度が上がるので、複数の情報源を統合する動機がもともと働きます。電話番号やメールアドレスのような確実な識別子があれば、その統合は格段にやりやすくなります。メッセージの中身が暗号化されていても、誰がいつ誰と連絡したかというメタデータや、それを個人に結びつける識別子までは覆い隠せません。

メッセージングアプリの匿名性の比較

ここまでの軸で、私が知る範囲の主要なアプリを並べてみます。

暗号化の強さと、運営に対する匿名性は別物だという点に注目してください。暗号化の対応範囲やメタデータ収集、法執行機関への開示といった機能面の詳しい比較は前回の記事にまとめたので、ここでは匿名性の軸に絞ります。

アプリ登録時に必要な個人情報運営に対する匿名性
LINE電話番号なし
WhatsApp電話番号なし
iMessage電話番号または Apple Accountなし
Signal電話番号なし
Element / Matrixなし(メールは任意)サーバー次第
Threemaなし運営は満たすと主張
Sessionなし高い
SimpleXなし最も高い部類

国内利用者の多いLINEは、もう少し細かく見ておきます。LINEのメッセージはLetter Sealingと呼ぶ技術で暗号化されていますが、50人を超えるグループトーク、グループ音声・ビデオ通話、LINEミーティング、アルバム、ノートは対象外で、通信路のTLS暗号化にとどまります。 この範囲は運営が技術的に中身へアクセスし得ます。そして匿名性の面では、登録に電話番号が必須なので運営に対する匿名性は持ちません。自治体などが市民の申請にLINEを使 うケースが増えていますし、たまに企業でも業務で使用しているケースを見かけます。セキュリティ意識の低さには驚きます。

WhatsAppとiMessageも、垂直的匿名性はありません。メッセージの暗号化に対応していますが、登録にはWhatsAppが電話番号、iMessageが電話番号かApple Accountを必要とします。この時点で運営に対する匿名性は持ちません。 特にWhatsAppを運営するMeta社は広告を収入源としているので 、個人情報に関連したメタデータを収集してグループ内の他社と共有している可能性があります。 中身は守られても、誰といつ繋がったかまでは隠せません。

暗号化に強いというイメージのSignalも垂直的匿名性はありません。 ユーザー名機能が2024年に加わり、電話番号を教えないまま連絡できるようになりました(水平的匿名性)が、 アカウントの作成には今も電話番号が必須です。 Signalを運営するのはSignal Foundationという非営利団体ですが、拠点はカリフォルニア州です。 つまり米国の管轄下なので、米国の捜査機関の要求があれば開示義務があります。

ElementはMatrixというオープンなプロトコルの上に作られています。登録に必要なのは、選んだサーバー上のユーザー名とパスワードだけで、電話番号は要りません。メールアドレスはパスワード再設定用に任意で登録でき、サーバーによっては不正利用対策で求められることもあります。利用者はmatrix.orgのような公開サーバーを選んで登録するのが一般的で、自前でサーバーを立てることもできます。運営に対する匿名性は、結局どのサーバーを信頼するかに依存します。

結局、垂直的匿名性を保持しているのは、Threema、Session、SimpleXのみです。

垂直的匿名性の代償

垂直的匿名性の仕組みと、その代わりに払う利便性のコストを見ておきます。

Threemaは電話番号やメールアドレスを必要とせず、アカウントはランダムに割り当てられたThreema IDだけで機能します。 ユーザーはThreema IDを交換しメッセージの送受信を行ないます。 伝えるのはThreema IDのみなので、運営や相手に身元を明かさずに通信できます。 Threemaを使用していることすら秘匿する為にGoogle Playなどに依存せずThreemaを入手・購入できる手段も提供しています。 Threema IDはThreema社により管理されており、「IDが誰か」はThreema社に把握されませんが「いつ・どのIDと通信したか」は 論理的にはThreema社で把握可能です。ただし、Threema社は広告やトラッキングを行なわないというポリシーを持ち、収益源を買い切り課金に置いています。

SimpleXは、利用者を識別する固定IDを一切持たない設計です。電話番号やユーザー名はもちろん、ランダムなIDすら使いません。仕組みは一方向のメッセージキューで、接続ごとに送信用と受信用の別々のキューを持ち、通常はそれぞれ別のサーバーを経由します。 サーバーから見えるのは不透明なキューへの孤立した配送だけで、送信者と受信者を結びつけられません。サーバー同士も通信せず、配送が済んだメッセージは保存しません。

SessionはもともとSignalのフォークとして始まりました。電話番号やメールなどの個人データも不要で、ランダムなSession IDという66文字程度の公開鍵をアカウントのIDとして使います。メッセージは多数の有志ノードからなるオニオン型のネットワークを経由し、どのノードも送信者と受信者の両方を知ることはありません。運営は2024年10月に、暗号化技術への規制圧力を背景としてオーストラリアからスイスへ拠点を移し、現在はスイスのSession Technology Foundationが運営しています。コードはQuarkslabによる独立監査を受けています。SimpleXとの違いは、Sessionが永続的なアカウントのIDを持つ点です。

これらの高い匿名性には、現実的な代償が伴います。

  • いずれも、相手に直接リンクやQRコード、IDを渡さなければ会話を始められない
  • 従って、電話番号やユーザー名で気軽に相手を見つけることはできず、なんらかの方法で相手と直接これらの情報を交換する必要がある

一番問題になるのは、相手も同じアプリを入れている必要があるところでしょう。 いずれもマイナーなアプリなので、匿名性のために連絡相手の数と手軽さを大きく差し出すことになります。 この利便性の低さは、日常使いを考えるうえで無視できないトレードオフです。

メッセージングアプリについて私の選択

ここまで匿名性の強さで並べてきましたが、強ければ強いほどよい、という話ではありません。匿名性がどれだけ効くかは、相手があなたの身元を知っているかどうかで変わります。

私は以下のように考えています。

関係説明
家族当然対面しており、インストールするアプリも管理可能。機微なメッセージ交換もあり
友人対面しているが、アプリの管理は困難。機微なメッセージ交換は限定的
他人必ずしも対面していない。アプリの管理は不能。機微なメッセージはなし

このように考えると、家族とは水平的匿名性は不要で垂直的匿名性が必要です。 前回の記事でも軽く触れましたが、私自身は家族との連絡用にThreemaを選んでいます。 SimpleXやSessionでもよいのですが、かなり以前からThreemaを使用しており、特に問題もないために使用を続けています。

友人も同様です。知り合いなので水平的匿名性は不要ですが、垂直的匿名性は必要です。 しかし、現実的には垂直的匿名性を実現するために、先に記述した「代償」のため友人に対応するアプリを導入してもらうことは困難です。 そのため諦めて必要な場合は、友人にはメールかSMSでのコンタクトを依頼しています。暗号化、匿名性は放棄すると言うことです。 LINEなどを使っていると「じゃ、LINEで」と言われるので、私はLINEなどのアプリは使わずインストールさえしていません。

ネットで知り合ったような他人については、どちらの匿名性も重要だと思います。 しかし、私は、匿名のままネットで知り合った相手とメッセージングアプリを使って通信するようなニーズはないので無視します。

まとめ

LINE・WhatsApp・iMessage・Signalなど主要なメッセージングアプリは、暗号化や水平的匿名性は実装されていますが、 垂直的匿名性は担保されていません。LINEなど「なりすまし防止、復旧、法令遵守」などを理由に電話番号への紐付けを強化しています。 自治体などでLINEを使用するケースが多いようですが、あれは個人特定を行政として放棄しているとしか思えません。

私にとって必要なのは垂直的匿名性です。メッセージの中身が暗号化されていても、運営に身元や「誰といつ通信したか」を握られては、プライバシーを守ったことになりません。 一方、相手に対しても名乗らない水平的匿名性は、私個人にはほとんど必要ありません。

両方の匿名性を保てるのは、Threema・Session・SimpleXの3つです。

両方の匿名性が必要なのは、相手や運営に身元を伏せたまま連絡したい場面だけです。 こうしたニーズは犯罪目的での使用を想起するかもしれませんが、内部告発や情報提供など正当な目的のためにも必要です。 米国では報道機関が情報提供の窓口としてメッセージングアプリの宛先などを公開しています。 日本ではこうした使い方はほとんど根づいておらず、全く遅れています。

大切なのは、自分がどちらの匿名性を必要とするのかを見極めることです。垂直的匿名性はほとんどの人に効きますが、水平的匿名性まで求めるかは人によって大きく変わります。私自身は、身元を隠す必要のない家族との連絡に、垂直的匿名性を保ちつつ扱いやすいThreemaを使っています。

References