美文网首页
人脸识别攻防调研

人脸识别攻防调研

作者: 成虫_62d0 | 来源:发表于2021-10-19 19:48 被阅读0次

    PA攻击(Presentation attacks)简介

    攻击人脸识别系统就叫“PA攻击”,或PA。这种攻击有以下几个特点

    Untitled

    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特征的图像必须是灰度图,如果是彩色图,需要先转换成灰度图。 )

    Untitled.png Untitled 1.png

    缺点

    原始算法计算量较大。

    优点

    可以跟其他算法方便的集成联合使用。

    眨眼检测

    眨眼是一种常见的活体检测方案。原理是人类一分钟眨眼在15-30次左右,每次持续时间约为250ms,可以根据录制的视频进行分析检测是否是活体,但是这种方案不太安全,可以使用replay-attack进行破解。

    深度学习:卷积神经网络(Convolutional Neural Network)

    任务响应

    眨眼 摇头 微笑 等等,交互不友好

    3d 相机

    可有效的对抗PA。但是3d模型攻击难以防范。

    光线反射(active flash)

    主动利用屏幕或相机闪光灯,主动进行光源切换(亮度,颜色),光线照射在人脸上,根据图像进行活体检测。下面是一个用例:

    Untitled 2.png

    活体检测方式一般都是结合使用的。任务响应和LBP结合。光线反射和任务响应结合。腾讯优图结合了光线反射以及任务响应,并采用了深度学习。

    优图人脸识别介绍

    一种基于光线反射的强安全性活体检测协议

    论文地址https://arxiv.org/pdf/1801.01949.pdf

    安全性基于俩个要素:

    • 时间
    • 形状

    使用线性回归模型和神经网络分别验证。

    时间验证模型的响应是非伪造的。

    形状验证人脸的立体性和真实性。

    步骤:

    利用不可预测的指令,高效地随机抓取图片序列。合法的响应是立即自动生成的。这样攻击者就要花费大量成本去合成图片来通过人脸认证。然后根据前面的指令和图片来验证人脸识别的有效性。例如根据指令检查图像的反光区域。

    三、论文中的攻击模型

    • 截获并解密随机指令
    • 根据随机指令伪造响应图像
    • 伪造的图像进行人脸识别验证

    四、协议介绍

    A. 协议处理过程

    协议包含8个步骤,架构图如下:

    Untitled 3.png
    • 一、后端生成参数。参数包含一个seed和N,seed控制随机性,N决定使用多少条指令。 前端跟后端通信使用http和tls。
    • 二、前端初始化。前端设备接收到参数后,初始化数据结构,准备录像进行人脸识别,开启相机。
    • 三、前端设备根据参数进行相应响应。 一般有俩种响应,颜色和光线强度。
    • 四、收集响应数据。也就是相机拍照,收集目标人脸数据。
    • 五、重复上面步骤3和步骤4,重复N次。重复是为了收集足够的响应数据以确保协议的鲁棒性和安全性。这样合法的用户得以通过,而攻击者被阻止。
    • 六、时间校验。时间校验是区分真实和伪造响应的最关键因素。
    • 七、人脸校验。利用神经网络校验图像形状和纹理。
    • 八、表情校验。

    B.核心技术

    1)光线反射模型

    Irgb = \{{Ir, Ig, Ib}\}

    上面公式表示一个经过 灰度修正和饱和像素移除处理的颜色值RGB。

    Ic, c ∈ \{r, g, b\}

    上述表示在朗博面上的一个像素点x,经过数值处理后的值。数值处理的公式如下:

    Ic(x) = \int_ Ω E(x, λ)R(x, λ)Sc(λ)dλ, c ∈ \{r, g, b\}

    λ表示光谱波长,Ω表示相机支持的所有可见光的频谱范围。E(x, λ)表示光源光谱功率分布,R(x, λ)表示反射值,Sc(λ)表示传感器响应函数。

    俩个推论:

    1.对于固定光源Ec,点x和点y有如下关系:

    Ic(x) /Ic(y) = Rc(x) /Rc(y) , c ∈ {r, g, b}

    也就是说被相机捕获的俩个不同的点x和y,经过数值处理后的值是跟它们的反射值等比。

    2.对于同一点,我们使用不同的光源Ec1和Ec2,那么:

    Ic1(x) /Ic2(x) = Ec1(x) /Ec2(x) , c1, c2 ∈ {r, g, b}

    也就是说,对于同一个点不同光源,其经数值处理后的值,跟反射值等比。

    上面俩个推论是本协议的基础。公式一可以计算出俩个像素点的相对反射强度比值,反射强度是人脸特征决定的,包括图像纹理和3d形状。我们可以提取这些特征数据给神经网络进行训练,让神经网络知道其是一个真实有效的人脸数据。

    公式二表明给定一个点,改变其光源,其数值会等比变化。另外,光线变化,反射光也会同时变化,这样根据时间检测响应图像是否有延迟,如有延迟则判定为非法伪造。

    2)人脸截取

    处理人脸晃动,进行修正,提取landmark点。

    3)时间验证

    4)人脸验证

    调研总结

    腾讯优图的活体检测基础跟上述论文提供的方式类似,主要是基于随机指令和反射光源以及神经网络。为什么replay attack能成功,猜测可能是优图后端未开启强验证,计算可能要消耗大量cpu资源。

    防御方式:

    如若是我们自己进行人脸识别,活体检测验证,可以采用一种低成本方式—“任务响应”。例如让用户眨眼,张嘴,朗读数字和文字。

    相关文章

      网友评论

          本文标题:人脸识别攻防调研

          本文链接:https://www.haomeiwen.com/subject/wnoaoltx.html