专栏名称: 雷峰网
中国智能硬件第一媒体
51好读  ›  专栏  ›  雷峰网

指纹传感器和移动支付安全 | 硬创公开课

雷峰网  · 公众号  · 科技媒体  · 2017-03-04 17:56

正文

雷锋网按:在周一(指纹传感器和假指纹攻防技术)和周三(指纹识别原理和万能指纹攻击猜想)的两期雷锋网公开课上,迈瑞微电子创始人李扬渊分别从指纹识别本身的角度分析了指纹识别的安全,而本期公开课他将从移动支付安全整体的角度来看待指纹识别。

在前两场课程中,李扬渊提到了指纹识别的几种攻击方式,其中之一就是攻击数据库,盗取指纹信息来制作假指纹。在指纹识别已经成为了移动支付技术入口的时代,保护指纹信息安全的重要性不言而喻。


那么在移动支付的安全话题上,我们应该了解哪些问题?Android手机和苹果手机在安全策略上有何差异?雷锋网再次邀请了李扬渊为你继续解答。


嘉宾介绍



李扬渊,苏州迈瑞微电子创始人;指纹识别领域唯一贯通算法、传感器、IC设计的从业者;密码芯片领域最早的开发者之一;基于李扬渊所发明的“C-Q-T”电路,仅成立3周年的苏州迈瑞微电子已成为中国大陆电容式指纹传感器出货量第二名的供应商。


金融信息安全的演进


基于物理隔离网络


我们所看到的银行柜台和ATM机的网络连接模式都是物理隔离网络,也就是银行的专用网络。


物理隔离是最直接的安全防护,它杜绝了监听、中间人等基础攻击手段,几乎不需要建立安全技术。常见报道的某地区或某军区建立的安全网络,大多都是指物理隔离网。


但是这种网络的缺点也很明显,它的终端会受限,仅能在固定的柜台和ATM机办理业务,而且其攻击方式也主要是内部人业务级的攻击,或者说是银行雇员监守自盗,例如行长挪用,柜员盗窃客户帐户,以及ATM机维护人员搬走现金。


基于电话机交换网络


这在POS机进入了各个商户后,POS机对银行来说是一种第三方网络,但考虑到是电信运营商的网络还算可靠。


传统的POS机以电话交换网络连接入银行主网,也就是传统物理电话交换网络,在双方之间建立唯一的物理通道,这是人工切换,隔绝了中间人的攻击,但对监听难以防御。在这之后,还出现了自动切换以及软件切换,软件分组交换网络可能因软件系统漏洞,导致中间人攻击和监听。


再来看看POS机。早期申领POS机的商户都要被严格的审核,而且POS机和人一样有个一一对应的身份,不过我们近几年看到推销的各种POS机都没有没有独有的身份。


严格来讲,作为终端,POS机配还是备了一定安全手段的:


POS的领取受到管控,POS使用者和唯一序列码绑定;

POS在技术手段上实施了一定程度的加密;

POS毕竟是安全设备,提前内置密钥,无须分发,没有分发环节风险;


当然,这不代表POS机就不存在安全风险,比较常见的攻击方式就是刷卡套现,属于业务级而不是技术级的攻击。


基于互联网


互联网引入金融系统,就意味着要在不安全的网络之上建立一个安全的体系,最基本的要求就是终端要有保障。我们看到这类最早的产品是U盾,现在U盾已经从第一代发展到了第三代(支持指纹识别功能),在这过程中U盾的成本增加了,但交易风险在降低。


那么,网上银行终端以互联网接入银行主网存在哪些风险呢?


最致命的就是互联网是不安全的网络:分组转发传输方式决定了物理信道不确定性;数据层面,监听、篡改、阻塞、中间人攻击五花八门;软件系统层面,病毒、木马、远程控制层出不穷。


针对这些问题,可以基于数字证书和安全模块来增强终端的安全:


数字证书体系由非对称密码、对称密码、安全协议构成;

安全模块具备设备唯一码、安全储存器、安全计算环境,等等;


攻击方式:


为抵抗伪造交易,所以U盾从1代发展到2代,增加了现实和确认物理按键;

为抵抗窃取U盾,第3代U盾引入指纹识别;

银行卡受限于成本只相当于1代U盾。


基于移动互联网


移动互联网的支付风险比互联网要大,因为攻击手段增加了,从技术角度上讲,终端的接入入口是变化的,从法律管控来看,终端的身份认定更加困难,所以说移动互联网比固定互联网更加不安全:


假基站攻击、复制sim卡等新攻击手段;

设备不易追踪,犯罪风险更小。


因此,在网络变弱的情况下,对移动设备终端安全也提出了更高的挑战:


移动设备仍然是开放的软件平台;

安全链涉及的环节和厂商更多;

没有成形标准,很难协同一致。


一言以蔽之,移动支付遍地漏洞,攻击方式非常多样化,主要防御手段就是大数据统计风控,以支付宝为例,他们早期的发展主要原因之一就是敢赔,中国的移动支付能走在世界前列靠的就是统计风控,这间接打了技术安全的脸。


手机信息的安全问题


一般情况下,网络越开放,终端安全技术要求越高,所以标准化不如PC的手机,所面临的安全风险也会更高。


一是硬件漏洞和硬件驱动程序作恶防不慎防,举个例子,去年我们一竞争对手用驱动程序检测内置的芯片,而他们就在此做了些动作,当检测到不是他们自己的芯片时,就会影响用户手机的运行速度甚至导致死机。硬件驱动程序在系统的权限级很高,而手机生态对硬件驱动程序没有做很全面的代码审核,尤其是指纹识别。


另外,手机操作系统尤其是碎片化的Android面临的安全风险很高,例如旧版本维护问题,安全补丁及时性问题。


除此之外,恶意软件管控面临巨大挑战,软件分发缺少安全标准和执行,防御性软件式微,手机平台不具备PC平台那样成熟的安全软件行业。


所以,移动支付面临的问题是网络安全以及技术安全的实施条件都变差了,支付平台必须付出很高的代价来完善统计风险控制,但需要注意的是,统计风控也存在一定的局限性,例如用虚假交易来扰乱金融,这是统计风控无法避免的。


Secure Element(SE)


SE是一个符合金融标准的芯片、软件系统标准技术,以U盾芯片和CPU银行卡芯片为例,SE代表了金融信息安全的一系列标准技术,它有以下技术特征:


封闭的软件环境;

与金融信息化系统的兼容性接口;

具备内存保护的安全动态储存器;

防静态破解的安全静态储存器;

密码加速硬核;

真随机数发生器;

防动态功耗分析的机制,等等。


SE有什么作用?


对以移动支付为代表的移动互联网金融而言,SE的作用是衔接终端安全体系和金融安全体系。


苹果就是以标准SE作为两套体系的接口,还兼顾了部分服务端的架设工作,这使苹果公司向金融业的接入方式更灵活更有兼容性;而Android阵营则为SE的价值争论不休,并没有什么作为,仿佛做梦由金融系统主动改变技术标准来适应自己。


SE只针对互联网金融吗?


答案是否定的,央行正在大幅度地提高监管力度,以前松技术监管的好日子是给互联网金融试水成长的;技术监管趋严,互联网金融已经面临与银行业一致的监管标准和安全要求,随时间推进会整体性越来越严格;不安全无金融,金融就是以可控的风险进行资金的流动;安全技术攻防中,互联网金融平台取代传统金融业成为防守方的主力,这本身也是整个金融业的进步。


苹果的安全架构


苹果的安全架构有三个部分:Open OS、Secure Enclave和SE,这是Apple终端安全的三大件,一个都不能少:


Open OS(IOS)用于运行软件,作为兼容性平台先天弱安全,即使IOS也不停暴露致命漏洞;

Secure Enclave用于运行安全软件,拥有独立的片上安全SRAM,不安装第三方软件,是一个封闭系统;

SE作为与金融信息安全系统的标准接口,同时提供安全储存功能,为前两者提供密钥储存等服务;


总结来说,Apple设计理念是硬件隔离风格,这是可证的安全。


Android终端安全


Android没有SE,这使得金融体系要接入的时候安全性不高,它主要的两个组成部分是Open Zone和Secure Zone,但二者的关系设计不合理:


Open Zone(Android)往往不具备独立的Secure Boot Chain,而由运行于Secure Zone的Secure OS引导;


Secure Zone虽然和Secure Enclave都遵从ARM的Trust Zone标准,但配置不一样:


Android阵营使Secure Zone与Android复用DRAM,等于对内存补丁攻击不设防,一旦关键数据地址暴露,则可以被Android运行的软件锁定变量值;部分Android阵营厂商设置的开发规则使Android App成为Secure App的精细调用者,对调度者攻击不设防,可以误导操作组合实现业务层攻击。


所以Android阵营的设计理念是软件防御式的扰乱,而不是硬件隔离,它的安全不可证。


金融安全的游戏规则


金融业玩的就是量化风险,风险越高保险费越高,消费者付出的手续费就越高。


对于安全可证的Apple平台,给予符合其可证安全等级的低费率。苹果在低费率上再加一点点抽水,还能使总费率低于平均水平;


对于安全不可证的Android平台,基本费率以可能的最低安全等级为准。正因为Android手机支付的高费率,Apple Pay才能在盈利的同时拥有费率竞争力。也正是因为这种安全机制的差异,造成了现在Apple Pay和Android赔的局面。


Secure Enclave Vs Secure Zone


Trust Zone


Trust Zone是ARM提出的标准,这个标准强调的是隔离软件和硬件,但具体把安全做到哪一步依赖于完整的Soc设计甚至整机设计。


Apple的Secure Enclave和Android的Secure Zone都基于ARM的Trust Zone。Secure Enclave的storage(静态存储器)、dynamic memory(内存)、boot chain都是独立的,且不安装第三方应用;


Secure Zone的storage、dynamic memory与Android是复用的,靠AP的寄存器配置来分离,一旦Android App获得改写权限,那么就只有指望攻击者不知道该怎么办了。


Apple的指纹子系统


Apple的指纹子系统有3个角色:一是传感器,主要任务是采集指纹数据;第二个是加密芯片,将指纹数据加密传输到AP;第三个是Secure Enclave,与加密芯片在出厂前匹配密钥,指纹图像明文只有在Secure Enclave里才被解密,且由于Secure Enclave使用的SRAM在片内,数据不可取出,掉电即失,苹果拿不到指纹数据是由硬件隔离保证的。


Android的指纹子系统


Android的指纹系统有2个角色:一是传感器,主要是采集指纹数据,明文传输给AP;二是Secure Zone,获得指纹数据明文,并储存在共享DRAM里,并对其进行运算。


但是有个问题,指纹数据传输给Secure Zone还是Open Zone,是由寄存器设置决定的,一旦寄存器被改指纹信息也就被盗取了,这是软隔断思路的局限性。


为什么Android没有SE?


一方面是因为SE本身有成本,另一方面是Android引入了也没什么用:


SE只是一个保险箱,确保保险箱里的东西不被盗窃。这么一个赤身裸体的Android体系作为SE的调度者时,即使保险箱永远不打开,手机永远不丢失,Hacker远程控制你的手机根本不在话下。


Android体系的本质难题


前面比较了苹果和Android的安全,苹果把Secure Enclave作为一个绝对独立的东西,Android则做不到。作为开放性兼容体系,Android阵营在安全上天然不利。


Secure Zone需要安装第三方软件,决定了Secure Zone的安全性是有限的;Secure Zone需要富资源,尤其是存储器资源,导致成本上无法像苹果一样接受片上专用的SRAM。

硬件不行软件上,Secure Zone对Secure OS要求极高,导致对Secure OS的限制也就极大。再把Secure Zone作为安全根显然是不可行的。


如何发挥SE的作用?


Secure Element除了作为金融安全标准件外,还可以为终端提供安全根和安全储存服务:

SE需要自主运行,免受调度者攻击;作为Secure boot chain的第一环节,由SE来校验Secure Zone,Secure Zone再来校验Open Zone,将SE集成于AP的设计需要充分考虑到这一需求;


SE提供密钥安全储存服务,当Secure Zone被攻破的时候,数据还存在SE里。充分活用SoC和SiP技术,杜绝该安全储存服务本身受到链路攻击;


把指纹识别的运算从Secure Zone转移到SE,使指纹识别得以辅助SE成为最后一道关卡,这就构成了下面这个架构图。



这是基于FSE的安全架构,它以Secure Element作为安全中心节点:SE左侧为指纹和金融体系,AP关闭时可以独立支付;SE右侧逐次连接Secure Zone和Open Zone,从左到右实现Trust Boot Chain等安全机制。


这一体系的价值在于可以降低支付的手续费,而且还提高了手机的业务级安全能力。


精彩问答


Q:指纹识别方案现在有没有和支付平台和系统厂商协作?以及怎么承担风险?


A:指纹方案现在只是兼容性接入,没有量化,没有风险评估。不止指纹,安全操作系统提供方也以软件授权,而非安全服务的形式存在。风险只在系统集成那里,毕竟安全链没有闭合,安全没量化,一旦出错,怎么分责任呢?而安全领域的做法是,安全商集体为最终客户背锅。手机还没有达到信息安全标准,目前只有信息安全噱头


Q:Secure Enclave和ARM的TrustZone区别在哪?


A:Secure enclave是基于trust zone标准做了配置和再开发的成果,至于苹果干了什么,并没有通知ARM。事实是,ARM靠苹果用了trust zone给自己打广告,并且把苹果没有使用ARM参考方案给忽略了。


我需要强调一个观念,产业级企业,一家的力量,可以比平行产业整体的力量大很多,中国有企业,缺完整产业,更加没有产业级企业,华为肯定走在最前面,但路还长。


Q:前不久看到印度推出的指纹支付计划,就是指纹支付系统和印度的“生物识别数据库”连接,这种安全性是好是坏?我只要保护一个数据库就可以防住所有人的信息泄露...


A:我只要攻破一个数据库就拿到所有的数据,攻防相长,一切是动态的。鸡蛋放在一个篮子里,不是安全领域人员可以接受的想法。像苹果一样,用机制确保指纹数据拿不出来才是王道,我给出的以SE为中心的架构建议就遵循这个思路。安全技术在于提升天然等级达到需要的等级,如果天然等级足够高,就不必担心技术的发展使得未来得以破解,安全产品的生存期也就提高了,同一维度的攻防,只有杀毒软件才喜欢,升级越频繁,收费越自然。从架构设计来看,不到迫不得已,就不要指望同一维度的防守,尽量比攻击者高一个等级。