希夷林海
首发于希夷林海
统计SDK这些事(三)设备指纹

统计SDK这些事(三)设备指纹

“在互联网上,没人知道你是一只狗”,这种“身份不确定性”对于互联网服务来说,是一个持续存在的风险,像一个定时炸弹随时威胁互联网交易安全。网络钓鱼、账户盗用、垃圾注册等欺诈问题都是这种风险的直接体现。值得庆幸的是,不法分子可以通过多种方式获取你的银行账号、支付密码,骗取你的校验码,但他要伪造自己的上网设备特征跟你的相似,那就要难得多。

身份的不确定性是互联网反欺诈分子的根本支撑,在无法识别操作用户的情况下,可以从设备着手,识别可疑上网设备,及时对高风险的设备及相关操作做出反应,即可控制风险降低损失。举例来说,如果一台设备被黑客控制,成为黑客的“肉鸡”,那么当黑客利用它发起网络攻击时,风控系统可根据该设备的软硬件信息、位置信息、行为信息等进行关联分析并及时发现这次的网络请求是否存在欺诈。

基于设备指纹ID,在用户账号未登陆的情况下,就可对访客进行有效身份识别,进而实现对访客的服务鉴权、行为跟踪、欺诈风险实时判别的能力。

目标

  • 唯一性:保证ID不发生冲突
  • 一致性:在跨浏览器、操作系统中保证ID不发生变化
  • 稳定性:ID不会随着时间的变化、应用的卸载发生变化

PC&WAP端

1、cookie技术

2、持久化cookie技术:所谓的持久化cookie,无非就是将数据尽可能的藏在了更多的猥琐的地方,比如flash中(flash可做到多个浏览器、多域下的数据共享,因此被广泛使用),h5的各种生命周期的storage中,webDB中、IE的userdata中等。 如下图


3、帆布指纹:这是较新的一种技术,是利用不同浏览器不同的设别实现会在canvas绘图这以功能中,同样的内容,会绘制出具有细小细节差别的图片。 通过对这些图片数据进行hash,可以得到一个粗略的指纹。该指纹能够识别出了某种GPU在安装了某种字体下的群体。但是单一使用该数据进行判断误判较高,一般还会结合其他技术综合判断。

Canvas fingerprinting

帆布指纹识别(canvas fingerprinting) canvas fingerprint 基于H5 canvas的帆布指纹

4、Flash/Java/JAVASCRIPT等 基本数据采集

  • 操作系统类型、操作系统版本
  • 浏览器useagent、浏览器的平台
  • webgl Vendor 、webgl render
  • 是否支持image、是否支持js
  • 内容编码、设置的时区、设置文本语言、设置接受压缩格式
  • 屏幕分辨率、color depth
  • 浏览器安装的插件、安装的字体
  • http请求发起时的头部
  • webRTC 等等

5、被动式设备指纹。依靠分析每个设备发出的普通HTTP请求,利用OSI协议栈的各层的信息进行设备指纹的识别,Maxent据说能够将准确率做到96%。国内使用这种方式的公司比较少,Maxent跟通付盾在这方面比较领先 。

Mobile端

1、单一系统ID:通过单一的系统ID进行标识,如uuid、idfa等。

2、组合系统ID:通过多个系统ID的组合进行标识,如androidid+mac+imei。

3、生成ID:依赖采集的信息,单一系统ID、机型、厂商、操作系统、屏幕分辨率等信息生成全局唯一ID(唯一性),并将该ID种植到客户端中多个位置(存储卡、Keychain等),保证该ID具有稳定性。

4、被动式设备指纹。依靠分析每个移动设备发出的普通HTTP请求,利用OSI协议栈的各层的信息进行设备指纹的识别。

参考:

Device fingerprint 设备指纹定义

编辑于 2017-06-03

文章被以下专栏收录