Posted on 2006-07-06 21:05
奔跑的阿甘 阅读(2215)
评论(4) 编辑 收藏 引用 所属分类:
ATM Technology/EMV Notes
什么是AC(Application Cryptogram)?
Michael 2006年7月6日
我们从前面了解到,目前终端和ICC之间有13个命令交互,其中有一个很关键的命令叫GENERATE AC,那么,什么是AC,它又是用来做什么的?
简单地说,AC是一个ICC产生的交易代码,GENERATE AC是一个ICC做交易决策的过程。也就是说,终端执行每次交易时,都要发送该命令给ICC进行交易决策(比如拒绝交易还是要求联机授权),来决定该笔交易接受与否以及如何接受。
终端在发送GENERATE AC之前,自己首先有个终端行为分析的过程,分析的结果是决定需要向ICC发送什么样的AC请求:联机授权(ONLINE)、脱机拒绝(REJECT OFFLINE)还是脱机授权(APPROVE OFFLINE)。ICC在接收命令并处理后返回其决策结果即AC值。
针对终端的不同请求,相应地,AC有以下几种类型:
类型 意义
Application Authentication Cryptogram (AAC) 拒绝交易
Application Authorisation Referral(AAR) Referral requested by the card
Authorisation Request Cryptogram(ARQC) 要求联机授权
Transaction Certificate(TC) 接受交易
值得注意的是,终端发送GENERATE AC命令的数据并不是TLV编码的,而是由一个叫做CDOL的数据对象来决定的。CDOL,指Card Risk Management Data Object List,它指定了GENERATE AC的命令数据需要包括哪些对象。ICC中需要有两个CDOL对象,CDOL1(TAG-'8C')和CDOL2(TAG-'8D')分别用于两次命令的发送,在一次交易中最多只能发送两次GENERATE AC 命令,超过2次则会执行失败导致交易终止。
GENERATE AC命令的数据可能还会包含一个叫做TC Hash Value的数据,这个值通过TDOL(Transaction Certificate Data Object List)经过HASH算法计算得到。如果ICC中没有TDOL,终端可能需要保存一个默认的TDOL,以计算TC HASH VALUE.
前面提到GENERATE AC的决策结果是AC(有四种类型),那么我们看看其具体的数据结构是如何的。
值 是否必须返回
Cryptogram Information Data 是
Application Transaction Counter (ATC) 是
Application Cryptogram (AC) 是
Issuer Application Data 可选
其中CID(Cryptogram Information Data)中指明了决策结果属于哪种AC类型。
GENERATE AC是卡行为分析的重要过程,如果ICC返回TC,则交易成功,如果返回AAC则交易失败,返回其他时则终端将会发送第二次GENERATE AC命令,以决定交易授权结果。
[完]