在第151页的EMV book 2: security and key management中,声明
"计数器导致密码(ARQC)的唯一性,并为主机验证服务提供跟踪值,允许识别重放的交易和克隆卡。"
如果发行人依赖ARQC的收单方(终端发送会话UN的nonce)那么ATC的目的是什么,以及"允许重播交易&#34 ;?谁重播了ARQC?
答案 0 :(得分:8)
使用终端生成的不可预测的号码(UN),终端可以控制卡必须生成的密码的新鲜度。因此,对于相同的交易数据(授权金额,交易日期/时间等等或CDOL1中的任何内容),卡必须生成新的(和不同的)签名("密码")。因此,联合国是终端发送给卡的挑战。反过来,该卡必须签署该挑战(与交易数据一起),以证明它已收到该特定挑战。
问题在于使用UN,终端(以及稍后验证交易的发卡机构主机)只能确保卡在其生命周期内签署了特定挑战+交易数据。在卡和终端之间的特定交互期间,无法确定是否已创建此签名。同一事务也可能被窃听攻击者在终端和卡之间的早期交互中过度使用,或者主动攻击者可能在预告片时间向该卡询问该特定输入数据(UN +交易数据)。 / p>
例如,可以访问正版卡的攻击者可以预先为所有可能的UN值和一组特定的事务数据生成事务签名(攻击者以后在真正的终端上支付时完全相同的集合) 。攻击者随后会有一组预先播放的数据:
UN Transaction data Cryptogram 0 XXXXXXXXXXXXXXXX AAAAAAAAAA 1 XXXXXXXXXXXXXXXX BBBBBBBBBB 3 XXXXXXXXXXXXXXXX CCCCCCCCCC 4 XXXXXXXXXXXXXXXX DDDDDDDDDD ... ... ...
配备了一些可以在收到UN和预期交易数据时发送给定密码的卡仿真器硬件,攻击者可以转到商家的真正终端并使用仿真器硬件进行支付。
为了克服这种可能的攻击情形,使用由卡管理的附加的单调增加的事务计数器(ATC)。这也使卡能够控制生成的密码的新鲜度。因此,卡确保它生成的每个签名/密码与之前生成的所有签名不同。对于具有完全相同的UN和交易数据的两个交易,情况就是如此。
ATC UN Transaction data Cryptogram 0 Z XXXXXXXXXXXXXXXX GGGGGGGGGG 1 Z XXXXXXXXXXXXXXXX HHHHHHHHHH 3 Z XXXXXXXXXXXXXXXX IIIIIIIIII ... ... ... ...
为了防止重复使用旧交易,发卡主机可以拒绝ATC值低于其在交易中观察到的最高ATC值的交易。
答案 1 :(得分:2)
除了@Michael Roland的答案之外,还有一个交易重播的场景。
在大多数情况下,Point-of-Sale
不会对Acquirer
进行全天候控制/视觉监控。恶意商家或某些中间人(比如电话公司人员)可能会记录流量并尝试重播(通过电汇重新发送)使用非数字CVM的交易,即签名,ID视觉检查,等等。
存在许多不同的POS-to-AcquirerHostSystem交换协议。其中一些具有可选的消息认证,其中一些具有强制MAC检查,一些协议根本不提供消息保护。
在任何一种情况下,最后一英里都没有发行人的意识和控制权。 ATC
修复了此问题:由于卡片确保ATC
值唯一性,因此不能将两个具有相同ATC
的有效交易发送给发卡行。
答案 2 :(得分:0)
在arqc计算期间,Atc值用作算法的输入。 Atc用作种子值并导致生成不同的密码时间。因此,当计数器增加并且生成的不同密码时,旧的arqc值不能用于新事务。这可以防止重放(使用旧值)攻击。
答案 3 :(得分:0)
ATC也用于从MDK获取衍生密钥。正在使用此衍生密钥生成ARPC。