浏览器指纹技术与浏览器指纹破解办法,浏览器指纹检测,浏览器指纹修改与伪装,浏览器指纹插件都是什么?
一、基本逻辑
采集具有设备浏览器差异化特征并且用户无法更改的信息,生成用户设备浏览器独特的身份序列,即使用户删除保存的身份信息,重新生成的序列仍然一致,做到对用户进行个人浏览器级别的身份定位。
1、差异化
2、用户无法篡改
3、设备稳定性
二、基本指纹
1、userAgent: 浏览器用户信息
navigator.userAgent
2、language: 浏览器语言
navigator.language || navigator.userLanguage || navigator.browserLanguage || navigator.systemLanguage || options.NOT_AVAILABLE
3、colorDepth: 设备色深
window.screen.colorDepth
4、deviceMemory: 设备内存
navigator.deviceMemory
5、hardwareConcurrency: 设备处理器数
navigator.hardwareConcurrency
6、hardwareConcurrency: 设备处理器数
navigator.hardwareConcurrency
7、timezone: 时区
window.Intl.DateTimeFormat().resolvedOptions().timeZone
8、sessionStorage: 是否有sessionStorage功能
!!window.sessionStorage
9、localStorage: 是否有localStorage功能
!!window.localStorage
10、indexedDb: 是否有indexedDb功能
!!window.indexedDb
11、platform: 运行系统平台
12、webglVendorAndRenderer: webgl信息
13、touchSupport: 多点触摸以及触摸响应判断
三、高级指纹
1、canvas: canvas指纹
利用不同设备不同浏览器在绘制同一张图像时候和差异化信息提取特征码。
从根本上来说,每一种浏览器都会使用不同的图像处理引擎,不同的导出选项,不同的压缩等级,所以每一台电脑绘制出的图形都会有些许不同,这些图案可以被用来给用户设备分配特定编号(指纹),也就是说可以用来识别不同用户。
不同的电脑,显卡,设备分辨率不一样,渲染出来的图片有差异化不足为奇。不同浏览器不同图像的处理引擎,渲染出来的图片不一样也是一样道理。需要注意的是,即使是同一型号的设备,同一个版本的浏览器,渲染出来的图片依旧是有差异化的,肉眼无法辨别罢了,网上数据显示,差异化达到99.4%。个人推测是显卡的特征信息被加入到了图片渲染的过程中,导致了图片细微的差异化信息。
先用canvas生成一张多个半透明的不同颜色的圆交叉的图片,并在上面填充文本,转化成base64,作为生成指纹的种子。
2、webgl:webgl指纹
原理和canvas类似,不同之处是渲染的图片不同,并且调用webgl的api渲染而成。渲染图片为渐变色3D立体图像,为了调用尽可能多的webgl api突出差异化,渲染出来的图片转化为base64,作为生成指纹的种子。
3、audio:audio指纹
利用浏览器AudioContext的api OscillatorNode产生一个三角波,然后将波传Dynamics Compressor Node,一个调节声音的信号处理模块,产生压缩效果。 然后,经处理的音频信号通过Analyser Node转换为频率域。频域在不同的浏览器中是不同的,这个特征受浏览器的影响,不能完全反应出声卡的特征。频率和峰值的比,在浏览器之间是相对稳定的。因此,在频率和值的坐标系上创建一个间距很小的列表,并将峰值频率和峰值映射到相应的格子。 如果一个格子包含一个频率或值,我们将格子标记为1,否则为0,这样的格子列表用作跨浏览器特征。
先用AudioContext.createOscillator 产生一个三角波,然后用 AudioContext.createDynamicsCompressor,调节声音的信号,然后把信号用renderedBuffer.getChannelData 转化为与通道关联的PCM数据,采集4500到5000段稳定的数据作为生成指纹的种子
四、指纹生成
得到以上生成指纹的种子后,全部拼接到一块,用Murmur哈希函数生成32位长度的指纹,不选用md5加密是因为这里不需要md5那样强度的非逆转加密,可以节省生成时间。
浏览器指纹不可忽视
浏览器指纹会记录用户的使用习惯等信息,可以用来区分是否是同一个人操作!因此需要借助像候鸟浏览器这种多开浏览器来配置独立的指纹,隔离环境,防止被识别出来。