- 积分
- 9
- 下载分
- 分
- 威望
- 点
- 原创币
- 点
- 下载
- 次
- 上传
- 次
- 注册时间
- 2017-10-31
- 精华
|
2#
发表于 2017-11-4 14:22:32
|
只看该作者
来自: LAN 来自 LAN
我从生物识别安全性的角度来简单回答下这个问题吧:
1.生物特征真的很容易被窃取,不光是你的脸,指纹和虹膜都一样
其实在苹果的 Face ID 发布之后,网上最常流传的段子就是女友要买个东西,让你看一眼手机就支付完成;或者趁你睡着的时候让你解锁;或者有犯罪分子要你解锁手机,让你看一眼手机就解锁了。这当然是笑话。但实际情况是,这种场景和指纹解锁又有多少区别?你睡着以后,女友偷偷把你的手指按压到 Touch ID 上。这个场景不是一样的么?而且在这个问题上,其实 Face ID 还更安全一些,因为闭眼时未必能够实现解锁。
当然这一点其实不重要,生物识别技术的一大尴尬其实在于,生物特征(Biometrics,比如指纹、脸部)是可以被轻易窃取的。就如同题主担心的那样,其实我们的脸每天都暴露在外,而攻击者要对你的脸进行生物特征窃取真的太简单了——偷偷给你拍照不就好了?
大部分人对于黑客绕过脸部识别的认识,还停留在用照片来欺骗生物识别系统的地步,但其实用照片来欺骗人脸识别系统已经行不通了,比如支付宝刷脸就要求你“眨眨眼”“点点头”。去年的 FIT 2017 大会上,有研究人员分享了一个议题,即虽然现在的人脸识别方案要求“活体”检测,比如说刷脸的时候要求你眨眼睛、转头,但这些其实只是小意思,通过某些现成的软件来制作照片动图,就可以实现人脸识别的欺骗;再高端点,通过 3D 建模,或者打造脸模来进行欺骗攻击。
这类攻击其实根本就不罕见。我不确定 Face ID 在技术上是否做到更安全,从苹果发布会的展示来看,至少比传统人脸识别要安全得多,起码一般照片或者平面动图肯定是不行的,比如 Face ID 似乎结合了人脸的 3D 建模,实现立体、准确的五官识别,这样一来,安全性会更好;而且 Face ID 还结合了机器学习,用以增加精度(每天不同时段脸部变化的适应),不过这个似乎是为了增强用户体验的。但我感觉,在应对更高成本的攻击,比如根据窃取到的脸部特征信息,打造一个脸模,可能还是能够攻击成功的。
(有同学评论说发布会上表示脸模攻击是难以实现的,我感觉这个主要还是要看脸模的复杂程度吧...但的确要求更高的攻击成本才行。)
许多媒体在文章中都强调过不止一次:生物特征一旦被窃取,就是终生被窃取——它不像传统密码,被窃取了大不了我再改个新的密码;脸部特征、指纹、虹膜特征被窃取,你是改不了的,生物特征数据具有恒定的特点。
但这里要强调一点:就生物特征容易被窃取的问题,脸部特征和指纹其实是一样的。你的指纹就散落在平常你触摸的东西上面,要取样并不复杂,甚至你所用 iPhone 的 Home 按键上就能直接得到你的指纹。你可能会说,指纹获取的难度要大于脸部特征,这就错了!
Jan Krissler 的主题演讲
2014 年, Chaos Computer Club 的安全研究人员 Jan Krissler 在某次安全大会上做了个主题演讲:他给德国联邦部长随便拍了几张不同角度的照片,那些照片是在部长出席某个新闻会议时拍下的,据说只用了普通的相机。由于照片足够清楚,所以 Krissler 用一款名为 VeriFinger 的软件,就完整重建了部长同学的指纹(参见 YouTube 演示视频 ,或参见其博客 )。很容易想见,暴露在外的生物特征有多容易被窃取。
而且不光是指纹和脸部数据,Krissler 后来还发现,只需收集某个人在网上发布的照片,就能获取他的虹膜特征数据(Hacker Finds a Simple Way to Fool IRIS Biometric Security Systems)。
说到这儿,我想表达的是,窃取脸部数据(而且需要准确到 Face ID 级别精度的脸部建模数据),和窃取指纹、虹膜数据,成本其实也没差多少,所以担心 Face ID 这部分安全性的人,你用指纹识别、虹膜识别其实也需要担心啊!
而且实际上,欺骗 Face ID 这样的脸部识别系统,其成本应该是高于欺骗 Touch ID 的,因为实现欺骗可能需要构建更为复杂的模型和系统才行,毕竟指纹识别只需要活体就可以,其考量维度还是比较少的。
这里针对感兴趣的同学,再推荐去年我编译自卡巴斯基的一篇文章,主体是关于生物识别在 ATM 机上的应用的:看完这篇报告,ATM取款机上的指纹识别你还敢用吗?
2.有关生物识别的 FIDO UAF 标准
这里想特别提一下 FIDO UAF 标准(Universal Authentication Framework,可参见 ARM 的一份白皮书)。其实苹果在 iPhone 5s 推出 Touch ID 的时候就谈到过,用户的指纹数据并不上传到服务器,也不参与传输过程。大部分人大概并不理解这其中的过程,苹果的 Touch ID 是按照 FIDO 联盟提出的标准来搞身份认证的,即指纹数据的确不会参与传输过程。
而且和你们想的不一样,比如你用指纹识别买东西,系统并不是把你的指纹和数据库中的指纹进行匹配,然后确认操作是否成功,因为这么做是不安全的。那么这个过程是怎么实现的呢?
这个所谓的 FIDO UAF 标准,我在先前的专栏文章中也花了一些篇幅去谈,有兴趣的可以去看一看:内置加密芯片的金立M6,真的是“最安全”的手机吗?咱来聊聊TrustZone。比如用指纹实现支付的场景,卖家(也就是购物网站)持有一个公钥,而买家则持有私钥,这两个钥匙(或者叫密钥)是配对的关系。买家用这个私钥就可以用来进行身份认证、买东西了,唯有买家的私钥和卖家的公钥匹配,才能完成支付。一般私钥就存放在买家的手机上,卖家是不知道这个私钥是什么的,而且私钥是加密存储在买家手机上的(所以就算手机被窃取,私钥也几乎不可能被破解出来)。
指纹在这其中扮演什么角色呢?指纹其实只是用来解密私钥的一个因素(指纹也是加密私钥的组成部分)——也就是说,如果你要买东西,要用到这个私钥了,由于私钥是加密存储在手机上的,手机需要指纹数据才可以解密私钥,才能买东西。这个过程中,指纹根本就不会在网上传输,它只是本地获得私钥的一个必要途径而已。
这么做的有几个好处,第一采用这种身份认证方式,就算卖家的服务器被黑,数据全部被窃取了,攻击者顶多就是窃取到服务器上存的公钥,卖家的私钥仍然是安全的;其二,指纹数据由于不在网上传输,所以确保了安全性。这就不像某些公共机构的生物识别身份认证,如某些银行,需要采集你的指纹数据,然后存储到服务器上,这是很不安全的。
回到 iPhone 的 Touch ID,其实用户的指纹数据存储在苹果 A 系列芯片(或者简单看做是处理器)的某个叫做“Secure Enclave”的地方,这个区域和处理器的其它区域是隔离的(苹果的 iOS 安全白皮书对此有一些简单的解释),可以看做是个黑匣子。按照 TEE(Trust Execution Enviroment)的构建理念,苹果处理器内部划分成两个逻辑区块,一部分叫“普通世界”,一部分叫“安全世界”,Secure Enclave 就是这个安全世界,许多密钥、指纹,以及现在的 Face ID 数据就加密存储在这里,普通的 App 甚至系统 App,对这个区域都没有访问权。
这里简单聊聊 Touch ID 指纹的加密存储:Touch ID 指纹识别传感器通过一个串行界面总线与处理器直接连接,而指纹数据就直接转往 Secure Enclave。指纹识别的过程则是传感器首先对你的指纹进行光栅扫描,然后把他临时存储到 Secure Enclave,进行分析之后就会丢弃。为了确保安全性,其实就算是 Touch ID 直接连到处理器,这中间的传输和存储过程都是多重密钥加密的:
Touch ID 指纹识别传感器和处理器的 Secure Enclave 之间有个共享密钥,通过该共享密钥协还要协商出一个会话密钥,然后对指纹进行加密存储。这里的会话密钥交换过程还会采用双方“包装”的 AES 密钥,用提供的随机密钥生成该会话密钥,然后采用 AES-CCM 传输加密。所以其实系统和 App 根本就无法拿到指纹数据。
加上我上面提到按照 FIDO 的标准来实现支付,指纹在整个过程中都不参与网络传输。这其实是当年 Touch ID 实现安全性的关键之一。
去看一看苹果今年的发布会就会发现,Face ID 也存储在 Secure Enclave 中。基本可以确定,Face ID 的支付以及身份认证实现和 Touch ID 是一样的。就这个层面来看,Face ID 安全性还是有保证的。
最后我还是要说一句:如果你觉得 Face ID 不安全,那么其实 Touch ID 也一样不安全,Android 上的虹膜识别也不安全,而且其不安全性的差别等级其实差不多。所以究竟有什么可担心的呢?如果攻击者要窃取你的生物特征数据,难道你的脸和你的指纹,还有高低贵贱之分吗?更何况在这个问题上,人脸识别实现欺骗的成本还要高于指纹识别吧!
还想说一点,有人问:既然不安全,为什么还要用呢?数字世界没有彻底安全的东西,所有系统都可以被破解,只是看成本多少而已。某个系统是否安全的考量标准在于:对该系统进行攻击所需耗费的成本,已经比系统资产价值本身更高;或者对系统进行破解并不具有简单可复制性(比如首次攻击要耗费大量成本,而第二次、第三次攻击仍然需要耗费同样的成本,那么就可以认为攻击不具有简单可复制性)——我们就可以认为这个系统是安全的。 |
|