简介:本文从技术视角剖析AI换脸结合静态证件照绕过人脸核验的攻击链路,揭示身份被冒用注册空壳公司、沦为失信被执行人的真实危害,并给出面向开发者的多因子核验、活体检测增强、证件照全生命周期治理与监测预警方案,帮助企业构建可落地的身份安全防线。
过去几年,人脸识别凭借“无感、快捷、易用”的特点,迅速成为远程身份核验的主流手段。开户、注册企业、签署电子合同、办理信贷、租赁房屋……大量原本需要线下柜面办理的业务,被压缩成手机屏幕上的一次“眨眼、张嘴、点头”。
便利的背后,是一个被长期低估的前提假设:摄像头前的那张脸,就是证件上的那个人,也是操作账户的那个人。
当生成式AI把人脸合成与驱动视频的门槛拉到极低之后,这个假设开始系统性地崩塌。攻击者不再需要伪造一张足以骗过人工审核的精美假证,只需要两样东西:
两者结合,就能生成包含点头、眨眼、张嘴、左右转头等动作的短视频。这类视频在部分仅依赖“动作指令 + 单帧比对”的核验流程中,足以被判定为“真人本人”。
要设计防御,先要理解攻击。这条链路可以拆成五个阶段。
证件照的泄露渠道远比想象中分散:历史业务系统中留存的上传件、第三方代办机构缓存、快递面单与复印件、社交平台晒图、被拖库的旧数据等。证件照的特殊性在于,它天然满足“正脸、无遮挡、光照均匀、分辨率较高”这些换脸模型最喜欢的输入条件。
攻击者通常采用“人脸替换 + 表情/姿态驱动”的组合方案:先做人脸检测与关键点对齐,再将源身份的人脸纹理迁移到目标模板视频上,最后按核验流程要求的动作序列渲染输出。整个流程在消费级显卡上即可完成,单条视频的生成成本极低。
这是整条链路的技术核心。活体检测大致分为配合式与非配合式两类:
早期许多实现只校验“动作是否发生”,而不校验“动作是否由真实三维人脸产生”。面对合成视频,动作可以完美复现,但屏幕反射、深度信息、皮肤次表面散射、微小血流变化等物理线索往往缺失。一旦核验流程只看动作序列,不看物理真实性,防线就等于不存在。
攻击者利用合成视频,在需要人脸核验的应用上完成注册、登录或关键操作授权。此时系统会认为“本人到场”,从而放行后续高权限操作。
典型变现路径之一,是身份冒用注册空壳公司:
在整个过程中,真正的犯罪者隐于幕后,而身份被冒用的人要花大量时间、精力去举证“这不是我干的”。技术风险最终会转化为法律风险和信用风险。
很多团队会问:我们已经有了人脸核验,为什么还会被绕过?常见原因有三类。
第一,把“人脸比对”等同于“身份认证”。
人脸比对解决的是“这张脸像不像证件上的人”,它不解决“摄像头前是不是活人”,也不解决“操作者是否被授权”。三者是不同问题,必须组合使用。
第二,活体检测停留在单点、单帧、单模态。
只做一次静默检测,或只依赖RGB单目摄像头,容易被高质量合成内容击穿。缺少时间维度的一致性校验、缺少多模态交叉验证。
第三,身份信息的采集、存储、使用缺少最小化与隔离。
证件照被长期明文留存、跨系统随意调用,一旦某一环泄露,就为整条攻击链提供了入口。
下面给出一套可落地的分层防御思路,按“核验层—数据层—监测层”展开。
核心原则是:不要让人脸成为唯一凭证。
示意性伪代码:
def verify_identity(session):score = 0score += face_match(session.id_photo, session.selfie)score += liveness_check(session.video_frames) # 时序+物理线索score += device_risk(session.device_fingerprint)score += carrier_check(session.phone_number)if score < THRESHOLD_LOW:return REJECTif score < THRESHOLD_HIGH:return MANUAL_REVIEW # 高风险业务强制复核return PASS
AI换脸带来的不是“人脸识别没用了”,而是“只用人脸识别不够用了”。真正安全的身份体系,从来不是某一个模型的胜负,而是多因子、多模态、全链路治理共同构成的纵深防御。对于开发者和企业而言,越早把身份安全当作系统性工程而非单点功能,越能在下一轮攻击面前守住底线。