在EMV book 2: security and key management on page 151 中,指出
“计数器导致密码(ARQC)的唯一性,并为主机验证服务提供跟踪值,允许识别重放交易和克隆卡。”
如果发行方依赖于 ARQC 的收单方(终端为会话 UN 发送随机数),那么 ATC 的目的是什么?“允许重放交易”是什么意思?谁重播ARQC?
在EMV book 2: security and key management on page 151 中,指出
“计数器导致密码(ARQC)的唯一性,并为主机验证服务提供跟踪值,允许识别重放交易和克隆卡。”
如果发行方依赖于 ARQC 的收单方(终端为会话 UN 发送随机数),那么 ATC 的目的是什么?“允许重放交易”是什么意思?谁重播ARQC?
使用终端生成的不可预知的数字 (UN),终端可以控制卡必须生成的密码的新鲜度。因此,对于相同的交易数据(授权金额、交易日期/时间等或 CDOL1 中的任何内容),卡必须生成新的(和不同的)签名(“密码”)。因此,UN 是终端向卡发送的挑战。反过来,卡必须签署该质询(连同交易数据)以证明它收到了该特定质询。
问题在于,使用联合国,终端(以及后来验证交易的发卡主机)只能确保卡在其生命周期内签署了特定的挑战 + 交易数据打包一次。无法确定此签名是在卡与终端之间的特定交互过程中创建的。同样的交易也可能在终端和卡之间的较早交互中被窃听攻击者过度服务,或者主动攻击者可能在较早的时间向卡查询特定输入数据(UN + 交易数据)。
例如,可以访问真卡的攻击者可以为 UN 的所有可能值和一组特定的交易数据预先生成交易签名(攻击者后来在真卡终端付款时所期望的完全相同的集合)。然后攻击者有一组预播放数据:
联合国交易数据密码 0 XXXXXXXXXXXXXXXX AAAAAAAAAA 1 XXXXXXXXXXXXXXXX BBBBBBBBBB 3 XXXXXXXXXXXXXXXX CCCCCCCCCC 4 XXXXXXXXXXXXXXXX DDDDDDDDDD …………
配备了一些卡仿真器硬件,可以在收到联合国和预期的交易数据后发送给定的密码,攻击者可以进入商家的真正终端并使用仿真器硬件进行支付。
为了克服这种可能的攻击场景,使用了由卡管理的附加单调递增交易计数器 (ATC)。这也使卡可以控制生成的密码的新鲜度。因此,该卡确保它生成的每个签名/密码都不同于它之前生成的所有签名。甚至对于具有完全相同的 UN 和事务数据的两个事务也是如此。
ATC UN 交易数据密码 0 Z XXXXXXXXXXXXXXXX GGGGGGGGGG 1 Z XXXXXXXXXXXXXXXX HHHHHHHHHH 3 Z XXXXXXXXXXXXXXXX IIIIIIIIII ………………
为了防止重复使用旧交易,发卡主机可以拒绝 ATC 值低于其在交易中观察到的最高 ATC 值的交易。
除了@Michael Roland 的回答之外,还有一种交易重播的场景。
在大多数情况下,Point-of-Sale
不受Acquirer
. 恶意商家或某些中间人(例如,电信人员)可能会记录流量并尝试重播(通过线路重新发送)使用非数字 CVM 的交易,即签名、ID 视觉检查等.
存在许多不同的 POS 到 AcquirerHostSystem 交换协议。其中一些具有可选的消息身份验证,其中一些具有强制性 MAC 检查,一些协议根本不提供消息保护。
在任何一种情况下,最后一英里都超出了发行人的意识和控制范围。解决了这个问题:由于卡确保了价值的唯一性,因此无法将ATC
两个相同的有效交易ATC
发送给发卡行。ATC
在 arqc 计算期间,Atc 值用作算法的输入。Atc 用作种子值并导致每次生成不同的密码。因此,当计数器增加并且不同的密码生成旧的 arqc 值时,不能用于新交易。这可以防止重放(使用旧值)攻击。
ATC 还用于从 MDK 获取派生密钥。正是使用这个派生密钥生成了 ARPC。