网络跟踪已经存在了很长时间,一般用于跟踪用户行为,了解用户喜好,有针对性的投放广告,推荐商品等。虽然大多数知名的广告拦截器,如uBlock或AdBlock,会拦截追踪器和第三方cookie,但它们不会防止指纹识别。
在这篇文章中,我们将讨论这个鲜为人知的追踪方法,以及如何防范它。
什么是指纹?
现代浏览器通过JavascriptAPI公开了很多信息,比如
UserAgent:关于正在使用的浏览器的信息HTTPAccept标头:可以接受的服务器端媒体类型和编码浏览器插件详细信息:已安装的插件列表(火狐的最新版本现在屏蔽了这些信息)时区屏幕信息:尺寸、颜色深度系统字体Cookie设置:是否启用了禁止跟踪?启用了第三方Cookie?HTML5Canvas信息WebGL信息
当上述信息结合在一起时,可以生成一个唯一的标识符,该标识符对于跟踪来说是可靠的,并且与Cookie不同的是它不能被用户阻止或删除。
什么是指纹识别?
指纹识别是使用用户的指纹在他们访问网站时追踪用户的过程。当用户访问网站时,指纹在客户端生成,并被发送和存储在服务器上。每当两个指纹匹配时,它们很可能对应于同一个用户,因此这两个会话可以链接在一起进行分析。
假设指纹是唯一的,这个标识符将可靠地代表访问多个域名的同一个用户,即使他们清除了缓存、使用了广告拦截器、处于无痕浏览模式或更改了他们的IP地址!
如何防止指纹识别?
没办法不留下指纹,因为浏览器总是会暴露一些关于设备的信息。不过,可以防止被指纹识别用于追踪。以下是一些提示:
诊断
访问Panopticlick网站,了解你的浏览器是否容易受到指纹识别(和其他跟踪方法)的影响。
使用随机指纹
通过对浏览器暴露的信息做一些随机化处理,这样能够在每次访问一个新页面时获得一个新的指纹,因此指纹识别就无效了。
然而,并非所有的信息都可以随机化。例如屏幕大小、当前时区或系统字体,但很可能会影响你浏览网页时的体验。不过可以在UserAgent字符串上做文章:
这是一个高度无序的长字符串,因此大多数指纹识别工具都会使用它它包含了几个版本号(浏览器、浏览器引擎、操作系统),对这些版本号可以随机化处理,而不会对页面浏览产生任何影响
有些浏览器插件提供了这种功能,以确保定期或每次访问新页面时生成新指纹。
使用一个通用的指纹
如果你的浏览器配置和大多数网民一样,那么你的指纹将不是唯一的,你的流量信息将会和其他人的混合在一起,使得变得无用。
这是Tor浏览器采用的方法。通过始终使用完全相同的配置,它确保了每个用户彼此之间无法区分,因为他们都有相同的指纹。你可以下载然后尝试一下!
还可以试试Tails,它会把你的所有网络浏量走Tor网络,让网络浏览更加隐私和安全。
对于其他浏览器,你可以在网上找到最常见的UserAgent字符串,然后选择一个把它设置为你的。或者使用浏览器插件定期修改UA字符串。
启用指纹保护
Firefox:访问about:config然后设置privacy.resistFingerprinting为true
Chrome:没有此功能
禁用Canvas指纹识别
Canvas指纹识别是一种高级的做法,它利用了HTML5CanvasAPI来查询用户的设备信息,例如操作系统,显卡的类型和型号等。
在Firefox上可以用CanvasBlocker插件来禁止网站使用CanvasAPI,从而避免了被Canvas指纹识别。
禁用Javascript
警告:你很可能不想这么做!
这是一个极端的做法,会破坏大多数网站的功能,但会从根本上降低被指纹识别或Cookie追踪的可能性。
Firefox:访问about:config并将javascript.enabled设置为false
Chrome:访问chrome://settings,在“网站设置”下,找到Javascript然后设置为“已禁止”
白帽子讲浏览器安全(博文视点出品)京东好评率99%无理由退换京东配送官方店旗舰店¥68.7购买