详解设备指纹核心算法

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

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

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

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

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

此前顶象在《从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越狱、劫持注入等风险。

相关文章
|
5月前
|
传感器 人工智能 运维
智慧电厂转动设备的“非停监测”及算法应用
转动设备故障预测技术在智慧电厂中至关重要,防止非计划停机能避免经济损失和安全风险。结合传统数学模型与AI大数据分析,通过高精度传感器实时监测设备参数,利用智能算法精准预测异常,提前预警潜在故障。AI驱动的模型不仅能识别已知故障,还能预测未知问题,优化维护决策,减少停机时间,降低成本,增强可再生能源设施的运维效率,推动绿色能源转型。
|
6月前
|
算法 搜索推荐 Java
利用java编写的项目设备调配系统代码示例(内含5种设备调配的算法)
利用java编写的项目设备调配系统代码示例(内含5种设备调配的算法)
59 1
|
机器学习/深度学习 运维 监控
阿里云IoT发布工业设备故障诊断算法 获IEEE会议收录
刷新工业振动设备故障诊断精准度,显著提升设备运维效率
628 0
|
传感器 编解码 算法
真透视眼!西北大学开发新全息成像设备,用算法重构散射光,未来可透过皮肤看血管
真透视眼!西北大学开发新全息成像设备,用算法重构散射光,未来可透过皮肤看血管
184 0
真透视眼!西北大学开发新全息成像设备,用算法重构散射光,未来可透过皮肤看血管
|
17天前
|
算法 安全 数据安全/隐私保护
基于game-based算法的动态频谱访问matlab仿真
本算法展示了在认知无线电网络中,通过游戏理论优化动态频谱访问,提高频谱利用率和物理层安全性。程序运行效果包括负载因子、传输功率、信噪比对用户效用和保密率的影响分析。软件版本:Matlab 2022a。完整代码包含详细中文注释和操作视频。
|
2天前
|
算法 数据挖掘 数据安全/隐私保护
基于FCM模糊聚类算法的图像分割matlab仿真
本项目展示了基于模糊C均值(FCM)算法的图像分割技术。算法运行效果良好,无水印。使用MATLAB 2022a开发,提供完整代码及中文注释,附带操作步骤视频。FCM算法通过隶属度矩阵和聚类中心矩阵实现图像分割,适用于灰度和彩色图像,广泛应用于医学影像、遥感图像等领域。
|
3天前
|
算法 调度
基于遗传模拟退火混合优化算法的车间作业最优调度matlab仿真,输出甘特图
车间作业调度问题(JSSP)通过遗传算法(GA)和模拟退火算法(SA)优化多个作业在并行工作中心上的加工顺序和时间,以最小化总完成时间和机器闲置时间。MATLAB2022a版本运行测试,展示了有效性和可行性。核心程序采用作业列表表示法,结合遗传操作和模拟退火过程,提高算法性能。
|
4天前
|
存储 算法 决策智能
基于免疫算法的TSP问题求解matlab仿真
旅行商问题(TSP)是一个经典的组合优化问题,目标是寻找经过每个城市恰好一次并返回起点的最短回路。本文介绍了一种基于免疫算法(IA)的解决方案,该算法模拟生物免疫系统的运作机制,通过克隆选择、变异和免疫记忆等步骤,有效解决了TSP问题。程序使用MATLAB 2022a版本运行,展示了良好的优化效果。
|
3天前
|
机器学习/深度学习 算法 芯片
基于GSP工具箱的NILM算法matlab仿真
基于GSP工具箱的NILM算法Matlab仿真,利用图信号处理技术解析家庭或建筑内各电器的独立功耗。GSPBox通过图的节点、边和权重矩阵表示电气系统,实现对未知数据的有效分类。系统使用MATLAB2022a版本,通过滤波或分解技术从全局能耗信号中提取子设备的功耗信息。
|
3天前
|
机器学习/深度学习 算法 5G
基于MIMO系统的SDR-AltMin混合预编码算法matlab性能仿真
基于MIMO系统的SDR-AltMin混合预编码算法通过结合半定松弛和交替最小化技术,优化大规模MIMO系统的预编码矩阵,提高信号质量。Matlab 2022a仿真结果显示,该算法能有效提升系统性能并降低计算复杂度。核心程序包括预编码和接收矩阵的设计,以及不同信噪比下的性能评估。
18 3
下一篇
无影云桌面