予備的な計測

研究

内容を守るのは簡単なほうです。この研究が計測するのは、タイミングと通信量しか見えない観測者がなお何を知りうるか、そしてそれを奪うのに何がかかるかです。

フロー
10
リレー
3
暗号スイート
c25519
構成ごとの実行
5 x 30 s
統計量
中央値

各クライアントはランダムな位相で送信を始めます。1点あたり5回の実行なので、差が有意だとは主張しません。1点あたり30回の本計測はこれからです。

観測者に見えるのは、フレームが通過する瞬間だけ。

観測者は入口の回線とリレー間の最後の回線を監視し、フローごとに時間窓内のフレーム数を数え、すべての入口フローとすべての出口フローを相関させます。窓の幅は観測者が選べるので、10 ms と 100 ms の両方で採点します。当て推量は auc 0.5、top-1 は 10% です。

リレー間の帯域と往復遅延に対する攻撃 auc。カバートラフィックの上乗せ、クライアントの一定レート、リレーの自分の時計による送信を比較
保護リレー間の帯域往復遅延の中央値auc、10 msauc、100 mstop-1、10 ms
なしx1.000.15 ms1.0001.000100%
カバーを上乗せ、+2xx2.990.13 ms1.0001.000100%
クライアントの一定レート、70 msx2.8547 ms0.9480.95260%
クライアントの一定レート、35 msx5.6921 ms0.9510.94270%
リレーが自分の時計で送信、66.5 msx3.00182 ms0.4850.4830%
リレーが自分の時計で送信、33.25 msx5.9989 ms0.5280.55010%
両方、クライアント 70 ms、リレー 66.5 msx2.99216 ms0.5060.52615%
両方、クライアント 35 ms、リレー 33.25 msx5.99108 ms0.5960.48610%

計測からわかること。

カバーの上乗せは効かない。

本物のメッセージにカバートラフィックを上乗せしても、まったく効果がありません。帯域を3倍にしても、すべてのフローが結び付けられます。

クライアントの一定レートでは、フローは隠れない。

各クライアントは自分の位相で送信し、その位相はすぐに転送するリレーのチェーンを通り抜けます。10 ms の窓なら、どのレートでも攻撃はフローを結び付けます。100 ms の窓が安全に見えるのは周期が窓を割り切る場合だけで、そのときはほぼすべてのスコアが同点になり、保護については何も語りません。

リレーの自分の時計で、当て推量まで下がる。

代償は、リレーが送るすべての回線での一定のストリームと、往復にリレー周期の約 2.5 から 2.7 倍の遅延が加わることです。66.5 ms で 182 ms、33.25 ms で 89 ms。リレーの周期はクライアントより 5% 短く、取りこぼした送信を取り戻せます。

それでもクライアントのレートは必要。

リレーの時計を使っても、クライアントの一定レートは入口リレー自身から会話を隠します。ここでの観測者はそれをモデル化していません。

10 ms と 100 ms の窓における、クライアントのセル周期に対する攻撃 auc

5つの実験ブロック。

鍵素材
稼働中のリレーのメモリダンプから既知の鍵のバイト列を探します。メモリロックとダンプ禁止の有無で比較し、同じ探索をコンテナイメージとボリュームにも行います。
前方秘匿性
リレーの長期鍵を手にした状態で、記録済みのトラフィックを攻撃します。
メタデータ
トラフィック相関攻撃が、タイミングと通信量だけで送信者と受信者を結び付けます。カバーのレート、セルサイズの方針、遅延に対する roc と auc を報告します。
部分的な侵害
3つのうち1つと2つのリレーを侵害します。侵害された認証局から有効な証明書を得たリレーも含みます。残る漏えいを計測します。
コスト
ホップごとの遅延、スループット、cpu、パディングのオーバーヘッド、gost と x25519 の比較。

計測は負荷のないホストで行い、レポートの各行にホストの負荷、シード、コードのリビジョンを記録しています。

手法と攻撃者モデル(英語)