热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

花式破解人脸识别技术的5种方法

一人,一车,一司机,故事还得从一次“网约黑车”的经历说起。车到了,可疑的是,接我的司机、车的信息,


一人,一车,一司机,故事还得从一次“网约黑车”的经历说起 。

车到了,可疑的是,接我的司机、车的信息,与手机客户端上显示的完全不符,但为了赶紧回家,我顾不了太多便上了车,结果司机开了不到一分钟,就回头对我说:“我要取消订单了,等会儿你直接给我钱就行 ”,在我的一再拒绝下,司机说可以把我送回原处,让我重新打个出租车回去。

结果当我再次用该约车软件打车,发现来接我的居然还是那个司机!司机说:“你要么就打个出租车回去,只要你还用这个软件约车,打到的还是我的车!”

当时我就纳闷了,为什么还是你的车?why?

现场展示破解人脸识别技术的5种方法 | FIT 2017专题

原来,附近有个由30多个黑车司机组成的车队,每个司机都有一堆虚假的司机账号,上百个账号由同一个人来统一接单,然后通过电台调度车辆去接人,因此不管你打到哪个号,都会调我去接人,而且就算是别人去接你,也是一样的流程。

于是我感到奇怪,这个 打车APP 上明明使用了人脸识别功能来验证司机信息,为什么这些司机可以继续使用虚假账号?经过一顿软磨硬泡,司机终于透露,虽然人脸识别听起来很牛逼,但是他们有软件可以轻易破解。

没错,人脸识别技术就这么被一群黑车师傅给黑了。

以上故事是在 Freebuf 主办的 FIT 2017 互联网安全创新大会上,来自平安科技的安全研究员高小厨(高亭宇)在一场“关于人脸识别技术应用风险”主题演讲中的一段描述。说完他便现场展示了那个司机用来破解人脸识别技术的软件,一个可以让照片“张口说话”的APP。

现场展示破解人脸识别技术的5种方法 | FIT 2017专题    【请注意两张照片的嘴部】

高小厨说,从那之后他开始琢磨人脸识别技术在实际应用层面的风险,并调研了市面上使用了人脸识别技术的软件,最后的结果出乎自己的预料。


花式破解人脸识别技术

通过分析,他发现市面上大部分使用了人脸识别技术的软件,其识别流程均大致如下:


检测人脸 → 活体检测 → 人脸对比(和之前上传的自拍照或证件照)→ 分析对比结果 → 返回结果(通过或不通过)


据雷锋网(公众号:雷锋网)了解,其中活体检测技术即在人脸识别时要求用户进行眨眼、点头、张嘴等动作,以防止静态图像破解,国内多个知名APP中的人脸识别都采用了该项技术。

高小厨表示,一般的APP开发者不会自己开发人脸识别技术,而是通过第三方的API接口或SDK组件来获得人脸识别功能,基于这个特点,他对人脸识别技术从接入到实际使用过程中的每个关键点进行了分析,最终在多个环节都找到了多个突破点,只要略施小计,就能让人脸识别形同虚设。

现场展示破解人脸识别技术的5种方法 | FIT 2017专题


1.注入应用绕过活体检测

高小厨首先在现场演示了通过注入应用的方式来篡改程序,从而绕过所谓的活体检测功能,使用一张静态照片就可以通过人脸识别。

在注入过程中,他首先在程序中布置一个了断点,通过不断演示人脸识别流程来触发该断点,然后分析并修改程序储存的值,来达到最终的绕过活体检测的效果。

除了注入应用之外,他还发现可以通过查看当前APP的数据结构,修改入参字典来篡改活体检测完成后的图片,从而达到活体检测由任意一个人完成都可以通过的效果,这样他同样可以拿着被攻击者的照片来通过静态人脸识别,然后自己眨眼抬头来破解活体检测。


2.视频攻击绕过活体检测

如果说前面的方法需要一些技术门槛,那这个方法就可以适用于所有小白用户,只需要安装一个能够将人脸照片制作成视频的手机软件,然后在朋友圈、个人空间等地方找到对方的一张正面照片(这个应该不难),输入到软件中,就可以令其开口说话,所谓的活体检测也就不攻自破。

文章开头所说的黑车司机也正是用的这款软件,实现了对APP人脸识别功能的破解。由此雷锋网猜想,如果使用软件合成的视频即能够破解人脸识别活体检测,那么任意一段清晰的正面视频也应该可以用来尝试破解,如果真如此,那些经常在网络上抛头露面的明星、网红、视频直播,一旦使用人脸识别作为密码,那就相当于把密码写在脸上了。


3. 三维建模绕过云端检测

高小厨注意到,除了点头、眨眼,有些人脸识别还会要求用户进行点头、摇头等动作,于是他立刻想到了使用3D建模,构建人脸模型的方式来破解。

通过网上下载的两个用来制作3D建模的软件,参照郭富城照片中的脸部特征,高小厨在短时间内就做出了对应的 3D 建模图像,人脸检测软件对比结果显示,这两个在短时间内制作出来的模型与原来照片的相似度分别高达 73.17 %和 86.71%,可以用来破解一般的人脸识别。

现场展示破解人脸识别技术的5种方法 | FIT 2017专题

【3D人脸模型,以及论发型的重要性】


4.脸部模具绕过云端检测

既然3D建模能成功绕过人脸识别,高小厨立刻想到了使用3D 打印来进行尝试,结果却出乎意料的失败了,在分析了失败原因时,他说:


通常人脸识别会分析脸部的多个特征值,而有的人脸识别技术会在眉毛部位提取多个特征点,而3D打印如果不够精细,打印出来人脸一般会缺少眉部特征。


如果3D打印模型只采用了一种材料,打印出来的人脸模型颜色会过于单一,比如材料是黄色的,眉毛也是黄色的,这会大大降低识别的成功率。


如果3D打印使用的材料不合适,打印出来的模型的脸部细节会很粗糙,需要后期手工打磨。


现场展示破解人脸识别技术的5种方法 | FIT 2017专题

虽然高小厨在现场没有直说,但雷锋网宅客频道编辑已经隐约能读懂他话中的含义:“不是3D打印不行,而是我用的这台3D打印机太辣鸡! 如果换一台更加精密的打印机,破解同样不在话下。”

当他掏出自己用于测试的3D打印模型时,不得不承认这个模型有些惨不忍睹,确实如同高小厨所说,缺乏面部细节、颜色单一,比例似乎也不太对。

现场展示破解人脸识别技术的5种方法 | FIT 2017专题

【用于测试的3D打印模型】


5.利用接口防护不当和各种奇葩的设计缺陷

高小厨发现,部分APP在使用上传人脸图像时,没有对图像数据进行签名,导致图片可以被工具截获然后篡改,而有的则是在数据报文没有加入时间戳,可以通过重放数据报文的方式来实施破解。

在测试某一款应用时,他发现人脸识别的成功与否,是通过返回报文中的一个阈值来决定的,相当于考试中的“及格分数”,如果人脸匹配度超过该阈值就可以通过,不幸的是,该APP 没有对这个返回报文加签名,导致该报文可以被篡改,最终高小厨通过调低该阈值的方式破解了它的人脸识别。

APP风险初步调研

高小厨在现场展示了自己进行的APP风险调研的结果,他发现除了一般的考勤、账号安全APP之外,大量的银行、P2P 金融企业的 APP 已经介入使用了人脸识别技术,其中:


  • 金融行业在使用人脸识别技术时安全性明显高于一般应用;

  • 当人脸识别技术涉及关键业务时,安全防护水准往往更高


比如他在测试国内某P2P金融的客户端时,尝试人脸识别解锁失败数次后,该APP 就检测出了可能存在恶意破解的情况,强制使用银行卡信息、手机短信等其他方式来完成认证。

现场展示破解人脸识别技术的5种方法 | FIT 2017专题

高小厨在现场强调了一点,除了人脸识别技术在手机上本身的应用缺陷之外,许多问题导致的原因都是开发者在调用第三方的人脸识别服务时,没有严格按照一个安全的规范来做,接入流程不够严谨,甚至经常出现为了提高用户体验而舍弃安全性的做法,这样的做法在技术实力不强的小公司十分常见,最终导致的结果就是,让用户把密码写在了自己的脸上。

转自:
http://www.leiphone.com/news/201612/ms2z3J1NIlPTkmQT.html
推荐阅读
  • 本文详细介绍了 Java 网站开发的相关资源和步骤,包括常用网站、开发环境和框架选择。 ... [详细]
  • Cookie学习小结
    Cookie学习小结 ... [详细]
  • 三角测量计算三维坐标的代码_双目三维重建——层次化重建思考
    双目三维重建——层次化重建思考FesianXu2020.7.22atANTFINANCIALintern前言本文是笔者阅读[1]第10章内容的笔记,本文从宏观的角度阐 ... [详细]
  • 深入解析HTTP网络请求API:从基础到进阶的全面指南
    本文全面解析了HTTP网络请求API,从基础到进阶,详细介绍了Android平台上的两种原生API——HttpUrlConnection和HttpClient。这两种API通过对底层Socket的封装,提供了高效、灵活的网络通信功能。文章不仅涵盖了基本的使用方法,还深入探讨了性能优化、错误处理和安全性等方面的高级主题,帮助开发者更好地理解和应用这些工具。 ... [详细]
  • 微信平台通过盛派SDK(sdk.weixin.senparc.com)允许服务号和订阅号使用appId和token读取关注用户的个人信息。然而,这一过程需严格遵守隐私保护和数据安全的相关规定,确保用户数据的安全性和隐私性。 ... [详细]
  • 本文探讨了Android系统中支持的图像格式及其在不同版本中的兼容性问题,重点涵盖了存储、HTTP传输、相机功能以及SparseArray的应用。文章详细分析了从Android 10 (API 29) 到Android 11 的存储规范变化,并讨论了这些变化对图像处理的影响。此外,还介绍了如何通过系统升级和代码优化来解决版本兼容性问题,以确保应用程序在不同Android版本中稳定运行。 ... [详细]
  • 深入解读张鑫旭文章,探索全新CSS属性
    近日,我仔细研读了张鑫旭关于知乎上十个热门问题的文章(http://www.zhangxinxu.com/wordpress/2017/06/ten-questions-about-css/)。这篇文章不仅详细解答了这些常见问题,还深入探讨了一些全新的CSS属性,为前端开发者提供了宝贵的见解和实用技巧。通过张鑫旭的专业解析,读者可以更好地理解和应用这些新特性,提升网页设计和开发的效率与质量。 ... [详细]
  • 在处理大图片时,PHP 常常会遇到内存溢出的问题。为了避免这种情况,建议避免使用 `setImageBitmap`、`setImageResource` 或 `BitmapFactory.decodeResource` 等方法直接加载大图。这些函数在处理大图片时会消耗大量内存,导致应用崩溃。推荐采用分块处理、图像压缩和缓存机制等策略,以优化内存使用并提高处理效率。此外,可以考虑使用第三方库如 ImageMagick 或 GD 库来处理大图片,这些库提供了更高效的内存管理和图像处理功能。 ... [详细]
  • 使用HTML和JavaScript实现视频截图功能
    本文介绍了如何利用HTML和JavaScript实现从远程MP4、本地摄像头及本地上传的MP4文件中截取视频帧,并展示了具体的实现步骤和示例代码。 ... [详细]
  • 在 iOS 设备上使用系统 API 进行视图截图时,有时会遇到图片拼接处出现白边的问题。 ... [详细]
  • 本文详细介绍了 HTML 中 a 标签的 href 属性的多种用法,包括实现超链接、锚点以及调用 JavaScript 方法。通过具体的示例和解释,帮助开发者更好地理解和应用这些技术。 ... [详细]
  • 使用ArcGIS for Java和Flex浏览自定义ArcGIS Server 9.3地图
    本文介绍了如何在Flex应用程序中实现浏览自定义ArcGIS Server 9.3发布的地图。这是一个基本的入门示例,适用于初学者。 ... [详细]
  • IOS Run loop详解
    为什么80%的码农都做不了架构师?转自http:blog.csdn.netztp800201articledetails9240913感谢作者分享Objecti ... [详细]
  • 通过使用七牛云存储服务,本文详细介绍了如何将本地图片高效上传至云端,并实现了内容的便捷管理。借助七牛云的 Python SDK,文章提供了从认证到文件上传的具体代码示例,包括导入必要的库、生成上传凭证以及处理文件路径等关键步骤。此外,还探讨了如何利用七牛云的 URL 安全编码功能,确保数据传输的安全性和可靠性。 ... [详细]
  • 利用PHP SDK高效接入新浪微博热搜榜单功能 ... [详细]
author-avatar
额外的房间
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有