PA攻击(Presentation attacks)简介
攻击人脸识别系统就叫“PA攻击”,或PA。这种攻击有以下几个特点
3d攻击不是很常见,2d攻击比较普遍。反pa要求如下:
- 能防2d攻击,无论是静态还是动态
- 不需要用户交互
目标:在最少的时间内达到最高的精度,同时提供友好的用户体验(不需要用户交互),或尽量少的交互。
PAD(presentation attack detection)顶级解决方案
PAD方案详细介绍:
局部二值特征(图像纹理分析)LBP
英文Local Binary Pattern,是一种用来描述图像局部特征的算子,是一种图像纹理分析方法。其有灰度不变性和旋转不变性特征(是不断旋转圆形邻域得到一系列初始定义的 LBP值,取其最小值作为该邻域的 LBP 值)。现在有很多优化过的变种算法,但是它们都有一个共同之处—借助周围邻域像素点的信息,通过某种计算,最终估算得到中心像素位置的新值。
计算方式如下:
原始的LBP算子定义在像素33的邻域内,以邻域中心像素为阈值,相邻的8个像素的灰度值与邻域中心的像素值进行比较,若周围像素大于中心像素值,则该像素点的位置被标记为1,否则为0。这样,33邻域内的8个点经过比较可产生8位二进制数,将这8位二进制数依次排列形成一个二进制数字,这个二进制数字就是中心像素的LBP值。中心像素的LBP值反映了该像素周围区域的纹理信息。 (计算LBP特征的图像必须是灰度图,如果是彩色图,需要先转换成灰度图。 )
缺点
原始算法计算量较大。
优点
可以跟其他算法方便的集成联合使用。
眨眼检测
眨眼是一种常见的活体检测方案。原理是人类一分钟眨眼在15-30次左右,每次持续时间约为250ms,可以根据录制的视频进行分析检测是否是活体,但是这种方案不太安全,可以使用replay-attack进行破解。
深度学习:卷积神经网络(Convolutional Neural Network)
任务响应
眨眼 摇头 微笑 等等,交互不友好
3d 相机
可有效的对抗PA。但是3d模型攻击难以防范。
光线反射(active flash)
主动利用屏幕或相机闪光灯,主动进行光源切换(亮度,颜色),光线照射在人脸上,根据图像进行活体检测。下面是一个用例:
活体检测方式一般都是结合使用的。任务响应和LBP结合。光线反射和任务响应结合。腾讯优图结合了光线反射以及任务响应,并采用了深度学习。
一种基于光线反射的强安全性活体检测协议
论文地址https://arxiv.org/pdf/1801.01949.pdf
安全性基于俩个要素:
- 时间
- 形状
使用线性回归模型和神经网络分别验证。
时间验证模型的响应是非伪造的。
形状验证人脸的立体性和真实性。
步骤:
利用不可预测的指令,高效地随机抓取图片序列。合法的响应是立即自动生成的。这样攻击者就要花费大量成本去合成图片来通过人脸认证。然后根据前面的指令和图片来验证人脸识别的有效性。例如根据指令检查图像的反光区域。
三、论文中的攻击模型
- 截获并解密随机指令
- 根据随机指令伪造响应图像
- 伪造的图像进行人脸识别验证
四、协议介绍
A. 协议处理过程
协议包含8个步骤,架构图如下:
- 一、后端生成参数。参数包含一个seed和N,seed控制随机性,N决定使用多少条指令。 前端跟后端通信使用http和tls。
- 二、前端初始化。前端设备接收到参数后,初始化数据结构,准备录像进行人脸识别,开启相机。
- 三、前端设备根据参数进行相应响应。 一般有俩种响应,颜色和光线强度。
- 四、收集响应数据。也就是相机拍照,收集目标人脸数据。
- 五、重复上面步骤3和步骤4,重复N次。重复是为了收集足够的响应数据以确保协议的鲁棒性和安全性。这样合法的用户得以通过,而攻击者被阻止。
- 六、时间校验。时间校验是区分真实和伪造响应的最关键因素。
- 七、人脸校验。利用神经网络校验图像形状和纹理。
- 八、表情校验。
B.核心技术
1)光线反射模型
上面公式表示一个经过 灰度修正和饱和像素移除处理的颜色值RGB。
上述表示在朗博面上的一个像素点x,经过数值处理后的值。数值处理的公式如下:
λ表示光谱波长,Ω表示相机支持的所有可见光的频谱范围。E(x, λ)表示光源光谱功率分布,R(x, λ)表示反射值,Sc(λ)表示传感器响应函数。
俩个推论:
1.对于固定光源Ec,点x和点y有如下关系:
也就是说被相机捕获的俩个不同的点x和y,经过数值处理后的值是跟它们的反射值等比。
2.对于同一点,我们使用不同的光源Ec1和Ec2,那么:
也就是说,对于同一个点不同光源,其经数值处理后的值,跟反射值等比。
上面俩个推论是本协议的基础。公式一可以计算出俩个像素点的相对反射强度比值,反射强度是人脸特征决定的,包括图像纹理和3d形状。我们可以提取这些特征数据给神经网络进行训练,让神经网络知道其是一个真实有效的人脸数据。
公式二表明给定一个点,改变其光源,其数值会等比变化。另外,光线变化,反射光也会同时变化,这样根据时间检测响应图像是否有延迟,如有延迟则判定为非法伪造。
2)人脸截取
处理人脸晃动,进行修正,提取landmark点。
3)时间验证
4)人脸验证
调研总结
腾讯优图的活体检测基础跟上述论文提供的方式类似,主要是基于随机指令和反射光源以及神经网络。为什么replay attack能成功,猜测可能是优图后端未开启强验证,计算可能要消耗大量cpu资源。
防御方式:
如若是我们自己进行人脸识别,活体检测验证,可以采用一种低成本方式—“任务响应”。例如让用户眨眼,张嘴,朗读数字和文字。