研究
内容を守るのは簡単なほうです。この研究が計測するのは、タイミングと通信量しか見えない観測者がなお何を知りうるか、そしてそれを奪うのに何がかかるかです。
- フロー
- 10
- リレー
- 3
- 暗号スイート
- c25519
- 構成ごとの実行
- 5 x 30 s
- 統計量
- 中央値
観測者に見えるのは、フレームが通過する瞬間だけ。
観測者は入口の回線とリレー間の最後の回線を監視し、フローごとに時間窓内のフレーム数を数え、すべての入口フローとすべての出口フローを相関させます。窓の幅は観測者が選べるので、10 ms と 100 ms の両方で採点します。当て推量は auc 0.5、top-1 は 10% です。

| 保護 | リレー間の帯域 | 往復遅延の中央値 | auc、10 ms | auc、100 ms | top-1、10 ms |
|---|---|---|---|---|---|
| なし | x1.00 | 0.15 ms | 1.000 | 1.000 | 100% |
| カバーを上乗せ、+2x | x2.99 | 0.13 ms | 1.000 | 1.000 | 100% |
| クライアントの一定レート、70 ms | x2.85 | 47 ms | 0.948 | 0.952 | 60% |
| クライアントの一定レート、35 ms | x5.69 | 21 ms | 0.951 | 0.942 | 70% |
| リレーが自分の時計で送信、66.5 ms | x3.00 | 182 ms | 0.485 | 0.483 | 0% |
| リレーが自分の時計で送信、33.25 ms | x5.99 | 89 ms | 0.528 | 0.550 | 10% |
| 両方、クライアント 70 ms、リレー 66.5 ms | x2.99 | 216 ms | 0.506 | 0.526 | 15% |
| 両方、クライアント 35 ms、リレー 33.25 ms | x5.99 | 108 ms | 0.596 | 0.486 | 10% |
計測からわかること。
カバーの上乗せは効かない。
本物のメッセージにカバートラフィックを上乗せしても、まったく効果がありません。帯域を3倍にしても、すべてのフローが結び付けられます。
クライアントの一定レートでは、フローは隠れない。
各クライアントは自分の位相で送信し、その位相はすぐに転送するリレーのチェーンを通り抜けます。10 ms の窓なら、どのレートでも攻撃はフローを結び付けます。100 ms の窓が安全に見えるのは周期が窓を割り切る場合だけで、そのときはほぼすべてのスコアが同点になり、保護については何も語りません。
リレーの自分の時計で、当て推量まで下がる。
代償は、リレーが送るすべての回線での一定のストリームと、往復にリレー周期の約 2.5 から 2.7 倍の遅延が加わることです。66.5 ms で 182 ms、33.25 ms で 89 ms。リレーの周期はクライアントより 5% 短く、取りこぼした送信を取り戻せます。
それでもクライアントのレートは必要。
リレーの時計を使っても、クライアントの一定レートは入口リレー自身から会話を隠します。ここでの観測者はそれをモデル化していません。

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