この質問は、エンドツーエンドの暗号化グループチャットをサポートするすべてのチャットサービスに関するものです。たとえば、Signal、XMPP + OMEMO(特にクローズドグループチャット)、WhatsAppなどです。
これらのサービスはどのようにして敵意のあるサーバー管理者がスヌープしたいグループチャットに独自のキーを追加しないようにしますか?ベストプラクティスは何ですか?
現在のすべてのグループメンバーに少なくともクライアントへの侵入が通知されるようにすることは可能ですが、侵入者は通知されて追い出される前に送信されたすべてのメッセージに引き続きアクセスできます。
サーバー管理者が侵入者を静かにグループチャットに追加することが可能です。しかし、グループに通知することを許可せずに、少なくともSignalプロトコルではそれは不可能です。
シグナルは open-source なので、ソースから、誰かがグループに参加したというメッセージがGUIに表示されていることを確認できます。一方、政府によって加圧された場合のアプリは、侵入者を追加した場合にGUIにメッセージが表示されないようにプログラミングすることを選択できます。
しかし、それでも侵入者が検出されるのを防ぐことはできません。 グループキー交換が引き続き表示されるためです。メンバーをグループに追加するには、グループ管理者が各グループメンバーにgroup management message
を送信し、グループ管理者が追加したい人に自分のgroup key
を送信するように指示します。ここで、鍵の交換がすでに開始されていることを確認した場合。このグループ管理メッセージは、メンバーに視覚的に通知するので、その人がグループの一部になったことをメンバーに知らせます。これは、GUIでそのメッセージが表示される場所です。その人が追加されると、彼は自分のグループキーを生成し、個人の1対1のペアワイズ暗号化メッセージとしてグループのすべてのメンバーに送信します。さらに別の時期には、鍵交換が見られます。
グループキーはすべて同じではありません。各メンバーには独自のグループキーがあり、全員がお互いのグループキーのリストを保持しています。元メンバーがすべてのメンバーのグループキーを学習しているため、誰かが去ったときに古いグループキーをフラッシュすることが非常に重要なのはそのためです。
Signalアプリでは、サーバーはグループ管理に関与しません。 Signalには管理者がいないこと、およびすべてのメンバーがグループ管理メッセージをグループメンバーに送信できることを除いて、すべてがまったく同じように行われます。
ただし、WhatsAppでは、グループ管理者はグループ管理メッセージをグループメンバーに直接送信しません。あるはずなのに仕様外。代わりに、グループ管理者がこのメッセージをサーバーに送信します。サーバーは、彼が実際に管理者であるかどうかを確認し、グループメンバーにキー交換を指示します。実際、WhatsAppはグループ管理メッセージをメンバーのサブセットのみに送信するようになりましたが、他のメンバーは後でグループキーを送信できます。侵入者がWhatsAppサーバーによってサイレントに追加された場合でも、各メンバーはキー交換の準備をするように指示される必要があります。そうしないと、侵入者はメッセージを解読できません。
ドイツのルール大学ボーフムのクライトグラファーのチームは、侵入者がメンバーをグループチャットに追加できるようにするWhatsAppのセキュリティの欠陥を発見したと述べています
説明されている弱点により、WhatsAppサーバーを制御したり、トランスポート層のセキュリティを破ったりできる攻撃者が、グループを完全に制御できるようになります。ただし、この操作はグラフィカルユーザーインターフェイスにリストされているため、グループに入るとトレースが残ります。したがって、WhatsAppサーバーは、グループ内のメッセージを密かに並べ替えてドロップできるという事実を利用できます。
この話への反応として、SignalとWhatsAppで使用されるエンドツーエンドの暗号化を開発したOpen Whisper Systemsの共同創設者であるMoxie Marlinspikeは、攻撃者が他のチャットメンバーからのアラートを誰かに隠すことができるという研究者の主張に異議を唱えますグループに追加されました。 「攻撃者にはグループへの過去のメッセージは表示されません。これらは、攻撃者が持っていないキーでe2e暗号化されたものです」とMarlinspikeは書き、「すべてのグループメンバーは攻撃者が参加したことを確認できます。このメッセージを抑制する方法はありません。」
攻撃者が参加しましたメッセージはGUI上のメッセージではないため、ドロップできません。これはキー交換の指示です。
しかし、メッセージがドロップされ、侵入者がアラートをトリガーすることなくグループに参加したとします。これで、グループがプレゼンスの中で話し始めると、すべての侵入者は、サーバーに座って通過するメッセージを監視するのと同じではなかった、今までにないグループキーで暗号化された暗号化メッセージを見ることができます。鍵交換に参加しないと、グループ鍵を共有できません。
アプリがグループ管理をどのように処理するかは関係ありません。 E2Eを使用している場合、通信が行われる前に鍵交換が常に表示されます。
理論的には、新しいグループキーが追加されたかどうかを確認することにより、通知されずに誰かが追加されたかどうかを確認することも可能です。グループキーは、誰かがグループから出たり入ったりしたときにのみ追加または削除されます。
開発者によって追加されたバックドアがある場合、アプリはとにかく侵害されるため、侵入者を静かに追加することに限定されません。攻撃者は、暗号化されていない受信メッセージ、秘密鍵、グループケティーを盗むことができます。上記の検出方法は、アプリ自体が危険にさらされない限り継続します。
E2Eプロトコルでのグループ管理に関していくつかの懸念があります。あなたはこの記事で読むことができます WhatsApp、ユーザーが信じているほど安全ではないシグナルグループチャット 。 親記事には、この問題に関するいくつかの詳細情報があります
WhatsApppホワイトペーパーには、グループチャットのキー交換がどのように実行されるかについての詳細な技術説明、PDF警告]( https://www.whatsapp.com/security/WhatsApp-Security-Whitepaper.pdf )があります。
他のe2eプロトコルがグループ管理をどのように処理するかはわかりません。信号は最も人気があり、広くテストされています。