对黑客来说,Apple Pay的薄弱环节有哪些?
按:作者系安全公司资深安全人士。
2月20日凌晨,Apple Pay正式登陆中国,笔者马上就绑了自己的银行卡,虽然中途的绑定验证颇为曲折,但明眼人一看就明白,这和苹果没多大关系,关键的认证步骤是银联的服务器撑不太住。到了中午,笔者去麦当劳体验了把Apple Pay,第一次用有点生涩,不过感觉用户习惯了后的体验肯定是秒杀各种支付应用的。于是晚上,各路人士肯定是要对Apple Pay品评一番的,到这里咱也不能免俗,来说两句。
首先,笔者发现很多人拿Apple Pay和微信、支付宝等支付应用去对标,什么微信支付宝向左,银联Apple Pay向右 ,这么对标显然是愚蠢的,两个东西完全不在一个维度。简单来说,Apple Pay可以不用联网进行支付,从这一点出发,咱就不要把Apple Pay当成一个支付应用,因为它有其他支付应用没有的能力,它其实就是一张高科技银行卡。
从银行卡这个思路我们去分析安全会更容易理解,早期传统的银行卡是磁条卡,磁条卡并没有太多的安全认证,导致读取到磁条中的数据就可以复制成一张新的银行卡,于是我们经常可以看见盗刷复制银行卡的新闻,不法分子一般都是通过非法磁条卡读写设备复制银行卡。
于是银行开始推更安全的芯片卡,芯片可以存储密钥、数字证书、指纹等信息。笔者对这个领域并不熟悉,不过还是加劲解释下,芯片卡能通过非对称加密的方式,和POS机进行双向公私钥验证,通俗说就是银行卡认设备了,非法设备已经无法复制银行卡了。
回到Apple Pay上,Apple Pay能够做到离线支付,那是不是银行卡被复制到了苹果手机中呢?并没有,Apple Pay的绑定银行卡过程,不是把银行卡芯片中的密钥和数据直接复制到手机上,实际上是把卡号和相关的密码或者信用卡的CVV输入到手机应用里,然后Apple Pay和银联的服务器做一次设备认证绑定。这个设备认证的过程Apple Pay会生成一个唯一的设备账号与之对应,设备认证绑定后,以后要和POS机进行安全认证的数据Token等存储在iPhone安全芯片中。
目前这类安全支付的安全攻防的落点都在硬件安全体系上,苹果是以Secure Boot Chain、Secure Element、Secure Enclave、Touch ID、NFC Controller为支柱的硬件安全体系,安卓阵营则是以ARM的TrustZone技术为安全标准,这些安全标准一般人都太难以理解,这里我们不深入解释,笔者在这个领域不太熟悉,凭自己的经验和认识来来谈谈Apple Pay和安全相关多个攻击面:
第一个攻击面,Apple Pay的NFC近场通信是否有安全隐患,比如说通信协议的重放,咱是不是可以脱离手机设备无限制地重复支付同一个交易,这个肯定想都不用想,在架构设计上苹果肯定会杜绝这种低级错误。
不过NFC攻击可是千变万化,比如2013年DEFCON-20上曾有一个“NFC Hacking: The Easy Way”的议题,提到了NFC跳板攻击,议题放出过一个概念性的攻击例子,利用两个NFC手机做跳板,钓鱼欺骗你的银行卡支付远端的一个POS机,其中的攻击原理把这张银行卡换成Apple Pay手机,应该也一样能攻击成功,不过笔者觉得在小额度支付的场景,实施这样的钓鱼攻击成本太高,黑客始终还是无法无限制地盗刷支付。
第二个攻击面,来自Apple Pay业务层次的安全,现在苹果手机已经变成银行卡了,而这个银行卡的密码不再是银行密码了,而是你的锁屏密码和指纹。
所以如果手机丢失了,你来不及锁定注销Apple Pay,那不法分子使用你的锁屏密码或指纹可能刷爆你的卡。这里的锁屏密码也能支付估计很多人都没体验到,只需要使用错误的指纹几次就会进入锁屏密码支付流程。当然这也是一个伪命题,前几天FBI还在求助库克给iPhone的锁屏密码开个后门,因为苹果的Touch ID与密码中有一项安全选项,连续输入10次错误密码就抹掉手机的所有数据!当然这一功能明显不适用于普通消费者,如果你的手机落在亲戚小孩手上,情况可想而知。
第三个,Apple Pay软硬件层次的攻防。
这部分乌云的文章:《Apple Pay 来了,但是它安全么?》已经做了很详细的科普,现在黑客攻防的落点是挑战硬件安全体系,去年已经有黑客攻破了部分安卓手机厂商的TrustZone安全支付方案,苹果的Apple Pay至今还没有人攻破。试想黑客如果能够做到破解苹果安全芯片的加密数据,将Apple Pay的设备克隆,在世界的另外一个角落盗刷你的银行卡,我觉得这会是本年度最轰动的安全事件。
延伸阅读:
- 两分钟教你使用Apple Pay