交易不成功后,主机是不是应该增加 ATC(应用程序交易计数器)(EMV 标签 9F36)?
Posted
技术标签:
【中文标题】交易不成功后,主机是不是应该增加 ATC(应用程序交易计数器)(EMV 标签 9F36)?【英文标题】:Does host should increase ATC (Application Transaction Counter) (EMV tag 9F36) after unsuccessful transaction?交易不成功后,主机是否应该增加 ATC(应用程序交易计数器)(EMV 标签 9F36)? 【发布时间】:2017-10-28 02:48:24 【问题描述】:主机在交易成功后更新ATC,此时ICC和主机DB中的计数器相同。
但是,主机是否应该在交易不成功后(例如在使用不正确 PIN 的交易后)增加/更新自己数据库中的 ATC,因为 ICC 上的计数器增加了? 或者主机不应该在它之后更改 ATC。
我没有在任何 EMV 书籍中找到答案。
【问题讨论】:
【参考方案1】:主机系统应在确信已从芯片收到真实的 ARQC 时,将其芯片 ATC 的内部跟踪更新为从芯片收到的新值。
请记住,来自芯片的 ATC 始终是正确的值,因此,如果您作为主机收到带有意外 ATC 值的消息,您可以确定来自芯片,即使实际交易因其他原因而失败(即资金不足),您应该始终将主机跟踪值更新为从卡收到的值。
ATC 反映的是在整个生命周期内针对芯片发起的交易数量(通过 GET PROCESSING OPTIONS 调用),而不是成功交易的数量。
【讨论】:
【参考方案2】:emv 交易的一大目标是停止重放交易。使用授权请求密码验证交易的真实性,ATC 是其生成的一个组成部分,显然是在其验证中。
现在,每次您发出获取处理选项时,芯片都会增加 ATC。因此,当您在线收到一笔交易时,预计该交易的 ATC 始终高于您在发卡行的最后一个 ATC。如果它与卡的发卡行存储的相同或更低,则交易可能是重放。
【讨论】:
一些处理系统还会检查处理系统的ICC和DB中的ATC之间的差异。例如,差异不大于 10。因此,如果处理系统在没有成功事务后未更新自己的 DB 中的 ATC,则可能是 ICC 上的 ATC 更大(例如超过 10)数据库和主机中的 ATC(处理系统)将拒绝交易。那么,主机是否应该在交易不成功后更新自己数据库中的 ATC 呢? 对我来说,这听起来更像是对一般行为的自定义,您需要根据业务需要进行处理。在正常情况下,只要事务在通过 ARQC 验证后的 ATC 高于 DB 中的 ATC,就会更新 ATC。以上是关于交易不成功后,主机是不是应该增加 ATC(应用程序交易计数器)(EMV 标签 9F36)?的主要内容,如果未能解决你的问题,请参考以下文章
仅授权信用卡交易是不是应该与数据库中的授权捕获交易分开存储?