如果有一种特殊的指纹,可以和绝大多数人的指纹对上号,大概率破解身边的几乎所有的指纹锁,会发生什么?
你房门的指纹锁,滴滴,破解;
你手机的指纹锁屏,滴滴,破解;
你微信支付宝的指纹支付,滴滴,破解;
……
毛骨悚然。
然而,现在真的有研究者发现了这种“万能指纹”的制造方法,最高破解率76.67%。
纽约大学的研究者们最近用GAN造出了一种“万能指纹”DeepMasterPrints。
在6种不同条件的实验中,DeepMasterPrints最高的破解成功率高达76.67%!几乎是一击必杀,和之前非GAN制造的“万能指纹”几乎无差别。
而提升最为明显的是第二项,用GAN生成的单个“万能指纹”破解成功的概率从6.6%提高到了22.5%(0.1%容错率)。
想象一下,如果指纹门锁大量普及,而小偷用“万能指纹”就可以挨家挨户尝试解锁,就有超过五分之一的大门被打开,简直比撬门更方便。
破解率成功率超76%
需要说明的是,为了便利性,指纹识别系统都会容忍一些“误差”,即允许一定的错误指纹通过认证,如果没有的话,可能你给女朋友剥个皮皮虾把手戳了就解不了锁了。
允许错误的概率越大,则指纹识别越不容易报错,但安全性也会随之降低。
但是容错率也不能太低,否则正确指纹被误判的概率会增大,就会导致你无法解锁自己手机的情况更容易出现。
所以指纹识别系统需要在便利性和安全性之间做出权衡。
研究人员用DeepMasterPrints生成的“万能指纹”分别在三个不同安全级别下进行测试,对不同的场景进行优化。用GAN造了6种“万能指纹”:
安全级别由容错率(false match rate,FMR)区别,分别为:
1)最高安全级别,容错率0.01%
2)中等安全级别,容错率0.1%
3)最低安全级别,容错率1%
每个安全级别下,都有油墨按压式指纹(类似于在纸上按手印)和电容式指纹(手机上常见的指纹识别形式)两种,最后由2个指纹数据集,共生成了6种指纹。
第一行是油墨按压式指纹,第二行是电容式指纹;从左到右容错率依次为0.01%、0.1%、1%
实际检测结果如下:
从表中可以看出,在更高的安全等级下,DeepMasterPrints对电容式指纹的破解概率更高,在系统容错率0.1%时,是油墨按压式指纹的2倍。
而我们使用的大多数手机采用的是电容式指纹识别,其中最高的破解概率达76%,这是否意味着你的手机有容易被破解呢?
实际上,任何手机指纹传感器都不太可能在如此低的安全水平下运行。在中等安全级别下,“万能指纹”能有22%的概率骗过传感器。 研究者认为,这个数字更能反映真实指纹破解攻击的情况。
从手机厂商透露的数据来看,实际上手机的安全级别比容错率0.1%的情况要高得多。
例如,苹果手机的容错率仅为五万分之一,国内手机厂商常用的汇顶科技的指纹识别技术,其容错率仅为0.002%。而“万能指纹”在在容错率为0.01%的情况下破解概率仅为1.11%。
所以,你的手机被“万能指纹”破解的概率远没有76%那么夸张。
你的手机还安全吗?
由于“万能指纹”被单个手机识别的概率并不是太高,黑客想针对你的手机进行破解很难,也不必担心手机修身后被窃取资料,因为手机往往限制使用指纹识别错误的尝试次数。
比如iPhone在多次输入错误密码后,系统会提示输入数字密码,若数字密码再错误将锁定手机。这给破解手机带来了更大的困难。
但是如果把“万能指纹”用在大规模攻击的场景时,总会有一定数量被破解的用户,对于黑客来说仍然具有吸引力,批量攻击几十万手机,总有几个“幸运儿”中奖。
不过研究者表示,GAN制造的“万能指纹”并不能给指纹识别“判死刑”。但厂商们未来需要考虑降低容错率,提高它的安全等级了。
同时,手机厂商们也在考虑用其他生物特征取代指纹用于安全认证,比如刷脸。
去年开始,苹果推出面容ID取代指纹识别,把生物识别技术的安全性又提高了一个等级。苹果声称,他人用面部成功解锁你的iPhone的概率为100万分之一,而之前指纹识别的概率仅为5万分之一。
更像真人指纹
GAN生成的指纹不仅能骗过机器,从肉眼看上去,它也变得更像真实的人类指纹了。
从“万能指纹”图像中可以看出,生成器已经学会了人类指纹的一般结构。但仔细观察,有些区域看起来很脏。
△ 左侧是真实指纹,右侧是GAN生成的假指纹
这很可能是由于数据是从指纹的随机部分生成的,因此生成器目前还很难学习完整指纹的全局形状。
之前也有一些生成假指纹的技术,不过这些技术生成的图像会有锯齿,只能骗过机器,却难以躲过人眼的检查。
另外电容式指纹的结果比油墨按压式指纹看起来更好,图像上的污迹较少,并且脊部连接更好。从总体上来看,生成的电容指纹图像始终优于按压指纹。
“万能指纹”是怎么来的
接下来,我们进入动手操作流程,学习一下制造“万能指纹”的操作流程。
首先,找两个数据集
既然是用GAN来生成,那就需要先找一些数据集作为养料。
作者用到了两个数据集,第一个数据集的名字叫做NIST Special Database 9指纹数据集,这个数据集来自美国国家标准与技术研究院(National Institute of Standards and Technology,NIST),大概相当于秦始皇统一度量衡的那个政府部门,隶属于美国商务部。
这个数据集里的指纹,是5400个人用手指蘸墨水在纸上“画押”生成的,每个人的10根手指都留了指纹,每个指纹都是8位的灰度图像。
很显然,没有人会用无名指、小拇指来解锁手机,于是作者去掉了这些用不到的手指,把剩下的指纹图像缩小到256×256像素。
不过,之后并不会把整个指纹扔进神经网络,而是随机剪成128×128大小的方格进行投喂。
不过很遗憾,量子位发现Special Database 9已经被NIST撤回了,成为了绝版数据集,不能再从官网下载了。
另一个数据集叫做FingerPass DB7,比前一个数据集更有现代感,是用电容传感器采集的,一共包含720个人的指纹数据,每个指纹有144×144像素、500dpi的大小。
“天选之子”万能指纹
有了数据集,我们开始生成指纹。
为了骗过指纹识别系统,大概需要三个步骤:
1)生成各种可能的指纹;
2)把每个生成的指纹去测试一下,看能不能对上号;
3)挑出那些成功匹配的了大量指纹识别器的假指纹。
看起来和海选差不多,生成无数指纹之后,需要从里面挑出那个天赋异禀的,才能晋级下一关。
△ 生成网络结构
作者提出了一个名叫潜变量进化(Latent Variable Evolution,LVE)的方法,首先训练神经网络生成假指纹图像,之后在生成的假指纹中,寻找能匹配最多其他指纹图像的假指纹。
为了训练这个生成网络,需要先用WGAN来进行初步的勾勒。
之后,需要用到CMA-ES(Covariance Matrix Adaptation Evolution Strategy,协方差矩阵适应进化策略),可以搜索训练的神经网络的输入空间,以获得理想的指纹图像,进而完善整个指纹图像,基于古典的“墨水按指纹”方法和现代的“电容传感器”方法采集的两个数据集的生成网络训练方法都一样。
△ 潜变量生成算法
生成网络的输入变量,就是潜变量。当生成网络里已经已经汇集了数百个潜变量的时候,生成结果是百维空间里的一个点。
△ 潜变量生成原理
利用潜变量生成算法,对这百维空间里的点采样,一个点也就意味着一个指纹数据,转化之后,用AI合成的指纹出现了。
不过这些初步的指纹还不足以破解你的手机,需要对这些指纹进行评分,找到破解力MAX的那些,再结合CMA-ES技术,进行下一步的生成转化。
One More Thing
虽然上面生成指纹再破解手机的步骤非常复杂,但如果想破解你手机的指纹,可能非常简单,甚至都用不到神经网络这么高端的东西。
上个月,腾讯玄武实验室的一位名叫马卓的小哥哥就用一张普普通通的白色塑料卡片破解了屏下指纹识别。
这张白色塑料卡片像镜子一样平整,因此,当其他人隔着小卡片按压屏下指纹识别区的时候,卡片把光线反射回去,顺路经过了手机主人上一次按压时留下的指纹油脂。
指纹识别区的光线接收器觉得不错,是主人的指纹的感觉,解锁。
真是低门槛、低成本的破解方法呢。
传送门
最后,照例附上论文地址:
DeepMasterPrints: Generating MasterPrints for Dictionary Attacks via Latent Variable Evolution
作者:Philip Bontrager, Aditi Roy, Julian Togelius, Nasir Memon, Arun Ross
https://arxiv.org/abs/1705.07386
— 完 —
诚挚招聘
量子位正在招募编辑/记者,工作地点在北京中关村。期待有才气、有热情的同学加入我们!相关细节,请在量子位公众号(QbitAI)对话界面,回复“招聘”两个字。
量子位 QbitAI · 头条号签约作者
վ'ᴗ' ի 追踪AI技术和产品新动态