首页 > 编程知识 正文

网站指纹识别,浏览器收藏怎么设置指纹

时间:2023-05-04 19:05:33 阅读:13802 作者:1985

01 .研究背景目前,做安全防御不仅是被动等待攻击者的攻击,作为防御方,反击攻击者、威胁攻击者的方法越来越多。

设备指纹技术是一种长期有效的跟踪技术,无论攻击者施加多少vpn,都能准确识别攻击者的身份。

本文利用理海大学发表的(Cross-) browserfingerprintingviaosandhardwarelevelfeatures文章,笔者个人了解与原文一起服用效果良好。

02 .设备指纹技术介绍1 .第一代指纹跟踪是像cookie这样的服务端在客户端设置标记的跟踪技术,evercookie是cookie的增强版。

2 .第二代第二代指纹跟踪是一种设备指纹技术,用于发现IP背后的设备。 在js中检索操作系统、分辨率、像素比等一系列信息,传递给后台计算,合并设备。

唯一性可以保证,但很难完全保证正确性。 主要原因是浏览器之间的指纹识别。 跨越浏览器后,第二代技术中重要的canvas指纹、浏览器插件指纹发生了变化,使得跨越浏览器的指纹很难集中在同一个设备上。

因为设备指纹相同,概率很高,是相同的设备; 但是,如果设备的指纹不同,则不一定是同一设备。

3 .第三代第三代指纹跟踪技术是发现设备后面的人。 用人的习惯、人的行为等来合并人的技术很复杂。

4 .总结第一代、第二代指纹跟踪技术可以直接通过js采集信息。 目前可以看到第三代指纹识别技术的情况是2017年RSA创新沙盒冠军统一身份技术。 但是,在RSA答辩现场,您会发现统一身份在移动端安装软件并收集信息的不仅仅是js。 关于在网络上的使用,任重而道远。

因此,是2.5代指纹认证技术,也就是交叉浏览器指纹认证技术。

03 .浏览器间指纹识别的特点这个paper有很多创新之处,最重要的是深入研究显卡的呈现方法,图像的哪个部分用于硬件呈现,哪个部分只通过软件呈现,或者与浏览器相关

让我们聚焦于有趣的特征。 文章中使用的所有特征如下。

这些特征大多见于其他设备指纹的paper,目前广泛用于设备指纹项目。 例如canvas指纹是单浏览器识别中比较有区分度的特征。

比较一下开源fp2的指纹列表

fp2包含的是通常的跟踪项目,使用过的话就知道,其中很多没有什么区别。 例如

hassessionstorageornothaslocalstorageornothasindexeddbhasiespecific ' add behavior ' hasopendbisadblockinstalledornothastheuser tamperedwithitsscreenresolution1hastheusertamperedwithitsos1hastheusertamperedwithitsbrowser这些项目只能做一些大致的事情

但是,在这个paper中去掉了这些区分度低的特征,使用了另一种特征。 可见,图形绘制图像是特征表的task(a )task(a ),这些task的浏览器之间的稳定性非常高。 也就是说,浏览器的影响不是很大。 列举几个任务进行介绍

首先,paper简要介绍了图像渲染

在此之前,首先介绍一下基本的画布设置。 画布的大小是256256。 画布的轴定义如下: [ 0,0,0 ]是画布的中心。 其中,x轴是向右延伸的水平线,y轴是底部延伸的垂直线,z轴向远离屏幕的方向延伸。 存在功率[R:0.3,G:0.3,b:0.3](1)的环境光,照相机位于[ 0,0,-7]的位置。 这两个组件是必需的。 否则,模型将完全变黑。 本论文的其馀部分在所有其他任务中使用相同的基本设置,除非例如指定具有2D特征的任务(d )和具有其他附加指示灯的任务。

这里列举几个典型的task

1.task(a )纹理贴图2 )的任务是测试片段着色器的常规纹理特性。

具体而言,Suzanne模型[19]出现在随机生成纹理的画布上。 纹理大小为256256的正方形是通过随机选择每个像素的颜色创建的。 也就是说,在一个像素的三个基本颜色(红、绿、蓝)之间创建0到255之间的三个随机值,并将三个基本颜色混合起来用作像素的颜色。

之所以选择这个随机生成的纹理,是因为这个纹理比普通纹理有更多的指纹特征。 这是因为,如果片段着色器将纹理映射到模型,则片段着色器必须在纹理中插入点,才能将纹理映射到模型上的每个点。 插入值的算法因显卡而异,纹理变化较大时差异会放大。 因此,必须生成一种纹理,使相邻像素对之间的颜色发生很大变化。

2.task(d )线和曲线图(d )的任务是测试线和曲线

。 在画布上绘制一条曲线和三条不同角度的直线。具体来说,曲线遵循以下功能:y = 256-100cos(2.0πx/ 100.0)+ 30cos(4.0πx/ 100.0)+ 6cos(6.0πx/ 100.0),其中[0,0]为画布的左上角,x轴向右增加,y轴增加到底部。 三行的起点和终点是 {[38.4,115.2],[89.6,204.8]},{[89.6,89.6],[153.6,204.8]} 和 {[166.4,89.6],[217.6,204.8]}。

选择这些特定的线条和曲线,以便测试不同的渐变和形状。

3. task(f):光

图(f)中的任务是测试漫射点光和 Suzanne 模型的相互作用。 漫射点光在照亮物体时会引起漫反射。 具体地说,该光是在 RGB 上具有相同值的白色,对于每种原色,光的功率为2,光源位于 [3.0,-4.0,-2.0]。 在这个任务中选择一个dfn,因为纹理是各种颜色的,单色光可能会减少纹理上的一些微妙差异。 光线的强度需要精心设计。非常弱的光线不会照亮 Suzanne 模型,模型就会不可见;非常强的光会使一切变白,减少指纹特征。

在 6 台机器的小规模实验中,功率从 0 增加到 255,我们发现当光功率为2时,这些机器之间的像素差异最大。光照位置可随机选择,不会影响特征指纹识别结果。

可以看出,这些任务深入研究了图片渲染引擎的特征,js 没办法直接获取到显卡的设置和驱动,但是通过这种方法,当不同的显卡渲染同一张图片时,因设置不同,渲染出来的图片 hash 也不同。用这种图片 hash 作为特征,其实是从侧面得到机器显卡的特征,同一台机器在不同的浏览器上用到同一个显卡,所以可以看到这些 task 的跨浏览器稳定性都很高,总共 10 余种 task。

Paper中除了这些task,还有一些其他新颖的东西

1. CPU内核数量

这个在之前的设备指纹方案中都是没有使用到的,现代浏览器可以用 navigator .hardware Concurrency 来获取。如果不支持这个方法,则可以利用另一种方式获取,具体来说是,当增加 Web Worker 的数量时,可以监视 payload 的完成时间。当计算量达到一定的程度,Web Woker 完成 payload 的时间显著增加,达到硬件并发的限制,从而判断核心的数量。一些浏览器(如Safari)会将 Web Workers 的可用内核数量减少一半,所以在获取跨浏览器指纹时,我们需要将获取到的核心数量加倍。

此处内容,有兴趣的同学可以看看这篇文章。

2. writing script(language)

这个其实可以理解为语言,但不是当前浏览器所使用的语言,而是系统支持的所有语言,比如中文简体、中文繁体、英语,js 中并没有接口直接获取这种语言,但是这里作者想到了另一种方法,就是在页面中用所有的语言写两个字,如果系统支持该语言,那么就能正常写出来;如果不支持,显示出来的就是方框。通过这种方法获取系统支持的语言。

3. AudioContext

能熟悉设备指纹的同学都知道,AudioContext 在很多设备指纹项目上都用到了。具体来说,现有的指纹识别工作使用 OscillatorNode 产生一个三角波,然后将波传 Dynamics Compressor Node,一个调节声音的信号处理模块,产生压缩效果。 然后,经处理的音频信号通过 Analyser Node 转换为频率域。

该 paper 指出,频域在不同的浏览器中是不同的,这个特征受浏览器的影响,不能完全反应出声卡的特征。也就是说,现有的方案只能识别单浏览器。但是他们发现,频率和峰值的比,在浏览器之间是相对稳定的。

因此,在频率和值的坐标系上创建一个间距很小的列表,并将峰值频率和峰值映射到相应的格子。 如果一个格子包含一个频率或值,我们将格子标记为1,否则为0,这样的格子列表用作跨浏览器特征。

除了波形处理外,还能从音频设备上获取以下信息:采样率、最大通道数、输入数、输出数、通道数、通道数模式和通道解释。

这是现有的设备指纹工作没有用到的又一个跨浏览特征。

在 demo 站中,从我电脑上收集到的信息如下

我跨浏览器测试的结果,的确能够跨浏览器识别,看到这里,由衷的佩服该项目。

04. 查看代码

在我看来,十多个 task,AudioContext,CPU core number,writing script,跨浏览器稳定性都如此之高,做一些机器学习的分析工作,算一算相似性,真的非常容易达到跨浏览器识别的目的。

但我们来看看后端分析代码,如下:

这是代码中获取到的从前端传来的特征,然后就该通过这些特征计算跨浏览器指纹了。

但是,他只是简单的把这些项目加到一起 hash 了一下,就作为跨浏览器指纹。

虽然 demo 站说明了跨浏览器指纹还在开发中,并没有什么复杂的计算,跟 paper 中提到的分析方式完全不同,跟我预期的什么机器学习的方式也不同。

但是,跨浏览器的特征倒是选用了一些稳定性极高的特征,所以直接 hash 也能进行跨浏览器识别。

Paper 中的思路真的很好,所以沿着这个思路,我们还有很多工作要做。

05. 最后说一句

该 paper 中一直提到的 IP 不可信的问题,既然是黑客溯源,对面是黑客,提出这个观点也无可厚非,毕竟大家都会挂 VPN 或者用肉鸡。但是 IP 作为一个重要信息,在设备指纹项目中,还是有用武之地的。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。