存储在EMV芯片中的应用程序事务计数器用于ARQC生成的目的是什么?

use*_*464 2 cryptography smartcard emv digital-signature replay

EMV第2册:安全和密钥管理(第151页)中,有人说

"该计数器使密码(ARQC)具有唯一性,并为主机验证服务提供跟踪值,允许识别重放的交易和克隆卡."

如果发行人依赖ARQC的收单机构(终端发送会话UN的nonce)那么ATC的目的是什么?"允许重播交易"是什么意思?谁重播ARQC?

Mic*_*and 8

使用由终端生成的不可预测的号码(UN)使终端控制卡必须生成的密码的新鲜度.因此,对于相同的交易数据(授权金额,交易日期/时间等等或CDOL1中的任何内容),卡必须生成新的(和不同的)签名("密码").因此,联合国是终端发送给卡的挑战.反过来,该卡必须签署该挑战(与交易数据一起)以证明其收到了该特定挑战.

问题是使用UN,终端(以及稍后验证交易的发卡机构主机)只能确定卡在其生命周期内签署了一次特定挑战+交易数据.在卡和终端之间的特定交互期间,无法确定是否已创建此签名.同一事务也可能被窃听攻击者在终端和卡之间的早期交互中过度使用,或者主动攻击者可能在预告片时间向该卡询问该特定输入数据(UN +交易数据).

例如,可以访问真实卡的攻击者可以为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值的事务.

  • 通常允许一些ATC值重叠的窗口,特别是如果卡支持离线授权:合法的离线交易可以在*某些合法的在线授权交易发生后到达发行者*.在任何一种情况下,这都是风险管理模块决定是否必须拒绝/拒绝交易的任务. (3认同)