从黑产对抗角度谈设备指纹技术
简单来讲,设备指纹是指用于标识出该设备的设备特征,也可以是多种设备特征的组合,以方便风控系统对设备的唯一性进行识别。设备指纹是风控系统里一个重要的控制维度。
(本文只讨论设备指纹有关)
一、设备指纹的应用
在反欺诈领域中,设备指纹已经成为了基础技术。
1.为什么设备指纹的作用那么重要?
因为身份的不确定性是互联网反欺诈分子的根本支撑,在无法识别操作用户的情况下,可以从设备着手,识别可疑上网设备,及时对高风险的设备及相关操作做出反应,即可控制风险降低损失。
例如,网络支付公司的风险管理系统引入设备指纹指纹技术,可贯穿于所有需要风险判断的场景。比如,垃圾注册,如果同一设备注册次数过多或注册时间异常,即发出风险警报或进入二次验证过程,防止拖库撞库的风险行为;当支付时,同一设备支付金额过大或频繁交易,那么就要警惕是否有洗钱的风险。支付环节需求严格管控,传统的IP容易伪造代理等,并且精度不够细,设备指纹完美地补充了这一风险漏洞。
2.设备指纹的概念
设备指纹应该保证同一台设备生成的设备指纹具有唯一性、不重复性和不易篡改性。
只有符合这些特点才符合反欺诈领域中对设备指纹的要求。
设备指纹模块的常见流程:
二、设备指纹常见技术
1.单一/简单组合特征
最开始应用设备指纹大概应该是广告行业。在广告行业里很早就开始收集浏览器的cookie、安卓系统的IMEI和MAC、iOS的UDID和IDFA来识别设备的唯一性以便过滤假量刷量。
特点:收集客户端可以收集的唯一标识,只要有一个标识相同就视为同一台设备
缺点:方法比较原始,只需要简单篡改标识就可以轻松过掉
2.多维度设备特征
从设备上收集多种多维度的设备信息和特征符,通过云端对比识别设备差异度,设定一个差异度阀值,当差异度比较低时则视为同一个设备。
从网上收集的常用设备信息表:
特点:多种维度配合,不依赖于某一个特征或者标识符
市面上大多数的产品均是采用这种方式,具体效果决定于特征的多样性和对比算法的准确性
3.辅助保证设备指纹的方法
生成设备指纹后,如何最大限度地保证设备指纹的不被改变?
•将生成的设备指纹ID保存在APP数据目录的文件内
•将生成的设备指纹ID保证到外部存储中(此方法在iOS中很难实现,由于安卓10之后有沙箱存储也很难实现)
•将设备指纹ID保存在公共数据中,具体实现可以参考OpenUDID的实现方法
4.被动式设备指纹
网络上有很多宣传的被动式设备指纹技术,什么通过osi多层网络协议中提取特征来标识设备。我也只是看到了宣传,我正打算去见识一下的时候,我发现基本上斗倒闭了??!之前很火的猛犸反欺诈,连网站都打不开了??!(目前好像还有个通付盾可以参考一下,具体效果也不清楚)
个人感觉这类技术不靠谱,如何网络协议上提取特征?设备上一般都可以使用多种联网模式(例如WIFI,4g,3g)都可以会被用户切换,其次在操作系统和使用的网络库都一样的情况下很难通过特征来识别,即便是AI建模,也很难从中提取有效的特征。
结尾
黑白对抗是需要不断对抗的,仅仅依赖于固定的某种技术是很难实现长久有效的。
同时欢迎各位交流有关黑产对抗、设备指纹的有关技术。