01. 研究背景
在如今,做安全防御已经不仅仅是被动的等着攻击者攻击,作为防御方,有越来越多的方法去反击攻击者,甚至给攻击者一些威胁。
设备指纹技术是一种长久有效的追踪技术,即使攻击者挂再多 vpn,也能够准确识别攻击者身份。
本文借助理海大学发布的 (Cross-)Browser Fingerprinting via OS and Hardware Level Features 文章,写一些个人理解,与原文一并服用,效果更佳。
02. 设备指纹技术介绍
1. 第一代
第一代指纹追踪是 cookie 这类的服务端在客户端设置标志的追踪技术,evercookie 是 cookie 的加强版。
2. 第二代
第二代指纹追踪是设备指纹技术,发现 IP 背后的设备。通过 js 获取操作系统、分辨率、像素比等等一系列信息,传到后台计算,然后归并设备。
唯一性可以保证,但准确率很难完全保证。主要原因就是在跨浏览器指纹识别上面。跨浏览器之后,第二代技术中很重要的 canvas 指纹、浏览器插件指纹都变了,所以很难把跨浏览器指纹归并到同一设备上。
因为设备指纹相同,很大概率上是同一台设备;但是,设备指纹不同时,不一定不是同一台设备。
3. 第三代
第三代指纹追踪技术,则是发现设备后面的人。通过人的习惯、人的行为等等来对人进行归并,此项技术比较复杂。
4. 总 结
第一代、第二代的指纹追踪技术是可以直接通过 js 收集信息的,第三代指纹追踪技术目前可看到的案例是2017年 RSA 创新沙盒的冠军 unifyid 技术。但是在 RSA 的答辩现场我们可以看到,unifyid 在移动端安装软件、收集信息,不仅仅是通过 js。至于利用于 web 上,还任重而道远。
因此,2.5代指纹识别技术,即跨浏览器指纹识别技术。
03. 跨浏览器指纹识别特征
这篇 paper 中的创新点很多,最主要的是深入研究了显卡的渲染方法,图片的哪些部分用到硬件渲染,哪些部分只用到软件渲染,或者跟浏览器有关,paper 中都有深入研究。
着重讲一些比较有意思的特征,文章中用到的所有特征如下: