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

2019-02-28 14:47:536938人阅读

手机制造商将非接触式卡融合到手机之中,不仅使支付过程更加方便,而且可以根据需要增加更多金融服务功能。

非接触支付中发生中继攻击的条件

所谓中继攻击,就是在两个合法参与方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中继问题。

如何实施中继保护

将近距离检查与认证相结合,这样潜在的攻击都会被考虑到。但PaySafe并不是要抵制远程欺诈(DF),事实上,在PaySafe计时器中的响应并不取决于真实的使用者。所以,PaySafe的优点是通过使用符号安全验证工具显示了这个DF。并且,研究者为这个DF提出了一个解决方案,我在这里将其称为PaySafe+。

在PaySafe中要实施近距离攻击的防护,就要用到PaySafe+,在PaySafe+中,卡片在付款之前必须等待接收UN。但是,卡可以从MSB(最低有效位)到LSB(最低有效位)逐位采样UN。所以,对于攻击者来说,不需要等待读完UN的所有部分,只要每个人在他的结尾读完UN的位,他就可以一个接一个地发送UN的位。

但是,目前还不确定PaySafe+对于距离欺诈是否是安全的,因为该方法并不能捕捉到UN随机数的逐位抽样。因此,以上讨论的只是个理想的模型而已。

其他的远程欺诈解决方案

在本质上,如果近距离欺诈是PaySafe+所能解决的话,那么在定时的响应中,卡片应该发回UN,例如,以真实的使用者发送它的方式按照反向位顺序从LSB到MSB回复UN。这显然降低了我在上面提到的DF成功的可能性,请注意,攻击者可采取更复杂的措施来发起攻击,即通过通道选择(CRCS)。

虽然PaySafe+未能实现DF安全性,但PaySafe+还有其他防护功能,例如,防护很明显存在远程劫持(DH)攻击和网络欺诈攻击。

为了发起网络欺诈行为,在计时阶段开始之前,潜在的攻击者会生成nc并将其提供给攻击者。如果攻击者A发现距离终端较近,然后通过定时响应,通过不定时的部分,攻击者A将所有必要的信息发送给证明者,以便这个人产生SDAD,AC,并将其交给A。然后,A将其传递给真实的使用者。在所有偶发事件中,通过检查最新的随机数,攻击者就无法自行通过协议。在本文中,我没有提到解决这个TF攻击的方案,因为它不是基于PaySafe+结构的一种解决方案。所以,在EMV中,我并不认为需要分析DH。

类似的PaySafe的解决方案可用于EMV中的中继攻击保护。在图3中,研究者为抵御PaySafe的中继攻击找到了一个被称为PaySafer的协议。在PaySafer中,使用者发送“GENERATE AC”命令后,它会等待一段时间,这个时间就类似于卡片生成AC和SDAD的时间。不过缺点是市场上所有的卡都必须在这个特定的允许时间段内实现AC和SDAD,这将需要EMVCo普遍实施。我承认这是一个很大的问题,但我相信这不是不可能实现的。

只有等待一段时间过后,真实的使用者才会将新命令“SEND AC”发送给卡片,并伴随着一个随机数UN2。该卡以UN2发回的AC,SDAD和UN2 *作为响应,不过要做些处理,即通过改变UN2中的随机数的位的顺序来获得UN2 *。以这种方式发送UN2 *和UN *对于中继保护来说不是必不可少的。但是为了解决上面的PaySafe中的近距离欺诈攻击,所以在我的PaySafer中,我的目标是进行DF防御,那么UN需要由虚假证明者进行处理,即至少以反向随机数的位的顺序作为UN *,在第一次定时响应期间后,UN2也需要在第二次定时响应周期中以反向随机数的位的顺序作为UN2 *发回。如果没有进行DF防护,你可以从PaySafer(及其星号对应部分)中删除UN和UN2。

PaySafer与PaySafe大部分相同,除了使用第二次计时轮和使用UN *,UN2,UN2 *。

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

目前,Mastercard v3.1的EMV规范已经开始实施。不过研究者还是提出了以下改进建议,来将攻击风险降到最小:

1.在EMV中加入近距离检查;

2.开启新的远程欺诈安全防护;

图4中所示的防护机制与PaySafe不同,这种设计旨在基于共享密钥sym运行对称密钥DB协议。不过需要预先在卡和使用者之间创建该密钥,方法是基于卡的密钥sk和公钥pk运行密钥协商协议(KA)。不过,也有人建议在这个距离边界运行之后再进行支付。

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

总结

于EMV最新标准中的近距离检查可能被MasterCard和EMVCo所接受,许多新的安全解决方案都还未经过安全验证。比如图4所示的解决方案的一个问题就在于,所有EMV读取器都必须实现与支付结合运行的DB协议,这是一个很大的问题。我对这个解决方案并不完全满意,就像PaySafe一样只有在支付之前才会发生近距离验证,并且在此期间,中继仍然是可能的。



本文翻译自:https://eprint.iacr.org/

翻译作者: luochicun 原文地址:https://www.4hou.com/web/15937.html

0
现金券
0
兑换券
立即领取
领取成功