存储在 EMV 芯片中用于生成 ARQC 的应用程序交易计数器的用途是什么?

What is the purpose of Application Transaction Counter stored in EMV chip for ARQC generation?

在第 151 页的 EMV book 2: security and key management 中,指出

"The counter results in uniqueness to the cryptograms (ARQC) and provides tracking values for the host verification services, allowing replayed transactions and cloned cards to be identified."

如果发行方依赖收单方进行 ARQC(终端为会话 UN 发送随机数),那么 ATC 的目的是什么?"allowing replayed transaction" 是什么意思?谁重播 ARQC?

在 arqc 计算期间,Atc 值用作算法的输入。 Atc 用作种子值并导致每次生成不同的密码。所以当计数器增加并且不同的密码生成旧的 arqc 值不能用于新的交易。这可以防止重放(使用旧值)攻击。

ATC也用于从MDK获取衍生密钥。正是使用这个派生密钥生成了 ARPC。

使用终端生成的不可预测的数字 (UN) 使终端能够控制卡必须生成的密码的新鲜度。因此,对于相同的交易数据(授权金额、交易 date/time 等或 CDOL1 中的任何内容),卡必须生成新的(不同的)签名 ("cryptogram")。因此,UN是终端发送给卡的挑战。反过来,该卡必须签署该挑战(连同交易数据)以证明它收到了该特定挑战。

问题在于,使用 UN,终端(以及稍后验证交易的发卡机构主机)只能确保卡在其生命周期内签署了该特定质询+打包的交易数据。不能确定这个签名是在卡和终端之间的特定交互过程中创建的。同样的交易也可能在终端和卡之间的早期交互中被窃听攻击者过度服务,或者主动攻击者可能在更早的时间查询卡的特定输入数据(UN + 交易数据)。

例如,可以访问真卡的攻击者可以为 UN 的所有可能值和一组特定的交易数据预先生成交易签名(与攻击者后来以真卡支付时所期望的完全相同的一组)终端)。攻击者然后有一组 pre-played 数据:

UN   Transaction data  Cryptogram
  0  XXXXXXXXXXXXXXXX  AAAAAAAAAA
  1  XXXXXXXXXXXXXXXX  BBBBBBBBBB
  3  XXXXXXXXXXXXXXXX  CCCCCCCCCC
  4  XXXXXXXXXXXXXXXX  DDDDDDDDDD
...        ...            ...

配备一些卡模拟器硬件,可以在收到 UN 和预期的交易数据后发送给定的密码,攻击者可以转到商家的真实终端并使用模拟器硬件进行支付。

为了克服这种可能的攻击场景,使用了一个由卡管理的附加单调递增交易计数器 (ATC)。这也使卡能够控制生成的密码的新鲜度。因此,卡片确保它生成的每个 signature/cryptogram 都不同于它之前生成的所有签名。即使是UN和交易数据完全相同的两笔交易也是如此。

ATC  UN   Transaction data  Cryptogram
  0    Z  XXXXXXXXXXXXXXXX  GGGGGGGGGG
  1    Z  XXXXXXXXXXXXXXXX  HHHHHHHHHH
  3    Z  XXXXXXXXXXXXXXXX  IIIIIIIIII
...  ...   ...            ...

为了防止重复使用旧交易,发卡主机可以拒绝 ATC 值低于其在交易中观察到的最高 ATC 值的交易。

除了@Michael Roland 的回答之外,还有一个交易重放的场景。

在大多数情况下,Point-of-Sale 并非 controlled/visually 由 Acquirer 24/7 全天候监控。恶意商家或一些中间人(比如电信人员)可能会记录流量并尝试重放(通过线路重新发送)使用非数字 CVM 的交易,即签名、ID 视觉检查等.

存在许多不同的 POS 到 AcquirerHostSystem 交换协议。其中一些具有可选的消息身份验证,其中一些具有强制性 MAC 检查,一些协议根本不提供消息保护。

无论哪种情况,最后一英里都超出了发行人的意识或控制范围。 ATC 解决了这个问题:没有两个具有相同 ATC 的有效交易可以发送给发卡行,因为卡确保 ATC 值的唯一性。