# 设备指纹如何保持唯一性?
确保设备 ID 的稳定性一直是衡量该产品卓越性的重要因素。
# 定义
设备指纹作为基础工具类产品,在身份验证、交易欺诈、促销滥用等多个场景下都具有很高的商业价值。 它的主要功能是为物理设备创建并维护一个在一定范围内的全球唯一标识符:设备ID。 一直以来,保证设备ID的稳定性一直是衡量这款产品优秀与否的重要因素。 其中,恢复能力和唯一性保证是稳定性评价最重要的两个指标。 恢复能力主要是指设备指纹在设备状态发生变化后是否能够恢复设备原来的设备ID。 唯一性保证主要是指保证设备标识码的唯一性,至少在系统范围内是唯一的,不允许不同的设备共享同一个设备ID。
那么如何保证这两个特性呢?
设备指纹这个产品长期由系统提供商和行业标准共同维护。 一开始,这些支持是透明的,应用开发者可以轻松获得相对稳定的设备标识。 随着设备、系统和互联网应用的快速发展,这些支持逐渐变得内向,应用开发者不得不寻找其他的解决方案。 这个过程大概经历了几个大的阶段:开放的起步阶段、渐进控制的发展阶段、严格监管的稳定阶段。 不同阶段采用的解决方案存在巨大差异。
早期,整体环境比较开放。 为满足网络设备监管政策,设备提供商会将设备的入网标识,如IMEI、UUID、物理MAC地址等预置到系统中。 并且由于当时有关个人隐私保护的法律法规并不完善,获取这些信息没有门槛。 应用程序开发人员可以通过调用指定的 API 轻松获取这些标识符。 这些标识符由设备制造商和系统提供商预先设置在设备的初始系统中,并根据本地或国际相关协议标准定义。 正是因为这些标识受官方协议的约束,在唯一性方面表现良好,而且由于是系统内部预置的,所以在不公开源代码的情况下,相对安全,不易更改。 系统预设的这个设备ID足以支撑大部分业务场景的使用,而且获取这些ID的成本非常低。 但从另一个角度来说,这也说明了黑市从业者的目的。 他们只需要修改这些重要的指标就可以达到改变设备ID的目的。 这个时期的黑产攻击成本很低,设备指纹还没有准备好成为风控流程的重要一环。
随着操作系统的逐渐成熟,对个人数据的保护和相关权限的控制越来越重要,系统厂商也不同程度地控制了这部分数据。 这些控制主要包括增加运行时权限、空授权、随机化关键API输出等,此时依赖系统原生能力已经遇到障碍,考虑到用户倾向于拒绝授权,更难实现获取设备的原始标识数据。 为了解决这些问题,第三方厂商想出了一些解决方案。 他们擅长通过主动收集和综合分析来计算设备ID。 现阶段的设备指纹会有一个非常有目的性的工具开发包,需要用户将其集成到自己的应用中。 这个工具的主要目的是收集设备信息,包括设备软硬件信息,环境网络信息等,收集完这些数据之后,会选择一些稳定性和离散性相结合的指标,然后指标和设备的指标关系信息将建立在数据库中。 如果是新设备,还会生成一个设备ID。 这些设备ID是通过一些低冲突率的算法实现的,比如雪花算法,保证设备ID的唯一性。 由于综合考虑了设备的多维度指标,本期设备指纹在整体稳定性和对抗性上达到了较高水平,在风控过程中发挥了较大作用。
近年来,无论是各地出台的法律法规,还是应用市场,都对用户数据收集进行了限制,涉及身份数据、设备数据、行为数据等,现在这些数据的收集条件极为苛刻,而应用开发者在使用主动采集的设备指纹产品时,会警惕潜在的违规风险,甚至在面临抉择时选择下架此类设备指纹产品。 这也是目前设备指纹厂商共同面临的问题,也是生存问题。 在巨大的挑战下,像TrustDevice这样拥有深厚技术积累的公司找到了关键的解决方案。 在尽可能弱化数据主动采集的基础上,改进了网络信息、ja3指纹信息、系统镜像信息等被动属性的采集。 以这些数据为基础,通过信息熵优化、综合建模、相似度匹配、历史指标关联等方式,对设备进行高精度还原。 同时对设备ID的生成也进行了改进,针对高并发优化了Snowflake算法,大大降低了不同实例之间的碰撞率。
从业务形态来看,目前设备指纹厂商的核心工作仍然是保证极低的碰撞率和强大的还原能力。 低碰撞率可以通过一些开源的离散算法来处理,或者基于此类算法进行改进,这部分的解决方案已经比较成熟。 强大的还原能力在不同时期面临着不同的挑战。 必须对设备状态变化前后的指标进行高精度匹配,并对所有可以获得的数据进行分析、分类和归属。 这个过程极其复杂,需要引入不同的技术方案。
从长期演化来看,主动与被动结合寻找更多相似关系,一定是设备指纹厂商的最佳选择。 它有几个明显的特点:
安全合规,更容易被客户和市场接受
很好的客户体验,不需要任何授权,更容易被应用开发者接受
拥有长期自我进化的能力,天生具有极强的对抗能力
因为这些特点,也改变了传统设备指纹对主动采集数据的强烈依赖。 更重要的是,技术上的突破,提供了更好的用户体验、更高的安全性、更强的适用性。 或许,随着基础科学的突破,未来会有更安全、更简单的解决方案,不再依赖复杂的数据处理技术。 那将是设备指纹退出历史舞台的时刻,也是所有应用开发者圆梦的时刻。