ATC 是卡片内部的 2 字节计数器,每发起一笔交易就加一。它只是个数字,但承重不小:每个应用密文的输入里都有它,发卡行靠它识别重放和伪卡。粘贴十六进制,直接看十进制值和解读。
卡片在每次 GENERATE AC 时把 ATC 加一——每一笔交易尝试都算,不管批没批准、联机还是脱机。它就是个 16 位无符号整数:003C 表示这是该应用生命周期里的第 60 笔交易。
它真正的工作在密码学那边。ATC 是应用密文的输入之一(多数卡组织方案里还参与会话密钥派生),这就是为什么同一台终端上两笔一模一样的消费,ARQC 也完全不同。截获一个密文原样重发,发卡行会看到同一个 ATC 出现两次——防重放靠的就是这个,也是这个计数器存在的意义。
卡片还记着最近一笔联机授权交易的 ATC,以 tag 9F13 暴露出来。两者之差就是发卡行上次见到这张卡之后连续脱机的笔数。终端风险管理拿这个差值对照卡里写的连续脱机下限和上限——超了就置 TVR 字节 4 的对应位,把下一笔推去联机。
把两个值都贴进上面,工具直接算差值。差值为 0 说明上一笔就是联机的;差值很大说明脱机跑了很久,交通卡类配置里正常,其它场景值得多看一眼。
重复:同一张卡两条记录 ATC 相同,要么是同一笔交易被提交了两次(清算重复确实会发生),要么有人在重放截获的密文。倒退:ATC 比之前一笔小,可能只是到达顺序乱了——脱机交易晚几天才清算,常见且无害;也可能是两张物理卡共用一个卡号,这正是发卡行追查伪卡的特征信号。零值:个人化时从 1 起数,解出 0 几乎都是读取错误。接近 65535:计数器快用完了,用尽后的行为是个人化决定的,「直接停用」比「回绕」更常见。