首发于AI风控
设备指纹详解

设备指纹详解

目录:
1.设备指纹前世今生
2.设备指纹应用场景
3.设备指纹产品特性
4.生成方式详解
5.采集要素举例
6.生成算法介绍
前言: 由于风控行业特殊性,细节防控策略不方便公开透漏,且黑产俨然已经形成了联盟,但风控还是各个公司各自为战,而设备指纹在风控中发挥着很重要的作用。所以本篇会偏向设备指纹产品的全貌和关键细节介绍,应用场景不做深入解析。废话不多说,进入正篇。

金融活动的核心在于风险控制,而风控要解决的基础问题有:"你是谁?你从哪里来?你要干什么?",而在线交易本身很难进行唯一性身份确认,需要其他信息辅助判断,用户是否为本人操作等各种行为确认和行为分析。设备指纹的应用就显得尤为重要。

设备指纹的前世今生:

早期,在一些对安全要求非常高的线上场景中,例如网上银行在线交,常常使用纯U盾这样的纯硬件技术去追踪业务主体,也就是定位’’你是谁’’。同时,业务往往都是发生在浏览器页面中,而浏览器是属于操作系统上层的应用程序,运行在其中的脚本代码受到沙盒的限制,所以用户也需要安装一个可以跳出浏览器沙盒直接跟操作系统对接的控件,来读取U盾里面的安全数据。

相对来讲,这很安全。不过随着互联网的发展,这种“控件”+“U盾”的结合方式已经越来越落伍。有以下几点:

1. 使用控件的用户体验非常差,需要冗长安装、更新流程,普通用户难以操作,使用不够友好

2. 移动互联网已成为绝对主流,而iOS,Android等移动互联网入口都不支持控件;

3. 不仅仅在移动端,某些控件在pc端适用范围都很小,很多只支持PC上的IE内核浏览器。同时Chrome和Firefox等份额较大的桌面浏览器也在逐步淘汰控件的使用;

4. 基于控件的本地溢出漏洞层出不穷,用户很容易中木马或者被钓鱼,反而给系统的安全造成严重危害。

由于业务场景实际需要,设备指纹产品应运而生。设备指纹技术可以为每一个操作设备生成一个全球唯一的设备ID,用于唯一表示出该设备特征。

应用业务场景有:防垃圾注册、防撞库、防薅羊毛、反刷单、精准营销、支付反欺诈、授信反欺诈、用户画像分析、复杂关系网络等,涉及领域电商、支付、信贷等。仅依赖IMEI和IDFA这种易篡改很那满足业务快速发展的防控需要。

举个栗子,黑产通过群控手机撸羊毛。

单一通过设备指纹虽然不能完全防住庞大、产业化、专业度高的黑产从业者,但可以极大提高黑产和恶意欺诈、骗贷、中介恶意包装等作案成本。比如黑产为了防止被设备指纹规则拦截,采用养设备的方式,即群控的设备农场,如下图:

但通过LBS、GBS、IP等交叉多维度分析,即设备这种作案方式。

场景举例一:广告营销

广告营销场景常常需要结合不同人群的兴趣爱好推送不同的广告,达到精准投放的目的。很多时候需要定位到一个用户的设备,然后画一个基于兴趣的设备画像。对于这个场景的设备指纹,其实可以放弃一部分的“唯一性”,去迎合“稳定性”。因为这个时候业务考虑更多的是人群总体覆盖度,而不用纠结在是不是每一个人每一台设备都定位精准了。所以有时候我们会发现在手机的app里浏览一个商品,过段时间电脑上就推荐了,这不是什么黑科技,有可能广告厂商用的仅仅是你的外网ip当作设备指纹。如果实现精准推送投放的话,比如用户刷抖y短视频时,抖y的DSB会根据你的设备码生成用户标签画像,同时将你的信息实时推给各电商平台,电商平台根据用户在平台搜索过的意向关键词,在导流平台Push商品广告,从而实现实时精准营销,提高下单转化率。

场景举例二:设备异常环境识别

很多人误解,设备指纹只能做设备的唯一标识,也就是“设备ID”的追踪。但其实设备指纹能做的远不止这些,甚至可以说设备ID的功能只占其全部功能的三成左右。当下国内最典型的是“账户”和”营销”这些场景,也是黑产获利最多的场景。这些场景里,黑产往往可以通过伪造新设备或者伪造某些系统底层参数(比如地理位置,imei号等等)的方式来绕过业务的限制。上层设备指纹获取的所有参数都是伪造的,基于这些伪造的数据计算得到的设备ID就毫无意义了。就像一个美丽的空中楼阁,没有了深入地下的坚实基础。而夯实基础关键在于”系统环境异常的识别”。对于常见的黑产改机框架、改机软件、伪装软件等,设备指纹都一定要做到针对性的识别。只有确定当前的系统环境没有异常,设备ID才是可信、可用的。成熟的设备指纹产品,可以识别虚拟机、模拟器、以及代理侦测。


好的设备指纹产品特性:

  1. 准确性-准确率高,不同设备生成的设备指纹保证不会重复,确保设备指纹生成的唯一性。个人的常用设备总是有限的,一段时间内一般不会超过5个以上。
  2. 稳定性-设备系统升级或少量参数变更,设备指纹码不会发生变更。
  3. 生成率-即设备覆盖率,确保各种设备载体都能生成设备指纹唯一码。
  4. 安全性-不会再网络传输中杯篡改、注入导致生成设备伪码。

同时从用户体验角度上,用户无感知,具有免安装、动态更新、跨平台兼容、防篡改等。

设备指纹应用平台有:

  1. 设备平台:手机、pad、PC等联网设备
  2. 操作平台:ios Android web/wap

设备指纹生成方式:

从技术实现方式分为主流三种:

  1. 主动式- 主动采集设备N多信息,比如UA、MAC地址、设备IMEI号、广告追踪ID等与客户端上生成唯一的device_id。局限性有:不同生态的平台对用户隐私数据开放权限不同,很难统一生成唯一识别码,且无法实现Web和App跨域统一。主动式设备指纹另一个局限性,由于强依赖客户端代码,这种方式生成的指纹在反欺诈的场景中对抗性较弱。

2. 被动式-被动式设备指纹技术在终端设备与服务器通信的过程中,从数据报文的OSI七层协议中,提取出该终端设备的OS、协议栈和网络状态相关的特征集,并结合机器学习算法以标识和跟踪具体的终端设备。

与主动式设备指纹技术相比,被动式设备指纹并不必须在设备终端上嵌入用于收集设备特征信息的JS代码或SDK,其所需要的设备特征都是从终端设备发送过来的数据报文中提取,这也是其所谓“被动式”的原因。好适用范围更广,一些无法植入SDK和JS的场景也可以使用。同时跨Web/App,以及同步浏览器同一兼容性识别,主动式设备指纹技术,因为相对来说更为简单直接,所以业界大部分设备指纹技术厂商提供的都是该类设备指纹服务。

被动式设备指纹技术,由于其需要使用机器学习技术构建设备指纹分类算法模型,具有较高的技术壁垒,因而还处于推广起步阶段。

3. 混合式-即既有主动采集部分,又有服务端算法生成部分。通过植入SDK和JS,埋点在固定的业务场景,被动触发时的主动去采集要素,并与服务端交互,通过算法混淆加密后,在服务端生成唯一的设备指纹识ID,同时写入唯一ID存于app应用缓存或浏览器cookie中。一定时间内,用户再次使用对应业务埋点页面时,无需大量重新上传采集要素,只需比对要素变化比例,通过加权比对,计算得出置信度数值,并通过阈值判断是否重新生成设备指纹码。正常用户在使用时理论上是无感知且很少会主动篡改设备指纹唯一ID。

混合式设备指纹技术克服了主动式设备指纹和被动式设备指纹技术各自的固有的缺点,在准确识别设备的同时扩大了设备指纹技术的适用范围。对于Web页面或App内部的应用场景,可以通过主动式设备指纹技术进行快速的设备识别;而对于不同的浏览器之间、Web页面与App之间的设备识别与比对关联,则可以利用被动式设备指纹的技术优势来实现。

本篇主要介绍混合式设备指纹的实现方式。

设备产生流程:

集成方式:浏览器(即web/wap)植入JS集成,APP通过SDK集成实现。

JS代码集成示例:

如上图,客户端集成非常简单,只需要几行代码,核心在于采集要素传输加密和服务端算法加工。


采集要素:

采集要素即设备中的硬件本身信息以及软件设置信息。常见的要素示例如下:

  • IMEI:International Mobile Equipment Identity,存储与手机里的国际移动设备标识串号。
  • IDFA:Identifier For Advertising,iOS独有的广告标识符。单要素应用场景有:比如你在淘宝里搜索了某个商品之后,你在用浏览器去浏览网页的时候,那个网页的广告就会给你展示相应的那个商品的广告。
  • UDID:Unique Device Identifier,唯一设备标识码。
  • MEID号, 移动设备识别码(Mobile Equipment Identifier)是CDMA手机的身份识别码,也是每台CDMA手机或通讯平板唯一的识别码。通过这个识别码,网络端可以对该手机进行跟踪和监管。但只适用于CDMA制式的手机。

采集要素示例(部分):


算法层:

在处理这么多采集要素,要保证生成的FingerPrint唯一性、准确性、稳定性等就需要强大的算法层处理。根据不同采集要素的权重,确保设备采集信息发生变化或波动时,仍可以生成稳定的唯一DeviceID码。

1.条件概率

2.联合概率:表示所有节点共同发生的概率,将所有条件概率相乘。

3.置信度传播:置信度传播算法利用结点与结点之间相互传递信息而更新当前整个MRF的标记状态,是基于MRF的一种近似计算。该算法是一种迭代的方法,可以解决概率图模型概率推断问题,而且所有信息的传播可以并行实现。经过多次迭代后,所有结点的信度不再发生变化,就称此时每一个结点的标记即为最优标记,MRF也达到了收敛状态。对于无环环路的MRF,BP算法可以收敛到其最优解。

BP算法的两个关键过程:(1)通过加权乘积计算所有的局部消息;(2)节点之间概率消息在随机场中的传递

Belief Propagation

置信度替换为概率:

置信度传播算法中迭代运算步骤可以表示如下:

(1)随机选择相邻的隐含节点xi,xj

(2)从xi向xj发送消息mij

(3)更新节点xj的置信度

(4)跳至步骤(1),直到算法收敛

在以此为规则的计算中,从无环图的边缘节点开始传播,然后如果一个节点所有相邻节点的消息都已经计算出来,则计算该节点的消息。易得整个无环图仅仅只需计算一遍就可以得到所有隐含节点的边缘概率分布。可以看出,BP 算法相对于一般的算法,时间复杂度上是大幅下降的。通过联合要素置信度算法得出生成设备指纹的联合置信度,判定同一设备的信任阈值,从而控制设备指纹是否重新生成。从算法加工层,确保设备指纹生成的唯一性、准确性、稳定性、安全性、生成覆盖率等。

声明:本篇为原创,转载请申请允许并注明出处!

编辑于 2019-12-10

文章被以下专栏收录