浏览器指纹识别是继cookie和supercookie之后进行用户跟踪的第三条途径。指纹识别是由网站方发起的,这些网站分析HTTP客户端发送的请求,通过收集数字指纹来唯一标识特定计算机。以这种方式获取的数据即使在删除cookie后也可以用于持续跟踪用户。它通过收集用户浏览器和设备的各种属性来创建一个独特的“指纹”。这些属性可能包括:
-
浏览器类型和版本:不同浏览器(如Chrome、Firefox、Safari等)及其版本号。
-
操作系统:用户所用设备的操作系统(如Windows、macOS、Linux等)。
-
屏幕分辨率:设备显示器的分辨率。
-
时区:用户所在的时区。
-
插件和字体:已安装的浏览器插件和字体,这些信息可以进一步细化指纹。
-
用户代理字符串:包含有关浏览器、操作系统等信息的字符串。
-
Canvas指纹:通过绘制图形来提取图像信息,这种方法可以生成独特的标识符。
-
WebGL指纹:使用图形处理单元(GPU)渲染图形,提取图形渲染能力的信息。
网站为什么要收集浏览器指纹?
1.浏览器指纹一般用于一些广告,我们在浏览一些没登陆的网站时侯,广告联盟的广告推送服务都会默默的收集这些浏览器指纹,并且与你正在浏览的网页进行一个绑定,这样广告商就可以更精准的知道你喜欢什么样的东西,方便广告上更加准确的推送广告
2.网站防刷,电商网站和社交网站都希望自己的用户是真实的,他们通常不愿意看见一个人掌握着大量的用户,通过浏览器指纹网站就可以识别出哪些账号是同一个人操作的,从而设置相应的安全政策,保护网站防止被爬虫,防止被刷数据
用途
- 广告和营销:帮助广告商跟踪用户行为,以提供个性化广告。
- 安全性:用于防止欺诈和滥用行为。
- 分析:网站可以利用指纹技术收集用户访问数据,以改进服务和用户体验。
隐私问题
浏览器指纹技术引发了隐私方面的担忧,因为它可以在不使用Cookies的情况下追踪用户。许多人可能并不知晓自己的数据被如此收集和使用。为此,一些浏览器(如Firefox和Brave)提供了对抗指纹追踪的功能,帮助用户保护隐私。
保护措施
-
使用隐私浏览模式:许多浏览器提供隐私模式,限制数据收集。
-
安装防指纹插件:一些浏览器扩展(如Privacy Badger、uBlock Origin)可以帮助阻止指纹收集。
-
定期清除Cookies和缓存:虽然Cookies不是指纹本身,但清理缓存和Cookies可以减少追踪的可能性。
-
使用虚拟私人网络(VPN):VPN可以隐藏用户的IP地址,增加追踪的难度。
总体来说,浏览器指纹是一个复杂且不断发展的领域,理解其运作原理可以帮助用户更好地保护自己的隐私。
浏览器指纹识别如何运作
浏览器指纹识别是一种十分有效的数据收集方式,可散列独有的浏览器参数并创建数字签名。网站可以将其他JavaScript代码(通过创建自己的脚本或从第三方提供商处购买)添加到HTTP请求响应中。JavaScript代码扫描所有公共浏览器参数,并根据数据创建唯一的数字签名。
通过使用其他JavaScript代码获得的数据包括用户代理、屏幕大小和分辨率、已安装的字体、插件和扩展、GPU / CPU等。每个数据点都增加了设备的唯一性,从而使网站可以更轻松地识别特定的计算机。
指纹追踪方法
浏览器指纹变得越来越普遍。许多网站都在利用指纹识别新用户和老用户,包括一些排名靠前的网站。像Google和Bing这样的搜索引擎也不例外,它们采取了多种措施来识别特定用户。
音频指纹
音频指纹测试可以测试设备播放声音的方式。声波可以提供有关设备音频堆栈的信息,例如声音硬件,软件和驱动程序。
HTML5画布
高级浏览器指纹版本可以在机器上提供更多数据,主要是通过访问HTML5 画布并请求特定图形处理的衡量。使用HTML5画布可以显示计算机的操作系统,浏览器和GPU。HTML5画布通常会要求浏览器呈现特定图像。由于GPU渲染图像的方式略有不同,因此可能会获取特定设备的详细信息。
时钟偏斜
极端措施包括分析时钟偏斜。时钟偏斜是指来自一个源(主要来自时钟发生器)的电信号不均匀地到达不同的组件时。这些差异受硬件温度变化的影响。因此,通过足够的数据和数值分析,可以测量时钟时滞差异,以确定硬件规格以及机器的许多其他方面。
什么是时钟偏斜?
时钟偏斜(Clock Skew)是指计算机系统中不同时钟之间的时间差异。这种现象常见于分布式系统和网络环境中,可能导致各种问题,特别是在需要时间同步的应用场景,如数据库事务、分布式计算和网络协议等。
时钟偏斜的原因
- 网络延迟:不同设备之间的网络延迟可能导致时间不同步。
- 硬件差异:不同计算机的内部时钟可能有细微的制造差异,导致时间漂移。
- 环境因素:温度、湿度等环境因素可能影响计算机内部时钟的精度。
- 时间同步机制:使用不当的时间同步协议或算法也会导致时钟偏斜。
影响
- 数据一致性:在分布式数据库中,时钟偏斜可能导致数据不一致,影响事务的完整性。
- 安全性:在一些安全协议中,时间戳用于验证请求的有效性,偏斜可能导致安全漏洞。
- 日志记录:不同设备的日志时间不一致,增加故障排查的难度。
解决方案
-
使用时间同步协议:
- NTP(网络时间协议):可以在网络中实现高精度的时间同步。
- PTP(精密时间协议):适用于需要更高精度的场景,通常用于工业和金融领域。
-
定期校准时钟:
- 自动化定期检查和校准系统时钟,以减小偏斜的影响。
-
监控时钟状态:
- 实施监控系统,及时发现和解决时钟偏斜问题。
-
设计容错机制:
- 在应用层设计容错机制,以适应一定范围内的时间偏差。
结论
时钟偏斜是分布式系统中常见的问题,但通过适当的时间同步策略和设计措施,可以有效减小其影响,确保系统的可靠性和一致性。
那么我们应该如何去改善浏览器的唯一性?
可以使用电子前沿基金会开发的项目Panopticlick来测试浏览器的唯一性。Panopticlick浏览器指纹测试将显示有关设备的所有数据,并提供可能的选项来防范跟踪。
但是如果不想被大公司跟踪,可以降低浏览器的唯一性,这是指纹保护的最有效选择:
1.使用常用的浏览器。运行罕见的浏览器(例如Comodo IceDragon)将大大增加拥有唯一指纹的可能性。
2. 避免使用自定义用户代理。独特的用户代理是肯定会让你从人群中脱颖而出的,因此,最好使用通用的用户代理。
3.减少使用的插件数量。浏览器中安装的插件数量越多,唯一性越得不到保证。
4.缩小首选语言列表。请求使用不同语言的页面会大大提高浏览器的指纹识别能力。例如,默认情况下,TorButton仅请求EN版本的网站。
5.使用TorButton。TorButton实现了Tor浏览器到Firefox浏览器中使用的大多数安全功能。
6.禁用JavaScript。禁用JavaScript是一种极端的措施,它将破坏几乎所有网站。然而,电子前沿基金会发现NoScript(允许用户关闭JavaScript的扩展)用户对指纹的抵抗力最大。