自从苹果推出 移动支付系统Apple Pay后它的安全受关注,那么我们要怎么做才能更有效提高苹果Apple Pay安全性?毕竟这是关乎大家钱包的事情!
以下便是一些用户比较关心的Apple Pay最常见问题的详细解答:
问题1:Apple Pay是什么,包含哪些必备组件?
Apple Pay是公司的移动支付和数字钱包产品,结合了令牌化和NFC技术,使得用户可以完成应用内(in-app)和非接(contactless) 移动支付。目前只有最新一代产品(iPhone 6/6+等)对该功能有支持。不同于公司更早时推出的iBeacon产品,Apple Pay不需要专用的线下非接POS终端,在现有的POS终端上就可以完成支付。 Apple Pay在2014年9月份正式宣布,10月发布支持该服务的系统更新,目前仅在美国推广使用。
Apple Pay是一个整合了各种技术以及资源的产品,其构成比较复杂,核心组件包括:
- Secure Element
简称SE,就是我们常说的安全元件。是防物理攻击的电子元件,其内部包含微处理器、存储以及加解密 硬件等,可独立使用或嵌入到其他设备中提供高安全服务。一般来说,SE是普通人所能接触到的最高安全保证级别的硬件/软件设备了。
Pay使用的即是eSE这种形式,具体来说就 Pay使用的是经过工业标准认证的、运行Java卡平台(JCP,Java Card Platform)的、兼容金融行业电子交易要求的安全元件。SE是 Pay安全保障的核心,本质上来说,所有和Pay相关的支付处理和安全保障都是由SE负责的,其他组件只是起到辅助作用。
- NFC controller
NFC控制器,在 Pay的场景中,NFC控制器相当于一个路由器,它同三个不同外部实体连接:外部近场设备(例如:销售终端POS,Point-Of-Sale)、应用处 理器(AP,Application Processor)以及,进而形成两个通信通道:应用处理器到的通信通道,以及POS到之间的通信通道。
- Passbook
是在Pay产品推出之前就已经存在的服务, Pay推出之后,对其功能进行了扩充,使得其可以为 Pay添加和管理信用卡以及借记卡,当然还可以查看已添加的卡的信息、银行的隐私策略以及最近交易明细等等。对 Pay来说,相当于的管理客户端,中添加和删除信用卡或借记卡信息都可以经由服务进行。
- Touch ID
也就是iPhone的指纹识别服务,其目的在于利用指纹识别使得访问设备更安全、更快速和更容易。不是对设备安全密码的替换,而是让用户可以使用复杂的设备密码,同时不损失便利性。换句话说,用户可以使用复杂的密码来保护设备,同时还可以使用来方便的访问设备。
- Secure Enclave
是iOS设备内部的安全执行环境,可以用来进行一些敏感信息的处理。例如:的指纹成像传感器获取的数据需要传递到来进行实际的指纹识别过程。对于 Pay来说,负责管理认证过程和使得支付交易可以进行。
- Pay Servers
Pay服务器,其用来管理中的信用卡和借记卡的状态,以及存储在中特定于设备的账户信息。 Pay服务器同时同设备以及支付网络(Payment Network)中的服务器进行通信,对于应用内支付来说, Pay服务器还负责使用特定于商户的密钥,对 Pay产生的支付凭据(Payment Credentials)进行加密,然后将其发送到实际的商户服务器进行支付处理。
问题2:是否就是ARM TrustZone?
A7以及后续系列的应用处理器封装在一起的协处理器,它有自己的安全引导过程和个性化的软件更新过程,并且同iOS系统所在的应用处理器分离。 使用加密(使用临时产生的密钥加密)的物理内存(和应用处理器共享的物理内存的一部分空间)进行业务处理,并且有自己的硬件随机数产生器。同应用处理器之间通过中断驱动的mailbox以及共享内存来进行通信,对外提供数据保护密钥管理相关的所有密码学服务。
ARM TrustZone技术本质上是一种虚拟化技术,通过将处理器状态分为安全和非安全状态,并且配合其他总线以及外设上的安全属性来实现遍布整个硬件系统的 安全。同一样,ARM TrustZone也有自己的安全引导过程以及个性化的软件更新过程,也有自己的硬件随机数产生器(以及其他类似的安全外设),并且同应用处理器之间也是 通过中断驱动的Monitor模式以及共享内存来进行通信。可以看出,所提供的安全特性并没有超出ARM TrustZone技术的范围。
不过就的官方信息来说,从未提过就是ARM TrustZone安全扩展技术的实现(虽然根据官方文档中关于几个安全通信通道的描述来看,很可能是ARM TrustZone技术的一种实现),因此我们还是无法断定究竟是独立的协处理器还是应用处理器的一种运行状态(两种架构都可以提供必须的安全特性),这个有待于公布更多的的实现细节,就目前而言,可以得出的结论是:Apple Pay所提供的安全特性,使用ARM TrustZone技术同样可以实现。
问题3:Apple Pay如何保证Secure Enclave和Touch ID之间的通信安全?
我们知道Touch ID成像阵列获取的指纹数据需要交由Secure Enclave进行实际的匹配处理,而在Apple Pay的实现中,Touch ID传感器通过串行外设接口总线(Serial Peripheral Interface Bus)同应用处理器进行连接,然后再连接到Secure Enclave,换句话说,指纹传感器获取的指纹成像数据需要经由应用处理器中转,这就带来了安全隐患:恶意程序可以截获Touch ID传感器产生的数据。
Apple Pay通过简单的方式实现了指纹数据的安全传输:首先Touch ID传感器和Secure Enclave会预置一个共享密钥,然后利用该共享密钥协商一个会话密钥,再用协商获得的会话密钥使用AES-CCM算法对传输的数据进行加密,这样可以 确保应用处理器无法读取指纹数据,保证了整个指纹识别过程的安全。
问题4:Apple Pay如何保证Secure Enclave和Secure Element之间的通信安全?
前面介绍NFC控制器的时候已经提到,Secure Enclave和Secure Element之间的物理通信通道需要经过NFC控制器中转,而两者之间是没有直接的物理连接的,具体就是Secure Element同NFC控制器连接,然后NFC控制器同应用处理器连接,而没有提到NFC控制器如何同Secure Enclave连接(Apple的官方文档如此说,这里可以看出Secure Enclave很有可能不是一个独立的协处理器),那么既然Secure Element和Secure Enclave之间需要经由应用处理器中转,那么也就必须要考虑到通信安全问题。
实现方式同Touch ID和Secure Enclave通信的过程类似,也是通过共享配对密钥的方式来对通信内容加密,不过因为涉及到了Secure Element,所以共享配对密钥的预置比较复杂一些,具体就是:共享配对密钥是在生产阶段预置的,而且该密钥由Secure Enclave利用自己的UID密钥和Secure Element的唯一标识作为输入产生,然后在工厂内安全的传输到外部硬件安全模块(HSM,Hardware Security Module),再注入到Secure Element中。实际使用过程中,Secure Element和Secure Enclave之间的通信使用基于AES的密码学算法进行加密,而且还使用了密码学机制防止重放攻击(replay attacks)。
问题5:Apple Pay如何保证Secure Element和POS之间的通信安全?
严格来说,传统意义上Secure Element和POS终端之间的通信是不需要保证安全的,因为两者必须靠近才能发生通信,实际上相当于认证了人和卡的存在。而对于Apple Pay来说,由于应用处理器也会参与其中的某些步骤,因此情况稍微有些复杂,Apple Pay需要有3个附加的保障机制来确保非接触式交易的安全:
- 首先:Apple Pay确保只有经过用户的授权,例如:通过了指纹识别或输入了设备密码,非接触式交易才可能发生,否则装备了Apple Pay的设备只要处于RF通信场中,就可能在用户无意识的情况下发生交易。
- 其次:Apple Pay必须确保只有来自外部非接触式POS终端的支付请求才能被标识为非接触式交易,这主要和交易费率相关(后面会对其进行说明),通过外部非接通信方式 进行的Apple Pay交易同应用内的Apple Pay交易费率是不同的。
- 最后:如前面所说,非接触式支付的通信是不加密的,因此Apple Pay通过NFC控制器的卡模拟模式确保非接通信通道交互的数据,因此无论如何不会暴露给应用处理器。
问题6: Pay如何避免对支付交易回放攻击?
Pay避免支付交易回放攻击的方法是特定于交易的动态安全码(Dynamic Security Code)。所有自中的支付t发起的交易都包含一个附带有特定于交易的动态安全码的设备帐号(Device Account Number)信息。动态安全码是一次性的,并且使用中的支付t在个人化时预置的密钥(该支付t和发卡行共享)以及其他信息进行计算所得,这些信息包括:
- 每次交易都会增加的单向计数器的值;
- 支付t产生的随机数;
- POS终端产生的随机数-NFC交易时适用;
- Pay服务器产生的随机数-应用内交易时适用。
动态安全码在交易时被提供给支付网络(Payment Network)和发卡行,可用来对交易进行校验。根据交易类型的不同,动态安全码的长度是可变的。不过,虽然使用了动态安全码进行保护, Pay在正式推出后的确发生了重复交易的问题,目前还不能判断是因为何种原因导致了重复交易的问题。
盖楼回复 X
(您的评论需要经过审核才能显示)