详解设备指纹核心算法

简介: 大部分风险都来自于身份的不确定性。比如我们熟知的网络钓鱼、薅羊毛、账号窃取、注册登录等带来的盗用和欺诈都是其身份不确定性造成的直接后果。

部分风险都来自于身份的不确定性。

比如我们熟知的网络钓鱼、薅羊毛、账号窃取、注册登录等带来的盗用和欺诈都是其身份不确定性造成的直接后果。

那么,如何保证你的身份确定且黑灰产不会轻易盗取或者模仿呢?

设备指纹便是一个不错的选择。

此前顶象在《从Cookie到设备ID,从算法到云+端!全面盘点设备指纹技术的五代发展》一文中详细介绍过设备指纹技术的迭代,感兴趣的朋友可以回顾下。

从设备指纹的概念可知,设备指纹是指通过用户上网设备的硬件、网络、环境等特征信息生成设备的唯一标识,而衡量设备指纹优劣的最重要指标便是唯一性和稳定性。

本文就从设备指纹的稳定性和唯一性说起。

要保证设备指纹的稳定性唯一性并不简单

设备指纹作为标识手机或者浏览器的唯一 ID,首先要做的是对用户的设备进行数据采集,但数据采集对于设备指纹技术而言并不是很容易。

首先是法律层面对于用户个人信息数据的保护权限上升。

近年来出台的对个人信息数据的保护条款对于数据采集的权限一直在持续收紧,具备设备唯一标识作用的特征可采集率越来越少,一定程度上加大了设备指纹技术的难度。

以前采集设备指纹唯一标识的方法可使用MAC地址(以太网物理地址)、IMEI(移动设备识别码)、IDFA(广告标识符)等类似标识即可唯一标识一个设备。随着系统的不断更新迭代,加之与黑灰产的对抗逐渐白热化,各种作弊手段和工具的出现,设备上的各种参数都可以被篡改和伪造,通过一键抹机,变成一台新的设备,这就影响了对设备唯一标识的效果。此时就需要设备指纹技术采集更多的信息来保证设备指纹的唯一性和稳定性。

以iOS 系统为例,iOS 14以后IDFA采集需要用户授权才可以,Serial、IMEI等都存在类似情况。这种变化对设备指纹的计算带来了影响,生成一个稳定且唯一的标识会越来越复杂。

1.png

其次是异常数据增多。

不同的手机型号和操作系统版本会导致采集到的数据有不同的特性。尤其是安卓,品牌多,操作系统版本多,各类ROM多,数据的可采集性不统一。

1、以IMEI为例,以下是实际采集到的一些异常数据。

000000000000000

88888888888888

666666666666667

111111111111119

A000005EAAACCC

868686868686863

444646464643346

100000000150705

010000000053015

A0000060A60A0B

A0000070000AAB

2、同样异常的MAC地址。

00:00:00:00:00:0a

02:00:00:00:00:00

00:00:00:00:00:01

00:00:00:00:00:10

6a:aa:6a:aa:6a:6a

00:02:00:00:00:00

00:00:00:80:00:00

10:00:00:00:00:12

f2:0f:f0:02:f0:22

32:12:31:23:32:32

66:00:44:40:06:66

c0:00:00:00:00:d0

00:00:00:00:00:12

04:00:00:50:54:04

这些异常数据或来自被篡改的设备,或是异常的ROM,或者是特殊的机型设备,其他诸如android_id、Seria也都会存在这种情况。如果不考虑处理这些异常数据,指纹的效果肯定会受到影响。所以采集哪些数据用于指纹计算,数据有哪些异常情况,需要有大数据支撑才能制定合理的算法。

并且,指纹计算算法并不是一成不变的,新版本操作系统发布,新型号手机,这些随时都有可能导致数据采集出现异常,这需要设备指纹具备持续性的对异常数据的监测能力。

最后是黑灰产的作弊手段影响。

设备指纹在风控领域是对抗黑灰产的一个基础工具,所以黑灰产必然会想尽办法来绕过指纹的追踪和检测。常见的方式是通过各种工具来修改设备指纹使设备指纹发生改变,即人工篡改。

2.png

设备信息的篡改除了可能会影响指纹计算,还有可能会造成指纹数据污染。大量篡改后的错误数据如果和正常用户的设备产生关联,会导致正常用户的数据受到不可控的影响,而且这种数据想从系统中剔除干净是比较困难的。

基于特征信息精准匹配保证设备指纹稳定性

那么,这就要求设备指纹做出改变,顶象的做法是通过云+端模式,补足信息采集短板,显著增强设备攻防对抗的时效性和安全性,综合各行业的攻防经验和风险数据沉淀,当新的攻击方式和特征出现时,设备指纹能够更快的感知应对和准确识别。

具体到设备指纹的稳定性和唯一性上,如何应对呢?

我们先来看稳定性。

稳定性计算逻辑是通过采集到的数据,构建多维度的设备画像,每次设备重新上报数据后,通过算法匹配到最相近的设备,如果找到则使用找到的设备指纹,反之则生成新的设备指纹。

而之所以要强调设备指纹的稳定性,是因为很多操作会导致设备的特征信息发生变化比如App卸载重装、权限变更、重置广告标识符、机器重启、系统升级、修改设备参数、恢复出厂设置等等。

想要在以上这些情况下计算出一个稳定的设备唯一标识,当然不可能只依赖一两个设备参数,需要更全面的设备信息来构建一个设备画像。

而要保证设备指纹的高稳定性,则需要采集多维度数据,进行区分度、稳定性、变化周期等方面的全方位分析,对特征特性的准确分析帮助算法更合理的利用特征。

以CPU,存储,内存等特征为例,其具备非常好的稳定性,但区分度非常差。所以这类特征不适合单独使用,需要和其他特征结合在一起形成互补。

3.png

这就需要我们进一步观察其特征稳定周期(特征保持不变的周期大小)和特征稳定变化的难度(改变特征的难易程度),基于特征的不同特性来决定如何使用特征,选取一个特征时,其至少要在某个指标上有明显优势。

4.png

综上,不难看出,要保证设备指纹的稳定性需要基于不同特征的不同特性,为设备构建多个设备画像(短期和长期),首先要通过相似性搜索算法先定位出一批相似设备,再用精准匹配算法准确匹配。

5.png

其基本算法(SimHash)过程如下:

1、从采集设备信息中选取部分作为特征池;

2、根据采集信息的区分度、稳定性、变化难度等,对特征相应处理后进行hash 编码,比如将多个区分度弱的特征拼接后再进行hash 编码,得到编码向量C;

3、根据特征的特性,设定编码向量C的权重W,(注意:权重W可基于大数据学习得到,亦可根据专家经验设定,不同操作系统版本的设备,权重W可以不一样);

4、将编码向量C与对应的权重W相乘,得到特征向量C’;

5、将所有特征向量C’相加得到一个特征向量,二值化(大于0的值变为1,小于0的值变为0)后得到最后的索引D;

6、将索引D与服务器中的其他设备索引进行相似度计算,(计算海明距离—在信息编码中,两个合法代码对应位上编码不同的位数称为码距,又称海明距离。两个码字对应比特取值不同的比特数称为两个码字的海明距离。例如10101和00110从第一位开始依次有第一位、第四、第五位不同,则海明距离为3)返回相似度在阈值以内的设备信息作为候选池,进行进一步的精准匹配。

6.png

需要注意的是,设备指纹稳定性的效果依赖于是否选取了充分且合适的特征、是否对每个特征的特性有正确的理解、是否采用了符合数据获取现状的合适匹配算法。

算法更新+碰撞检测=设备指纹唯一性“法宝”

再来看下唯一性。

唯一性是设备指纹非常关键的一个指标。

设备指纹作为一项基础服务,是众多数据服务的核心要素,比如用户常用设备、风控中依赖设备的策略、广告唯一标识等。如果指纹唯一性计算出现偏差,即碰撞,可能会引起严重的误判。

7.png

比如碰撞后,可能会判断出设备出现在陌生地区,关联陌生账号,导致误处罚;如果出现大面积碰撞,会导致风控拦截大批正常用户。碰撞会直接导致指纹可信度下降,使得线上业务不敢再依赖基于指纹的判断。所以一个好的设备指纹,唯一性上一定不能有大的偏差。

而导致碰撞的原因则可能因为某些应该具备唯一性的重要设备特征出现不唯一,亦或是特征选择不当,多个特征组合后唯一性标识不够,当然也可能是匹配算法问题。

因此,在保证设备指纹的唯一性层面,不仅需要具备实时动态更新的算法匹配,更要注重碰撞检测。

8.png

首先,就算法更新而言,日常的异常数据的检测仅靠应用是不够的,需要离线仓库定期分析当前的数据,对出现的异常特征可以及时发现并提取出来,然后反馈给线上进行算法优化。

就碰撞检测能力而言,顶象也是获得了专利认证。

顶象设备指纹的碰撞检测能力,可避免异常数据进入影响指纹数据。采用设备的uuid不可逆原理来检测碰撞。对于同一台设备,多次采集数据进行计算,uuid在这期间可能会发生变化,变化以后则不可能变回以前的uuid,如果一台设备在某次计算后出现历史uuid,则表明本次计算不可信,出现了设备碰撞情况。

9.png

其基本原理是:

1、设备首次使用App,采集设备数据上报时,指纹服务器下发一个凭据,缓存在客户端,首次下发的凭据称为凭据X1;

2、设备再次使用App,采集设备数据上报时,先检查是否有缓存客户端在的凭据X1;若有,则携带上凭据X1;若没有,则认为是由于清理缓存导致凭据X1被删除,指纹服务器下发凭据X2,凭据X2与凭据X1不相同;

3、在生成凭据X2以后,采集设备数据上报时再次出现凭据X1,则判断设备指纹出现了碰撞;

4、在多次清理缓存的情况下,还包括按出现顺序依次排列的凭据X3、凭据X4…凭据XN,只要检测到凭据XN之后出现过此前曾出现的凭据X1至凭据X(N-1)中的任一个,则判断设备指纹出现了碰撞;

当然,设备的碰撞检测也有其他方式可以实现,但不适合沿用指纹本身的计算思路了,因为碰撞时应用已经‘犯错’了,所以上面介绍的以一个‘旁路’的方式来检测会更适合。

此外,顶象设备指纹的计算流程涵盖了数据解析,特征选取,算法匹配,碰撞检测等。

10.png

同时,针对私有化用户,顶象提供防御云服务,将云服务设备指纹收集到的最新计算算法同步到防御云平台,私有化指纹可以保持和云服务同步更新。

11.png

整体来看,设备指纹在唯一性和稳定性层面,不仅做到了防止采集逻辑被破解或数据伪造,从数据采集源头上保证真实性和准确性,并且针对黑灰产对设备参数进行篡改伪造(篡改IMEI、MAC地址、AndroidId、SIM卡信息、机型、品牌等),或是禁用、清除缓存和cookie等风险,能够保证设备指纹保持不变,稳定性保持在99%以上,为每一台设备生成的设备指纹ID全球唯一,不可被篡改,唯一性上保持在100%,响应时间小于0.1秒、崩溃率小于1/10000。

同时,设备指纹作为顶象防御云的一部分,集成了业务安全情报、云策略和数据模型,通过对上网软硬件生成唯一指纹信息,支持安卓、iOS、H5、小程序,可有效侦测模拟器、刷机改机、ROOT越狱、劫持注入等风险。

相关文章
|
6月前
|
传感器 人工智能 运维
智慧电厂转动设备的“非停监测”及算法应用
转动设备故障预测技术在智慧电厂中至关重要,防止非计划停机能避免经济损失和安全风险。结合传统数学模型与AI大数据分析,通过高精度传感器实时监测设备参数,利用智能算法精准预测异常,提前预警潜在故障。AI驱动的模型不仅能识别已知故障,还能预测未知问题,优化维护决策,减少停机时间,降低成本,增强可再生能源设施的运维效率,推动绿色能源转型。
|
7月前
|
算法 搜索推荐 Java
利用java编写的项目设备调配系统代码示例(内含5种设备调配的算法)
利用java编写的项目设备调配系统代码示例(内含5种设备调配的算法)
69 1
|
机器学习/深度学习 运维 监控
阿里云IoT发布工业设备故障诊断算法 获IEEE会议收录
刷新工业振动设备故障诊断精准度,显著提升设备运维效率
642 0
|
传感器 编解码 算法
真透视眼!西北大学开发新全息成像设备,用算法重构散射光,未来可透过皮肤看血管
真透视眼!西北大学开发新全息成像设备,用算法重构散射光,未来可透过皮肤看血管
191 0
真透视眼!西北大学开发新全息成像设备,用算法重构散射光,未来可透过皮肤看血管
|
1天前
|
机器学习/深度学习 算法
基于改进遗传优化的BP神经网络金融序列预测算法matlab仿真
本项目基于改进遗传优化的BP神经网络进行金融序列预测,使用MATLAB2022A实现。通过对比BP神经网络、遗传优化BP神经网络及改进遗传优化BP神经网络,展示了三者的误差和预测曲线差异。核心程序结合遗传算法(GA)与BP神经网络,利用GA优化BP网络的初始权重和阈值,提高预测精度。GA通过选择、交叉、变异操作迭代优化,防止局部收敛,增强模型对金融市场复杂性和不确定性的适应能力。
103 80
|
20天前
|
算法
基于WOA算法的SVDD参数寻优matlab仿真
该程序利用鲸鱼优化算法(WOA)对支持向量数据描述(SVDD)模型的参数进行优化,以提高数据分类的准确性。通过MATLAB2022A实现,展示了不同信噪比(SNR)下模型的分类误差。WOA通过模拟鲸鱼捕食行为,动态调整SVDD参数,如惩罚因子C和核函数参数γ,以寻找最优参数组合,增强模型的鲁棒性和泛化能力。
|
26天前
|
机器学习/深度学习 算法 Serverless
基于WOA-SVM的乳腺癌数据分类识别算法matlab仿真,对比BP神经网络和SVM
本项目利用鲸鱼优化算法(WOA)优化支持向量机(SVM)参数,针对乳腺癌早期诊断问题,通过MATLAB 2022a实现。核心代码包括参数初始化、目标函数计算、位置更新等步骤,并附有详细中文注释及操作视频。实验结果显示,WOA-SVM在提高分类精度和泛化能力方面表现出色,为乳腺癌的早期诊断提供了有效的技术支持。
|
6天前
|
供应链 算法 调度
排队算法的matlab仿真,带GUI界面
该程序使用MATLAB 2022A版本实现排队算法的仿真,并带有GUI界面。程序支持单队列单服务台、单队列多服务台和多队列多服务台三种排队方式。核心函数`func_mms2`通过模拟到达时间和服务时间,计算阻塞率和利用率。排队论研究系统中顾客和服务台的交互行为,广泛应用于通信网络、生产调度和服务行业等领域,旨在优化系统性能,减少等待时间,提高资源利用率。
|
14天前
|
存储 算法
基于HMM隐马尔可夫模型的金融数据预测算法matlab仿真
本项目基于HMM模型实现金融数据预测,包括模型训练与预测两部分。在MATLAB2022A上运行,通过计算状态转移和观测概率预测未来值,并绘制了预测值、真实值及预测误差的对比图。HMM模型适用于金融市场的时间序列分析,能够有效捕捉隐藏状态及其转换规律,为金融预测提供有力工具。
|
22天前
|
算法
基于GA遗传算法的PID控制器参数优化matlab建模与仿真
本项目基于遗传算法(GA)优化PID控制器参数,通过空间状态方程构建控制对象,自定义GA的选择、交叉、变异过程,以提高PID控制性能。与使用通用GA工具箱相比,此方法更灵活、针对性强。MATLAB2022A环境下测试,展示了GA优化前后PID控制效果的显著差异。核心代码实现了遗传算法的迭代优化过程,最终通过适应度函数评估并选择了最优PID参数,显著提升了系统响应速度和稳定性。