セキュリティ

誰も信頼しなくていい設計

Crocodile は、サーバーも、ネットワークも、ルームをホストしている友だちでさえも、あなたの話を読めないように設計されています。このページでは、何が守られ、何が守られないのか、そしてその方法を説明します。

守られるもの

あなたの声

聞けるのは通話に参加している人だけです。パソコンを出る前に、パソコン上でフレームごとに暗号化されます。

あなたのメッセージ

今もこれからも、読めるのはスペースやダイレクトメッセージのメンバーだけです。メンバーのデバイスに保存され、サーバーに保存されることはありません。

あなたのアイデンティティ

存在するのはあなた自身のデバイスと、リカバリーキーを持つ人のところだけです。システムのキーチェーンで暗号化して保存されます。

サーバーに見えるもの、見えないもの

人と人をつなぐシステムで、メタデータがまったくないものはありません。Crocodile がどこに線を引いているかを正確に示します。

サーバーに決して見えないもの

  • あなたが書いたことや話したこと:オプションのリレーやメールボックスを使う場合でも、中身はエンドツーエンド暗号化されています。
  • 電話番号、メールアドレス、パスワード:Crocodile はどれも求めません。
  • フレンドリストとブロックリスト:あなたのデバイスだけが読めるよう暗号化されています。
  • 誰がフレンドリクエストを送ったか:リクエストは送信者を明かさない封印されたノートとして届きます。

サーバーに見えるもの

  • 公開プロフィール、スペース名、チャンネル一覧、メンバーシップ、デバイス名。
  • 誰がオンラインか、誰がどのボイスルームにいるか。
  • 接続中:誰のオンライン状態をフォローしているか、誰とダイレクトメッセージや通話を始めたか(保存されず、ほかのサーバーとも共有されません)。
  • アプリ同士をつなぐのに必要な IP アドレス。ルームのホストにもメンバーの IP アドレスが見えます。

誰が試みて、何を得られるのか

脅威モデルとは、考えうる攻撃者と、それぞれができること・できないことを一覧にしたものです。以下はその要約です。

攻撃者できることできないこと
ネットワークを監視する人あなたがどの IP アドレスとどれくらい通信しているかを見ること。中身やメタデータを読むこと、パケットのサイズから話の内容を推測すること。
今記録して後で解読する人あなたの暗号化された通信を何年も保存すること。将来の量子コンピューターでそれを解読すること:すべての鍵交換はハイブリッドのポスト量子方式です。
悪意のあるサーバー誰がオンラインかについて嘘をつくこと、接続を遅らせたり切断したりすること、メタデータを記録すること。中身を読むこと、プロフィール・スペース・招待を偽造すること、誰かの鍵をすり替えること、2つのアプリの間に割り込むこと。
リレーやメールボックスの運用者中継したパケットのサイズとタイミング、誰が誰に何通のメッセージを残したかを見ること。それらを読むこと、改ざんすること、偽造すること。
ルームをホストしている友だちメンバーの IP アドレスと、誰がいつ話しているかを見ること。ほかのメンバーにできないことをすること:そのリレーは暗号化されたパケットを転送するだけです。
スペースを抜けた人以前に見たものを持ち続けること。抜けた後に話されたことを読むこと:誰かが抜けると鍵が交換されます。
鍵を盗んだ人ひとつの会話の、現在の30分間の鍵の期間を最大限読むこと。それ以前のメッセージ(鍵は削除済み)やそれ以降のメッセージ(新しい鍵)を読むこと。
ロック解除されたパソコンを手にした人あなたにできることすべて。ディスク暗号化を使い、紛失したデバイスは別のデバイスから削除してください。デバイスを削除した後に新しいメッセージを受け取ること。

暗号技術

監査済みのオープンソースライブラリ(@noble)による、よく研究された構成要素を、標準的な方法で組み合わせています。

Ed25519すべてのレコード、メッセージ、接続オファーへの署名
X25519 + ML-KEM-768すべてのペアワイズの秘密に対するハイブリッドなポスト量子鍵交換
AES-256-GCMメッセージ、音声フレーム、サーバー接続の暗号化
HKDF-SHA256鍵の導出と、前にしか進まないラチェット
DTLS-SRTPその下にある WebRTC の暗号化トランスポート
Padmé · CBR Opusメッセージの長さと話し方のパターンを隠す

既知の限界

ほかから聞くより、私たちから伝えたいと考えています。

  • 独立した監査はまだ。 設計とコードは公開されていますが、まだ外部の企業による監査は受けていません。監査が済むまでは、あなたの身の安全がかかっている場面では Crocodile に頼らないでください。
  • デバイスはひとつのアカウント鍵を共有。 デバイスを削除すると新しいメッセージや鍵は届かなくなりますが、盗まれたデバイスはあなたの名前で署名できてしまいます。デバイスごとの署名鍵を計画中です。
  • 一部のメタデータは見える。 サーバーにはメンバーシップと、接続中に誰と連絡を取っているかが見えます。これを減らすことは今後の計画に含まれています。
  • 非常に大きなグループ。 Crocodile は MLS ではなくラチェット式の送信者鍵を使うため、グループが大きくなるほど鍵の交換コストが増えます。非常に大きなスペース向けに MLS を計画中です。
  • 鍵の確認は手動。 友だちとセキュリティ番号を照合することはできますが、アプリがそれを促すことはありません。

問題を見つけましたか?

公開される前に修正できるよう、セキュリティ上の問題は GitHub から非公開で報告してください。