技术解析:为什么央行紧张二维码支付的风险
2014年3月13日,人民银行发文暂停支付宝、财付通线下二维码支付业务,有人说风险是假,利益是真,二维码究竟安全码?笔者从纯技术角度,谈谈自己的看法。
二维码并非新鲜事物,20世纪80年代就已诞生并广泛应用。央行并不限制二维码应用,只是对线下(商户和持卡人面对面)二维码支付场景质疑,要求两家互联网企业接受评估。笔者认为若不是央行及时出手,可能会发生潜在的信息安全事件,引发系统性金融支付风险。
支付的信息安全要求要能在可预测的范围内,针对风险点,进行全环节的控制。线下二维码支付至少存在以下四方面风险:
1、二维码产生方是谁?传输过程有无防篡改措施?
央行暂停的二维码支付,是将二维码用作交易订单(解决要付多少钱给谁的问题),并由一个硬件终端实现。由于二维码代表了资金流的走向,所以其真实性和完整性是需要关注重点,谁来为此负责?
目前线下支付使用的支付终端为此负责,支付终端是收单机构采购的经过认证检测的设备,并且其与交易相关的参数由收单机构维护。这意味着物理上黑客攻击支付终端的难度较高、逻辑上黑客篡改商户信息与交易金额的可能性也很低。
然而二维码终端设备呢?这里面有一连串的疑问:二维码是终端自己产生?还是由后台的二维码服务器产生?产生过程有无加密保护措施,传输过程有无防篡改措施?这不仅关系客户是不是该为这笔交易付款,更加关系商户是否能正常收到这笔款项。
2、二维码传输,信息的真实性和完整性是否被延续?
被暂停的二维码支付业务,是通过客户手机“扫二维码功能”实现二维码从商户到个人的转移。这个环节,信息的真实性和完整性是否被延续是关注重点,谁来为此负责?
假定二维码产生过程是可靠的,现在要解决两个问题:一是用户要能识别这是一枚可靠的二维码,即身份认证;二是二维码在拍的过程中没有被移花接木,即一致性。目前线下支付使用的支付方式没有该问题,因为全部的交易处理由POS终端完成并送至后台,没有这个转换的过程,而这个转换也恰恰是O2O的关键环节。
信息安全中有个术语“中间人攻击”,指的就是通信的双方之间的信息来往,被一个第三方控制产生的危害。如果不能解决信任的问题,手机木马也可以给客户手机发送二维码,轻则可以让手机中招诱发系统重启,重则可以让支付过程中断甚至发生错付情况。
3、二维码解析,如何保证解析后的结果不被篡改?
二维码解析是二维码应用的重要环节,但是在线下支付中,同样存在信息安全的风险。之前提到线下支付二维码传递的是资金流信息,解析后的二维码将被用户确认,然后启动扣款流程、并触发相关的信息流甚至物流信息。
二维码解析的结果直接决定支付结果的正确性。二维码是手机客户端解析,还是后台服务器解析,如何保证解析后的结果不被篡改?由于二维码解析的结果是客户的消费记录,并且反映了客户的日常行为、属于个人信息,如何保证这部分信息的安全?
4、二维码结果通知,有单边帐、引发市场混乱风险
二维码结果通知作为二维码应用的最后一个环节,也是决定性环节,因为它需要保证结果的真实性与完整性。
如果持卡人的银行卡被成功扣款了,但是商户收到了失败处理结果;如果商户收到了成功处理应答,但是持卡人的银行卡却没有发生金额变化,都会造成单边帐、引发市场混乱。
看似目前的线下支付POS终端每天也有很多的差错处理交易,但是多可以通过系统的差错处理来解决。然而一旦黑客在互联网上攻击手机客户端和商户二维码设备,都可以篡改支付结果,支付过程将不可控。持卡人手机中的处理结果若与后台不一致,如何处理?
线下支付场景中,除了POS、自助终端,电话POS终端、音频口POS终端等创新设备与支付方式不断涌现,最终还是要遵循行业的监管,并符合相关业务规则与技术标准。而二维码支付完全突破了这些底线,处于“裸奔”状态。
最后,不得不说,支付宝和财付通两家公司将央行的红头文件搬上互联网,本身就是信息安全泄密事件,如果互联网创新一定要摆脱行业的监管、产业的质疑,过度地强调便利、抹杀公众的知情权,这样的创新只会让信息安全事件成为社会焦点,也会扰乱市场的发展。