APP下载

论设备指纹的唯一性:始于硬件 ID,终于云端交互

消息来源:baojiabao.com 作者: 发布时间:2024-05-02

报价宝综合消息论设备指纹的唯一性:始于硬件 ID,终于云端交互

互联网时代,用户拉新几乎是所有公司必须面对的话题,从投入运营的初期阶段到快速成长期,再到稳定的成熟阶段,拉新贯穿了产品的整个生命周期,毕竟有了新用户才能创造出价值。  

而每拉一个新用户就意味着一个新的移动设备,如何唯一标识一个设备便成为一道永恒的技术难题。

顶象曾在之前的系列文章《如何保证设备指纹"不变心"》一文中提到,设备指纹是指通过用户上网设备的硬件、网络、环境等特征信息生成设备的唯一标识,并且这个唯一标识在移动设备的生命周期内不会发生变化,方便对移动设备进行认证,追溯等。

硬件 ID 作为保证设备指纹唯一性的基础属性,也伴随着设备指纹技术的提升不断演进。

今天我们就从设备指纹的硬件 ID 属性说起。

以硬件 ID 为唯一属性的设备指纹

众所周知,早期的设备指纹通过移动设备中硬件相关的编号 / 地址,简单的直接读取这些信息,可以完成简单的设备指纹功能。

主要分为以下几种:

1)IMEI

IMEI (International Mobile Equipment Identity) 是国际移动设备识别码的缩写,俗称"手机串号""手机串码"等,用于在 GSM 移动电话网络中识别每一部独立的手机。由 15 位数字组成"电子串号",它与每台手机一一对应,而且该码是全世界唯一的,每个手机在 IMEI 组装完成后都将被赋予一个全球唯一的一组号码。

这个信息天然就带着"唯一"属性,用来当设备指纹再好不过了。

2) MAC 地址

MAC (Medium / Media Access Control) 地址,用来表示互联网上每一个站点的标识符,采用十六进制数表示,共六个字节 (48 位)。其中前 24 位由 IEEE (电气和电子工程师协会) 分配给厂商,后 24 位由厂商自行分配,在正式量产的手机中是唯一的。接入网络的设备都有一个 MAC 地址,他们肯定都是不同的,是唯一的,自然也成为了设备指纹的一种。

3) SN 序列号

SN 序列号是手机出厂编号,序列号是设备厂商对这个设备的编号,用来提供质保,资产盘点功能,序列号具有唯一性,亦可以用来做设备指纹。

除此之外,早期的设备指纹还包括 UUID (通用唯一标识符)、IDFA (广告标示符)、IDFV (Vendor 标示符) 等。

让渡用户隐私,硬件 ID 不再成为设备指纹唯一属性

中期的设备指纹,硬件 ID 不再作为唯一的设备属性,设备指纹厂商们也开始寻求更加多元化的保证设备指纹的唯一性。

其中以苹果手机为代表的操作系统厂商,出于隐私便利的要求,逐步禁止了开发者读取硬件信息。

比如 iOS 5 以上版本开始禁止获取 IMEI,iOS 7 以上版本禁止获取 MAC 地址。而 Android 版本则从 2.0 版本开始 App 需要申请权限才能获取 MAC 地址。

随着各手机厂商对权限的收紧和隐私政策的出台,可采集的信息逐步受限,像 IMEI、MAC、IDFA 就存在采集率的问题,当应用的安装量达到一定数量后,会发现采集率不到 80%,而且采集到的数据质量也存在各种问题,比如会出现这样的 MAC 地址:"00:00:00:00:00:00"、"00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00"、"ff:ff:ff:ff:ff:ff",所以在保证指纹稳定性上需要持续投入时间和精力去研究。

与此同时,随着隐私相关的法律逐渐生效,对数据的采集和使用也进入了一个新的阶段。法律对隐私相关的设备标识的采集和使用进行了严格的限制,如何在合规的范围内进行数据采集成为设备指纹的主要挑战之一。

手机厂商也自发的对市场内的 App 进行隐私合规整治,如 vivo 7 月 19 日发起的 App 隐私合规问题专项整治行动。伴随着法律法规对于数据采集的限制,监管层面也开始对市场的 App 进行审查通报,在百度键入 App 通报,其结果多达 41400000 个,足见其监管之严。

同时,硬件 ID 作为个人隐私的相关信息,使用时也需满足复杂的条件,如:

1) 在用户许可协议中声明;

2) 在用户许可协议中使用加重,加粗字体方便用户阅读;

3) 读取时需要结合应用场景,不是随时能读;

4) 读取时需要控制频率;

5) 在代码层面向操作系统申请权限。

复杂的条件造成 App 开发者不能读,不愿读,也大大降低了硬件 ID 作为设备指纹的通用性以及兼容性。

此外,随着黑灰产作弊手段的不断提升,操作系统如 Android 会使用特定的 API 向 App 提供硬件 ID 信息,这些 API 属于关键 API,攻击者使用调试、注入、改机等特定手段可以轻易的修改掉操作系统返回给 App 的硬件 ID 信息。

显然,单纯使用硬件 ID 作为设备指纹的唯一属性已经无法保证设备指纹的唯一性,需要设备指纹厂商加入更多识别标准来保证设备指纹的唯一性。

算法加持,端云交互,唯一性 > 99%

那么,在硬件 ID 受到多重限制的情况下,如何保证设备指纹的唯一性?

顶象认为其关键在于算法。在《如何保证设备指纹"不变心"》一文中,我们曾提到设备指纹的唯一性作为设备指纹的核心要素,一旦出现误差,则会出现误判。因此,为了保证设备指纹的唯一性,我们必须要把算法更新放在首位。

顶象设备指纹基于动态可变的算法,通过在网站或移动端集成 js 脚本或 SDK 来采集终端设备的硬件、网络、环境等非敏感的设备特征信息,使用特定算法为每一个终端设备生成一个全球唯一的设备 ID,并在访问业务系统时每次都分配一个临时标示串作为 token,进而实现对访客的服务鉴权、行为跟踪等。

前端设备指纹具体采集的方式包括: 通过公有的 API 获取; 通过探针感知方式获知设备的异常风险; 采用顶象独创的采集方法获取。

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

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

设备指纹作为顶象防御云的一部分,集成了业务安全情报、云策略和数据模型,通过用户上网设备的硬件、网络、环境等特征信息生成设备的唯一标识,覆盖安卓、iOS、H5、小程序,可有效识别模拟器、刷机改机、Root、越狱、劫持注入等风险。

综上,不难看出,设备指纹技术从单一的硬件 ID 发展到完善的技术体系,这背后离不开设备厂商对设备指纹的不断探索升级。

2022-09-13 18:45:33

相关文章