图解手机盾的安全设计
从华为的手机盾面世以来,移动终端上的手机盾概念渐渐的火了起来,其实手机盾就是金融盾,也就是俗称的USBkey,是一个很老的概念了!
手机盾是基于手机端TEE+SE结合PKI技术,在安全模块(SE)中实现认证、交易,在安全界面(TUI)实现PIN码输入、交易信息回显和交易确认,达到“所见即所签”的效果。
央行《关于进一步加强银行卡风险管理的通知》(银发〔2016〕170号)要求严格手机客户端软件安全管理,打造可信手机支付执行环境,央行鼓励手机厂商综合应用SE、TEE等新技术提供硬件级安全保护,提升支付敏感信息防护能力和支付交易安全强度。
手机盾安安全等级与银行二代U盾相同,可广泛应用于电子银行、税务、电子商务、电子合约等业务。用户可通过移动端远程下载手机盾,进行身份验证、电子银行开户、转账、缴费、消费、签订电子合约等实名制业务。由于手机盾实现了手机端的数字证书电子签名,整个使用过程受到《电子签名法》保护,具有法律效力和可追溯性,避免了责任与纠纷。
因此我们认为手机盾迎来了发展的春天!
今天我们开始图聊聊手机盾!
从下图我们来了解下移动终端手机盾相关方!
和传统手机盾架构一样,手机盾只不过以前从USBkey的实体变成了手机终端上的一个硬件SE模块。
首先看看架构图:
在REE中的客户端模块,主要是平台提供商服务的管理接口包括应用的下载、安装、更新、删除等功能入口,也是实现证书管理,包括申请、下载、更新及删除等操作的入口。
在TEE中的可信模块,主要是实现用户的PIN码输入及管理;实现交易信息的显示和确认也就是TUI功能,还需要提供SE安全访问通道。
在SE中的安全模块 完成签名密钥的生成和私钥存储,实现交易信息签名功能
和传统金融盾一样,手机盾也有生命周期管理,
生产过程主要是指终端的生产和数据预制过程,这一部分一般由厂商和服务提供商共同完成。甚至还涉及到TEEOS方案商和COS提供商。
使用主要是在手机终端上提供手机盾的入口以及开关操作,类似与U盾插入电脑和拔出。同时手机作为载体必须由管理金融盾的客户端应用。
其他状态如转让、丢失、维护主要是注销操作。
涉及到安全的产品,认证是第一关,传统的UKey比较容易通过,那么现在在移动终端上,也就是手机上实现金融盾就面临这诸多安全问题。
另外,从服务提供商来说也有一系列的服务生命周期管理。
前面我们聊了手机盾的相关方、手机盾的安全架构以及其生命周期。相对的,我们也必须了解服务方生命周期管理!
手机盾服务的完整生命周期包括:服务申请、服务应用安装、服务应用、服务注销等。
首先用户本人通过银行柜台或者网络自助方式(这个目前还没有吧!)像服务提供商一般是银行提出申请,完成金融盾的初始化,初始化首先要下载客户端APP,手机盾在REE侧的服务一般和客户端APP集成在一起。
那么TEE中相对应的TA理论上是需要服务方TAM系统统一下载的,但是目前也许只能提前预置到手机终端中。
SE中的数据初始化,主要是指安全域的初始化,目前也都只是在出厂前预置进去,应用安装也一般提前预置。应该这一块目前做法都是在产线阶段厂商提前做好了。
最后一部分就是证书管理操作了,从服务端来看,证书下载、证书更新、证书删除等功能都是参照成熟的规范。
从移动终端来看,申请手机盾服务最主要的也就是证书下载,在一台具备TEE&SE以及相关预置服务的手机终端上安装了支持金融盾的客户端APP后,第一步就是发起证书下载到手机SE中的操作。
证书更新、证书删除等等也是类似。
(上述描述省略了服务端对本人身份认证的一大波操作和措施)
完成了以上步骤,就可以开始使用手机盾了。
下面我们在来看看应用手机盾的交易认证流程!
首先是,客户端发起交易请求,比如要转账100万,业务系统收到请求后响应回复,可以开始转账了。用户输入完交易信息后,进入TUI界面,现在正在安全支付,请确认信息正确性。点击提交,这个时候在SE中对交易信息进行签名。返回签名信息和证书。依次返回到业务系统中,服务器进行验证,返回转账成功OK。
是不是觉得这个流程特别简单,没错就是这么简单!
1,用户发起转账申请后,终端系统开始切换到TEE中运行TUI,这个时候是安全的可信执行环境,保证了REE端任何系统服务无法窥探你的转账信息,同时由你本人对交易信息进行确认。然后输入密码,正确后,TEE将交易信息提交SE。SE直接与TEE通过SPI口相连接,保证了物理接口上的安全性。
这里面的关键技术是TUI。
2,用户在TUI中点击确认后,这个时候轮到SE出马了。密码和交易信息通过安全通道进入SE的安全应用中,安全应用进行密码验证,验证通过就对交易数据进行签名。
3,客户端将TEE返回上来的数据发送到服务提供方,进行交易验证,验证通过后交易成功。否则返回失败。
可能有人就要问了,要是这手机丢了,密码也被人知道了,怎么办?那我也问下你,传统USBkey掉了,同时密码也被人知道了怎么办!
移动金融盾的安全设计要考虑的是如何在REE中不安全的操作环境里执行安全的金融操作。安全的问题方方面面。手机盾解决自己环节的问题就可以了。哈哈!
那么安全体现在哪里?
安全体现在要通过国家安全认证。
1,安全技术的关键是密码算法,算法的关键在硬件真随机数,在生成对称和非对称秘钥这方面TEE和SE都有着很好的解决方案。
2,安全保护重在隔离和防御,TEE和SE搭配就是在茫茫的世界中,你回到了家,然后锁住了房门,把一个存折放到保险箱中。
3,私钥的存储必须是安全的,可以存在RPMB中,也可以存在SE中。
4,金融盾也可以配合指纹、虹膜、人脸识别等等生物认证方式进行,但是这增加了风险点,还没有听说有这样做的!