屏幕的宽度和高度,这不会随着缩放级别而变化。
除了屏幕分辨率,我们还发现其他一些属性,如可用、可
用宽度、可用、可用和屏幕定位,在单个和跨浏览器指纹识
别中都很有用。前四个代表浏览器的可用屏幕,不包括系统
区域,如顶部菜单和Mac OS的工具栏。最后一个显示了屏幕
的位置,e。g., 屏幕是横向的还是纵向,屏幕是倒置的。
CPU虚拟核心数。
核心号码可以通过一个名为硬件并发的新浏
览器功能获得,它为Web工作者提供了功能信息。现在,许多
浏览器都支持这种功能,但有些,特别是早期版本的浏览器
,却不支持。如果不支持,则有一个侧通道[1]来获取数字。
具体来说,当增加网络工作人员的数量时,人们可以监控有
效负载的完成时间。当完成时间在一定的web工作水平上显著
增加时,达到了硬件并发的限制,这使得指纹内核数量非常
有用。请注意,一些浏览器,如Safari,会将Web工作者的可
用核心数量减少一半,我们需要将跨浏览器指纹的数量增加
一倍。
发明者知道内核的数量是可指纹打印的[2],这也是他们
称之为硬件并发性而不是内核的原因之一。然而,该功能从
未在浏览器指纹技术中使用或测量。
音频上下文。
利用操作系统和声卡中的音频堆栈,提供了从
信号生成到信号滤波的一堆音频信号处理功能。具体来说,
现有的指纹工作[18]使用振荡节点产生三角波,然后将波输
入动态压缩节点,这是一个信号处理模块,可以抑制响亮的
声音或放大安静的声音,即产生压缩效果。然后,将处理后
的音频信号通过分析器节点转换到频域。
在同一台机器上,频域的波因浏览器不同。然而,我们发
现峰值及其相应的频率在不同的浏览器之间是相对稳定的。
因此,我们在频率轴上创建了一个在频率轴和值轴上都有小
步长的箱子列表,并将峰值频率和值映射到相应的箱子上。
如果一个箱子包含一个频率或值,我们将该箱子标记为1,否
则标记为零:这样的箱子列表作为我们的跨浏览器特性。
除了波处理外,我们还从目标音频设备获得以下信息:采
样率、最大信道计数、输入数、输出数、信道计数、信道计
数模式和信道解释。请注意,据我们所知,没有一个现有的
指纹作品使用这种音频设备信息的浏览器指纹。
字体列表。
AmIInique的测量是基于Flash插件,但是Flash消
失得非常快,这在他们的论文中也被提到和承认。在我们进
行实验的时候,Flash已经很少得到支持
获取字体列表。相反,我们采用nikf基等人提到的侧通道方
法。[36],其中测量某个字符串的宽度和高度,以确定字体
类型。请注意,并不是所有的字体都是跨浏览器指纹打印的
,因为一些字体是特定于web的,并且由浏览器提供,我们需
要应用III-C节中显示的掩码来选择一个子集。另一件值得注
意的事情是,我们知道菲菲尔德等人。[20]为指纹提供了43
种字体的子集,但是他们的工作是基于单浏览器指纹识别,
不适用于我们的跨浏览器场景。
在本小节和下一节中,我们将介绍我们新提出的可指纹打
印特性。我们首先从原子特性开始,通过原子特性,我们是
指浏览器直接向JavaScript公开一个API或一个组件。然后,
我们将引入复合特性,这些特性通常需要多个API和组件来进
行协作。
直线、曲线和抗锯齿。
线和曲线是由Canvas(2D部分)和
WebGL都支持的2D特征。抗混叠是一种计算机图形学技术,用
于通过平滑锯齿来减少混叠。e.,锯齿状或阶梯状线,在计
算机图形模型的单行/曲线对象或边缘。现有的抗混叠算法[4]
有很多,如第一性原理方法、信号处理方法和模码映射方法
,这使得抗混叠可以进行指纹识别。
顶点着色器。
由GPU和驱动程序渲染的顶点着色器,将三维
模型中的每个顶点转换为二维剪辑空间中的坐标。在WebGL中
,顶点着色器可以以3种方式接受数据:来自缓冲区的属性,
始终保持不变的制服,以及来自片段着色器的纹理。在渲染
计算机图形任务时,顶点着色器通常与下面描述的片段着色
器相结合。
碎片着色器。
由GPU和驱动程序渲染的片段着色器,将一个片
段,如由栅格化输出的三角形,处理成一组颜色和单个深度
值。在WebGL中,片段着色器以以下方式获取数据:
制服
在单个绘制调用过程中,对一个片段中的每个像素的
统一值保持不变。因此,制服是不可指纹的特征,为了完
整性,我们在这里列出它。
瓦里宁斯。
变量将值从顶点着色器传递到片段着色器,该
片段着色器在这些值之间进行插值并栅格化片段,i。e.,
绘制片段中的每个像素。插值算法在不同的计算机显卡中
有所不同,因此倒张是可指纹打印的。
纹理。
给定顶点和纹理之间的映射设置,片段着色器会根
据纹理计算每个像素的颜色。由于纹理的分辨率有限,片
段着色器需要根据被目标所包围的纹理中的这些像素为目
标像素进行插值插值。纹理插值算法也不同于不同的图形
卡,使纹理可指纹打印。