- 易迪拓培训,专注于微波、射频、天线设计工程师的培养
基于近场支付的中继攻击与PBOC协议安全漏洞分析
0 引言
移动支付是一种允许用户使用其移动设备对所消费的商品或服务进行账务支付的服务方式,在人们生活节奏越来越快的今天,移动支付带来的便利使它在支付行业内占据着重要位置。移动支付主要分为近场支付和远程支付两种,对于近场支付而言,将具备相关功能的移动设备或智能卡在阅读器终端近距离处感应,即可迅速实现关键信息的交互(金融交易)。但与此同时,大量敏感信息的空中传输必然带来很多潜在的安全威胁。
事实上,针对目前已有的手机电子钱包应用,例如:Google Wallet,研究人士已经指出其存在着安全漏洞,并且该漏洞使得用户识别码遭到了破解,移动支付过程中的安全问题由此被重视起来。窃听、数据损坏、网络钓鱼、重放和中继等一系列数据攻击方式,是通信安全领域的学者所研究的重点,本文将针对其中的中继攻击展开讨论,采用该攻击方式监听并转播通信数据,长其通信距离至1m以上(转播工具的不同将使通信距离达到更长),这使得原本限定在10cm 范围内进行通信的支付方式失去了有力保障,而另一方面,我们发现PBOC 中对于电子钱包交易的报文规范也存在着弱点,攻击者在获得其通信数据之后,对于数据的分析和利用将直接引起该类支付业务的混乱。
1 近场支付及其安全性讨论
近场支付是指消费者在购买商品或服务时,即时通过手机或者CPU 卡片与商家进行交易的一种支付方式。支付的处理在现场进行,使用非接触式射频识别(RFID 和NFC)、红外、蓝牙等通道,实现手机和卡片在短距离内与自动售货机或POS 机等兼容设备的识别和数据交换。2012 年12 月,央行正式发布移动支付系列技术标准,该标准涵盖了应用基础、安全保障、设备、支付应用、联网通用5 大类35 项标准,从产品形态、业务模式、联网通用、安全保障等方面明确了系统化的技术要求,为近场支付的普及提供技术规范。于此同时,随着移动支付平台的正式上线,近场支付大规模发展的条件也已经成熟。
各种主流技术的出现为支付行业提供了更多可能,近场支付有其无可替代的便捷性,但在使用的同时,人们对于其安全性的关注度也越来越高,非法盗取用户信息以及用户账号的现象普遍存在着。
中继攻击作为近场支付过程中存在的安全隐患之一,关键在于其致力于监听和转播合法的通讯过程,并对收集的数据信息进行分析,在必要时候予以篡改或执行其他非法操作。如图1 所示:设备A 与设备B 间建立的数据通道被第三方介入,使得整个通信过程中的数据在合法双方不知情的状态下,都经由第三方才抵达另一端的设备,最终导致数据的泄露。
图1 中继攻击基本原理
最早中继攻击的实现是Hancke[4]于2005 年用UHF 天线连接Proxy(攻击设备),从而完成两个设备间模拟数据的转播,并将由于转播所造成的延时降低到15-20μs。而后Weiss利用NFC 移动设备作为proxy,也获得了相似的结果[5],事实上,就此利用两部Nokia NFC手机便能够实现P2P 模式以及阅读器标签模式下进行通信的中继攻击[6][7][8]。虽然这些已经是攻击成功的实证,但在国内,对于中继攻击的相关研究仍然不多,而在其实现和数据利用上更是缺乏探讨。
P2P 模式和阅读器标签模式在移动支付当中的应用非常广,而恰恰这两种模式下的中继攻击也很容易实现,就目前的研究成果而言,从能够进行数据转播,延长通信距离这一点来看,中继攻击对于移动支付充值等操作的威胁就足够引起重视,当卡片或者手机内信息在与外界POS 进行交互时,攻击者通过简单而不易察觉的方式即可获得这些数据继而进行其他操作。
2 中继攻击的模型设计
2.1 中继攻击模型
根据中继攻击的原理,构建如图2 所示模型,Proxy Reader 和Proxy Tag 分别作为与合法用户通信的对应端代理(即攻击者),数据的流向原本从CPU卡至NFC 阅读器,变更成为从CPU 卡经由Proxy Reader、PC 机和Proxy Tag 到达NFC 阅读器,整个攻击建立在合法用户都认为彼此正处于较近的距离进行通信的假设上,而事实上,由于攻击者的介入,合法用户将认为与其通信的Proxys 即为合法设备,攻击者从而最终延长了其通信距离,并获得通信中的所有数据,甚至能够在短时间内取代合法用户单独进行数据的通信(重放)。
图2 中继攻击模型2.2 功能模块
根据中继攻击模型设计,两个PN532 模块分别模拟合法的两个通信设备,作为Proxy Reader 和Proxy Tag,利用与PC 机之间的数据线连接所构建的转播通道,使数据远距离地在攻击设备之间进行传输。
2.2.1 PN532
PN532 是一个高度集成的非接触读写芯片,它包含80C51 微控制器内核,集成了13.56MHz 下的各种主动/被动式非接触通信方法和协议。
PN532 传输模块支持6 种不同的工作模式,分别由读写器模式和卡操作模式对应不同通信协议机制构成,包括ISO/IEC 14443A/MIFARE/Felica 等。
在本次模型构建中,Proxy Reader 一直处于阅读器模式,将Proxy Tag 接收到的数据转播给CPU 卡;而Proxy Tag 则设置为卡模拟模式,实时地反馈相应数据给NFC 阅读器,完成一个读卡响应的过程。
2.2.2 PC 端
在Linux 环境下编译安装libnfc 库,连接PN532设备,在相关程序的支撑下,PN532分别开始探测两个设备,并由此开启整个数据转播的过程,同时将两个PN532 接收到的数据依次呈现,如图3 所示:
图3 攻击市政公交一卡通充值过程
3 中继攻击的实现与协议分析结论
3.1 监听数据分析
基于PN532设备实现中继攻击的过程,将经历其探测周围标签的准备阶段和对传输数据的实时转播阶段,以下将对北京市政公交一卡通的充值和余额查询过程进行攻击,并探讨其间存在的安全问题。依据模型设计,图4和图5为攻击过程中PC机上显示的监听数据结果。通过采用合法设备e乐充(阅读器)连接PC,通过指定网站做一卡通的充值和余额查询操作,同时攻击者对其进行监听。由攻击结果可知,无论是充值还是余额查询操作,通信过程中的数据都将被完整地截获,卡片的通信完全符合ISO-14443协议和PBOC协议,在对卡片进行“唤醒”操作后,将对应操作的指令下发给卡片后,卡号、余额、交易记录、圈存记录等信息将以明文的形式完整地返回,直接泄露了卡片内数据及其数据存储文件位置信息。
图4 市政公交一卡通余额查询过程
图5 市政公交一卡通充值过程
3.2 PBOC电子钱包协议弱点
通过中继攻击能够轻易获取各种交易过程中的数据信息,这为攻击者分析其中的漏洞弱点提供了便利,在信息传输的过程中,尽管所有报文都遵循PBOC规范,结合相关数据发现,关于电子钱包应用部分的协议存在着以下弱点。
3.2.1 随机数的可预测性
随机数的生成作为EMV标准和PBOC《中国金融集成电路(IC)卡规范》中共有的认证协议之一,其作用在于确保当前的安全报文都能够区别于之前的操作,在一定程度上有效抵御重放等利用以往交易数据再次进行交易的攻击方式。事实上,根据国外相关研究及调研成果表明,在实际应用中,基于伪随机数发生器或其他弱随机算法而产生随机数的场景普遍存在[10],这使得随机数成为一系列可预测的数据,一旦被攻击者利用,将造成严重的影响。
基于中继攻击方式能够获得各种交易中的大量随机数样本,从而为针对该随机数随机性的检测提供了极大便利,在当今智能卡端、移动设备端以及POS端,都不能完全保证其随机数都是利用真随机数发生器所产生,因此在一定程度上,这些随机数的质量将对支付交易的安全具有决定性的影响。
3.2.2 交易序号的规律性
对于电子钱包应用的消费过程,攻击者目的在于利用非法卡片在合法交易终端上进行消费,因此,当交易双方进行两步认证时,攻击者只需在第二步中响应以正确的MAC2值[11],即可实现对电子钱包消费过程的有效攻击,其中MAC2的生成过程如下所示:
该数据来源于复旦FM1208CPU卡的消费过程,其中过程密钥(SessionKey)对交易金额进行MAC加密后即成为响应的MAC2值,而过程密钥的生成取决于终端交易序号后2字节,终端交易序号在交易终端每进行一次交易之后,由内部交易计数器的变化决定,这一类计数器普遍存在着自身的规律性,基本呈现为加1操作(依据所监测数据具体而定)。针对这一弱点,攻击者如果利用特定设备在合法终端做实时监听而获得此刻终端交易序号,通过遍历已建立的2^16规模的交易序号查找表,确定出下一次卡片将响应的正确数据流,最终实现同等金额的非法消费。
3.2.3 过程密钥的可破解性
在近场支付中,电子钱包的圈存和消费是值得关注的,分析FM1208CPU卡的数据生成过程,所涉及的加密算法包括3DES和MAC,其中MAC算法为PBOC-MAC,对于核心算法为DES的MAC加密方式,早在1998构建的硬件机器——Deep Crack即能实现在平均15天内破解DES密钥,到2006年,COPACOBANA机器则采用FPGA将搜索时间缩短至平均不到7天,而成本仅需1万美元。2010年,关于利用GPU的并行计算方式的应用不断引起人们的关注,在相关文献中更采用Bit-Slice算法将软件方式下实现DES密钥的破解速度提升到373.58Mkey/S,并最终在最短18天(48块显卡并行运算)[12]内完成了密钥的遍历。
对比2010年CUDA实现DES破解时所采用的显卡GeForce GTX260,当今显卡以其4倍以上的流处理器数量进行并行运算,同时所比较的密文仅为8字节加密结果的前4字节,笔者分析,密钥的破解速度将在理论上提高至1.5GKey/S以上,这意味着若同样采用48块显卡并行运算,将在5天内获得其密钥,而整个过程对设备的要求仅仅是满足CUDA计算功能的普通个人PC机,相关密钥破解工作正在展开,并在未优化的前提下,采用BitSliced算法获得575MKey/S的破解速度。由此分析,若采用僵尸网络,使更多PC机协同工作,破解密钥将能在数小时内实现。结合前文所述消费过程,攻击者利用所破解的过程密钥对不同消费金额进行加密生成合法MAC2值,就能够伪造不同消费金额的消费过程,从而使移动支付过程中的安全问题更加凸显。
4 对抗措施分析
目前对近距离通信中存在的安全威胁,各行各业在进行着不断的研究,此类绕过传统应用层加密的攻击方式,在防范起来有一定的困难,无疑需要在身份认证和加密机制下提供额外的安全措施。
在应对中继攻击的对策上,目前最为可行的方法是采取位置距离绑定,即通过比对节点间的位置来检测其相互距离[9],以此确保合法的用户间通信确实是近场范围内,降低其被窃听和不知情情况下远距离消费的可能性。同时在通信数据中加入时间戳和额外的认证机制(例如数字签名)能够防止数据被攻击者篡改。
针对PBOC电子钱包协议的弱点,从随机数的可预测性方面而言,需要保证智能卡端、移动设备端以及POS机端都能够产生真随机数,即不采用诸如伪随机数发生器、rand()函数等使用场景对安全性要求不高的随机数产生方式;另一方面,对于交易序号的规律性,若在交易序号中引入部分随机性,使得其同样具有不可预测性;在对MAC密钥进行破解研究的过程中发现,MAC算法的初始向量起着很大的作用,这一点与单纯的DES等加密算法的密钥破解所不同,当输入数据与初始向量(不为0)进行异或后,破解工作将变得更为困难,而在MAC计算中用3DES来取代DES,也为降低其过程密钥被破解的风险提供了有力保证。
5 对抗措施分析
近年来,随着移动互联网的日益完善,人们快节奏的生活方式使移动支付的应用也越来越广泛,而涉及金钱交易和个人信息交互的业务无疑是安全性最需要保证的领域之一。中继攻击是非接触式网络环境中的一种攻击方式,它能够绕过密码学的安全措施对部分场景的通信进行数据的转播和窃听,而其后期的数据利用将是更大的安全隐患。本文利用高度集成的非接触读写芯片PN532和基于NFC软件工具开发包libnfc库,重现了整个攻击过程,通过对北京市政公交一卡通的圈存和余额查询过程进行监听,来展现攻击者如何利用合适的应用程序轻易创建和引入伪合法用户,从而获得合法通信中的用户信息。同时基于中继攻击所获得的数据信息,对移动支付过程中遵循的PBOC协议所存在的弱点展开讨论,并从弱点的角度分析其对抗措施,为移动支付引入更多的安全性。
上一篇:LED显示屏的散热设计
下一篇:小型低损耗智能集成模块应用方案详解