由社群提交 - 作者:匿名
在计算机科学领域中,指纹生成是指为各类电子数据创建唯一标识符的过程。而当我们需要实施某项技术来识别出单个用户或设备时,我们将它们称为浏览器或设备指纹。
本质上,该过程包括了收集有关智能手机、计算机或其他设备的信息。有时,即使用户隐藏了IP地址或者更换了浏览器,通过指纹识别也是可以识别到该设备的。
多年来,网络分析服务一直在收集设备和浏览器信息,旨在分析合法的网络流量并检测潜在的欺诈行为。如今,出现了更多先进的技术能够收集到设备里面特定的参数。
指纹技术在之前主要应用在计算机领域中。如今,新一代技术可以识别出任何类型的设备信息,并且新不断专注于日益增长的移动端应用程序。
详细说来,设备指纹识别涉及相关数据的收集,然后通过散列函数对数据集进行合并和提交。接下来散列函数的输出(哈希值)可以作为每个设备(或用户)的唯一ID。
收集到的信息通常被存储在数据库中,而非设备端。虽然单一数据点的生成方式是相同的,但多个数据集的组合最终生成的指纹却是唯一的。
设备指纹识别方式可分为被动和主动两种方式。这两种方式的目的都是收集设备的信息。因此,即使数千台运行着相同操作系统的计算机,每台计算机上也都可安装有各类的软件、硬件、浏览器、插件、语言、时钟和常规设置的相应组合。
顾名思义,通过无感知的方式收集信息,无需请求用户(或远程系统)的同意。该方式会基于每台设备发送的内容来收集数据,因此被动指纹识别倾向于客户端提供较少的特定信息(例如,操作系统)。
例如,有开发者开发了一款被动指纹识别技术,该技术被用于收集网络设备(例如因特网调解调器)上的无线驱动器信息。该程序可以在无需设备操作的前提下,在各种类型的驱动程序中通过被动方式实现交互。简而言之,不同的设备会采用不同的方式来扫描网络中可能存在的连接(接入点)。因此,攻击者也可以使用这些差异来准确识别每个目标设备所使用的驱动程序。
另外一种识别方式是主动指纹识别,该方式需要主动请求网络通信,这使得它们在客户端中的运行更容易被检测到。一些网站运行JavaScript代码作为收集用户设备和浏览器信息的方式。所收集的信息包括窗口大小、字体、插件、语言设置、时区,甚至包括其硬件的详细信息。
主动识别技术的一个典型例子是画布指纹识别,它常被用于计算机和移动设备中。通常基于HTML5网页的画布(图形元素)交互脚本。脚本中记录了画布在屏幕上所绘制的隐藏图像,然后记录图像中包含的信息,例如屏幕分辨率、字体和背景颜色。
设备指纹识别可以为广告商提供了一种跨浏览器跟踪消费者行为的功能。还能够帮助银行系统识别用户的请求是来自可信设备还是来自存在欺诈行为相关联的系统中。
除此之外,设备指纹识别还可以帮助网站识别多个帐户注册的行为,或帮助搜索引擎识别存在可疑行为的设备。
在检测和防范身份盗用或信用卡欺诈方面,设备指纹识别也能够派上用场。然而,这些技术可能会影响到用户隐私,尤其是在使用被动指纹识别时,在某些数据收集的方式中,用户可能无法检测到个人的数据已经被收集。
在主动指纹识别方面,数据收集依赖于脚本语言(如JavaScript)的可用性。然而当移动设备和用户运行了隐藏程序或插件,可能会影响脚本执行的可用性,使指纹识别难以识别出相应的设备信息。其中包括用于拦截广告和追踪器的浏览器插件。
但是,在某些情况下,某些看重隐私保护的用户反而更容易被识别。例如,当他们使用了某些非主流软件和具有特殊设置的插件时,会使他们更具备特征,容易被发现。
此外,指纹识别的有效性可能会受到客户端大量变化的影响。不断更改设置或使用多个虚拟操作系统的用户可能会在数据收集过程中收到影响,导致识别不准确。
使用不同的浏览器也可能导致指纹识别在收集信息的过程中出现错误,但现在可以使用现代的跨浏览器指纹识别技术来避免这些问题。
现在有很多方式可以实现和使用设备指纹识别技术。收集数据和识别设备来源的有效性会因方式不同而异。
无论是单独使用还是与其他方法结合使用,设备指纹识别都会成为追踪行为和识别用户的有效工具。因此,这种强大的技术可以用于合法或非法活动中,所以了解它们的基本机制会有助于您进一步熟悉该技术。