您的位置:首页 > 移动开发 > Android开发

“关于Android系统的指纹识别安全性”文章引来的讨论

2016-01-07 17:08 399 查看
本文的目的:真实客观分析来自迈瑞微的这篇文章中提及的各个观点

文章标题:指纹识别离安全支付还有多远?

转发地址:http://news.cecb2b.com/info/20160105/3296661.shtml

原稿地址:2016-01-0517:40 发布者:迈瑞微 来源:集微网(微信公众号)

解读文章

原文:支付宝的IOS版本和Android版本都可以进行指纹支付,却有不同的待遇:在IOS设备认证一枚已注册指纹后,所有注册指纹都可用于支付;而在包括三星和华为的旗舰Android手机上认证一枚指纹后,只能用认证指纹进行支付,其余的注册指纹皆不可使用。

解读:本段给人隐隐的传达了一个信息:Android手机录入的指纹,只有通过认证才能进行支付。不知道想说明是Android系统的易用性不好呢?还是安全性不好? 即便是后者,本段也无解释的很清楚,对于没有用过指纹支付的人来说。我的观点是,iOS系统的手机只有Apple一家,并且闭源,所以在系统软件层面上,指纹从采集,编码,到存储,再到调取和使用,这两条路径上的所有过程都是由闭源AppleiOS系统保障其安全性,接力棒最后一环才到应用软件,比如支付宝。

实际的流程大致为:支付宝向iOS开放出来的指纹验证接口请求指纹验证(至于哪些iOSAPP可以发起请求,都是APP事先向APPLE正式申请过的,APP的请求过程的身份验证也是必须的),iOS验证请求身份后,去收集指纹并对比芯片中预存的指纹来判别,最后把当前指纹的合法性与否告知给APP。可见整个验证过程,APP是不接触指纹数据的。

这里说明一点,iOS和众多Android对指纹录入和管理及使用API的 流程不同,软硬件方案也是不同。所以iOS上的验证步骤和Android不尽相同,这才导致原文这段描述的那样,Android的指纹若要支付需要“额外”认证一个步骤。

我猜测原文开头先埋下伏笔,造成Android指纹支付较iOS不安全的印象,虽然实际确实如此,但这个举例,并不恰当。何况全文来自:迈瑞微,一个指纹识别方案提供商,软文嫌疑逃不了干系;当然了,这类文章大多有芯片方案或者电子行情媒体人自传来…..

原文:更有甚者,微信指纹支付只支持IOS版,百度钱包指纹支付只支持IOS版,Android用户被无视了。

解读:放屁(忍不住….),Andoird并不是被无视了,只是因为Android系统版本碎片化和阵营太乱,推进速度远远落后于iOS系统罢了。但凡有点智商的人都知道,Android市场这么大,怎么可能无视?可见本文的基调太过偏颇了

原文:2015年Black Hat大会上首次公开提出绕开不完全的安全体系对Android智能手机进行系统攻击的概念。其中一种攻击叫Fingerprint
Backdoor,预先注册一枚指纹,并在UI中隐藏该指纹使消费者无法得知其存在,当消费者赋予自己注册的指纹某种权限时,该预置指纹就可能获得该权限。所以支付宝必须对Android手机差别对待,否则就是向Fingerprint
Backdoor攻击打开大门。

这里说下文中提到的Blackhat会议上来自FireEye的Wei Tao和Zhang Yulong提出的finger backdoor,

以下为摘录:

“第四个攻击是fingerprint backdoor。用户在系统的设置中可以查看当前记录的指纹数量,但是这个数量信息并没有保存在TrustZone当中。因此hacker可以留下自己 的指纹作为后门,并且将增加的指纹的数量减掉。比如说在demo中fingerprintservice显示仅保存了一个指纹,但是demo中却成功的用三个指纹解锁了手机屏幕,因为其中两个指纹其实是黑客留下的,为了防止用户发现,黑客将保 存的指纹数修改成了1。”

以上确实是Android的“漏洞”,(不要忘了这需要root才能做到,所以要和越狱的苹果比…),这里实现的细节我并没有深入研究,但我理解这个新增的两个Hack指纹仅仅能够完成Android的屏幕解锁,无法用于安全支付,当然了,解锁了手机已经构成严重威胁。

关于blackhat的fingerprintbackdoor相关信息:

http://sec.chinabyte.com/298/13503298.shtml

http://www.msn.com/en-gb/money/technology/android-fingerprint-readers-are-also-a-security-risk/ar-BBlrWX9

原文:先说Secure Boot Chain,这是基于硬件签名校验以确保操作系统和关键软件不被篡改不被回滚的技术。苹果自己开发CPU自己开发OS,软硬搭配除了干活不累,信息安全也是手到擒来。再看Android,除了原生版本由Google发布,客制版本先经AP商定制再由手机厂商修改发布,kernel里甚至植入第三方供应商编写的驱动代码。此等情形,莫说Secure
Boot,有没有被插入恶意代码都说不清。

解读:这一点实际上就是安全启动,电源上电后,从内置独立安全芯片-》bootrom-》spl/obm(bootloader stage one)-> uboot/xxxboot(bootloaderstage two) -> kernel -》 OS layer + misc APP。甚至包括动态加载的Linux module以及动态加载的nativeapp library or application等等。上述的每一个启动环节层层相扣,前面的来验证后面的binary,至于验证的原理大多基于各类hash算法稍加一些特殊化变化,也有通过硬件IC进行特殊判断的。
再来看看文中说的Android中的安全漏洞吧。Kernel里面植入第三方代码也好,篡改预置APP也好,做到这些的前提是手机提权(BOOTABLE)以及bootloader破解。因为Android阵营太乱了,大大小小厂商来比拼配置和价格,自然投入到安全这块的精力有限,很多Android用户被恶意链接点中安装了很多来源不明的应用程序,这些恶意程序占比很大,而哪些kernel里面植入代码的缺很少一部分,所以原文中的措辞很明显带有歧视Android的色彩,并避重就轻。殊不知,苹果也有被ROOT,即越狱,只是相对来说难度大一些,而且越狱用户较少

原文:再看Secure Element,作为全球公认的金融支付标准配置,到目前为止,支持Android的硬件平台不但没有集成,连专用接口都没留。所以Google干脆推出HCE,虚拟化SE,也是迫于Android生态链刻意弱化SE这个无奈的现实。

解读:首先来看下SE是个什么鬼?SE是Secure Element的缩写,译为安全元件,其标准主要由Globalplatform制定。

另外,明确的是,Google的Andrdoid提供的是平台系统软件,并非最终的产品(虽然也有贴Google牌的手机,但仅仅当做referencephone象征意义的展示Google品牌的作用,以及开发使用,哪些挤破头来代工的厂商并不指望Nexus大卖,更多的是抢先拿到最新版的Google代码来加快自家手机的研发进度,再就是在在世人眼前亮亮自己的LOGO罢了)。所以Google在实现SE方案必然选择一个软件实现方案,也就是本文说的虚拟化SE(这个名字非常糟糕,给人不好的印象,可见撰稿人的心思),而实际上各大手机制造商并非使用这个软件的SE,而是自己定制硬件方案,至于接口呢?凡是有实力定制SE芯片级实现方案的,大多会对AndroidF/W接口也同时定制,所以说,笑话,什么叫弱化SE,而是提供了SE软件实现方案罢了。还有,Globalplatform制定的SE仅仅是个标准,不是实现方案,至于实现的主体在手机还是SIM卡,还是SD卡或者NFC等等,也是不一。

读到这里,已经实在看不下去了,不是说此文太烂,而是这篇软文的目的性太强,措辞过激,不客观公正。说白了,就是给哪些非技术人看后,产生对Android指纹安全性的强烈担忧,从而迫切去看xxx迈瑞微的产品方案,下集《迈瑞微的进击》。可以肯定,原文不是技术工程师写出来的,而是迈瑞微的商务或者技术总监之类的人写的一篇“不错”的推广文章。

原文:最后是Touch ID和NFC Controller。IOS和Android阵营的区别在于,前者有密码部件支持,后者用明文传输。

解读:这句话明显是在耍流氓,原因不说了,把文章看到这里的人的智商都可以理解。

原文:2015年三星Galaxy S5被爆Finger Spy漏洞,用恶意APP控制Fingerprint
Sensor即可直接窃取指纹图像,说明其在信息安全上的幼稚程度。这并非个例,而是Android生态碎片化造就的普遍恶果。

解读:这个问题要这么看,Android系统的发展确实比苹果缓慢,并且开源,注意,开源不代表不安全,开源说明漏洞暴漏的很充分,只要能及时补上漏洞就可以,如同kernel一样。Android 4.x的这个控制设备的漏洞可以让APP来直接控制指纹传感器取走指纹数据,这个确实严重,但是,你拿走了指纹数据有什么用呢?大家的指纹遍地都是杯子,键盘都有,采集后如何使用呢?你需要制作一个加的手指头,贴上仿真皮,才行,有youtube视频展示的。。。。好吧,我承认这个漏洞很严重

原文:一旦发现了新的致命漏洞,苹果和Android阵营分别会做什么呢?苹果的五大金刚当然为自家的Apple Pay负责,第一时间响应,第一时间实施最优的解决策略,可以立即停止旧版本IOS的支付功能推送新版本IOS,甚至把Apple
Pay、iTunes Store和App Store暂时关闭来争取时间。反观要是Android手机底层漏洞威胁到了BAT的支付平台,谁来补救,谁有能力补救,谁来组织补救呢?

解读:原文中采用了诡辩,仔细看看,Apple Pay不用BAT的支付平台?

文章总结,原文观点集中在Apple提供的安全体系除了依托ARMTRUST ZONE运算和储存以外,还有调度和传输两个环节,相比Android缺少后面两者的支持。这里提到的调度和传输两个概念并非什么安全标准中定义的词汇,原文没有详述。我理解的调度,是安全框架的方方面面的流程的范畴,包括系统提供给APP的API,以及安全支付体系的整个流程等等。而传输,一是本地设备内部的传输,而是本地到网络服务器的传输。调度和传输这两个方面设计细节过多,这里不一一展开,归根结底,AppleiOS的发展较早,故成熟度很高,闭源而且开发API较少,加上在新传感器方面,芯片IC设计方面,各种在线服务体系以及移动支付方面的研发投入和时间前置都远远超过Android任何一个厂商,所以目前在指纹移动支付领域属于相对领先的状态。

当然,我觉得原文也有可圈可点的地方,比如指出一个观点,“支付安全和手机安全是有交叠但不等同的两件事”,这是正确的,现在的手机银行和移动支付软件都可以在APP层,不依赖于硬件来架构自己的安全支付实现框架。举个例子,键盘和TSP输入信息容易被窃取,那就弄一个实时随机图案图案来增加安全性,至于指纹这个输入设备,是为了提高安全性和便利性,是可选的,不是必需的。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: