暗号化方式
- 1 対 1 チャット:X3DH 鍵合意 + ダブルラチェット(Signal プロトコルと同系統)。
- グループ:送信者ごとに独立した鍵チェーン。メッセージには送信者の Ed25519 署名が付きます。
- 暗号プリミティブ:Ed25519、X25519、AES-GCM、HKDF-SHA256。
- 暗号化に失敗したメッセージは送信されず、平文に切り替わることはありません。
正確に言うと、Gather のメッセージ内容はエンドツーエンドで暗号化され、サーバーが平文を保持することはありません。以下に具体的な仕組みと、まだ足りない点を示します。
言葉はふさわしい人へ。鍵は、自分の手の中に。
メッセージを届けるには、ネットワークがある程度の情報を知る必要があります。それを隠すつもりはありません。
| 情報 | ノード |
|---|---|
| メッセージ本文、写真・音声・ファイルの内容とファイル名 | 見えない |
| ニックネームやアイコンなどのプロフィール | 見えない |
| グループ名とお知らせ | 見えない |
| グループのメンバー一覧(ノードには保存されません) | 見えない |
| IP アドレスと接続 ID | 接続先の入口ノードには見える |
| いつ、どのくらいの頻度でメッセージを送ったか | 接続先の入口ノードには見える |
| メッセージの宛先 | 接続先の入口ノードには見える |
ノード間でメッセージを中継するときは送信者を隠し、オフライン保存のメッセージは毎日変わるメールボックス ID にのみ結び付けられます。ただし、あなたが接続している入口ノードは、誰とやり取りしているかを知っています。
相手がオフラインのとき、メッセージは暗号文のまま複数のノードに保存されます。保存ノードに見えるのは毎日変わるメールボックス ID と暗号文だけで、送信者も受信者もわかりません。受け取る権利を証明できるのは受信者だけです。保存期間は最長 30 日です。
限界も正直に示してこそ、セキュリティの説明には意味があります。