jimichi

誰と誰が話しているかを、
メッセージは語らない。

メタデータを保護する機密メッセージング。そして、その保護にどれだけの価値があるかを示す計測。

内容を守るのは、まだ簡単なほう。

暗号化は、何を話したかを隠します。いつ、どれだけ、誰に話したかは隠しません。jimichi はこの二つ目の問いを中心に設計され、タイミングと通信量しか見えない観測者がなお何を知りうるかを計測します。

3つのリレー

すべてのメッセージは入れ子の暗号化を施され、3つのリレーを通ります。クライアントは、自分の一覧にあるリレーからチェーンを無作為に選びます。各リレーは1層だけを外し、隣のリレーしか知りません。2つのクライアントは、チェーンの最後のリレーにあるメールボックスを通して、エンドツーエンドの層のもとでやり取りします。メールボックスが持つのは、自分では読めない一定サイズのレコードだけです。

ひとつのサイズ

セルはすべて同じサイズです。本物のメッセージでも、カバートラフィックでも、チェーン確立のセルでも変わりません。メッセージは1つのセルに収まる必要があり、それより長いものは拒否されます。

メモリだけ

セッション鍵は一時的です。鍵を入れるバッファはロックされたメモリに置かれ、使用後にゼロで消去されます。リレー自身はディスクに何も書きません。暗号ライブラリがヒープに持つコピーはロックされません。

計測する

リポジトリには攻撃も含まれます。タイミングと通信量がまだ何を漏らすかを採点するトラフィック相関の観測者です。

攻撃は、自分たちで作った。

映像は英語です。

jimichi の映像の一場面:フラクタルの中を舞う玉ねぎのかけら音声あり

最初の映像

静かであるように。

鍵はロック解除後にだけ読み込まれ、ロックすると消去されます。連絡先は安全番号を照合して確認します。

まだ作られていないクライアントの初期のデザインです。変更される可能性があります。

ロック中

鍵はロック解除後にだけメモリに読み込まれ、ロックすると消去されます。

ロック解除
ミラ確認済み
昨日
無事に帰れた?
うん、ありがとう。終電はがらがらだった。
よかった。おやすみ
今日
お昼の約束、まだ大丈夫?
うん、1時ごろに。
配達済み
図書館の近くのお店?
新しいメニューが出たって
いいね。入口で会おう。
送信済み
メッセージ
トーク

安全番号

あなた
ミラ

会ったときや通話で、この番号を照合してください。一致すれば、間に誰もいません。

372018841905532716042995744018602739118513640577298031622491
安全番号

カバートラフィックだけでは守れない。

受動的な観測者は、すべての入口フローとすべての出口フローを相関させます。当て推量は auc 0.5 です。

元のリビジョンでの受動的な攻撃の予備計測。構成ごとに5回の実行の中央値。

1.000
カバートラフィックを上乗せした場合の攻撃 auc。リレー間の帯域が x2.99 でも、すべてのフローが結び付けられます。
0.951
クライアントだけで一定レート 70 ms にした場合の攻撃 auc。クライアントの位相はチェーンを通り抜けます。
0.562
リレーが自分の時計で 66.5 ms ごとに送る場合の攻撃 auc(窓 10 ms)。これらの実行では、当て推量の水準にあることは示せません。代償は往復遅延の中央値 187 ms です。

全体の表とグラフ

コードを読む。数字を確かめる。

システムも、それへの攻撃も、このサイトのすべてのグラフを作った計測環境も、すべて公開しています。