接触智能卡cos开发包用户文档(下篇)

接触CPU卡COS开发包用户文档PBOC/石化用户卡COS
2010.10.7
一、简介
该文档是本人在开发石化标准协议COS的详细资料,它是在PBOC1.0的基础上修改而来,主要分两个文档(一,COS开发包用户卡文档,二,COS开发包PSAM卡文档),而本文档分上下两篇,上篇主要讲述该COS的开发环境、文件结构、整体流程和详细的每条COS指令的详细开发过程,下篇主要讲述每个
交易流程(圈存交易、圈提交易、普通消费交易、灰锁、解灰、联机解灰、修改透支限额)、各种密钥和MAC、TAC的产生流程
二、PBOC1.0与石化标准COS指令的差异
命令CLA INS P1P2 CHANGE PIN(修改个人密码)‘80’‘5E’‘01’‘00’《中国金融集成
电路(IC)卡规范》
(v1.0)
兼容命令
CREDIT FOR LOAD(圈存)‘80’‘52’‘00’‘00’
DEBIT FOR PURCHASE(消费)‘80’‘54’‘01’’00’
DEBIT FOR UNLOAD(圈提)‘80’‘54’‘03’‘00’
GET BALANCE(读余额)‘80’‘5C’‘00’‘0X’
GET TRASACTION PROOF(取交易认证)‘80’‘5A’‘00’‘XX’
INITIALIZE FOR LOAD(圈存初始化)‘80’‘50’‘00’‘0X’
INTIALIZE FOR PURCHASE(消费初始化)‘80’‘50’‘01’‘0X’
INITIALIZE FOR UPDATE(修改透支限额初始化)‘80’‘50’‘04’’01’
INITIALIZE FOR UNLOAD(圈提初始化)‘80’‘50’‘05’‘01’
RELOAD PIN(重装个人密码)‘80’‘5E’‘00’’00’
UPDATE OVERDRAW LIMIT(修改透支限额)‘80’‘58’‘00’’00’
DEBIT FOR UNLOCK(解扣)‘E0’‘7E’‘08’‘0X’加油
专用命令
GET LOCK PROOF(取灰锁状态)‘E0’‘CA’‘0X’’00’
GREY LOCK(灰锁)‘E0’‘7C’‘08’’00’
GREY UNLOCK(联机解扣)‘E0’‘7E’‘09’‘00’
INITIALIZE FOR GREY LOCK(灰锁初始化)‘E0’‘7A’‘08’’08’
INITIALIZE FOR GERY UNLOCK(联机解扣初始化)‘E0’‘7A’‘09’’0X’三、交易流程
<1>加油专用消费交易(石化协议特有)
加油专用消费交易允许持卡人使用电子油票进行加油消费。此交易可以脱机进行。使用电子油票进行加油专用消费交易前必须验证个人密码(PIN)。
1.1发出INITIALIZE FOR GREY LOCK命令(步骤
2.1)
终端发出INITIALIZE FOR GREY LOCK命令启用加油交易。
1.2处理INITIALIZE FOR GREY LOCK命令(步骤
2.2)
IC卡收到INITIALIZE FOR GREY LOCK命令后,将进行以下操作:
—检查命令中包含的密钥索引号是否被IC卡支持。如果不支持,返回状态码‘9403’(不支持的密钥索引号)且不返回其他数据。
在通过以上检查之后,IC卡将产生一个伪随机数(ICC),这个伪随机数将包含在本命令的响应报文中返回终端。
之后,IC卡将内部的TACUF(交易验证码待读标志)复位。
1.3计算MAC1(步骤
2.3)
使用IC卡返回的伪随机数(ICC)和电子油票脱机交易序号,终端的安全存取模块(PSAM)将产生一个终端随机数(TRAN),一个过程密钥(SESPK)和一个报文认证码(MAC1),供IC卡来验证PSAM的合法性。
过程密钥SESPK被用于电子油票的加油交易。
过程密钥的产生分两步:即先是用DPK密钥并按照附录B中的机制产生的中间密钥,再用中间密钥采用下述的算法产生过程密钥。
用来产生中间密钥的输入数据如下:
TMPCK:伪随机数(ICC)||电子油票脱机交易序号||终端交易序号的最右两个字节。
用中间密钥对终端随机数(TRAN)加密,运算的结果产生过程密钥:
SESPK=DES(TMPCK,TRAN||‘80000000’)
MAC1的计算机制见附录B。
用SESPK对以下数据进行加密产MAC1(按所列顺序):
——交易类型标识
——终端机编号
——交易日期
——交易时间
1.4发出GREY LOCK命令(步骤
2.4)
终端发出GREY LOCK命令。
1.5验证MAC1(步骤
2.5)
IC卡收到GREY LOCK命令后,将产生同样的过程密钥(SESPK)并验证MAC1是否有效。如果MAC1是有效的,交易处理将继续执行8.5.2.6节。如果MAC1是无效的,IC卡返回错误状态码‘9302’(MAC无效)给终端。
1.6灰锁处理(步骤
2.6)
IC卡将电子油票脱机交易序号加1,并将电子油票应用灰锁。
IC卡产生一个报文鉴别码(MAC2)供PSAM对IC卡合法性进行检查,并同时将MAC2写入内部文件。MAC2将包含在从卡传送到PSAM(通过终端)GREY LOCK的命令响应报文和GET LOCK PROOF的命令响应报文中。
MAC2的计算机制见附录B。用SESPK对以下这些数据进行加密产生MAC2:
——电子油票余额
——电子油票脱机交易序号(加1前)
IC卡也应该用和附录B中相同的机制直接用密钥DTK产生一个GTAC。GTAC将包含在从卡传送到PSAM(通过终端)的GREY LOCK的命令响应报文和GET LOCK PROOF的命令响应报文中。如果之后出现交易异常中断等使DEBIT FOR UNLOCK指令无法当时执行成功,GTAC可供终端纳入终端异常交易数据中,以便后来上传给主机进行灰锁验证。
下面是用来生成GTAC的要素:
——交易类型标识
——终端机编号
——终端交易序号
——交易日期(终端)
—交易时间(终端)
IC卡应把SESPK存贮到安全的内部文件中,(或者,IC卡也可以将终端随机数、伪随机数(ICC)、终端交易序号等,写入内部文件,通过计算重新获得),以备交易中途IC卡掉电后,在后续交易流程中恢复过程密钥SESPK。
IC卡将用以下数据组成的一个记录来更新内部专用明细。这个明细记录中的数据将包含在GET LOCK PROOF的命令响应报文中,由IC卡返回给终端。
——交易类型标识(’91’=ET灰锁)
——电子油票代号(‘01’=ET)
——电子油票余额
——电子油票脱机交易序号
——终端机编号
——交易日期
—交易时间
——MAC2
——GTAC
IC卡必须全部成功地完成以上几个步骤或者一个也不完成,如果脱机交易序号的更新、电子油票应用灰锁状态的设置没有成功,交易明细也不应更新。
1.7验证MAC2(步骤
2.7)
在收到IC卡(经终端)传来的MAC2后,PSAM要验证MAC2的有效性。MAC2如果有效,交易继续进行5.5.2.8节所描述的步骤;如果MAC2是无效的,终端应停止交易并采取相应的措施。
1.8持卡人进行加油行为(步骤
2.8)
持卡人进行加油行为。在进行加油过程中,允许终端对IC卡下电。若下电以后,IC卡重新上电,经过
交易预处理(选择应用、验证个人密码等)后应可以继续执行8.5.2.9节所描述的步骤而不受影响。
1.9产生GMAC(步骤
2.9)
安全存取模块(PSAM)根据专用消费的金额,用过程密钥(SESPK)产生一个报文认证码(GMAC),供IC卡来验证PSAM的合法性。GMAC的计算机制见附录B。
用SESPK对以下数据进行加密产生GMAC:
——交易金额
1.10发出DEBIT FOR UNLOCK命令(步骤
2.10)
终端发出DEBIT FOR UNLOCK命令。
1.11检查脱机交易序号和余额(步骤
2.11)
收到DEBIT FOR UNLOCK命令后,IC卡将进行以下操作:
——检查脱机交易序号是否匹配,如果脱机交易序号不匹配,IC卡将返回‘9406’(脱机交易序号错),但不回送其他数据。

本文发布于:2024-09-22 23:28:05,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/4/88684.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:交易   终端   进行   IC卡   电子   密钥   油票
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议