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

问题描述 投票:2回答:4

在第151页的EMV book 2: security and key management中,有人说

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

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

cryptography digital-signature smartcard emv replay
4个回答
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值的事务。


2
投票

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

在大多数情况下,Point-of-Sale不会全天候控制/视觉监控Acquirer。恶意商家或某些中间人(比如电话公司人员)可能会记录流量并尝试重播(通过电汇重新发送)使用非数字CVM的交易,即签名,ID视觉检查,等等。

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

在任何一种情况下,最后一英里都没有发行人的意识和控制权。 ATC解决了这个问题:没有两个有相同ATC的有效交易可以发送给发行人,因为卡确保ATC值唯一性。


0
投票

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


0
投票

ATC还用于从MDK获取衍生密钥。正在使用此衍生密钥生成ARPC。

© www.soinside.com 2019 - 2024. All rights reserved.