研究

2026-05-08 组会-Slot 下界推导与短时特征编码方案

2026-05-07 组会:Slot 下界推导与短时特征编码方案

0. 本次汇报要说明什么

本次汇报主要回答三个问题:

  1. 当前实验中,为什么 1000 ms slot 明显比 800 ms slot 稳定。
  2. 当前 slot 已经不算很小,为什么它仍然具有研究价值。
  3. 接下来应如何从复杂 payload 恢复转向短特征识别,并控制误报风险。

核心结论:

  • 当前 1000 ms slot 是一个有模型支撑的经验工作点。根据现有实验,800 ms slot 的 bit 准确率约为 87%,1000 ms slot 的 bit 准确率约为 98%–99%。600 ms slot 已经处于失效区,参考意义较弱。用 800 ms 与 1000 ms 两个有效点反推,当前系统存在约 0.56–0.61 s 的有效恢复开销,边界噪声尺度约为 0.17–0.22 s。因此,达到 99% bit accuracy 所需的 slot 大约在 1.00–1.06 s 附近。

  • 800 ms 与 1000 ms 的准确率差距不是线性差距。slot 从 800 ms 增加到 1000 ms,名义上只增加了 25%。但扣除流控恢复、队列平滑和边界抖动后,可用于稳定判决的净窗口接近翻倍。因此,准确率会从 87% 左右跃迁到 98%–99%。这说明当前系统正处在一个比较明显的临界区。

  • slot 过小时准确率下降并不是因为高低速本身“数不出来”。在当前 bulk transfer 条件下,单窗口 cell 计数误差并不是主要瓶颈。主要问题是速率切换边界被多跳队列、XON 生效延迟、relay outbuf、KIST 调度和 TCP 抖动共同拉宽。一旦边界偏移超过半个 slot,检测器会出现相位错位,并可能连续影响后续多个 chip。

  • 下一阶段不应继续把重点放在复杂 payload 解码上。当前更合适的目标是:在较短时间内生成一个预注册、可高置信识别、可计算误报上界的短特征。推荐方案是 1000 ms slot + keyed binary template。默认参数可取 L=40, e=3,总时长约 44 s;高置信版本可取 L=48, e=4,总时长约 52 s。


1. 当前实验数据与问题定义

1.1 当前数据口径

当前有效数据如下。

chip slot bit/chip 准确率结论 当前解释
600 ms 基本无参考价值 slot 已接近流控恢复和路径平滑的失效区
800 ms 约 87% 位于临界区,可以看到结构,但 bit 判决不稳
1000 ms 约 98%–99% 接近当前实现下的稳定工作点

另一个重要观察是:800 ms 在部分 window-level 或 duration-level 指标上仍有较高表现,但它在 payload chip 或 template 级别并不稳定。已有实验中,1000 ms 的 payload chip accuracy 可达到约 98.27%,而 800 ms 的 payload chip accuracy 约为 82.12%。因此,后续设计不应只看 window bit accuracy,而应以 可支撑最终识别的 chip-level 稳定性 为准。

1.2 表述边界

本文采用“模型化推导”和“经验下界”口径。也就是说,本文不主张 1000 ms 是协议层面的绝对理论极限。更准确的说法是:在当前实现、当前检测器和当前 onion service rendezvous 实验设置下,1000 ms 是接近 99% bit accuracy 的稳健工作点。

本文中的准确率均指 bit-level / chip-level accuracy,不是最终序列识别率。相关实验仅面向自建私有 Tor 测试网、受控 onion service、授权实验环境和离线 benign trace 评估。


2. Tor 源码机制与文献结论带来的约束

2.1 Onion service 路径不同于普通三跳访问

普通 Tor 出口访问通常可以抽象为三跳路径:

1
Client -> Guard -> Middle -> Exit -> Server

Onion service 场景不同。它由客户端侧 circuit 和服务端侧 circuit 通过 rendezvous point 拼接:

1
Client -> Guard_c -> Middle_c -> RP <- Middle_s <- Guard_s <- HS

从 relay 数量看,这是两条三跳 circuit 通过 RP 连接。从端到端传输段看,控制信号和数据响应会经过更多 TLS-over-TCP 连接、relay outbuf、kernel socket buffer 和 rendezvous 侧平滑。因此,速率变化在检测端不是理想阶跃,而是一个被延迟、扩散和平滑后的响应。

这也是本文不能直接采用 SDN traceback 中 800 ms 参数的原因。SDN traceback 的 Tor 实验更接近普通三跳路径,而我们面对的是 onion service rendezvous 路径。路径更长,排队点更多,边界抖动也更明显。

2.2 源码机制中的关键因素

从当前 Tor 流控路径看,slot 下界主要受以下因素影响。

机制 对 slot 的影响
XON/XOFF feedback 决定高低速状态如何反馈给发送端
congestion control / drain-rate EWMA 速率变化不是瞬时阶跃,而是有恢复过程
relay outbuf 造成短时缓存和 flush 延迟
connection write path 使写入和真实发出之间存在间隔
KIST / kernel socket buffer 把拥塞和排队集中到 egress socket buffer
多段 TCP 连接 引入 RTT 抖动、ACK 压缩、重传和 cwnd 恢复
rendezvous 双电路 比普通三跳路径带来更强平滑和更长相位延迟

这些因素说明,slot 下界不是简单的“传播时延”问题,也不是简单的“高低速是否能分开”问题。真正限制 800 ms 的,是 边界抖动失锁传播

2.3 与 DUSTER 和 SDN traceback 的关系

DUSTER 的核心是 SENDME burst。它通过提前释放 SENDME,使发送端短时间内多发数据,然后在检测端观察是否出现紧凑的 IN-cell burst。这个方案短而直接,但它主要依赖旧式 SENDME 机制,并且判决对象是 burst,而不是稳定的速率序列。

SDN traceback 与本文更接近。它通过修改 TCP advertised window 来制造高低速结构。每个 bit 使用一个 time interval,并分成前后两个半区间。检测端根据前后半区间的速率大小关系恢复 bit,再用 Hamming distance 判断是否匹配。

本文的方案可以看作两者之间的折中:

  • 借鉴 DUSTER 的“短时可识别特征”思想;
  • 借鉴 SDN traceback 的“速率结构 + Hamming/template 判决”思想;
  • 但控制面从 TCP advertised window 或旧 SENDME 转为 Tor stream-level XON/XOFF 速率反馈。

3. Slot 下界推导

3.1 信号模型

设 chip slot 为 (T)。编码端在每个 slot 内选择高低两种速率状态:

  • high state:(R_H)
  • low state:(R_L)

检测端在服务端 guard 一侧统计 RELAY_DATA cell 到达速率,并将每个 slot 判为 high 或 low。

第 (n) 次速率边界在检测端观测到的时间可写为:

$$ t_n^{obs}=nT+D_n^{xon}+D_n^{data}+\epsilon_n. $$

其中,(D_n^{xon}) 是控制反馈生效路径上的延迟,(D_n^{data}) 是数据侧响应传播延迟,(\epsilon_n) 是检测器本身的残余对齐误差。

相邻 slot 的实际观测宽度为:

$$ T_n^{obs}=T+\Delta D_n+\Delta\epsilon_n. $$

其中:

$$ \Delta D_n=(D_{n+1}^{xon}+D_{n+1}^{data})-(D_n^{xon}+D_n^{data}). $$

固定传播分量会在相邻差分中抵消,留下的是队列、TCP、buffer flush 和检测器锁相残差造成的有效边界抖动。

3.2 单跳延迟分解

每段 Tor TLS-over-TCP 链路上的延迟可分解为:

$$ D_i(t)=\tau_i^{prop}+\tau_i^{proc}+\tau_i^{queue}(t)+\tau_i^{tcp}(t). $$

其中:

分量 是否随时间变化 对本文的影响
传播延迟 (\tau^{prop}) 基本固定 主要影响平均 lag,不直接决定 slot 下界
处理延迟 (\tau^{proc}) 小幅变化 通常不是主导因素
队列延迟 (\tau^{queue}) 明显变化 影响边界抖动
TCP 延迟 (\tau^{tcp}) 有尖峰 重传、ACK 压缩和 cwnd 恢复会造成 burst error

KIST 的结论说明,Tor 的拥塞主要集中在 egress kernel socket buffer 中。这意味着速率变化在 relay 发送侧会被缓冲和平滑。对于短 slot,这种平滑会直接污染边界判决。

3.3 为什么单纯 cell 计数不是主要瓶颈

假设每个 relay data cell 的有效 payload 约为 498 bytes。若速率为 (R),则单位时间内的期望 cell 到达率为:

$$ \rho=\frac{R}{8\cdot 498}. $$

如果只考虑理想对齐下的高低速可分性,则:

$$ N_H\sim Poisson(\rho_HT),\qquad N_L\sim Poisson(\rho_LT). $$

Poisson 判决误差可以用 Bhattacharyya bound 上界:

$$ P_{count}(T)\leq \frac{1}{2}\exp\left[-T(\sqrt{\rho_H}-\sqrt{\rho_L})^2\right]. $$

以 (R_H=300) kbps、(R_L=100) kbps 为例:

$$ \rho_H\approx 75.3\ cells/s,\qquad \rho_L\approx 25.1\ cells/s. $$

若只要求 (P_{count}\leq 1%),所需 slot 大约为:

$$ T\gtrsim \frac{\ln 50}{(\sqrt{75.3}-\sqrt{25.1})^2}\approx 0.29\ s. $$

这说明:只要流量是持续 bulk transfer,且高低速差异足够明显,单纯 cell 计数并不是 800–1000 ms 的主要瓶颈。真正的问题在于速率边界是否能稳定落在检测窗口内。

3.4 边界偏移与失锁传播

设有效边界偏移为 (\delta)。它包含路径抖动和检测器锁相误差。可以近似写成:

$$ \delta\sim \mathcal{N}(0,\sigma_{eff}^2). $$

对于中点判决器,如果边界偏移超过半个 slot,则窗口内会混入更多相邻状态的数据。其临界条件为:

$$ |\delta|>\frac{T}{2}. $$

因此,单次边界越界概率为:

$$ p_{cross}(T)=2Q\left(\frac{T}{2\sigma_{eff}}\right). $$

这里 (Q(\cdot)) 是标准正态右尾函数。

边界越界的影响不是只错一个 bit。短 slot 下,一次越界可能导致检测器相位失锁。检测器需要等待后续稳定转换点才能重新对齐。因此,引入重同步时间 (\tau_{recover})。同步误差项可以近似写成:

$$ P_{sync}(T)\approx p_{cross}(T)\left(1+\frac{\tau_{recover}}{T}\right). $$

于是,总 chip 误差可近似写为:

$$ P_{chip}(T)\approx P_{count}(T)+2Q\left(\frac{T}{2\sigma_{eff}}\right)\left(1+\frac{\tau_{recover}}{T}\right). $$

这个公式给出本文的核心解释:

800 ms 与 1000 ms 的差异主要来自第二项,也就是边界越界概率和失锁传播项,而不是 Poisson cell 计数项。

3.5 用当前数据反推有效参数

为了给导师汇报时更直观,我们再用一个等价的 probit 模型拟合当前 bit accuracy:

$$ A(T)=\Phi\left(\frac{T-\tau_0}{\sigma_T}\right). $$

其中:

  • (\tau_0):流控恢复、队列平滑和检测器重锁相造成的有效固定开销;
  • (\sigma_T):边界抖动和统计噪声的等效尺度;
  • (A(T)):bit-level accuracy。

当前数据为:

$$ A(0.8)\approx0.87, $$

$$ A(1.0)\in[0.98,0.99]. $$

取中间值 (A(1.0)=0.985),有:

$$ \Phi^{-1}(0.87)\approx1.126, $$

$$ \Phi^{-1}(0.985)\approx2.170. $$

由:

$$ z_T=\frac{T-\tau_0}{\sigma_T}, $$

得到:

$$ \sigma_T=\frac{1.0-0.8}{2.170-1.126}\approx0.192\ s, $$

$$ \tau_0=0.8-0.192\times1.126\approx0.584\ s. $$

如果将 1000 ms 的准确率范围看作 98%–99%,则结果为:

假设 (A(1000)) (\sigma_T) (\tau_0) 达到 99% bit accuracy 的 (T_{min})
98.0% 0.216 s 0.557 s 1.06 s
98.5% 0.192 s 0.584 s 1.03 s
99.0% 0.167 s 0.612 s 1.00 s

因此,在当前实验设置下:

$$ T_{min}^{99\%}\approx1.00\text{--}1.06\ s. $$

这也是后续默认使用 1000 ms,而不是 800 ms 的主要依据。

3.6 为什么 800 ms 到 1000 ms 会出现明显跃迁

取中间拟合值:

$$ \tau_0\approx0.584\ s. $$

则 800 ms 的净有效判决时间为:

$$ T_{e,800}=0.800-0.584=0.216\ s. $$

1000 ms 的净有效判决时间为:

$$ T_{e,1000}=1.000-0.584=0.416\ s. $$

从名义 slot 看,1000 ms 只比 800 ms 增加 25%。但从净有效判决时间看:

$$ \frac{T_{e,1000}}{T_{e,800}}\approx1.93. $$

也就是说,真正用于稳定判决的时间几乎翻倍。再加上正态尾部函数本身是非线性的,z-score 从约 1.13 提升到 2.05–2.33 后,bit accuracy 就会从约 87% 提升到 98%–99%。

这说明 800 ms 正处在临界区,1000 ms 则基本跨过了当前检测器的稳定门槛。

3.7 600 ms 为什么不再作为主参考点

同样使用 (\tau_0\approx0.584) s,有:

$$ T_{e,600}=0.600-0.584=0.016\ s. $$

这意味着 600 ms slot 中几乎没有稳定判决区间。此时结果会高度依赖局部排队、TCP burst、XON 生效时间和检测器偶然对齐。它不再稳定测量同一个机制。因此,后续实验中 600 ms 可以作为失效点保留,但不应作为核心趋势点。

3.8 Slot 过小时准确率下降的具体原因

这一部分可以作为给导师解释实验现象的核心口径。当前数据中,600 ms 基本不可用,800 ms 只有约 87%,而 1000 ms 可以达到 98%–99%。这个现象不是由单一因素造成的,而是由以下几个因素叠加形成。

3.8.1 原因一:速率变化不是瞬时阶跃

编码端设置 high 或 low 速率后,检测端看到的不是理想方波。实际过程更接近下面的链条:

1
2
3
4
5
6
7
XON 速率建议发出
-> 中间 relay 转发与排队
-> HS 端流控状态更新
-> 应用数据重新排空
-> relay outbuf 写出
-> TCP/KIST 调度发送
-> Guard' 侧观测到速率变化

因此,一个 slot 内真正稳定体现目标速率的时间不是完整的 (T),而是扣除恢复和传播后的净有效时间:

$$ T_e = T - \tau_0. $$

根据当前 800 ms 与 1000 ms 的 bit accuracy 反推,(\tau_0) 大约在 0.56–0.61 s。于是:

$$ T_{e,800}\approx 0.20\text{--}0.24\ s, $$

$$ T_{e,1000}\approx 0.39\text{--}0.44\ s. $$

也就是说,1000 ms 只比 800 ms 多 200 ms,但真正稳定可用于判决的时间几乎增加了一倍。这解释了为什么准确率不是线性提升。

3.8.2 原因二:slot 越短,边界误差占比越大

设边界偏移为 (\delta)。如果 (|\delta|) 接近或超过半个 slot,当前窗口就会混入相邻状态的数据。对于中点判决器,关键临界条件是:

$$ |\delta| > \frac{T}{2}. $$

单次边界越界概率近似为:

$$ p_{cross}(T)=2Q\left(\frac{T}{2\sigma_{eff}}\right). $$

这个式子说明,(T) 变短时,越界概率不是线性增加,而是沿着正态尾部快速增加。以 (\sigma_{eff}\approx 190) ms 为例:

$$ p_{cross}(800ms)\approx 3.5\%, $$

$$ p_{cross}(1000ms)\approx 0.85\%. $$

因此,从 800 ms 增加到 1000 ms 后,边界越界概率会下降约 4 倍。这是 bit accuracy 明显跃迁的主要数学原因。

3.8.3 原因三:一次边界错误可能造成连续错误

短 slot 下,边界错误不一定只影响当前 chip。检测器如果把边界错认为下一个状态的开始,就可能发生相位失锁。失锁后需要等待后续明确的速率转换点才能重新对齐。

因此,同步误差项不是简单的 (p_{cross}),而更接近:

$$ P_{sync}(T)\approx p_{cross}(T)\left(1+\frac{\tau_{recover}}{T}\right). $$

其中 (\tau_{recover}) 是重新锁定相位所需的时间。slot 越短,(\tau_{recover}/T) 越大,同一次越界事件影响的 chip 数越多。这解释了为什么 600 ms 会明显失效,也解释了为什么 800 ms 虽然能看到结构,但 payload/chip 级别不稳。

3.8.4 原因四:短 slot 更容易被多跳平滑吞掉

Onion service rendezvous 路径由两段三跳 circuit 拼接而成。速率变化需要经过多个 relay 的 outbuf、kernel socket buffer 和 TCP 连接。KIST 机制会降低长期拥塞,但它并不会把短时速率变化原样传递到下一跳。对检测器来说,短 slot 的 high/low 变化会被平滑成较缓的斜坡。

当 slot 足够长时,窗口中仍有一段稳定 high 或 low 区间,检测端可以用平均速率判决。slot 过短时,窗口中的大部分时间都处于过渡区。此时 high 和 low 的均值差被压缩,模板相关性下降,错误会集中出现在切换边界附近。

3.8.5 原因五:低速并不能自动解决问题

一个容易产生的误解是:既然 slot 短时不稳定,那降低编码速率或降低发送强度是否能缓解。当前模型给出的结论是否定的。

首先,主导误差来自边界抖动和失锁传播,而不是单纯 cell 数太多。降低速率并不会减少 relay 队列抖动、TCP 重传或 XON 生效延迟。其次,降低 low 或 high 速率会减少单窗口内可统计的 cell 数,反而会提高 Poisson 计数误差。最后,缩小 (R_H-R_L) 会降低速率转换可见性,使检测端更难定位边界。

因此,降低速率不能替代增加 slot。更合理的方向是:保持足够清晰的 high/low 差异,使用 1000 ms 左右的 slot,并通过短模板而不是复杂 payload 来控制总时长。

3.8.6 小结:slot 太小时的误差链条

可以把准确率下降概括为下面这条链:

1
2
3
4
5
6
7
8
slot 变短
-> XON 生效与数据排空占据更大比例
-> 检测端稳定判决窗口变小
-> 边界偏移更容易超过 T/2
-> 单个 chip 误判
-> 检测器相位失锁
-> 连续多个 chip 错误
-> payload CRC 或 template match 失败

因此,slot 下界不是由某一个固定延迟决定的,而是由“流控恢复时间、边界抖动、重同步时间”共同决定。当前实验中的 1000 ms 可以理解为:它已经让大多数 slot 跨过了稳定判决所需的最小净窗口;800 ms 仍位于临界区;600 ms 则大多落在过渡区内。


4. 当前 slot 设置的研究价值

4.1 与 DUSTER 的差异

DUSTER 的判定对象是 SENDME batch 诱导出来的短 burst。它的优势是窗口短,检测直观。但它也有局限。

  1. 它依赖旧 SENDME 行为。现代 Tor 中 authenticated SENDME 已经削弱了相关路径。
  2. 它主要检测 burst,而不是一个可组合的速率序列。
  3. burst 容易与自然网络 burst、ACK 压缩和短时拥塞混在一起,因此需要额外筛选。
  4. 它的实验设置中需要一定规模的前置传输,典型参数对应约 750 KB 级别的数据后再开始嵌入。

相比之下,当前 XON/XOFF 方案的价值不是“更短”,而是:

  • 利用现代 stream-level flow control 的速率响应;
  • 可以形成连续、可组合、可统计检验的速率结构;
  • 可以把误报控制交给序列级模板,而不是单个 burst;
  • 更适合讨论新流控机制带来的安全边界。

因此,可以向导师这样表述:

DUSTER 证明了短时主动特征可以用于 onion service traceback。本文进一步关注的是:当旧 SENDME 路径被削弱后,新的 XON/XOFF 流控反馈是否仍然能形成可识别的速率结构。

4.2 与 SDN traceback 的差异

SDN traceback 与本文更接近。它也是速率调制。其做法是通过 server-side SDN switch 修改 TCP advertised window,在流量中嵌入 high/low 变化。检测端根据每个 time interval 前后半窗口的速率关系恢复 bit。

但二者的实验假设不同。

维度 SDN traceback 当前 XON/XOFF 方案
网络场景 普通匿名通信,接近三跳 Tor 路径 onion service rendezvous 双电路
控制点 两端附近 SDN switch Tor stream-level flow control
调制对象 TCP advertised window XON/XOFF 建议速率与排空过程
检测对象 client-server 关系 onion service 场景中的速率特征
路径平滑 较弱 更强

所以,SDN traceback 中 800 ms 可行,并不说明本文也应使用 800 ms。更合理的解释是:

SDN traceback 说明亚秒级速率结构在普通匿名通信中具有可识别性;本文的 1000 ms 是把这一思想迁移到更长、更平滑的 onion service rendezvous 路径后的经验放大。

4.3 总时长仍然可控

虽然单个 slot 为 1000 ms,但如果不再追求复杂 payload,而只编码短 marker,总时长仍然可以控制在可接受范围。

例如:

  • 40-slot template:约 40 s,加前后 guard 后约 44 s;
  • 48-slot template:约 48 s,加前后 guard 后约 52 s。

相比之下,如果采用 SDN traceback 中类似 24-bit signal 与 6 次重复的思路,总时长约为:

$$ 24\times6\times0.8=115.2\ s. $$

因此,1000 ms slot 并不必然意味着更慢。关键在于:本文不传复杂消息,而是识别一个短、预注册、低误报的特征。


5. 下一阶段编码与识别设计

5.1 设计原则

下一阶段的目标不是提高 payload 吞吐,而是提高短特征识别的可靠性。建议目标如下。

  1. 短时完成:总时长控制在 40–60 s。
  2. 预注册模板:模板必须在检测前确定,不能后验挑选。
  3. 低误报可证明:使用 Hamming distance 与 union bound 给出误报上界。
  4. 不依赖复杂 payload:避免 Hamming74 frame 与 CRC 链路造成额外不稳定。
  5. 与现有分析链路兼容:沿用 lag scan、slot 聚合和 template correlation。

5.2 推荐方案:Keyed Binary Template

使用固定长度的二进制模板作为 marker:

1
2
3
slot_ms = 1000
1 = high slot
0 = low slot

发送结构为:

1
2
3
low guard 2s
keyed binary template
low guard 2s

其中,前后 low guard 的作用是建立低速基线,并减少模板首尾被流控恢复过程污染。

模板由密钥派生,检测前固定:

1
2
raw = HMAC-SHA256(key, exp_id || context)
T = select_bits(raw, L)

模板筛选条件如下。

条件 推荐值 目的
0/1 平衡 L=40 时 high 数量在 [18,22] 避免模板均值偏置
最大连续 run 不超过 4 避免长平稳段被平滑吞掉
自相关 非零 offset 下 normalized autocorrelation 不超过 0.25 降低错误 lag 误锁概率
反码区分度 反码不能同时高分 排除趋势型伪匹配
阈值固定 使用独立校准集固定 避免后验调参放大误报

5.3 推荐参数

默认主实验参数

1
2
3
4
5
6
7
8
slot_ms = 1000
template_length = 40
allowed_errors = 3
low_guard_before = 2000ms
low_guard_after = 2000ms
lag_scan = 0..5000ms, step = 100ms
max_run_length = 4
weight_range = [18, 22]

特点:

  • 总时长约 44 s;
  • 适合作为主实验;
  • 在 chip error rate 约 1.25%–1.73% 时,理论漏检率约 0.16%–0.50%;
  • 在 1000 个 lag/offset 候选下,随机误报上界约为 (9.73\times10^{-6})。

高置信低误报参数

1
2
3
4
5
6
7
8
slot_ms = 1000
template_length = 48
allowed_errors = 4
low_guard_before = 2000ms
low_guard_after = 2000ms
lag_scan = 0..5000ms, step = 100ms
max_run_length = 4
weight_range = [22, 26]

特点:

  • 总时长约 52 s;
  • 适合大规模 benign trace 误报评估;
  • 在 chip error rate 约 1.25%–1.73% 时,理论漏检率约 0.03%–0.14%;
  • 在 1000 个 lag/offset 候选下,随机误报上界约为 (7.57\times10^{-7})。

短模板压力测试参数

1
2
3
4
5
6
7
8
slot_ms = 1000
template_length = 32
allowed_errors = 2
low_guard_before = 2000ms
low_guard_after = 2000ms
lag_scan = 0..5000ms, step = 100ms
max_run_length = 4
weight_range = [14, 18]

特点:

  • 总时长约 36 s;
  • 可用于验证更短 marker 的极限;
  • 误报上界相对较高,不建议作为最终方案。

5.4 误报上界

对于长度为 (L)、允许错误数为 (e) 的固定模板,单候选随机误报概率为:

$$ P_{fp}^{single}\leq 2^{-L}\sum_{i=0}^{e}\binom{L}{i}. $$

如果有 (N_{cand}) 个候选 lag 或候选窗口,则使用 union bound:

$$ P_{fp}^{family}\leq N_{cand}\cdot P_{fp}^{single}. $$

取 (N_{cand}=1000),有:

L allowed errors 单候选误报 1000 候选误报
24 1 (1.49\times10^{-6}) (1.49\times10^{-3})
24 2 (1.79\times10^{-5}) (1.79\times10^{-2})
32 2 (1.23\times10^{-7}) (1.23\times10^{-4})
40 3 (9.73\times10^{-9}) (9.73\times10^{-6})
48 4 (7.57\times10^{-10}) (7.57\times10^{-7})

这说明 24-chip marker 虽然快,但在 lag scan 和大规模 benign trace 扫描下,family-wise 误报上界不够理想。40 slots 是较好的默认折中,48 slots 更适合低误报展示。

如果 benign traffic 存在明显偏置,不能直接使用 (1/2) 假设。需要用独立 benign calibration set 估计:

$$ p_{max}=\max P(slot\ matches\ template\ bit). $$

然后使用更保守的上界:

$$ P_{fp}^{family}\leq N_{cand}\sum_{i=0}^{e}\binom{L}{i}p_{max}^{L-i}(1-p_{max})^i. $$

5.5 漏检率估计

若单个 chip 的错误率为 (q),模板长度为 (L),允许错误数为 (e),则漏检率为:

$$ P_{fn}=P(Binomial(L,q)>e). $$

根据 1000 ms 的当前结果,可取:

$$ q\in[0.0125,0.0173]. $$

估算结果如下。

L allowed errors (q=1.25%) 漏检率 (q=1.73%) 漏检率 (q=2.00%) 保守漏检率
32 2 0.739% 1.767% 2.577%
40 3 0.156% 0.498% 0.824%
48 4 0.033% 0.143% 0.268%

结论是:L=40,e=3 已经足以支撑主实验;L=48,e=4 更适合低误报和高置信展示。

5.6 检测流程

检测端可以采用以下流程。

  1. 候选流筛选
    只检测持续时间足够长、cell 数充足、接近 bulk transfer 的候选流。过滤空闲流、小对象下载和连接建立/结束阶段。

  2. lag scan
    在固定范围内扫描 lag,例如 0..5000ms, step=100ms。不要根据结果后验扩大搜索范围。

  3. slot 聚合与判决
    对每个候选 lag,将速率按 1000 ms slot 聚合。阈值使用独立校准集确定,或使用固定的 median/MAD 规则。

  4. 模板匹配
    计算观测序列 (X) 与模板 (T) 的 Hamming distance:

$$ d=HammingDistance(X,T). $$

接收条件为:

1
2
L = 40: d <= 3
L = 48: d <= 4
  1. 相关性与反码拒绝
    同时计算 template correlation。若反码或多个移位模板也能获得接近分数,则拒绝该命中。这可以降低自然周期流量导致的伪匹配。

5.7 为什么不继续使用完整 Hamming74 payload

当前 Hamming74 payload 仍有价值,但它更适合做“复杂信息恢复能力”的实验,不适合作为下一阶段主方案。原因如下。

  • payload frame 会引入额外同步和 CRC 失败;
  • 需要更多 slot,增加总时长;
  • 解码链路复杂,误差来源更多;
  • 误报证明更难写,因为检测目标从“固定模板”变成“可解码内容”;
  • 当前 800 ms payload chip accuracy 和 CRC pass rate 已经显示复杂 payload 在临界区不稳。

因此,下一阶段建议把实验目标从“传复杂 payload”改为“识别短特征”。这更符合当前系统能力,也更容易形成清晰的数学证明和实验闭环。


6. 下一步实验计划

6.1 Slot sweep:验证下界模型

建议补充以下点:

$$ T\in\{700,800,900,1000,1100,1200\}\ ms. $$

每个点记录:

  • bit accuracy;
  • Wilson confidence interval;
  • best lag 分布;
  • high/low separability;
  • bit error 是否呈 burst;
  • 错误是否集中在切换边界后。

主要目标不是单纯报告准确率,而是验证以下模型是否能拟合:

$$ A(T)=\Phi\left(\frac{T-\tau_0}{\sigma_T}\right). $$

如果 900 ms 明显提升,1100/1200 ms 进入平台区,就能进一步支持“1000 ms 位于临界区附近”的判断。

6.2 Template-level 主实验

主实验固定使用 1000 ms。建议三组配置:

版本 slot template length allowed errors 总时长 目标
A 1000 ms 32 2 约 36 s 压力测试
B 1000 ms 40 3 约 44 s 主实验
C 1000 ms 48 4 约 52 s 低误报展示

记录指标包括:

  • template TPR;
  • raw bit accuracy;
  • observed Hamming distance 分布;
  • template correlation 分布;
  • benign trace FPR;
  • lag scan 是否误锁;
  • 不同对象大小和不同网络负载下的稳定性。

6.3 消融实验

消融项 对照 目的
template length 32 / 40 / 48 验证时长与误报的 trade-off
allowed errors 2 / 3 / 4 验证 TPR/FPR 曲线
lag scan on / off 验证对齐是否关键
threshold fixed / calibrated / median-MAD 验证阈值对误报的影响
template shape keyed balanced / long-run / periodic 验证低自相关设计是否必要
guard length 0s / 1s / 2s 验证前后保护段作用
coding mode keyed template / Hamming74 payload 证明为何改用短特征

6.4 Benign trace 误报评估

建议使用离线 benign trace 评估误报。不要对第三方目标做主动部署。

误报报告应分层给出:

  • 所有候选流;
  • bulk 流;
  • 长流;
  • 高吞吐流;
  • onion-service-like trace。

同时报告:

1
2
3
4
5
6
N_candidates
L
allowed_errors
p_max or null model
false_positive_upper_bound
actual false positives

这样可以避免只在过弱候选集上报告低 FPR。


7. 汇报结论

  1. 当前 1000 ms slot 有数学解释。根据 800 ms 约 87% 和 1000 ms 约 98%–99% 的 bit accuracy,反推 99% bit accuracy 的 slot 下界约为 1.00–1.06 s。

  2. 800 ms 和 1000 ms 的差距来自临界区效应。系统存在约 0.56–0.61 s 的有效恢复开销。slot 从 800 ms 增加到 1000 ms 后,净有效判决窗口接近翻倍,因此准确率会明显跃迁。

  3. 当前 slot 虽然不算小,但在 onion service 场景中仍然有价值。与 DUSTER 相比,它不依赖旧 SENDME burst;与 SDN traceback 相比,它不依赖两端 SDN switch,并且更贴近 Tor stream-level flow control 的安全分析。

  4. 下一阶段应从复杂 payload 转向短特征识别。推荐使用 1000 ms slot 的 keyed binary template。主实验参数为 L=40,e=3,高置信参数为 L=48,e=4

  5. 后续重点是验证三件事:slot 下界曲线、template-level TPR/FPR、benign trace 上的实际误报。这样可以形成从源码机制、数学模型到实验验证的完整闭环。


8. 后续补充材料

待补内容 作用
900/1100/1200 ms 实验点 验证 slot 下界曲线
bit error burst 分布 验证失锁传播模型
best lag 分布 证明对齐抖动是主导因素之一
benign trace 误报评估 支撑公网低误报结论
Hamming74 vs keyed template 对比 解释为何改变编码方案
不同对象大小实验 验证短访问可识别性
不同负载状态实验 验证鲁棒性

参考资料

  1. DUSTER: active watermarking through SENDME-related burst detection.
  2. Novel and Practical SDN-based Traceback Technique for Malicious Traffic over Anonymous Networks.
  3. Tor Proposal 324: RTT-based Congestion Control for Tor.
  4. KIST: Kernel-Informed Socket Transport for Tor.
  5. Tor flow-control and relay-cell specifications.
  6. 当前推导草稿:proof_slot_lower_bound.md
  7. 当前编码方案草稿:fast_recognizable_feature_encoding_scheme.md
  8. 当前组会草稿:tor_slot_lower_bound_group_meeting_v2.md