CJT304-2017标准规范下载简介
CJT304-2017 建设事业智能卡操作系统技术要求注:安全认证识别码已在8.3.4.1中定义
4.8.11发出DEBITFORUNLOCK命令步骤
8.4.8.12检查脱机交易序号和余额(步骤7.11
收到DEBITFORUNLOCK命令后,IC卡将进行以下操作: a)检查脱机交易序号是否匹配,如果脱机交易序号不匹配,IC卡将返回‘9406'(脱机交易序号 错),但不返回其他数据; b) 检查电子钱包余额是否大于或等于交易金额。如果小于交易金额,则返回状态码‘9401"(金 额不足),但不返回其他数据,IC卡不操作内部出错计数器,终端应采取相应的措施; 通过上面的检查后,IC卡进入验证GMAC(步骤7.12)。
GB/T 50046-2018 工业建筑防腐蚀设计标准(完整正版、清晰无水印)8.4.8.13验证GMAC(步骤7.12)
IC卡验证GMAC的有效性。如果GMAC是有效的,将IC卡内部的解扣出错计数器复位,交易 继续执行交易处理(步骤7.13)。如果GMAC是无效的,IC卡返回错误状态码“9302(MAC无效 端,同时操作解扣出错计数器,3次出错则临时锁住应用以防止恶意试探。该解扣出错计数器将 解锁命令执行成功后被复位
8.4.8.14交易处理(步骤7.13)
1C卡从卡上的电子钱包余额中减去灰锁消费的交易金额(如果交易金额为0,则省略对余额的修 )、将电子钱包解锁、并将卡内的TACUF(交易验证码待读标志)置位, 用密钥DTK产生一个TAC。TAC将被写人终端交易数据包,以便后来传给主机进行交易验证。 下面是用来生成TAC的要素(按所列顺序): 交易金额; 交易类型标识(93=电子钱包解扣); 终端机编号(发出DEBITFORUNLOCK命令的终端); 终端交易序号(发出DEBITFORUNLOCK命令的终端); 交易日期(发出DEBITFORUNLOCK命令的日期); 交易时间(发出DEBITFORUNLOCK命令的时间)。 对于电子钱包的灰锁消费交易,IC卡将用以下数据组成的一个记录更新标准交易明细: 电子钱包脱机交易序号; 交易金额; 交易类型标识(“93二电子钱包解扣); 终端机编号(发出DEBITFORUNLOCK命令的终端); 交易日期(发出DEBITFORUNLOCK命令的日期); 交易时间(发出DEBITFORUNLOCK命令的时间)。 对于电子钱包的灰锁消费交易,IC卡将用以下数据组成的一个记录更新内部专用明细文件,以使 后终端可以通过GETLOCKPROOF命令得到: 交易类型标识; 电子钱包代号(“01=ET); 电子钱包余额; 电子钱包脱机交易序号:
终端机编号(发出DEBITFORUNLOCK命令的终端); 交易日期(发出DEBITFORUNLOCK命令的日期); 交易时间(发出DEBITFORUNLOCK命令的时间); 交易金额; TAC。 IC卡应全部成功地完成以上几个步骤或者一个也不完成,如果余额的更新、TACUF的置位、电子 钱包应用的灰锁状态的恢复没有成功,标准交易明细和内部专用明细也不应被更新, 3.4.8.15返回确认(步骤7.14)
终端机编号(发出DEBITFORUNLOCK命令的终端); 交易日期(发出DEBITFORUNLOCK命令的日期); 交易时间(发出DEBITFORUNLOCK命令的时间); 交易金额; TAC。 IC卡应全部成功地完成以上几个步骤或者一个也不完成,如果余额的更新、TACUF的置位、电子 我包应用的灰锁状态的恢复没有成功,标准交易明细和内部专用明细也不应被更新, 405574
8.4.8.15返回确认(步骤7.14)
IC卡在DEBITFORUNLOCK命令的响应报文中返回TAC码和SW1SW2=“9OO0 已被更新而且电子钱包应用已解锁
8.4.8.16读取TAC码(步骤7.15
终端读取由IC卡发来的TAC码,合成完整的交易成交数据包。 8.17发出GETLOCKPROOF(P1=“01")命令(步骤7.16) 终端发出GETLOCKPROOF(P1=‘01")命令。 8.18处理GETLOCKPROOF(P1=“01")命令(步骤7.17) IC卡将内部的TACUF(交易验证码待读标志)复位
8.4.9联机解扣交易
8.4.9.1一般说明
联机解扣交易允许将IC卡上的电子钱包应用解锁并扣除相应的交易金额。本交易应在联机的终 端上进行。 联机解扣交易流程见图10
解扣交易允许将IC卡上的电子钱包应用解锁并扣除相应的交易金额。本交易应在联机的终 解扣交易流程见图10
图10联机解扣交易流程
IC卡收到INITIALIZEFORGREYUNLOCK命令后,将进行以下操作: a)检查IC卡是否支持命令中包含的密钥索引号。如果不支持,返回状态码“9403'(不支持的密 钥索引号),且不返回其他数据。 b 在通过以上检查之后,IC卡将产生一个伪随机数(ICC)、过程密钥SESULK和一个报文认证 码(MAC1),供主机来验证联机解扣交易和IC卡的合法性。过程密钥SESULK被用于电子 钱包的联机解扣交易。用来产生过程密钥的输人数据如下: SESULK:伪随机数(ICC)II电子钱包联机交易序号11*8000 用SESUIK对以下数据加密产生MAC1(按所列顺序): 电子钱包余额; 电子钱包脱机交易序号; 交易类型标识; 终端机编号。 IC卡把INITIALIZEFORGREYUNLOCK命令的响应报文送给终端处理。 如果IC卡返回的状态不是*9000,终端将终止交易。 在收到INITIALIZEFORGREYUNLOCK命令的响应报文后,终端将联机解扣许可请求数据包 主发卡方主机
8.4.9.4验证MAC1(步骤8.3)
主机将生成SESULK并且确认MAC1是否有效。如果MACI有效,交易处理将按主机处理( )中描述的步骤继续执行:否则主机返回一个错误状态码,交易处理将转至返回错误状态(步骤 描述的步骤。
8.4.9.5返回错误状态(步骤8.4)
8.4.9.6交易处理(步骤8.5)
在确认能够进行联机解扣交易后,主机将产生一个报文认证码(MAC2),供IC卡对主机合法性进 行检查。主机发送一个联机解扣交易接受报文给终端,其中至少包括MAC2、交易日期(主机)和交易 时间(主机)。 用SESULK对以下数据进行加密产生MAC2(按所列顺序): 应补扣的交易金额; 交易类型标识; 终端机编号; 交易日期(主机); 交易时间(主机)
钱包余额、并将电子钱包应用解锁
8.4.9.8验证MAC2(步骤8.7)
收到GREYUNLOCK命令后,IC卡先检查电子钱包余额是否大于或等于交易金额。如果小于交 易金额,则返回状态码“9401'(金额不足),但不返回其他数据。IC卡还要验证MAC2的有效性。如果 MAC2是有效的,交易处理将继续执行:否则IC卡返回错误状态码‘9302(MAC无效)给终端。
8.4.9.9交易处理(步骤8.8)
IC卡从卡上的电子钱包余额中减去交易金额(如果交易金额为O,则省略对余额的修改),将 联机交易序号加1,将内部的解扣出错计数器复位,并将电子钱包应用解锁。 IC卡产生一个报文认证码(MAC3),包含在从卡传送到主机(通过终端)的GREYUNLOC 响应报文中,以供主机对联机解扣交易的成功的合法性进行检查。 用SESULK对以下数据进行加密产生MAC3(按所列的顺序): 电子钱包余额; 电子钱包联机交易序号(加1前); 交易金额; 交易类型标识; 终端机编号; 交易日期(主机); 交易时间(主机)。 在对电子钱包的联机解扣交易中,IC卡用以下数据组成的一个记录来更新标准交易明细: 电子钱包联机交易序号; 交易金额; 交易类型标识(95二电子钱包联机解扣); 终端机编号; 交易日期(主机); 交易时间(主机)。 对于电子钱包的联机解扣交易,IC卡将用以下数据组成的一个记录更新内部专用明细文 合终端可以通过GETLOCKPROOF命令得到: 交易类型标识; 电子钱包代号(‘01二电子钱包); 电子钱包余额; 电子钱包联机交易序号; 终端机编号; 交易日期; 交易时间; 交易金额; MAC3。 IC卡应全部成功地完成以上几个步骤或者一个也不完成,如果上述的操作没有成功,标准 和内部专用明细也不应更新。
10验证MAC3(步骤8
MAC3正确,则执行显示完 机发给终端错误状态码 显示完成(步骤8.10) 到主机的完成报文后,终端做相应的处理,显示完成信息
如果MAC3正确,则执行显示完成(步票 的步骤,否则主机发给终端错误状态码。
8.4.9.11显示完成(步骤8.10)
8.4. 10.1一般说明
补扣交易允许持卡人在灰锁的电子钱包应用中,对电子钱包补扣上次消费交易未扣除的交易额,并 将电子钱包应用解锁。 本交易应在拥有该电子钱包的上次异常交易记录的终端上进行。异常交易记录至少包括灰锁的电 子钱包应用的应用序列号、灰锁的电子钱包脱机交易序号、应扣的交易金额、GMAC。拥有异常交易记 录的终端可以是产生灰卡的终端,也可以是通过网络通讯得到异常交易记录的其他终端。 在交易预处理流程中发现电子钱包应用已灰锁时,进入本交易流程。 交易预处理流程中,终端收到IC卡返回的GETLQCKPROOF(P1=“00")的命令响应报文后,得 到上次的灰锁操作的产生日期、时间、MAC2、GTAC等数据。这些数据是终端进行补扣交易的依据。 补扣交易流程见图11
8.4.10.2查找异常交易记录(步骤9.1)
8.4.10.4检查脱机交易序号和余额(步骤9.3)
IC卡收到DEBITFORUNLOCK命令后,将进行以下操作: a) 检查脱机交易序号是否匹配,如果脱机交易序号不匹配,IC卡将返回*9406(脱机交易月 错),但不返回其他数据。 b 检查电子钱包余额是否大于或等于交易金额。如果小于交易金额,则返回状态码“9401 额不足),但不返回其他数据,IC卡不操作内部出错计数器,终端应采取相应的措施,
8.4.10.5 验证 GMAC(步骤 9.4)
IC卡验证GMAC的有效性。如果GMAC 将继续执行交易处理(步骤9.5)节。如果GMAC是无效的,IC卡返回错误状态码‘9302"(MAC 给终端,同时操作内部的解扣出错计数器,出错达到3次则临时锁住应用以防止恶意试探
8.4.10.6交易处理(步骤9.5)
IC卡从卡上的电子钱包余额中减去灰锁消费的交易金额(如果交易金额为O,则省略对余额 将电子钱包应用解锁,并将卡内的TACUF(交易验证码待读标志)置位。 用密钥DTK产生一个TAC,TAC将被写人终端交易数据包,以便后来传给主机进行交易验证 下面是用来生成TAC的要素: 交易金额; 交易类型标识; 终端机编号(发出DEBITFORUNLOCK命令的终端); 终端交易序号(发出DEBITFORUNLOCK命令的终端); 交易日期(发出DEBITFORUNLOCK命令的日期); 交易时间(发出DEBITFORUNLOCK命令的时间)。 对于电子钱包的补扣交易,IC卡将用以下数据组成的一个记录更新标准交易明细: 电子钱包脱机交易序号; 交易金额; 交易类型标识(电子钱包解扣); 终端机编号(发出DEBITFORUNLOCK命令的终端); 交易日期(发出DEBITFORUNLOCK命令的日期); 交易时间(发出DEBITFORUNLOCK命令的时间)。 对于电子钱包的补扣交易,IC卡将用以下数据组成的一个记录更新内部专用明细文件,以便 可以通过GETLOCKPROOF命令得到: 交易类型标识; 电子钱包代号(“01=电子钱包); 电子钱包余额:
IC卡从卡上的电子钱包余额中减去灰锁消费的交易金额(如果交易金额为0,则省略对余额的修 改)、将电子钱包应用解锁,并将卡内的TACUF(交易验证码待读标志)置位。 用密钥DTK产生一个TAC,TAC将被写人终端交易数据包,以便后来传给主机进行交易验证。 下面是用来生成TAC的要素: 交易金额; 交易类型标识; 终端机编号(发出DEBITFORUNLOCK命令的终端); 终端交易序号(发出DEBITFORUNLOCK命令的终端); 交易日期(发出DEBITFORUNLOCK命令的日期); 交易时间(发出DEBITFORUNLOCK命令的时间)。 对于电子钱包的补扣交易,IC卡将用以下数据组成的一个记录更新标准交易明细: 电子钱包脱机交易序号; 交易金额; 交易类型标识(电子钱包解扣); 终端机编号(发出DEBITFORUNLOCK命令的终端); 交易日期(发出DEBITFORUNLOCK命令的日期); 交易时间(发出DEBITFORUNLOCK命令的时间)。 对于电子钱包的补扣交易,IC卡将用以下数据组成的一个记录更新内部专用明细文件,以便以后 冬端可以通过GETLOCKPROOF命令得到: 交易类型标识; 电子钱包代号(“01=电子钱包); 电子钱包余额:
电子钱包脱机交易序号码; 终端机编号(发出DEBITFORUNLOCK命令的终端); 交易日期(发出DEBITFORUNLOCK命令的日期); 交易时间(发出DEBITFORUNLOCK命令的时间); 交易金额; TAC。 IC卡应全部成功地完成以上几个步骤或者一个也不完成,如果余额的更新、TACUF的置位、电子 钱包应用解锁未成功,标准交易明细和内部专用明细也不应被更新。 3.4.10.7 返回TAC码(步骤9.6) IC卡在DEBITFORUNLOCK命令的响应报文中返回TAC码,表明余额已被更新而且电子钱包 应用已解锁。 8.4.10.8 读取TAC码(步骤9.7) 终端读取由IC卡发来的TAC码,合成完整的交易成交数据包。 8.4.10.9 发出GETLOCKPROOF(P1=“01")命令(步骤9.8) 终端发出GETLOCKPROOF(P1=‘01")命令。 3.4.10.10处理GETLOCKPROOF(P1=“01)命令(步骤9.9) IC卡将内部的交易验证码待读标志(TACUE)复位
8.4. 11.1 一般说明
补充交易充许终端读取上次灰锁消费交易或补扣交易申未获得的TAC,上送主机以供验证 在交易预处理流程中发现电子钱包解扣操作已完成而TAC未成功读取,则进入本交易流程 交易预处理流程中,终端收到IC卡返回的GETLOCKPROOF(P1三O0)的命令响应报文后,得 到上次的灰锁操作的产生日期、时间、TAC等数据。这些数据是终端进行补充交易的依据。 补充交易流程见图12
8.4.11.2读取TAC(步骤10.1)
终端通过GETLOCKPROOF命令中的响应报文,获得上次灰锁消费或补扣交易的TAC。
终端通过GETLOCKPROOF命令中的响应报文,获得上次灰锁消费或补扣交易的TAC。 8.4.11.3形成补充交易数据包(步骤10.2) 终端将读到的TAC,和其他的相关数据合成一条补充交易数据包,以便上送主机。 8.4.11.4发出GETLOCKPROOF(P1=*01)命令(步骤10.3) 终端发出GETLOCKPROOF(P1=01")命令 8.4.11.5处理GETLOCKPRO0F(P1=01")命令(步骤10.4) IC卡将内部的TACUF复位
8.4.12查询余额交易
持卡人可以通过终端或其他读卡设备读取电子存折中的余额。此交易一般脱机进行。在电子存折 应用中进行此交易应提交个人密码(PIN)。电子钱包则不需要。 终端利用GETBALANCE命令实现查询余额交易
8.4.13查询明细交易
理。交易时需提交个人密码(PIN)。 终端发出一个READRECORD命令来获得交易明细。这个命令会返回某个交易明细记录中所含 的所有数据。交易明细文件为循环记录文件,且至少应包含10条记录。 交易明细中的记录使用记录号寻址。记录号范围从1到n,n是文件中记录的最大个数。最近写入 的记录号为1,前一记录号为2,如此类推直到n。n代表文件中最早写入的记录。 IC卡应支持在以下交易中记录明细:电子钱包圈存交易、电子存折圈存交易、电子存折圈提交易、 电子存折消费交易、电子钱包消费交易、电子存折取现交易、电子存折修改透支限额交易
8.4.14应用维护功能
8.4.14.1安全报文
电子存折/电子钱包应用涉及的安全机制,应按照“安全机制”部分的规定进行,并作如下改动和 曾补: a 在传送一个包含安全报文的命令前,主机向终端发送一个报文,要求从IC卡获得一个随机数。 终端向IC卡发出一个GETCHALLENGE命令。从IC卡返回的随机数被送往主机以用于 安全报文处理; b 从IC卡返回的4字节随机数后缀以“00000000',所得到的结果作为初始值,用以代替电子 钱包/电子存折卡片标准中定义的初始化值; 不采用过程密钥。除去UNBLOCKPIN命令外,均使用导出的应用维护密钥(DAMK)来计 算MAC。UNBLOCKPIN命令采用导出的PIN解锁密钥来产生MAC; 全部采用双倍长密钥的3DEA算法
电子存折/电于钱包应用涉及的安全机制,应按照“安全机制”部分的规定进行,并作如下改动和 增补: 在传送一个包含安全报文的命令前,主机向终端发送一个报文,要求从IC卡获得一个随机数, 终端向IC卡发出一个GETCHALLENGE命令。从IC卡返回的随机数被送往主机以用于 安全报文处理; b) 从IC卡返回的4字节随机数后缀以‘00000000',所得到的结果作为初始值,用以代替电子 钱包/电子存折卡片标准中定义的初始化值; 不采用过程密钥。除去UNBLOCKPIN命令外,均使用导出的应用维护密钥(DAMK)来计 算MAC。UNBLOCKPIN命令采用导出的PIN解锁密钥来产生MAC; 全部采用双倍长密钥的3DEA算法
8.4.14.2卡片锁定
终端发出CARDBLOCK命令来锁定卡片。 CARDBLOCK命令参照“文件和命令”部分。命令的成功执行使得IC卡中的所有应用无效。 情况下,进行应用选择将会返回状态码“6A81(功能不被支持)。
8.4.14.3应用锁定
终端发出APPLICATIONBLOCK命令来锁定应用。 命令的用法由发卡方自行决定。 命令参照“命令”部分。命令的成功执行导致IC卡中的电子存折/电子钱包应用无效。在这种状 下: ) 选择此应用时,对SELECT命令IC卡返回状态码“6283(选择文件无效)和文件控制信息 (FCI),在T=0协议时,卡片FCI需用GETRESPONSE命令取回。 b 在应用被选择后,除以下情况外,IC卡对其他命令只返回状态码“6985(使用的条件不满足): 1 当用SELECT命令选择此应用或其他应用时; 2) 当用GETCHALLANGE命令时; 3) APPLICATIONBLOCK命令; 4) CARDBOLCK命令; 5) APPLICATIONUNBLOCK命令。 如果在命令参数P2中指明永久性锁定此应用,IC卡将设置一个内部标志以表明不允许执行 APPLICATIONUNBLOCK命令。 d 此命令的执行并不改变电子存折联机交易序号和电子钱包联机交易序号的值
8.4.14.4应用解锁
终端发出APPLICATIONUNBLOCK命令来对应用解锁。 如果对某应用连续三次解锁失败,则IC卡将永久锁定此应用并返回状态码‘9303(应用永久锁 定)。 如果在APPLICATIONUNBLQCK命令申使用了永久锁定的选项,IC卡将返回状态码*9303 (应用永久锁定)且不再对应用解锁。 APPLICATIONUNBLOCK命令的成功执行使应用重新恢复成有效状态。在此之后,该应用对 所有命令的响应就像应用锁定和应用解锁没有执行过一样。 此命令的执行并不改变电子存折联机交易序号和电子钱包联机交易序号的值
8.4.14.5PIN解锁
终端发出UNBLOCKPIN命令对PIN解锁。 在命令报文中,P2取O1值。使用DPUK对PIN数据加密。 如果PIN连续三次解锁失败,则IC卡将永久锁定此应用并返回状态码9303(应用永久锁定)。
8.4.14.6二进制形式修改
终端发出UPDATEBINARY指令 如果三次执行此命令均告失败,则IC卡将永久锁定此应用并返回状态码9303"(应用永久锁定)。
8.4.14.7更改PIN
更改PIN功能不需要MAC,它可以在任意支持该命令的终端上执行。当IC卡接到此命令时,它 子进行以下操作: a)检查PIN尝试计数器。如果为0,表明PIN已锁定,此命令不能执行。在这种情况下,IC卡返 回状态码6983(认证方式锁定)。 b 如果PIN没有锁定,则命令中的*当前PIN会和IC卡上存放的PIN比较。如果二者相同,IC 卡将进行以下操作: 1)将IC卡上的PIN改为命令中的新PIN 2 将PIN尝试计数器置为PIN重试的最大次数。 如果卡上的PIN和命令中的‘当前PIN'并不相同,IC卡将进行以下操作: 1 将PIN尝试计数器减1; 2 返回状态码63Cx,这里x是PIN尝试计数器的新值。如达到零,则卡片自动锁 定PIN
8.4.14.8亚装 PIN
终端发出RELOADPIN命令来重装PIN。用密钥DRPK产生一个MAC。当此命令失败三 ,应用被永久锁定。
IC卡应能够在交易处理中的任何情况下,甚至是在更新EEPROM过程中卡片掉电的情况下 数据的完整性。这就需要在每次更新数据前对数据进行备份,并且在卡片重新加电后自动地触发 机制。 在终端发给IC卡一个命令以更新电子存折余额或电子钱包余额时,卡片返回一个MAC或
TAC,以证明更新已经发生。这样的情况有圈存(TAC),圈提(MAC3)、消费/取现(TAC)和修改透支 限额(TAC)。 IC卡应在更新余额前计算MAC或TAC,一且余额更新成功,应保证可以通过GETTRANSCTION PROVE命令获得此MIAC或TAC。如果防拨恢复已使余额恢复到更新前的数值,那么有关的加密数据不 必再保留。接到更改ED或EP余额的命令,如Debit、Credit命令时,这些加密数据可能被丢弃。 如果在命令已执行结策,而终端还未收到响应之前,卡片突然离并,终端将会处于不知卡片是否更 新的不定状态。这种情况下,终端应负责用GETTRANSACTIONPROVE命令进行恢复。 如果卡片正在处理时突然离开,终端应提醒持卡人重新操作卡片,之后端将检查发卡方标识和应 用序列号以确认进入的卡片和前面离开的卡片是否同一张卡。如果是同一张卡,终端发出GE1 TRANSACTIONPROVE命令,假如MAC和TAC返回,终端即完成交易处理。如果MAC和TAC 的初始化命令重新开始
交易处理性能要求针对非接触式IC卡。 交易处理性能要求主要体现在消费交易,从卡被选择到交易处理结束允许离开磁场感应区的时 退制为不大于300ms
附录A (规范性附录) 算法标识文件ADEE说明
法支持说明。见表A.1和表A.2
表A.1ADEE文件结构说明
表A.2算法标识说明
A.2文件结构及算法支持说明
ADEE文件位于MF下公共钱包应用目录下
本标准所使用的数据元定义见表B.1
附录B (规范性附录) 数据元解释
DB11/T 656-2019 建设用地土壤污染状况调查与风险评估技术导则CI/T 3042017
附录C (规范性附录) ED/EP应用的密钥关系
本附录描述了与ED/EP应用相关的设备实体之间的密钥关系,此处还描述了IC卡密钥的推导方 法和过程密钥的产生方法
为确保密钥的安全,密钥的产生和存放都应由一个专用的安全模块来处理。支持ED和EP应 CPU卡、POS设备之间的密钥关系见表C.1和表C.2。
表C.1共用于电子存折和电子钱包应用的密钥
表C.2用于电子存折应用的密钥
表D.1密钥存储说明
主密钥存放的位置说明应符合下列要求: UM 用户卡发卡母卡; PM PSAM卡发卡母卡; IM ISAM卡发卡母卡; J 后台认证加密机:
GB/T 42254-2022 渤海和黄海北部冰情等级P PSAM卡; 1 ISAM卡; U 用户卡。