高档小区新来的保安队长老王,以“铁面”闻名。每天站在门禁前,他靠一双肉眼加多年经验,判断来访者是不是小区业主。可最近老王头疼了:有人说认识业主李总,掏出照片对着摄像头晃一晃;有人举着手机,屏幕上播放着李总的视频;更离谱的是,有人戴着硅胶面具,脸型五官几乎能以假乱真。老王发现,光会“看脸”已经不够了——“人脸”可以是活的,也可以是死的。所谓生物识别防伪,就是训练系统像老王一样,不仅认得出“这是谁”,还要分得清“这是真人的脸,不是一张照片、一段视频或一个面具”。 本文要讲的就是这套“防伪绝活”:它叫什么(防伪攻击PAD)、怎么练(活体检测)、怎么考核(评估指标),以及如何应对不断升级的骗术。你将看到,防伪不是单一技术,而是一套从数据采集、活体判断到风险决策的完整安保体系。

岗位关联

对于AI从业者而言,掌握PAD防伪检测与评估体系,是进入金融、安防、智能硬件等刚需安全场景的核心竞争力——这门技术决定你能否让产品真正“认人又认活”。

目录
  1. 可视化演示
  2. 防伪攻击概述
  3. 活体检测技术
  4. PAD检测框架
  5. 2D攻击防御
  6. 3D面具防御
  7. 评估指标体系
  8. 攻防对抗策略
  9. AI 应用场景
  10. Python 演示
  11. 常见误区
  12. 面试题

可视化演示

展示生物识别PAD防伪攻击类型(照片/视频/面具/深度伪造)、活体检测挑战响应与rPPG信号对比、APCER/BPCER/ACER评估指标体系,三模式动态演示真假识别全流程。

本节配有交互动效(进入视口后自动加载,约 3KB)。

攻击类型:呈现攻击威胁分级 浅红为照片攻击(低危) 橙色为视频回放(中危) 红色为3D面具(高危) PAI Species: 2D < 3D < Deepfake ISO/IEC 30107按攻击介质复杂度分级,深度伪造威胁最高

防伪攻击概述

老王最近接到一个棘手的投诉:业主李太太说有人刷“她的脸”进了楼门。监控一查,原来那人拿着一张高清打印照片,在门禁摄像头前一晃,系统竟真的放行了。老王拿着照片左看右看,不得不承认:这照片确实够清晰。但他更担忧的是,骗子会不会升级用手机视频、硅胶面具?他当了二十年保安,第一次感到“眼见不一定为实”。

在生物识别系统中,这种“用假人脸骗过传感器”的行为叫呈现攻击。只要有人向摄像头、指纹仪、虹膜仪等传感器呈现一个仿冒的物理介质——照片、屏幕、面具——试图让系统把它误认为真人的特征,就构成呈现攻击。它的本质不是攻击数据库或网络,而是在“传感器端口”直接造假。根据介质维度,可分为2D攻击(照片、屏幕播放)和3D攻击(面罩、头模等)。

攻击者的动机多种多样:盗刷他人账户、冒名开户、绕过门禁实施犯罪、窃取隐私数据。攻击成功率越高,造成的经济损失和社会影响就越大。攻击风险可以建模为:

老王把这份“风险账”记在心里:防伪不是小事,而是要把李鬼挡在门外、让李逵顺畅回家。理解了威胁有多大,才能理解后面的每一道防线为什么存在。

Risk=P(接受∣伪造呈现)×损失(接受)\displaystyle \text{Risk} = P(\text{接受} \mid \text{伪造呈现}) \times \text{损失}(\text{接受})
这个公式说明:防伪关注“在伪造呈现条件下系统放行的概率”乘以放行后的损失。即使单次攻击成功率不高,一旦被用于大规模批量攻击,风险依然巨大。
  1. 接受|伪造呈现读作“在伪造呈现的条件下系统接受”。这是攻击成功率,衡量系统被照片/视频/面具骗过的概率。
    P(接受∣伪造呈现)P(\text{接受} \mid \text{伪造呈现})
  2. 损失(接受)系统误放行后产生的不良后果,如资金损失、隐私泄露、法律追责。
    损失(接受)\text{损失}(\text{接受})
  3. Risk攻击风险 = 成功率 × 损失。老王的安全思维正是如此:高风险不仅是“容易被骗”,还要考虑“被骗后多惨”。
    Risk=P(接受∣伪造呈现)×损失(接受)\text{Risk} = P(\text{接受} \mid \text{伪造呈现}) \times \text{损失}(\text{接受})

活体检测技术

老王悟出一个道理:光看“像不像”不够,还得判断“活没活”。于是他立下一条新规矩——访客进门必须“配合检查”:眨眼、点头、微笑,再把脸侧过来。真人的动作连贯自然,而照片是死的、屏幕是平的。这套“互动查验”,就是生物识别里的活体检测。

活体检测的核心,是通过采集多种信号判断传感器前是不是一个真实的人。常见的四类技术路径各有侧重:

  • 动作活体:系统随机提示“眨眼”“点头”“张嘴”,检测面部关键点的三维运动是否符合物理规律。真实人脸的运动轨迹平滑,而照片或视频无法实时响应随机指令。
  • 纹理活体:真人的皮肤有毛孔、汗腺、微纹理,而打印照片有墨点颗粒,屏幕有像素栅格。通过局部纹理统计就能区分。
  • 多光谱活体:用近红外、热成像等波段观察,活体皮肤对红外线的吸收、反射特性与纸张、屏幕、硅胶完全不同。
  • 深度学习活体:用卷积神经网络直接学习“活体 vs 假体”的多维特征,免去人工设计特征的繁琐。

现实中通常将多路信号加权融合,得到一个最终活体得分:

活体检测就像老王的“互动查验三步曲”,单靠一招容易被人摸清,组合起来才让骗子难以捉摸。但老王也清楚,活体检测只是PAD体系中的一环,接下来他要把经验写成“安保手册”。

Liveness=α⋅fmotion+β⋅ftexture+γ⋅fspectrum\displaystyle \text{Liveness} = \alpha \cdot f_{\text{motion}} + \beta \cdot f_{\text{texture}} + \gamma \cdot f_{\text{spectrum}}
这个公式把动作、纹理、光谱三个维度的“活体证据”加权相加。三个特征互相补充,一人造假容易,三路同时造假极难。
  1. f_motion动作一致性得分。系统发出随机动作指令后,比较检测到的动作与指令的匹配程度。
    fmotionf_{\text{motion}}
  2. f_texture纹理活体得分。对皮肤区域做高频纹理分析,得分越高越接近真实皮肤。
    ftexturef_{\text{texture}}
  3. f_spectrum多光谱活体得分。利用红外或热成像观察活体特有的透光与散热特征。
    fspectrumf_{\text{spectrum}}
  4. α、β、γ三种信号的权重系数,且三者之和通常归一化为1。老王把“眨眼、摸脸、照手电”三招都用上,才敢放行。
    α+β+γ=1\alpha + \beta + \gamma = 1

PAD检测框架

老王找物业经理批了一本《门禁安全操作手册》,把所有检查步骤、判定标准、应急流程都白纸黑字写下来。从此,门禁不再是靠老王个人经验,而是一套有章可循的体系。这正是PAD(Presentation Attack Detection,呈现攻击检测)的意义。

PAD是生物识别系统中专门负责识别和防御呈现攻击的子系统。国际标准化组织发布了ISO/IEC 30107-3标准,统一了PAD的术语、评估流程和报告格式,让不同厂商的防伪能力有了可比性。一个完整的PAD系统通常包含三个层次:

  • 采集层:同时获取RGB、深度、红外等多模态数据,为分析提供充足素材。
  • 分析层:运行活体检测模型,输出活体得分。
  • 决策层:将活体得分与身份匹配得分联合判断,给出“放行/拒绝”的结论。

PAD的最终决策逻辑可以用一个分段函数描述:

老王的手册成了小区最硬核的门禁制度:仿冒照片和视频被活体关卡拦下,冒名顶替者被特征匹配关卡拦下。但手册只是框架,真正考验人的是“怎么识别纸片人”——也就是2D攻击防御。

Decision={放行,smatch≥tmatch 且 slive≥tlive拒绝,其他\displaystyle \text{Decision} = \begin{cases} \text{放行}, & s_{\text{match}} \ge t_{\text{match}} \text{ 且 } s_{\text{live}} \ge t_{\text{live}} \\ \text{拒绝}, & \text{其他} \end{cases}
这个公式表示“一票否决制”:即使身份匹配成功,如果活体得分不够,依然拒绝。PAD与身份识别是串联关系,而不是可选项。
  1. s_match ≥ t_match身份匹配分数达到阈值,说明“脸对得上”。这是传统人脸识别原本就有的步骤。
    smatch≥tmatchs_{\text{match}} \ge t_{\text{match}}
  2. s_live ≥ t_live活体得分达到阈值,说明“人是活的”。这是PAD模块的输出来源。
    slive≥tlives_{\text{live}} \ge t_{\text{live}}
  3. 且(AND)两个条件必须同时成立。活体检测结果在决策层拥有类似“一票否决”的权力。
    smatch≥tmatch 且 slive≥tlives_{\text{match}} \ge t_{\text{match}} \text{ 且 } s_{\text{live}} \ge t_{\text{live}}

2D攻击防御

老王把对付“纸片人”的经验总结成一句话:平面的破绽太多,怕的是你看不出来。打印照片表面有淡淡的墨点网纹,手机屏幕有闪烁的像素格栅,视频里人物的边缘偶尔会虚化变形。老王开始在门禁装了一台特殊的“纹理放大镜”,专门看这些细节。

在技术上,2D攻击指照片、屏幕、打印海报等平面介质模拟的人脸。它们的共同弱点是:没有真实的三维立体结构,且表面纹理与真人皮肤存在系统性差异。防御策略正是围绕这些差异展开的:

  • 打印照片攻击:纸张的微观粗糙度和墨点分布会在高频纹理上留下规律,与皮肤毫无相似之处。
  • 屏幕重放攻击:手机/平板屏幕有像素排列周期,与镜头采样形成摩尔纹,在频谱上产生尖锐的峰。
  • 翻拍检测:再次翻拍会引入额外的光学畸变和边缘虚化,可通过清晰度一致性检测。
  • 高频纹理分析:用傅里叶变换把人脸图像转换为频谱图,真实皮肤的能量分布自然平滑,而屏幕和纸张会有异常的高频峰值。

高频能量比是判定2D攻击的常用特征之一:

老王笑称这叫“照妖镜”,一照频谱,纸片人立刻现形。但照片视频好对付,真正让老王失眠的是那些“立体的假脸”——3D面具。江湖骗子也在升级装备。

ρ=∑∣F{I(x)}∣high∑∣F{I(x)}∣low\displaystyle \rho = \frac{\sum |\mathcal{F}\{I(\mathbf{x})\}|_{\text{high}}}{\sum |\mathcal{F}\{I(\mathbf{x})\}|_{\text{low}}}
这个公式衡量图像中高频细节与低频轮廓的比值。屏幕像素和纸张墨点会产生不自然的高频能量,从而暴露伪造身份。
  1. I(x)输入的人脸图像,用二维坐标 x 表示每个像素。
    I(x)I(\mathbf{x})
  2. F{I(x)}对图像做二维傅里叶变换,把空间信息变成频率信息。
    F{I(x)}\mathcal{F}\{I(\mathbf{x})\}
  3. |·|取频谱的幅度,表示某一频率成分的强度有多少。
    ∣F{I(x)}∣|\mathcal{F}\{I(\mathbf{x})\}|
  4. ρ高频能量和低频能量的比值。真实皮肤的ρ处于合理范围,而屏幕摩尔纹会让ρ异常偏高。
    ρ=∑∣F{I(x)}∣high∑∣F{I(x)}∣low\rho = \frac{\sum |\mathcal{F}\{I(\mathbf{x})\}|_{\text{high}}}{\sum |\mathcal{F}\{I(\mathbf{x})\}|_{\text{low}}}

3D面具防御

老王遇到过一次真正的“高手”。那人戴着硅胶面具,五官立体、肤色逼真,站在门禁前笑了一下,监控里几乎看不出破绽。老王气得拍桌子:“这哪是纸片人,这是人造人!”他把这次教训写进笔记:要防假脸,不能只看平面,必须摸出“深度”。

3D面具攻击,指用硅胶、树脂、石膏等材料制作立体面具或头模进行欺骗。由于具备真实的三维形态,传统2D活体几乎失效。防御手段必须升级到“认知面部物理本质”的层面:

  • 深度信息检测:3D摄像头获取深度图,将实测深度分布与真人脸统计模型对比。面具是模具压制出的,曲率和凹凸分布与真人脸存在系统性偏差。
  • 面部几何特征:真人脸的关键点距离比、曲面曲率具备生物统计规律,面具在这些细粒度几何量上很难完全复制。
  • 材质反光识别:硅胶与皮肤对光线的漫反射、镜面反射比例不同,红外波段下的反射率差异尤其明显。

深度一致性检验是3D面具防御的核心方法之一:

老王终于明白:防伪不仅靠“看”,还要靠“摸”。深度传感器就是他的“手”。但系统装得再好,老王还面临一个终极问题:到底多大的误判才叫“可以用”?这就要看评估指标了。

DepthDiff=1N∑i=1N(diobs−direal)2\displaystyle \text{DepthDiff} = \frac{1}{N}\sum_{i=1}^{N} \left( d_i^{\text{obs}} - d_i^{\text{real}} \right)^2
这个公式将实测深度与真实人脸深度模板逐点比较,均方误差越大,越可能戴了面具。
  1. d_i_obs第 i 个关键点在实测深度图上的深度值。
    diobsd_i^{\text{obs}}
  2. d_i_real该点真实人脸的期望深度值(由大量真人统计得到)。
    direald_i^{\text{real}}
  3. 平方与求和取平均把每个点的误差平方后平均,得到整体深度误差。误差越大,面具嫌疑越高。
    DepthDiff=1N∑i=1N(diobs−direal)2\text{DepthDiff} = \frac{1}{N}\sum_{i=1}^{N} \left( d_i^{\text{obs}} - d_i^{\text{real}} \right)^2

评估指标体系

老王每月要做一次月度考核:拦截了哪些可疑人、误放了多少骗子、误拦了多少业主。物业经理看了报表问:“老王,你的门禁到底靠不靠谱?有没有一个数字能说明问题?”老王想了想,在黑板上写了两个指标:漏网之鱼和冤枉好人。

在生物识别防伪领域,这两个指标就是APCER和BPCER。它们是ISO/IEC 30107-3标准规定的核心评估指标:

  • APCER(攻击呈现分类错误率):所有攻击呈现中,被系统错误接受为真实样本的比例。“放过了骗子”的概率,越低越安全。
  • BPCER(真实呈现分类错误率):所有真实访问中,被系统错误拒绝为攻击样本的比例。“冤枉了好人”的概率,越低体验越好。

老王在红黑榜上画了两条线:安全线和体验线。他明白,追求绝对安全会得罪所有业主,追求绝对流畅又会放跑骗子——好的门卫永远在找平衡点。但让老王更头疼的是,骗子也在研究他的考核指标。

APCER=1NPA∑i=1NPA1[si≤t]\displaystyle \text{APCER} = \frac{1}{N_{PA}} \sum_{i=1}^{N_{PA}} \mathbb{1}[s_i \le t]
BPCER=1NBF∑i=1NBF1[si>t]\displaystyle \text{BPCER} = \frac{1}{N_{BF}} \sum_{i=1}^{N_{BF}} \mathbb{1}[s_i > t]
两个公式结构相同却指向相反:APCER统计“攻击样本被当成活体通过”的比例,BPCER统计“真实样本被当成攻击拒绝”的比例。二者此消彼长。
  1. s_i第 i 次呈现计算出的活体得分,PAD系统靠它做最终判定。
    sis_i
  2. 1[s_i ≤ t]指示函数,活体得分小于等于阈值记1,否则记0。这是“攻击被判为真实”的计数。
    1[si≤t]\mathbb{1}[s_i \le t]
  3. N_PA攻击呈现样本总数。求和除以N_PA,就是攻击被放行的平均概率。
    NPAN_{PA}
  4. N_BF真实呈现样本总数。BPCER正好把条件反过来,统计“真实被拒”的比例。
    NBFN_{BF}
  5. 权衡关系阈值调高,APCER下降但BPCER上升;调低则反之。两者相等时的点叫EER(等错误率),是系统综合能力的重要参考。DET曲线则画出两者在所有阈值下的权衡轨迹。
    APCER=BPCER\text{APCER} = \text{BPCER}

攻防对抗策略

老王发现,骗子开始研究他的手册了:有人用“对抗眼镜”干扰摄像头,有人用改良硅胶模仿表皮纹理,甚至有人尝试往照片上涂特殊涂料骗过红外检测。老王苦笑道:“我升级,他们也升级,这仗打了鸡血似的停不下来。”

这种攻防对抗是PAD系统面临的常态。攻击者会使用对抗样本——在图像上添加人眼几乎不可见的噪声,让深度学习模型产生错误判断;同时,新型材料与生成式AI也让伪造物越来越逼真。防御方必须采取系统化策略:

  • 对抗训练:在训练集中加入对抗样本,让模型主动学习识别这些极端输入。
  • 多模态融合防御:结合RGB、深度、红外等多种信号,进一步提高伪造门槛。
  • 闭环安全监控:持续收集线上误判样本,定期重训与更新模型,让防御能力跟上攻击进化。

对抗训练的数学模型是一个最小-最大博弈:

老王把这场较量看作“练兵”:今天你出怪招,明天我就练新功。他坚信,门禁安全不是买一套设备就万事大吉,而是永不停止的攻防升级。接下来,让我们看看这套“老王的功夫”在真实世界里怎么落地。

---

min⁡θmax⁡δL(fθ(x+δ),y)\displaystyle \min_{\theta} \max_{\delta} \mathcal{L}(f_\theta(x + \delta), y)
这个公式描述了一场攻防博弈:攻击者尽量制造损失最大的扰动 δ,防御者通过调整模型参数 θ 让最坏情况下的损失也降到最低。
  1. x + δ原始人脸图像 x 叠加微小扰动 δ,得到对抗样本。
    x+δx + \delta
  2. max_δ L攻击者寻找使损失最大的扰动,让模型犯错。
    max⁡δL(fθ(x+δ),y)\max_{\delta} \mathcal{L}(f_\theta(x + \delta), y)
  3. min_θ防御者调整模型参数,使攻击者制造的“最坏情况”损失也尽量小。
    min⁡θmax⁡δL(fθ(x+δ),y)\min_{\theta} \max_{\delta} \mathcal{L}(f_\theta(x + \delta), y)

AI 应用场景

金融APP远程开户

阶段:活体检测 / 身份核验

解决的问题:传统银行开户要求客户到线下网点进行人工核验,流程长、成本高。AI视频活体+PAD技术可以在线上完成“我是真人且是我本人”的双重验证,让用户足不出户完成开户,同时拦截照片、视频、面具等伪造攻击。

具体案例:某银行APP在开户时启动前置摄像头,用户按随机指令完成“眨眼+左右转头”,后台同步做纹理频谱分析与静默活体检测。当系统检测到屏幕摩尔纹时,直接拒绝并提示“请用真人面对准摄像头”;当检测到3D面具时,触发二次红外深度核验。整个流程从原来的3个工作日缩短到3分钟。

机场安检智能闸机

阶段:人证比对 + PAD防伪

解决的问题:机场安检既要快速核验旅客身份,又要防止他人冒用证件。单纯人脸比对无法发现“拿着别人护照、戴着打印脸膜”的攻击,需要PAD模块在秒级内判定“是活人、是本人”。

具体案例:某国际机场部署双目3D摄像头闸机,旅客刷身份证并正视镜头。系统同步完成:证件人脸比对、活体检测、深度防面具检测。当旅客试图用手机屏幕播放他人视频时,闸机红灯亮起并引导人工复核。实测误识率降至百万分之一级别,单人次通行时间从8秒压缩到3秒。

刷脸支付终端

阶段:支付级安全认证 / 多模态融合防御

解决的问题:刷脸支付直接关联资金账户,对安全性和误拒率都有极高要求。支付终端同时部署3D结构光、红外活体和对抗样本防御模块,解决“拿照片付款”“戴面具盗刷”等风险。

具体案例:某线下商超的刷脸支付设备采用“RGB+红外+深度”三摄方案。算法对每次支付做多模态活体评分,用户只需看一眼即可完成支付。当攻击者用3D打印面具尝试盗刷时,系统因深度轮廓偏差过大触发告警并锁定终端,同时将样本回传云端训练模型。

Python 演示

python60 行
"""PAD 纹理活体检测演示:高频特征 + APCER/BPCER 评估"""import numpy as np  def liveness_score(face_gray):    """计算人脸图像的高频/低频能量比"""    gray = (face_gray - face_gray.mean()) / (face_gray.std() + 1e-6)    # 二维快速傅里叶变换    fshift = np.fft.fftshift(np.fft.fft2(gray))    h, w = fshift.shape    # 屏蔽低频中心区域,只统计高频    mask = np.ones((h, w), dtype=bool)    mask[h // 2 - 5:h // 2 + 5, w // 2 - 5:w // 2 + 5] = False    high = np.abs(fshift[mask]).sum()    low = np.abs(fshift[~mask]).sum()    return float(high / (low + 1e-9))  def simulate_faces(n=100):    """模拟真实人脸与屏幕重放攻击样本"""    rng = np.random.default_rng(42)    live, attack = [], []    for _ in range(n):        # 真实人脸:纹理复杂,高频丰富        real_face = rng.normal(size=(64, 64))        live.append(liveness_score(real_face) * (0.9 + 0.2 * rng.random()))        # 屏幕重放攻击:叠加屏幕摩尔纹        fake_face = rng.normal(size=(64, 64)) + \            0.4 * np.sin(np.linspace(0, 30, 64))[:, None]        attack.append(liveness_score(fake_face) * (0.7 + 0.2 * rng.random()))    return np.array(live), np.array(attack)  def compute_apcer_bpcer(live, attack, threshold):    """计算 APCER 与 BPCER"""    apcer = float(np.mean(attack >= threshold))    bpcer = float(np.mean(live < threshold))    return apcer, bpcer  def find_eer(live, attack):    """线性扫描寻找等错误率点"""    lo = min(live.min(), attack.min())    hi = max(live.max(), attack.max())    best = (1.0, 1.0, lo)    for t in np.linspace(lo, hi, 500):        apcer, bpcer = compute_apcer_bpcer(live, attack, t)        if abs(apcer - bpcer) < abs(best[0] - best[1]):            best = (apcer, bpcer, t)    return best  if __name__ == "__main__":    live, attack = simulate_faces()    apcer, bpcer, t_eer = find_eer(live, attack)    print("EER 阈值: %.3f" % t_eer)    print("EER 时刻 APCER=%.2f BPCER=%.2f" % (apcer, bpcer))    for thr in [t_eer * 0.8, t_eer, t_eer * 1.2]:        a, b = compute_apcer_bpcer(live, attack, thr)        print("阈值 %.3f -> APCER=%.2f BPCER=%.2f" % (thr, a, b))
目的:用模拟数据演示2D攻击(屏幕重放)的高频纹理检测原理,并计算APCER/BPCER,帮助你理解活体检测阈值如何影响安全与体验的权衡。
  1. fshift = np.fft.fftshift(np.fft.fft2(gray))做二维傅里叶变换并把低频移到中心,方便后续屏蔽低频
  2. mask[h // 2 - 5:h // 2 + 5, w // 2 - 5:w // 2 + 5] = False屏蔽中心低频区,只统计高频区域的能量
  3. high / (low + 1e-9)计算高频与低频能量比,屏幕摩尔纹会产生异常高频峰
  4. fake_face = rng.normal(size=(64, 64)) + 0.4 * np.sin(...)[:, None]给噪声图像叠加规律条纹,模拟屏幕像素网格
  5. np.mean(attack >= threshold)统计攻击样本中活体得分越过阈值的比例,即APCER
  6. np.mean(live < threshold)统计真实样本中被误判为攻击的比例,即BPCER

常见误区

误区完成了眨眼、张嘴、转头等动作,就证明摄像头前一定是真人。

正解动作活体检测存在一个明显漏洞——攻击者用一段真人预先录制好的视频进行重放,视频里的人也会眨眼、转头。系统只验证动作,不验证动作是否实时发生,就会中招。所以动作活体必须结合随机指令时序、纹理分析和深度信息综合判断。老王若只要求访客“眨眼”,骗子播放一段眨眼视频同样能过关。

为何常见:早期产品大量宣传“动作配合”作为安全卖点,很多人把动作检测等同于活体检测,忽略了多模态融合的必要性。

误区把APCER压到0才是完美的PAD系统,拦截一切攻击就是好。

正解APCER和BPCER是此消彼长的:阈值越严格,攻击越难通过,但真实用户被误拒的概率也越高。银行开户如果频繁把真人拒之门外,用户就会放弃产品。实际工程中,安全团队会依据业务风险设定可接受的BPCER,在这个前提下尽量压低APCER。老王如果把每个业主都拦下盘问半小时,小区会比遭贼还先崩溃。

为何常见:安全人员天然追求“零风险”,却没有平衡产品可用性,低估了误拒对商业目标的伤害。

误区只要上线时测试指标合格,PAD系统就能一直保持安全状态。

正解攻击手段在快速进化——3D打印面具越来越廉价、GAN生成的换脸视频越来越逼真、对抗样本层出不穷。PAD模型必须持续收集线上数据,定期重新训练,并配置误报/误拒案例回流机制。老王的功夫需要天天练,不是贴一张“安全等级A”的证书就高枕无忧。

为何常见:合规认证往往只考核上线时点,让团队产生“交付即完成”的错误惯性,忽视了模型漂移与攻击演化。

误区用了结构光或ToF的3D摄像头,照片和视频就彻底失效,系统无敌了。

正解3D传感器大幅提升了攻击门槛,但高级硅胶面具、3D打印头模同样拥有立体深度,依然可能骗过深度检测。此外,对抗性扰动也能干扰深度模型。3D摄像头是“加强防线”,不是“免死金牌”。老王就算练出摸骨神功,遇到顶级蜡像师的手艺也得再核对一遍指纹。

为何常见:人们习惯对“高科技硬件”产生盲目信任,把硬件先进性等同于系统绝对安全,忽略了攻击者也在升级。

面试题

Q1. 生物识别中的“呈现攻击”是指?

单选题 · easy

  • A.用伪造的图片或面具骗过识别系统← 正确答案
  • B.通过网络攻击数据库窃取特征模板
  • C.对识别系统发起拒绝服务攻击
  • D.恶意软件感染识别设备的操作系统

答案:A。呈现攻击的本质是向传感器呈现伪造的物理介质(照片、视频、面具),选项B是模板数据库攻击,C是DoS攻击,D是设备感染,均不属于呈现攻击范畴。好比老王面对的“李鬼”,拿着一张照片来骗他,而不是攻击他的保安室。

Q2. 下列哪些属于常见的防伪攻击方式?

多选题 · mid

  • A.打印高清照片对准摄像头← 正确答案
  • B.用手机屏幕播放用户视频← 正确答案
  • C.佩戴仿真硅胶面具进行识别← 正确答案
  • D.在网络中拦截并重放通信数据

答案:ABC。A是打印照片攻击,B是屏幕重放攻击,C是3D面具攻击,三者都发生在传感器端口。D是网络层的重放攻击,属于通信安全领域,不是PAD直接处理的“呈现”范畴。老王要防的是他眼前这个“假脸”,而不是Wi-Fi里的数据包。

Q3. 活体检测中的“动作活体检测”通常要求用户做什么?

单选题 · easy

  • A.把手机贴近传感器进行充电
  • B.按照随机指令眨眼或转头← 正确答案
  • C.输入一次性短信验证码
  • D.大声朗读屏幕上显示的字符

答案:B。动作活体的核心是验证“真人按随机指令做出对应的三维动态”,B是标准动作。A是设备操作,C是短信验证,D是文本朗读属于语音维度的验证,均不属于动作活体。老王的“互动查验”就是现场即兴要求,而不是提前知道动作。

Q4. 关于APCER和BPCER的关系,下列说法正确的是?

单选题 · mid

  • A.两者互不影响,可以分别单独优化
  • B.阈值调高时APCER下降但BPCER上升← 正确答案
  • C.阈值调高时APCER和BPCER同时下降
  • D.阈值调高时APCER上升但BPCER下降

答案:B。阈值越高,系统要求活体得分越严格,攻击被放行的概率(APCER)降低,但真实用户被误拒的概率(BPCER)上升,二者是典型的此消彼长关系。老王把门槛抬得越高,李鬼越难进,但李逵被挡门外的概率也越大。

Q5. 关于3D面具攻击的防御,以下哪些说法正确?

多选题 · hard

  • A.深度传感器可感知面具与真脸的立体差异← 正确答案
  • B.红外相机能捕捉真假脸的热辐射不同特征← 正确答案
  • C.皮肤材质反光特征可用于区分硅胶面具← 正确答案
  • D.只要照片分辨率足够高照片就不会被误判

答案:ABC。深度传感器检验立体轮廓,红外相机观察热辐射差异,材质反光分析区分硅胶与皮肤的反射特性,三种手段都能有效对抗3D面具。D恰恰相反,高分辨率照片依然还是2D平面,且高频纹理分析反而更容易暴露其打印特征。老王的“摸骨、测温、看反光”三管齐下,才是正解。

Q6. 对抗训练公式中的含义是什么?

单选题 · hard

  • A.防御者同时优化扰动与模型,使损失降到最小
  • B.防御者先找最大损失再优化模型最小化损失← 正确答案
  • C.攻击者扰动方式固定,防御者只需调整数据
  • D.攻击者优化模型参数让预测损失最大化

答案:B。该式是“最小-最大博弈”:内层 max 模拟攻击者制造最坏情况损失,外层 min 让防御者优化模型抵抗最坏情况。A忽略了对抗双方的对抗性,C没有体现攻击者的动态性,D缺少防御者的优化步骤。正如老王预想“最坏能怎么骗我”再针对性训练。

Q7. 下列哪个指标表示“攻击呈现被错误接受为真人”的概率?

单选题 · easy

  • A.APCER攻击呈现错误接受率← 正确答案
  • B.BPCER真实呈现错误拒绝率
  • C.EER两类错误率相等时的值
  • D.DET展示两类错误的权衡曲线

答案:A。APCER衡量的是“放过了骗子”,BPCER衡量的是“冤枉了好人”,EER是两条错误率曲线交叉点,DET是一张权衡曲线图。老王看报表时最关心的“漏网之鱼”正是APCER。

Q8. PAD呈现攻击检测系统的常见组成模块包括?

多选题 · mid

  • A.多模态数据采集模块(RGB/深度/红外)← 正确答案
  • B.活体特征分析与判定模块← 正确答案
  • C.安全日志与告警记录模块← 正确答案
  • D.用户社交关系网络分析模块

答案:ABC。PAD系统由采集、分析、决策三部分构成,再加上安全日志用于事后审计与模型迭代。用户社交关系网络分析与生物识别防伪无关,属于其他业务系统。老王的手册里只有“看什么、怎么判、怎么记”,没有“查户口”这一条。

Q9. 关于屏幕重放攻击的特点,以下描述正确的是?

单选题 · mid

  • A.屏幕重放不会产生摩尔纹等规律纹理
  • B.屏幕重放攻击会出现摩尔纹与像素网格← 正确答案
  • C.屏幕重放攻击与真人脸无任何差异
  • D.屏幕重放攻击只能用深度传感器识别

答案:B。屏幕像素排列与镜头采样干涉会产生摩尔纹和像素网格,这正是高频纹理分析的检测依据,所以A错误、B正确。C太绝对,D错误——纹理分析同样有效,深度传感器只是附加手段。老王用“放大镜”看屏幕上的脸,总能看到像素点点。

Q10. 为了提升PAD系统的安全性,以下哪些做法是合理的?

多选题 · hard

  • A.引入对抗训练提高模型鲁棒性← 正确答案
  • B.只用单一模态避免系统复杂化
  • C.定期收集线上误报案例进行迭代← 正确答案
  • D.部署多模态融合的活体检测算法← 正确答案

答案:ACD。对抗训练能提升模型对对抗样本的鲁棒性,线上案例回流支持持续迭代,多模态融合提高攻击门槛。B是典型的错误思路——单一模态意味着攻破一种传感器即可全面突破。老王绝不会只靠一双眼睛站岗,他还要戴红外眼镜、备测温枪。