被破解的“人脸识别”
尽管“人脸识别”产品的客服人员声称一般不易被破解,但现实生活中已然出现了破解实例。
破解“人脸识别”的实例,要从一次网约车经历说起。
一名市民通过网约车App下单。很快,车到了,但车辆、司机的信息均与手机客户端上显示的信息不符。为了赶紧回家,这名市民也顾不上太多,就直接上车了。结果,车开出去不到一分钟,司机就扭头对这名市民说要取消订单。尽管这名市民一再拒绝,但司机还是坚持把她送回原处,让她重新打出租车。
没有办法,这名市民只能再次用这款网约车软件叫车,结果发现来接他的还是那名司机。司机说:“你要么就打个出租车回去,只要你还用这个软件约车,叫到的还是我的车。”
这名市民当时就纳闷了,为什么会这样?一番打听后,这名市民才知道,附近有一个由30多名“黑车”司机组成的车队,每名司机都有一堆虚假的司机账号,上百个虚假账号由同一个人来统一接单,然后通过电台调度车辆去接人。因此,不管用户打到哪个号,都会调同一名司机去接人。
了解到这些内情,这名市民更加不解,“这个网约车App上明明使用了‘人脸识别’功能来验证司机信息,为什么这些司机可以使用虚假账号”?经过一番软磨硬泡,那名司机终于透露,“人脸识别”听起来很厉害,但是他们有软件可以轻易破解。
没错,“高大上”的“人脸识别”技术就这样被一群“黑车”师傅给黑了。
以上故事是在Freebuf(国内关注度最高的全球互联网安全媒体平台)主办的FIT2017互联网安全创新大会上,平安科技安全研究员高亭宇在一场“关于人脸识别技术应用风险”主题演讲中的一段描述。
说完这个故事,高亭宇现场展示了那名司机用来破解“人脸识别”技术的软件——一款可以让照片“张口说话”的App。
高亭宇说,从那之后,他开始琢磨“人脸识别”技术在实际应用层面的风险,并调研了市面上使用“人脸识别”技术的软件,最后的结果出乎自己的预料。
通过分析,高亭宇发现,市面上大部分使用了“人脸识别”技术的软件,其识别流程大致相同:检测人脸→活体检测→人脸对比(和之前上传的自拍照或证件照)→分析对比结果→返回结果(通过或不通过)。
据了解,其中“活体检测”技术即在“人脸识别”时要求用户进行眨眼、点头、张嘴等动作,以防止静态图像破解,国内多个知名App中的“人脸识别”都采用了这项技术。
高亭宇说,一般的App开发者不会自己开发“人脸识别”技术,而是通过第三方的API接口或SDK组件来获得“人脸识别”功能,基于这个特点,他对“人脸识别”技术从接入到实际使用过程中的每个关键点进行了分析,最终在多个环节都找到了多个突破点,只要略施小计,就能让“人脸识别”形同虚设。比如,注入应用绕过活体检测,也就是通过注入应用的方式来篡改程序,从而绕过所谓的活体检测功能,使用一张静态照片就可以通过人脸识别。
在采访过程中,甚至有业内人士这样表示,“不是3D打印不行,如果用一台精密的打印机,破解‘人脸识别’同样不在话下”。
“除了一般的考勤、账号安全App之外,大量的银行、P2P金融企业的App已经介入使用了‘人脸识别’技术,其中金融行业在使用‘人脸识别’技术时的安全性明显高于一般应用;当‘人脸识别’技术涉及关键业务时,安全防护水准往往更高。”高亭宇说,比如他在测试国内某P2P金融的客户端时,尝试“人脸识别”解锁失败数次后,该App 就检测出了可能存在恶意破解的情况,强制使用银行卡信息、手机短信等其他方式来完成认证。
高亭宇在现场强调了一点,除了“人脸识别”技术在手机上的应用缺陷之外,许多问题导致的原因都是开发者在调用第三方“人脸识别”服务时,没有严格按照一个安全的规范来做,接入流程不够严谨,甚至经常出现为了提高用户体验而舍弃安全性的做法,这样的做法在技术实力不强的小公司十分常见,最终导致的结果就是,让用户把密码写在了自己的脸上。(记者 赵丽实习生韩朝阳)