欢迎来到 黑吧安全网 聚焦网络安全前沿资讯,精华内容,交流技术心得!

非接触支付中的中继攻击与近距离攻击

来源:本站整理 作者:佚名 时间:2019-02-26 TAG: 我要投稿

手机制造商将非接触式卡融合到手机之中,不仅使支付过程更加方便,而且可以根据需要增加更多金融服务功能。
非接触支付中发生中继攻击的条件
所谓中继攻击,就是在两个合法参与方A和B之间进行的一种攻击,中间人C篡改A的消息发送给B或将B的消息篡改发送给A。 C这样做的目的是为了获得A或B的特权,这样C就可以把A的钱通过B的非接触式终端盗走。事实上,EMV(Europay,Mastercard和Visa)支付协议在其非接触式的支付协议中,很容易发生中继攻击。
针对目前已有的手机电子钱包应用,例如:Google Wallet(最新消息,谷歌已经将之前的Android Pay和Google Wallet合二为一,推出了一个新客户端——Google Pay),研究人员已经指出其存在着安全漏洞。窃听、数据损坏、网络钓鱼、重放和中继等一系列数据攻击方式,是通信安全领域的学者所研究的重点。一般来说,近距离通信指的是1m以下,攻击者在获得其通信数据之后,对于数据的分析和利用将直接引起攻击。
近距离的攻击模型
由于消息交换是一种已知的物理层机制,用于有效降低中继攻击的概率,这种机制通常被称为距离边界(DB)或近距离检查(proximity-checking)。但是,距离边界也有对应的攻击模型。在远程欺诈(DF)攻击中,远程恶意卡旨在伪造他的在场证据,这是为了让这个幕后的远程攻击者完成此次攻击。而不是让DF攻击者在没有利用任何其他实体的情况下进行攻击,你可以把它想象为DF的增强攻击,我在本文称为远程劫持(distance-hijacking,DH)。
在一个被称为PaySafe的协议中,会执行近距离检查,以防止中继。Paysafecard是一家网上领先的预付支付卡金融机构,也是欧洲非常流行的一种银行汇票,其应用范围非常广泛,有游戏、软件、音乐、电影、通讯、娱乐业等。Paysafecard已成为全球主要的预付卡支付方式之一。
EMV中的非接触支付攻击的解决方案
非接触式EMV协议主要有两种:PayWave和PayPass,分别由Mastercard和Visa管理。本文中,我仅仅解释PayWave中的支付卡和终端之间的交易,如图1所示。

Visa的PayWave qVSDC协议
该卡包括私钥PrivC,与它共享的对称密钥KM,而银行卡则有证书授权CA签署的银行公钥PubB上的证书CertPrivCA(PubB),在卡的公用密钥PubC上有银行CertPrivB(PubC,SSAD)签名的证书以及卡上被称为SSAD的静态数据的哈希,并包括例如卡上的号码(PAN)和有效日期。真实的使用者具有证书权威CA的公钥PubCA,因此它可以从Prbb证书中提取PubB,然后使用PubB从证书P中提取证书的公钥PubC及其静态信息rivB(PubC,SSAD)。此时,读卡器启动通信,并在第二条消息中发送卡支持的支付应用程序身份(AID)列表。当真实的使用者选择了其中一个信息时,卡片就会发送PDOL(处理选项数据对象列表),这样真实的使用者就能够发送正确指示的信息。此时,真实的使用者生成一个32位随机数UN。然后它发送GPO(GET PROCESSING OPTIONS)命令,我将它命名为“如果要用这个随机数UN,就需要付钱”。然后,真实的卡会首先生成一个32位随机数nC,然后它生成一个会话密钥KS,作为其在KM下的应用程序事务计数器(ATC)的加密。该卡应该生成“密码”(又称AC),真实的使用者可以将该密码发送给银行以发出适当的付款信号,密文AC是在包括ATC,随机数UN和数量的一系列数据的KS下输入的MAC。该卡还产生了“签名的动态应用数据(SDAD)”即卡上的消息包UN,金额,货币币种,ATC,nC等等的签名。最后,在我测试中的第6条消息中,卡片发送密码AC ,SDAD以及ATC,PAN和AFL(即卡片上记录的位置)给真实的使用者。之后,通过使用AFL,使用者能够请求证书。此时,真实的使用者使用它们来检查签名SDAD和内部子消息的一致性(例如UN,金额等)。
例如,有人提出了一种名为PaySafe的非接触式EMV的改进版本(见图2)。主要思想是挑战真实的使用者在响应阶段检查卡片与读卡器的近距离程度。因此,PayWave GPO质询响应分为两部分:首先,卡片以静态数据加上它的随机数发送,然后卡片生成密码SDAD并发送它们。第一部分的往返时间由真实的使用者测量,如果它大于一个确定的界限,则该卡被认为是远处的(因此可能是中继)并且协议被终止。如图2所示,从PayWave到PaySafe,几乎没有其他变化,不过在PaySafe中比在PayWave中更早完成响应。

PaySafe协议使用ProVerif进行了正式验证,并显示正确或安全的w.r.t.中继攻击。万事达似乎在其新的但未公开的v3.1规范中采用了抵制措施,这种对策似乎类似于PaySafe1。但是,正如我下面所解释的,我发现PaySafe对所有类型的中继都不安全,因此,如果万事达确实部署了这个措施,那么这不足以实现其新的电子支付和非接触式系统的中继保护。
PaySafe协议中的中继和付款欺诈
假如在超市的购买高峰时间里,攻击者和他的同伙排队在支付终端付款。此时,受害者也正在另一个终端上付款。此时,如果两者的距离小于10厘米。攻击者就可以使用一些攻击放大设备靠近支付终端,此时受害者与读取器之间的协议就会启动。通过这种方式,受害者的非接触式卡片就开始与读取器运行协议传输,包括运行时间。如果当受害者远离读取器后,基于NFC的协议应该会失败。不过中继攻击仍然会继续,通过模拟读卡器继续读卡。攻击者将来自受害者卡(SDAD,AC和证书)的最后三条消息通过中继的手段发送到读卡器。请注意,此时,协议正确完成,中继攻击将成功,这意味着攻击者可以用他人的卡支付,即使他们的卡发出最终的支付无效密码AC并验证数据SDAD时,即使他们距离终端T1数米。所以,攻击只需要在中继开始前让受害者靠近终端几秒钟即可。
所以,通过中继保护PaySafe进行中继的欺诈性付款仍然是可能的,PaySafe可能无法完全解决EMV中继问题。
如何实施中继保护

[1] [2]  下一页

【声明】:黑吧安全网(http://www.myhack58.com)登载此文出于传递更多信息之目的,并不代表本站赞同其观点和对其真实性负责,仅适于网络安全技术爱好者学习研究使用,学习中请遵循国家相关法律法规。如有问题请联系我们,联系邮箱admin@myhack58.com,我们会在最短的时间内进行处理。
  • 最新更新
    • 相关阅读
      • 本类热门
        • 最近下载