技术宅
在今年的3?15晚会现场,主持人通过一张用户的照片顺利通过手机APP上的人脸验证。这个看似极为安全的人脸识别是怎么被攻破的?今天就让我们来解读其背后隐藏着怎样的技术原理,以及我们该如何更好地保护手机的安全(图1)。
露脸就登录——认识APP上的人脸识别
现在人脸识别几乎已成为手机的标配,很多APP也支持人脸识别技术。比如我们常用的手机支付宝,在登录界面首次点击“刷脸登录”,然后按照APP的要求拿起手机对着摄像头眨眨眼,这样APP会自动读取当前人脸数据。下次需要进入支付宝时,我们只要再对着APP展展眼,顺利识别后就可以无需密码直接登录支付宝了(图2)。
那么人脸识别是怎样实现支付宝的登录?人脸识别实际上是一项分析比较的计算机技术,也是生物特征识别技术的一种,通过对生物体(一般特指人)本身的生物特征来区分生物体个体,从而将其作为安全验证的手段。因为每个人(双胞胎除外)脸部的位置、大小和各个主要面部器官的位置信息基本上都是不同的。这样支持人脸识别的APP会先采集人脸这些信息,然后依据这些信息进行三维建模,进一步提取每个人脸中所蕴涵的身份特征并保存在数据库中。这样需要再次使用人脸识别的时候,APP会将采集到的人脸信息和数据库中已知的人脸数据进行对比,如果一致则完成验证通过(图3)。
照片变人脸的背后——人脸识别怎样被攻破
人脸识别的关键主要是两点认证身份,一是人脸比对,即判断待验证的人脸是不是本人,二是活体检测,即判断待验证的人脸是不是真实有效的。3?15晚会现场使用的是清晰的本人照片,因此人脸比对验证很容易通过,对于活体检测主持人又是通过什么方法破解?
大家知道,支持人脸识别的APP为了确保采集到的是人物的活体信息,APP在采集人脸信息的时候会要求我们进行眨眼、摇头、点头等简单的头部动作,人脸识别的漏洞正是由于这些简单头部动作造成的。如果得到一张静态照片,相信很多学过图像处理技术的朋友都可以轻松实现照片上人脸一些部位的动态处理,比如Faceu就可以实时地在人脸上叠加具有动态效果的贴图和道具,比如可以实现照片人脸的翘嘴、睁眼等操作(图4)。
在3?15晚会现场,后台技术人员使用的正是类似的照片动态处理技术,技术人员通过人脸关键点定位和自动化人脸动效技术,通过将自拍照由静态改为动态,这样可以完成刷脸登录需要的眨眼、微笑等动作。而活体检测的破解,则通过3D建模将现场随机选择的观众照片转变成立体的人脸模型。这样当主持人开启手机APP进行人脸识别检测的时候,技术人员将脸模覆盖到主持人的脸上,结合上述技术手段,使脸模能够跟随主持人脸部动作指挥,依次按照活体检测步骤要求,完成左右转头、摇头、眨眼、微笑等动作,最终骗过人脸识别系统成功进行登录(图5)。
当然不要以为3?15晚会现场技术人员的技术有多厉害,只要有一定的图像处理知识,几乎任何人都可以完成类似的破解。比如在FIT 2017 互联网安全创新大会上,技术人员利用网上下载的两个用来制作3D建模的软件,参照郭富城照片中的脸部特征,技术人员在短时间内就做出了对应的3D建模图像。人脸检测软件对比结果显示,这两个在短时间内制作出来的模型与原来照片的相似度分别高达73.17%和86.71%,这个假照片足以用来破解一般的人脸识别(图6)。
可以看到这次人脸识别被破解,主要原因是由于很多厂商在开发人脸识别技术的时候对活体检测的重视程度明显不足,使用的算法比较简单所致。那么人脸识别该如何提高安全性?针对类似动态照片即可完成验证的Bug,很多人脸识别开发商增加了更多更为先进的活体检测技术。比如在活体检测的时候,增加通过分析人脸皮肤的纹理以及人脸及微小动作带来的光流场的规律变化,这样可以更好地防止视频和面具攻击。
手机安全——请不要仅依赖单一保护手段
随着移动支付的普及,现在手机已经和我们生活、工作紧密关联在一起,手机不仅仅是单纯的通讯工具,里面还保存我们很多的隐私和私人财产。因此手机的安全性也得到越来越多朋友的关注,但是这次3?15晚会让我们看到看似安全的人脸识别技术被瞬间攻破。
因此无论是对于厂商还是个人,如果要更好地保护手机安全就不能只依赖一种即使看上去很安全的保护手段。特别是对于类似手机银行、支付宝这类涉及个人隐私、财产等重要信息的场景下,我们应该有更多的保守手段。比如开发厂商可以使用“人脸登录+指纹支付”这种多重认证方式加以保护,对于个人用户则应可以启用手机本身更多的防护功能;比如指纹识别用户要同时开启强密码保护,并养成不要在微信、微博等网络媒体随意发布自己的位置、照片、家庭住址等隐私信息的良好习惯。只有这样我们的手机和隐私信息才能获得更好的保护。