一、什么是浏览器指纹

浏览器指纹是指通过收集您设备的特征标识,用来对您进行唯一性识别、跟踪、分析行为、所生成的摘要ID
网站通过收集大量的信息,然后对所有的特征标识进行并集匹配,可以十分精确的对您进行标记。     
NestBrowser,允许您自定义所有可能用户网站跟踪的标识。

标识内容: 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来识别您的设备指纹。通常网站可以用两种方法做到这一点:
  • 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 的可用内核数量减少一半,所以在获取跨浏览器指纹时,我们需要将获取到的核心数量加倍。
  • 媒体设备,内存参数这些参数是电脑和浏览期相关指纹。
© 2019 all right reserved,powered by Gitbook本文档更新于: 2022-06-17 11:59

results matching ""

    No results matching ""