1.0版本
- 处理端
- 根据输入数据划分时间区间列表,映射对应区间的离散值
- 选取输入数据的前n个时间间隔生成哈希值,作为伪随机数生成器的种子
- 根据伪随机数生成器的输出结果,将区间列表划分为红绿两类,保持1:1
- 可以使用6:4,减少红色区间更改
- 将所有输入的时间间隔,映射为所属区间的离散值,检查所属分类:
- 前n个时间间隔不做处理,保证种子不变
- 属于绿色区间的时间间隔值不变
- 属于红色区间的时间间隔,修改为邻近k个绿区间内的随机时间间隔值(尽量减少数据分布变化),完成水印嵌入
- 检测端
- 根据输入数据进行同样的时间区间列表划分,以及前n个时间间隔生成的相同种子,用伪随机数生成器对时间区间列表复现相同的分类
- 对输入数据映射,检查属于绿色区间的比例是否达到一定阈值,即判断为嵌入水印
- 可视化前后数据分布变化,visualize_data方法,注意代码中默认不执行,可用于观察单个流数据分布,开启时注意字体支持
2.0版本
- 颜色分配中添加灰色,表示无数据区间,主要为了解决时间间隔跨度较大,划分区间存在多个无数据空间被分配红绿色,导致效果不佳。另补充细节,以及相关检验机制,综合以下几条原则来保证区间列表和颜色的复现
- 保护最小最大值不被修改,加上一个全局设定的区间大小,从而根据最小最大值分割出相同的区间列表
- 保护前n个间隔不被修改,从而以此为种子复现对区间的颜色分配
- 对于无数据区间默认分配灰色,且在水印嵌入时保证不生成新的无数据区间
- 增加性能评价指标
3.0版本
- 针对一个区间甚至是一秒内有大量数据聚集,分配为绿色区间时导致将自然流误判为水印流,增加机制
- 水印嵌入操作中,另设一个单个区间比例安全阈值,若检测到某个绿色区间的数据比例超过安全阈值的时候,就把数据分散到其他绿色区间,若绿色区间已满则分配给红色区间,保证水印流不会出现异常分布
- 检测端若发现某个绿色区间数据比例超过安全阈值,则判定为自然流
- 在单个区间比例安全阈值机制基础上,针对以下情况在水印检测端增加机制:绿色区间过少,使得所有绿色区间均达到临界值,分配到红色区间导致绿色比例无法上升到检测阈值。若水印检测中发现所有绿色区间均达到临界值,判断临界情况为水印流
- 根据不同流的数据特点需重新设置超参
数据集说明,http://mawi.wide.ad.jp/mawi/samplepoint-F/,下载pcap文件,提取(ssh、http、https)流的数据包时间间隔 multi_protocol_pcap_extractor.py 为提取工具,内有详细参数说明, 参考命令python multi_protocol_pcap_extractor.py 202401031400.pcap --protocol http -n 200 --min-packets 100 -a --output-dir http_flows_1