• 0
  • 2
分享

摘要:当前,人脸识别技术已经在诸多领域取得广泛应用,但其风险也一直为外界关注,尤其是对风险容忍度较低的金融行业来说,用户验证环节如果出现漏洞,就可能造成巨大损失。本文将以一个项目实例出发,分享在测试人脸识别技术时遇到的问题和取得的经验,并对如何测试人工智能提出几点思考。


人脸识别技术测试实例——从一个项目谈起

近期,我司测试部门在承接某项目时,发现了该项目在用户活体验证出现的一个业务安全漏洞。活体验证是该项目服务流程中的一个必经步骤,验证的方式是由用户以手机设备录制阅读随机数字的视频,与后台人脸数据比对后,判断当前操作用户是否为本人。在此环节,测试人员发现,通过在电子设备上进行图片翻拍和视频翻拍,非本人也同样能够通过该验证。随后,项目组联系活体验证技术提供方,调整相关参数,又进行了人脸识别的专项测试,但在该专项测试中仍有一定比例的静态图片攻击成功,骗过模型。鉴于测试结果,项目组经过研究讨论,决定该项目延期投产,集中解决人脸识别模型相关问题。


常用人脸识别/活体检测技术简介

人脸识别是人工智能领域应用较为广泛,发展也相对成熟的技术。静态的图片人脸识别安全性较低,因此多采用活体检测技术,下面对常见的活体检测技术进行介绍。

动作配合式活体检测:算法给出随机动作指令,用户配合完成动作,如点头、眨眼、摇头、唇语等,该类算法当前应用最为广泛。

静默活体检测:顾名思义,相较动作活体检测,静默活体检测不需要用户进行配合动作,而是让用户正对着摄像头几秒即可完成检测,其检测的要素包括了眼皮和眼球的律动、面部肌肉的收缩等。

红外活体检测:即利用红外成像原理进行活体检测,该算法安全性较高,但需要额外配置红外摄像头。

3D结构光活体检测:能够根据反射光线识别3D的人脸结构,安全性较高,但需要深度图像镜头模组配合,目前只在部分高端旗舰手机上有所配置。


常见人脸识别攻击方式简介

在对人脸识别/活体验证环节的测试过程中,测试人员尝试了多种攻击方式,从介质上分类,基本的思路包括图片攻击和视频攻击。

图片攻击:即以静态图片欺骗人脸识别算法,应用于静态图片人脸识别。图片展示介质包括了电子屏幕(考虑不同分辨率,不同成像原理的电子屏幕),纸质图片(彩色和黑白)等。

1.png

图1 基本的照片攻击方式,看看我是谁?

视频攻击:翻拍或制作视频以欺骗人脸识别算法,主要用来对动作配合式活体检测进行攻击。最直接的攻击方式为播放对应客户本人预先根据指令而录制的短视频,但现实中伪造成本较高。随着图像处理技术、人工智能技术的发展,出现了一些根据静态照片生成动态视频的软件,仅需要一张人像照片,就可以生成该人像摇头、点头、眨眼,甚至阅读各种文字口型的视频。

2.png

图2 使用软件生成了彦祖读一串数字的视频,右下为原图

考虑上述两种攻击方式,准备的影像素材通常需要依赖电子屏幕作为介质进行输出,这就可以通过识别摩尔纹等方式进行判别。而单纯的静态图片人脸识别应用场景也较少。下面介绍两类进阶的攻击方式。

实体攻击:该攻击方式的形式较为多元化,主要思路是避免将电子屏幕或者单纯的平面照片作为验证图像展示方式。例如,打印一张人体照片,将照片按照一定弧度弯折,配合活体验证指令活动,对于向眨眼这样的指令,可将照片的眼部图像减掉,非本人的真人在后方配合眨眼。而较为高级的攻击方式还包括了制作3D脸部模型等。


3.png

图3半张脸攻击

4.png

图4扣嘴攻击

应用破解/注入攻击:该攻击方式需要一定技术手段,思路包括埋点监测人脸识别触发流程,修改程序绕过该步骤,或抓包后重组数据报文,将前述图片攻击和视频攻击中准备的影响不通过其他介质转录,直接发送给后台,以及修改报文中的阈值等关键指标后再进行检验等。


浅谈如何测试人工智能软件

人工智能软件的测试,可以分为两个部分:一,对软件的测试。二,对算法的测试。而本次测试的特殊性就在于对算法的测试。

对于测试人员来说,由于当前最广泛应用的深度学习算法(神经网络)是一种黑盒算法,测试人员难以像传统的功能测试一样提出规则性的功能缺陷,且缺陷难以稳定复现,因此测试人员最终所提供的测试结果往往是提供正向及反向用例的通过率,作为参考。

尽管算法的开发人员在建模时就需要输入大量的训练集与测试集,同时也需要评估大量的模型相关指标,但测试工作仍然是不能缺位的:开发人员更注重模型的正向通过率,而对多样性的反向场景设想不足。这就需要测试人员发挥想象力,提供更多反向场景。其意义在于,一方面对于算法较易失效的场景采取更加针对性的模型训练。另一方面,即便是黑盒的神经网络算法,也能够根据反向用例反推模型各个路径的权重,对模型参数调整提供参考。

另外,对于人脸识别算法,通常还要关注模型相似性阈值,即相似度大于X%后判定通过。该值过高,则增加了攻击通过的风险,该值过低,则会造成正向通过率偏低,影响正常用户体验。而采用何种阈值,还需要项目组权衡了风险和收益之后,综合考虑后决定。


版权声明:本文出自51Testing会员投稿,51Testing软件测试网及相关内容提供者拥有内容的全部版权,未经明确的书面许可,任何人或单位不得对本网站内容复制、转载或进行镜像,否则将追究法律责任。

  • 【留下美好印记】
    赞赏支持
登录 后发表评论
+ 关注

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          • 写在前面今天算是在北京最安安稳稳的一个周末,从周五开始陆陆续续和不同的朋友吃了饭,想起来之前落下的文章还没写。等到项目忙起来的话,没有时间来总结,自然又要忘记,姑且先下笔乱诌个提纲出来。从4月中旬下定决心换工作,到6月末如愿入职阿里,这场社招面试持续了三波。由于我下一站毫无商量余地的选择北京,从第一次裸面,到痛定思痛准备之后的第二波,再到坚定不移的第三波,自己简直身心俱疲。不过真的是感觉收获满满,无论是测试相关的测试方法和测试理论,还是认识测试开发的能力要求,都有了一定的积累和努力方向。所以这篇日志大概有以下内容:总结互联网测试/测试开发常见面试内容对测试/测试开发的理解未来的学习规划对有志于...
            2 4 3265
            分享
          • 解决脚本录制问题,可以将Fiddler或Charles转换成对应的Jmeter脚本,实现部分内容的参数化配置,通过修改部分参数或参数化可以对http协议的接口进行自动化测试或简单的压力测试GitHub地址https://github.com/dongpengfei826153155/fiddler2jmeter(python实现)操作步骤1.1 打开Fiddler/Charles录制请求1.1.1 Fiddler录制1.1.2 Charles录制1.2 将需要的HTTP请求导出1.2.1 Fiddler导出为saz格式1.2.1 Charles导出为chlsj格式1.3 执行脚本1.3.1 参...
            0 0 2324
            分享
          •   据不少网友反馈,今日爱奇艺App开始对投屏功能作出限制,之前黄金VIP会员支持最高4K清晰度投屏,现在只能选最低的480P清晰度,要想进行4K投屏必须购买白金VIP会员。  不少网友表示,480P清晰度太低,几乎无法观看。  IT之家从爱奇艺官网了解到,黄金VIP会员连续包年118元/年,电脑、手机、平板可用,黄金VIP会员连续包年198元/年,拥有黄金VIP会员的同时电视也可以使用,现在降低投屏的分辨率后,只能逼着用户选择白金VIP会员了。  值得一提的是,近期优酷更改了会员规则,一个账号仅限登录一台手机,优酷称此举是为保护用户账号安全,打击黑灰产,并且考虑到绝大多数用户的使用习惯,优酷...
            0 0 963
            分享
          •   本文将讨论微服务测试的重要性、挑战和最佳实践。  微服务架构是一种越来越流行的构建复杂分布式系统的方法。在此体系结构中,大型应用程序被分成较小的、独立的服务,这些服务通过网络相互通信。微服务测试是确保这些服务无缝协同工作的关键步骤。本文将讨论微服务测试的重要性、挑战和最佳实践。  微服务测试的重要性  测试微服务对于确保系统按预期工作至关重要。与传统的单体应用程序不同,微服务由通过网络相互通信的小型独立服务组成。因此,微服务测试比测试传统应用程序更复杂、更具挑战性。尽管如此,测试对于检测系统中的问题和错误、提高性能并确保微服务正确有效地工作至关重要。  微服务测试对于确保基于微服务的应用程...
            0 0 868
            分享
          • Xpath常用的定位方法相信做过selenium UI自动化的朋友都知道,工作中大部分的元素定位都是使用xpath进行定位,所以xpath是UI自动化工作中非常重要的一个环节,所以我单独整理出来一篇博客出来~~希望对大家有帮助~相对定位相对定位是两个杠表示“//”,相对路径易维护绝对路径绝对定位用一个杠“/”, 绝对路径一个层级变化所有空间都有变化/html/body/div[1]/section/section/main/div[2]/div[2]/div[1]/div[2]/button[1]/spanlast()方法当标签存在多个相同的时候,可以使用xpath中的last()方法,定位到...
            2 2 11396
            分享
      • 51testing软件测试圈微信