什么是浏览器指纹?
浏览器指纹识别是一种通过浏览器可以在网站上看到的配置和设置信息来跟踪Web浏览器的方法。
浏览器指纹和我们的手指纹一样,都具有识别个人的能力。
浏览器指纹识别也是如此。获取可以识别浏览器的信息,做一些计算得到值,该值就是浏览器指纹。
可感知的信息包括语言、时区、用户代理、地理位置等,您选择的信息决定了浏览器指纹的准确性。
获取指纹对网站没有实际意义,更重要的是指纹对应的用户信息。
作为一个网站,收集用户浏览器指纹和记录用户操作是很重要的,尤其是在没有用户ID的情况下。
例如,在内容分发网站上,用户a喜欢看军事内容,浏览器指纹可以记录这种兴趣。这样,用户下次无需登录网站,即可向用户推送军事信息。
这也是个人电脑非常普及的时代的内容分发方式。
对于用户来说,在他们的个人在线行为和他们的浏览器指纹之间建立联系或多或少地侵犯了他们的隐私。
幸运的是,这种方法对用户隐私的侵犯有限。此外,滥用用户行为会削弱用户对网站的好感。
有哪些类型的浏览器指纹?
1.Canvas指纹
Canvas是HTML5动态绘图标记,也可用于生成和处理图像。
在不同操作系统或不同浏览器上对同一个htmlcanvaseElement元素进行绘图操作不会产生完全相同的图像内容。
在图像格式方面,不同的浏览器使用不同的图形引擎、图像导出选项和默认压缩级别。
在像素级别,不同的操作系统使用不同的设置和算法来进行抗锯齿和子像素渲染操作。
即使是一样的生成的图像数据的绘图操作和CRC校验也不同。
几乎所有主流浏览器都支持Canvas,并且可以通过大多数pc、平板电脑和智能手机访问Canvas使用工具查询。
2.WebGL指纹
通过htmlCanvaseElement元素可以得到一个WebGL对象(canvas.getContext("WebGL")),通过这个对象也可以得到用户的硬件信息。
显卡名称、显卡型号、显卡厂商等。
一般硬件是不能随便更换的,即使有些电脑报废了也没有更换。
计算机硬件有很高的碰撞率,但它仍然可以作为用户指纹的一部分。
从一个用户身上收集到的信息越多,它就越代表一个用户不可忽视的独特指纹。
3.AudioContext指纹
用于JavaScript编程的HTML5音频API允许开发人员在其操作代码中直接处理原始音频流数据。
它可以随机生成、处理、回收、调整、改变音调、音频分段等。
AudioContext指纹背后的原理是:
方法一:生成音频流(三角波),FFT变换,计算SHA值作为指纹。
方法二:生成动态压缩音频流(正弦波)并计算MD5值。
音频上下文指纹识别的原理:
主机或浏览器硬件或软件的细微差异会导致音频信号处理的差异。
同一设备上的同一类型的浏览器将产生相同的音频输出。
不同的机器或不同的浏览器产生不同的音频输出。
AudioContext和canvasfingerprinting的原理非常相似。
两者都有硬件或软件差异。前者生成音频,后者生成图像,每个图像计算不同的哈希值作为标识。
4.WebRTC指纹
WebRTC(Web实时通信)是浏览器的实时音视频通信能力。
它提供了MediaStream、RTCPeerConnection和RTCDataChannel三个主要的API,可以让JS实时获取和交换音视频数据。
当然,如果想获得使用WebRTC的通信能力,就需要暴露用户的真实IP(NAT穿透),所以RTCPeerConnection提供了这样的API。
使用JS可以直接获取用户的IP地址。
市面上有很多指纹浏览器,对于指纹浏览器行业的知识也有很多推荐。
比特指纹浏览器支持用户自定义修改浏览器指纹参数。比特指纹浏览器可以虚拟生成多个浏览器,您还可以使用强大的指纹库支持的浏览器指纹对每个浏览器进行个性化设置,每个生成的浏览器都会获得一个全新的指纹。
如何检测浏览器指纹?
如果你想检测你的浏览器指纹,你可以打开比特指纹浏览器生成的浏览器文件,直接打开检测网站的网址。等待一两分钟后,第三方测试网站就可以调取新生成的浏览器指纹相关数据,查看每一项测试是否通过。