1.文字版
1.1 唯一性
不同设备生成的设备指纹一定不会重复(包括碰撞率和错误率2个指标,狭义的就认为是错误率)。
1.2 碰撞
一个指纹对应多台真实设备,我们就认为该设备指纹发生了碰撞。
1.3 错误
一台设备对应多个设备指纹,我们就认为设备指纹产生了错误。
1.4 稳定性
设备系统升级或少量数据变更时,设备指纹不会发生变化。
2. 数字版
设备集 共 n 个设备;
刷机状态集 共 m 个设备;
因此由设备 和状态
生成的指纹为
,所有指纹构成指纹集合
共
个不同的指纹。
2.1 唯一性
2.1.1 碰撞率
F中的指纹f如果对应着E上的多个设备,则说明指纹f发生了碰撞
碰撞率 = 碰撞的f数/F的指纹数
=
2.1.2 错误率
E中的设备e如果对应着F上的多个指纹,则说明设备e发生了错误
错误率 = 错误的e数/E的设备数
=
碰撞率和错误率越小,唯一性满足的越好。
2.2 稳定性
稳定性有个对标的基础指纹:
1. 是第一次读取这个设备的指纹作为对标指纹;
2. 是取该设备最常出现的指纹作为对标指纹,下面用第1种方案:
稳定性 = 所有设备与对标指纹相同的状态数/(设备数✖️(状态数-1))
=
稳定性越大越好
其中
3. 测试类
由于接口不会包括设备的真实id(序号即可),因此需要测试的业务方提供 {报文,真实设备id} 的序列(或表格)作为测试的输入,去计算以上的指标;
这个序列存储成.txt文件,测试指标计算.py文件,以方便后续不同模型的测试。
上线前还需测试在数据量为10k, 100k, 1m, 10m下,qps=0.1k, 1k, 10k 下的响应时间。