什么是浏览器指纹

一、什么是浏览器指纹

       浏览器指纹是指通过收集您设备的特征标识,用来对您进行唯一性识别、跟踪、分析行为、所生成的摘要ID
        网站通过收集大量的信息,然后对所有的特征标识进行并集匹配,可以十分精确的对您进行标记。
        Hubstudio,允许您自定义所有可能用户网站跟踪的标识。
标识内容:
         UA,语言,时区,地理位置,分辨率,webRTC,Cookie,字体指纹,Canvas,WebGL,WebGL Info,AudioContext,SpeechVoices,媒体设备,CPU参数,内存参数,OS,索引数据库,Resolution等等

二、这些指纹含义以及作用是什么呢?

  • User-Agent:浏览器和操作系统的信息
  • 语言,时区,地理位置,分辨率,字体指纹,这几个是用户根据IP和电脑的使用场景进行设置,来模仿真实环境。
  • Cookie:主要是用于方便快速登录一些网站,主要承载登录信息和网站相关信息的文档。
  • webRTC指纹:是可以让浏览器有音视频实时通信的能力,它提供了三个主要的API来让JS可以实时获取和交换音视频数据,MediaStream、RTCPeerConnection和RTCDataChannel。当然如果要使用WebRTC获得通信能力,用户的真实ip就得暴露出来(NAT穿透),所以RTCPeerConnection就提供了这样的API,直接使用JS就可以拿到用户的IP地址。
  • canvas指纹:是HTML5中的动态绘图标签,也可以用它生成图片或者处理图片。即便使用Canvas绘制相同的元素,但是由于系统的差别,字体渲染引擎不同,对抗锯齿、次像素渲染等算法也不同,canvas将同样的文字转成图片,得到的结果也是不同的。
  • WebGL指纹:是一种JavaScript浏览器API,用于在网页上呈现3D图像。网站可利用WebGL来识别您的设备指纹。通常网站可以用两种方法做到这一点:
               1、WebGL报告:完整的WebGL浏览器报告表是可获取、可被检测的。在一些情况下,它会被转换成为哈希值以便更快地进行分析。
               2、WebGL图像:渲染和转换为哈希值的隐藏3D图像。由于最终结果取决于进行计算的硬件设备,因此此方法会为设备及其驱动程序的不同组合生成唯一值。这种方式为不同的设备组合和驱动程序生成了唯一值。
  • AudioContex指纹:和Canvas类似也是基于硬件设备或者软件的差别,来产生不同的音频输出,然后计算得到不同的hash来作为标志,当然这里的音频并没有直接在浏览器中播放出来,只需要拿到播放前的处理数据就行,音频指纹测试地址
  • Do Not Track:在http头部可以声明这样一个标志“DNT”意味“Do Not Track”,如果值为1表示为不要追踪我的网页行为,0则为可以追踪。即便没有cookie也可以通过这个标志符告诉服务器我不想被追踪到,不要记录我的行为。
  • CPU内核数量:这个在之前的设备指纹方案中都是没有使用到的,现代浏览器可以用 navigator .hardware Concurrency 来获取。如果不支持这个方法,则可以利用另一种方式获取,具体来说是,当增加 Web Worker 的数量时,可以监视 payload 的完成时间。当计算量达到一定的程度,Web Woker 完成 payload 的时间显著增加,达到硬件并发的限制,从而判断核心的数量。一些浏览器(如Safari)会将 Web Workers 的可用内核数量减少一半,所以在获取跨浏览器指纹时,我们需要将获取到的核心数量加倍。
  • 媒体设备,内存参数这些参数是电脑和浏览期相关指纹。大家比较了解
环境参数如何查询:https://abrahamjuliot.github.io/creepjs/
通过以上来指纹的真实模拟来增加环境的稳定性,从而做到防关联,具体环境的稳定程度可以通过这个网站检测:https://pixelscan.net/frequency 也可以用:https://iphey.com/
下图是数个特征值的信息熵、重复概率和具体的值
         信息熵(entropy)注释:是接收的每条消息中包含的信息的平均量,熵越高,则能传输越多的信息,熵越低,则意味着传输的信息越少。
赞 (0)