在网络安全场景中,设备指纹是很常用的。

而做为对抗方,可以在浏览器中使用Canvas Fingerprint Defender之类的插件改变canvas内容这个设备指纹的关键维度,进而干扰设备指纹的正常获取。

本文以实战,演示干扰是如何发生的,以及如何检测应对。

一、设备指纹

首先,来看一下正常状态中,设备指纹是什么样的,如下图:

这是通过使用ShareWAF的设备指纹模块:ShareWAF-WebID,获取的设备指纹,图中标红的md5字符串便是指纹。

简单的几行代码便可以获取到设备指纹。

正常状态下,指纹是可以被获取,并是固定不变的,修改IP,指纹也不变,这正是设备指纹可用于设备身份识别的优势。

二、干扰

本例中使用火狐,从附加组件中搜索并安装Canvas Fingerprint Defender:

当然,实际操作时,不只这一个插件可使用,也有许多同类插件。

安装成功:


验证一下,再次打开刚才的指纹页面:

可以看到,指纹无法被获取,设备指纹的获取被干扰了,而且严重干扰。

三、干扰检测

对代码稍做修改,增加干扰检测:

这样就可以检测出是否获取设备指纹时受到了干扰。

如果有干扰行为,说明一定是非正常访问。因为普通用户,是绝对不会使用指纹干扰插件的。

那么在实际的应用场景中,直接屏蔽这类用户访问即可。