世界を動かす技術を、日本語で。

Twitterの新しい暗号化DMは旧型よりも優れていない

概要

Twitterの新しい暗号化メッセージ「XChat」は、改善された点もあるが本質的な安全性に問題が残る。 依然としてTwitterはユーザーの秘密鍵を取得できる可能性が高く、MITM攻撃やメタデータ漏洩のリスクが存在。 JuiceboxプロトコルやLibsodiumの採用など技術的な工夫はあるが、PINやキーストアの運用に課題。 サーバーやバックエンドの信頼性が担保されておらず、Signalのような先進的な安全性は実現できていない。 結論として、プライバシー重視ならSignalの利用が推奨される。

Twitterの新暗号化DM「XChat」の問題点

  • Twitter は数年前に暗号化DMを導入したが、 エンドツーエンド暗号化(e2ee) としては不十分な実装。
  • 当初は画像送信などの機能もなく、実用性に乏しいサービス。
  • 最近、Elonが「 XChat」という新しい暗号化メッセージングを発表、 Rust製アーキテクチャ とBitcoin風暗号化を採用。
  • しかし、 根本的な安全性の問題 は解決されていない現状。

技術的な構成とその限界

  • 新実装は Libsodiumのboxes を用いたメッセージ暗号化を採用。
    • これは 前方秘匿性(Forward Secrecy) を持たないため、秘密鍵が漏洩すれば全ての過去メッセージが解読可能。
    • Signal は10年以上前から前方秘匿性を実現しており、現代的な基準には及ばない。
  • Libsodium の実装はC言語であり、Rustではない。
  • 従来方式では、各クライアントがキーペアを生成し、公開鍵のみをTwitterにアップロード。
    • 新デバイスでは過去メッセージを復号できず、デバイス数に制限がありスケーラビリティにも課題。

JuiceboxプロトコルとPIN運用のリスク

  • 新方式では Juiceboxプロトコル を使い、秘密鍵をサーバーに保存。
    • 秘密鍵はPINで生成した鍵で暗号化され、PINを知らなければ復号不可。
  • PINは4桁固定 で最大10,000通り。Argon2idによるKDFを用いても、並列計算で短時間に総当たり可能。
  • Juiceboxは 複数バックエンドへのシャーディング をサポートするが、Twitterは自社管理の3つのバックエンドのみ使用。
    • いずれもx.comドメイン配下であり、 Twitterが全て管理

バックエンドの信頼性とMITMの懸念

  • キーストアの信頼性は、 バックエンドとクライアント間の通信の真正性 に依存。
    • HSMの検証や試行回数制限プロトコルが必要だが、Twitterはその証明やドキュメントを公開していない。
  • クライアントは相手の公開鍵をTwitterサーバーから受け取るのみで、 公開鍵の真正性検証手段が存在しない
    • Twitterが任意の公開鍵を渡せば、 MITM攻撃 が容易に成立。
  • サポートページでもこの点は「今後修正予定」とされているが、過去の暗号化DMでも未解決のまま。

メタデータ漏洩とプライバシー

  • サーバーは 誰が・いつ・誰にメッセージを送ったか というメタデータを常に把握可能。
  • たとえ暗号化が突破されなくても、 通信のパターン から多くの情報が漏洩。

Signalとの比較・推奨

  • Signal は前方秘匿性・公開鍵の真正性検証・メタデータ保護など、 現代的な安全性 を実装。
  • TwitterのXChatは、 安全性・プライバシーの観点でSignalに大きく劣る
  • プライバシー重視ユーザーには Signalの利用を推奨

補足・注釈

  • JuiceboxにはRust実装も存在するが、TwitterはC実装をJNI経由で利用。
  • バックエンド運用者が悪意を持つ場合や、法的圧力下で秘密鍵の取得が現実的なリスク。
  • GoogleやAppleは、Intel SGX等を用いたより安全なキーストア運用をドキュメント化。

結論: Twitterの「XChat」は技術的な進歩はあるものの、 本質的な安全性・信頼性は確保されていないSignal の利用が、現時点では最適な選択。

Hackerたちの意見

新しいXChatは暗号化を搭載して展開中だよ [...] これはRustで作られていて、「ビットコインスタイル」の暗号化が使われてるんだって。「ビットコインスタイルの暗号化」って何を意味するの?ビットコインって、一般的に知られている「暗号化」よりも、主に暗号署名に依存してるんじゃないの?

ただのバズワードで、価値を感じさせるためのものだよ。

そのコメントの出所は、深い技術的専門知識を持っている人ではないことが証明されているから、あまり真に受けない方がいいよ。

みんなが他の人の公開鍵を知っていれば、エンドツーエンドの暗号化は簡単だよ。例えば、GPGがそういう仕組みだね。でも、信頼できる方法でその鍵を配布するのが難しいんだ。配布中に誰かが鍵を改ざんできると、どんな接続でも中間者攻撃ができちゃうからね。この「ビットコインスタイル」の暗号化は、今と歴史の中での全ユーザーの公開鍵のブロックチェーンかブロックツリーなんじゃないかな。ツリーのルートハッシュをクライアントアプリ内に送って、各ユーザーが自分のツリーのエントリーが正しいか確認できるようにして、他のユーザーのプライベートキーを取得するのに同じ確認済みのツリーを使えるって感じ。

何の意味もないよ。ただ、技術をよく知らない人にはカッコよく聞こえるだけ。君のHDMIケーブルが「10倍の速度のために金メッキされてる!」って言ってるのと同じ理由だね。

それは、彼が人々を刺激するって分かってるから、注目を集めるためにやってるんだよね。

この動画で説明されてるよ。 https://www.youtube.com/watch?v=sJNK4VKeoBM

本物のXChatは、名前の侵害でX-Twitterを訴えることができるのかな? http://xchat.org/

どうだろう?XChatは、Xが侵害している各市場で確立された商業的存在を示さなきゃいけないんだ。さらに、XChatがそれぞれの地域で商標を持っていないと、もっと難しくなるよ。

そういえば、XChatからHexChatへの移行時にIRCの常連だったのを思い出すな。今はHexChatも死んでるって知った :( [0] [0]: https://hexchat.github.io/news/2.16.2.html

以前の議論: Xの新しい「暗号化された」XChat機能は、特に安全性が高いわけではなさそうだね https://news.ycombinator.com/item?id=44178008

ありがとう。そこにあるトップコメントは結構技術的で、最後にこう言ってるよ:> 「ヘルプドキュメントにも書いてある通り、これはフォワードセキュアじゃないので、鍵を持った瞬間に全部復号できる。これが意味のあるエンドツーエンド暗号化プラットフォームからはほど遠いのは馬鹿げてる。」 https://news.ycombinator.com/item?id=44178544

これが一時的な鍵を使っていて、フォワードセキュリティもなく、やり取りの記録もないなら、名前以外にどこがビットコインスタイルなんだ?

ビットコインも安全な通信チャネルじゃないの?

実際に使い道がないってこと?

ハッシュ関数を使ってるんだね。

PINからの鍵導出?でもそれは鍵バックアップの実装の詳細で、実際のメッセージングには関係ないから、どうなるかわからないね。

彼はビットコインスタイルだとは言ってない、ただ「(ビットコインスタイルの)暗号化を使っている」と言っただけだよ。ビットコインは暗号化を使ってないって指摘しようと思ったけど、技術的には署名アルゴリズム(ECDSA)はハッシュのステップとして考えられるし、その後に公開鍵ベースの暗号化ステップが続くんだ。だから、最も好意的に解釈すれば、楕円曲線の非対称暗号を使ってるってことになる。おそらく対称鍵を交換するためにね。非対称暗号はすごく遅いから。つまり、今の時代のほとんどのものがやってることだよ。古いものは非ECアルゴリズムを使ってたけど、今でも全然問題ないし、鍵は大きくなるけど量子コンピュータには弱いかもしれないね。

それは暗号技術を使ってるけど(あまり知られてないし、ほとんど役に立たないCryptoの派生物だね)

Twitterが使ってるライブラリ(TFAによるとね)が自分でこう説明してるのが面白いよね。 「注意:実験的なライブラリです!」 「このライブラリは有名なLibsodiumライブラリのラッパーに過ぎないけど、新しい攻撃面やバグ、その他の問題を引き起こす高い可能性があるから、コミュニティにレビューされるまで本番環境では使わない方がいいよ。」

速く動いて暗号を壊せ。

Twitterのブランド力はすごくて、リブランドしても生き残るんだよね。

脚注では、著者が古い名前を使った理由が詳しく説明されてるよ。

マシュー・ギャレットの書くことは全部好きだけど、これについてはちょっと面倒くさくなっちゃうな。 シグナルはずっと前からフォワードシークレットを持ってるよね? 安全なメッセージングの現代的な実践はOTR(ボリソフとゴールドバーグ)によって確立されたもので、「完全なフォワードシークレット」と「否認可能性」(非否認可能性とは逆)という概念を実質的に導入したんだ。 シグナルはそのアイデアの進化であり、それを実現するエンジニアリングの進化(より良い暗号、より良いコード、より良いパッケージング)でもある。 この状況がイライラするのは、新しいメッセージングシステムが私たちを後退させていること。 「シグナル以前」のレベルだけじゃなくて、2001年の前近代的なレベルにまで戻ってる。

前のリークからの三つのことを忘れないでおこう:

  1. コアシークレットはFBIが企業に秘密裏に製品にバックドアを仕込むよう「強要」したと言ってた。 別のリークでは、FISA裁判所による罰金が企業を潰す可能性があるとも言われてる。 起訴されるかどうかは分からないけど。
  2. 彼らは大企業に数千万から1億ドル以上を支払って、バックドアを仕込ませてた。 歴史的に見ても、政府契約や輸出ライセンスについて圧力をかけることもできる。 1と2の間を見ると、「銀か鉛」のようなパブロ・エスコバル的な政策に見える。
  3. ラバビット裁判では、被告が鍵を渡すとビジネスが壊れると言ってた。 市場がすべての会話がFBIの手にあることを知ってしまうから。 FBIはそれを隠せると言ったけど、ラバビットの広告を考えると基本的に嘘だよね。 裁判官はその主張を支持したと思う。 つまり、FBIや一部の裁判所は暗号を使う企業にアクセスを求めて、ユーザーには嘘をついてるってこと。 この三つの事実だけで、政府の要求や無関心から大規模プラットフォームの暗号が意図的に弱くされているのか、いい加減なのか疑問に思う。 だから、警察国家での暗号の使用は、少なくともファイブアイズのためにサブバートされてると考えてる。 愛国者法やFISC、法律の秘密の解釈などがすべて撤回され、違反者が起訴されるまで考えは変わらないよ。

そして、人々がPC用に書かれたアプリをApp Storeからダウンロードし続ける限り、その状態は続くよ。

暗号化には別のソフトウェアを使った方が良いし、公開鍵は直接会って取得するのがいいよ。

質問:近々北京に行く予定なんだけど、VPNなしでTwitter使えるかな?ありがとう。

一部のローミングSIMカードはグレートファイアウォールに制限されてないけど、一般的にはVPNが必要だね。