北京握奇数据系统有限公司
一九九九年五月
卡手册
目录
一二三文件结构文件结构区域说明区域说明基本命令选择文件()读记录文件()写记录文件()读二进制文件()写二进制文件()外部认证()取响应数据()取随机数()内部认证()扩展命令写入密钥()通用计算初始化( !)通用计算()应用解锁()计算(!\")校验(!\")应用锁定(!!##)校验个人密码($!)修改!(!)重装!(!)
卡手册
四五安全计算()擦除目录文件()创建文件%&应用流程全国密钥管理中心洗卡消费交易流程安全特性六状态码附录卡片中的基本数据文件附录母卡本手册完全遵从中国金融卡卡应用规范增加内容用表示
卡手册
一 文件结构
卡用于商户、网点终端、直联终端等端末设备上,负责机具的安全控管。卡具有一定的通用性。经过个人化处理的卡能在不同的机具上使用。
卡支持多级发卡的机制,各级发卡方在卡片主控密钥和应用主控密钥的控制下创建文件和装载密钥。 文件结构
卡文件结构符合-。本条款描述了符合本规范的应用文件结构,这些应用被定义为支付系统应用()。符合-,但不符合本规范的其他应用也可出现在上,并可以使用本规范中定义的命令进行操作。卡中的路径可以通过明确选择支付系统环境()来激活。卡文件结构如下图所示:
卡手册
#$() !\"!!#$!%&!()!*+,-.'///图卡文件结构
区域说明
在卡的区域中,文件创建和密钥装载是在卡片主控密钥的控制下进行。
卡手册
目录数据文件
目录数据文件的说明参考《中国金融集成电路()卡规范》,但
目录数据文件的入口地址必须包括全国密钥管理总中心应用。
卡片主控密钥
卡片主控密钥是卡片的控制密钥,由卡片生产商写入,由发卡方替换为发
卡方的卡片主控密钥。卡片主控密钥的更新在自身的控制下进行。发卡方必须在卡片主控密钥的控制下,! 创建卡片区域的文件;! 装载卡片维护密钥、应用主控密钥;! 更新卡片主控密钥、卡片维护密钥。卡片主控密钥的控制可通过外部认证操作实现,也可通过安全报文的方式实现。
卡片维护密钥
卡片维护密钥用于卡片区域的应用维护,在卡片主控密钥的控制下装载和更新。卡片的管理者可在卡片维护密钥的控制下,! 安全更新记录文件;! 安全更新二进制文件。卡片维护密钥的控制通过安全报文的形式实现。 卡片公共信息文件卡片公共信息文件存放卡片的公共信息,在卡片主控密钥的控制下创建,可自由读,可在卡片维护密钥的控制下改写。
终端信息文件
终端信息文件存放终端的信息,在卡片主控密钥的控制下创建,可自由读,可在卡片维护密钥的控制下改写。
区域说明
在卡的()区域中,文件创建和密钥装载
卡手册
是在应用主控密钥的控制下进行。下的文件结构可由应用发行者自行确定。全国密钥管理中心应用的文件结构必须包括应用主控密钥、应用维护密钥、应用主工作密钥数据元、应用公共数据文件和终端应用交易序号数据元。
应用主控密钥
应用主控密钥是应用的控制密钥,在卡片主控密钥控制下写入。发卡方必
须在应用主控密钥的控制下,! 装载应用维护密钥、应用主工作密钥;! 更新应用主控密钥、应用维护密钥。应用主控密钥的控制可通过外部认证操作实现,也可通过安全报文的方式实现。
应用维护密钥应用维护密钥用于卡片区域的应用维护,在应用主控密钥的控制下装载和更新。卡片的管理者可在应用维护密钥的控制下,! 安全更新记录文件;! 安全更新二进制文件;! 进行应用解锁。卡片维护密钥的控制通过安全报文的形式实现。 应用主工作密钥应用主工作密钥用于卡片的交易,在应用主控密钥的控制下装载。 应用公共信息文件应用公共信息文件存放应用的公共信息,在应用主控密钥的控制下创建,
可自由读,可在卡片维护密钥的控制下改写。
终端应用交易序号数据元
终端应用交易序号长度字节,用于终端的脱机交易,在消费交易
验证通过的情况下由卡片操作系统改写。
终端应用交易序号只对本应用有效。
卡手册
二 基本命令
选择文件(选择文件()
定义和范围
命令通过文件名或来选择卡中的、或。命令执行成功后,、或的路径被设定。应用到的后续命令将采用方式联系到所选定的、或。从卡的响应报文应由回送的组成。 命令报文命令报文见表-。值 引用控制参数(见表-) :第一个或仅有一个 :下一个\" ~ 文件名 表-命令报文表
代码!#$##含义
通过文件名选择表-命令引用控制参数
####\"#卡手册
命令报文数据域
命令报文数据域应包括所选择的名称、名称或。数据域的长
度为\"%字节。
响应报文数据域
响应报文中数据域应包括所选择的、或的。表-$到
表-\"规定了此定义所用的标志。本规范不规定中回送的附加附加标志。表-$定义了成功选择后回送的:标志&&&&&\"&&&模板名专用数据目录基本文件的表-$的响应报文()表-定义了成功选择后回送的:标志&&&&&\"&&&模板名专用数据目录基本文件的表-的响应报文()表-\"定义了成功选择后回送的:标志&&&&&\"&&'&模板名专用数据
发卡方自定义数据的
表-\"的响应报文()
值
存在方式
值存在方式值存在方式
卡手册
读记录文件(读记录文件()
定义和范围
命令用于读取记录文件中内容。卡的响应由回送的记录数据组成。
命令报文值 ( 记录的序号引用控制参数(见表-)不存在;不存在; 表-命令报文命令报文见表-。代码!##$##含义)))))为记录的序号表-命令引用控制参数####\" 命令报文数据域
命令报文数据域不存在。
响应报文数据域
所有执行成功的命令响应报文数据域由读取的记录组成。
举例说明
例如:读取文件的第一条记录的*如下:(\"
卡手册
响应报文及状态如下:
$'$'\"\"'$'
卡手册
写记录文件(写记录文件()
定义和范围
*命令用命令*中给定的数据更改指定的记录。在使用当前记录地址时,该命令将在修改记录成功后重新设定记录指针。在使用安全报文更新记录时,若安全报文连续三次出错,则永久锁定应用。
命令报文*命令报文见表-。值 或 + :表示当前记录≠ :指定的记录号见表-后续数据域长度输入数据不存在表-*命令报文代码!#$##)))))其余值####\"#含义第一个记录最后一个记录下一个记录上一个记录记录号在中给出*表-'*命令引用控制参数
卡手册
命令报文数据域
命令报文数据域由更新原有记录的新记录组成。使用安全报文时,命令报
文的数据域中应包括。是由卡片维护密钥或应用维护密钥对更新原有记录的新记录计算而得到的。
响应报文数据域
响应报文数据域不存在。
卡手册
读二进制文件(读二进制文件()
定义和范围
(!,命令用于读取二进制文件的内容(或部分内容)。
命令报文
(!,命令报文见表-。
值 ( 见表-从文件中读取的第一个字节的偏移地址不存在不存在表-(!,命令报文代码!####\"##$##))))))含义读取模式:-用方式*(如果#=)(取值范围-$)表-(!,命令引用控制参数 命令报文数据域命令报文数据域不存在。
响应报文数据域
当的值为时,只要文件的最大长度在\"(短长度)或\"\"$(扩展
长度)之内,则其全部字节将被读出。
文件的*如下:卡手册
举例说明
例如,读取终端信息('响应报文和状态如下:$\"'
卡手册
写二进制文件(写二进制文件()
定义和范围
*(!,命令用命令*中给定的数据修改文件中已有的数据。
命令报文
*(!,命令报文见表-。值 或 见表-$要修改的第一个字节的偏移地址后续数据域的长度修改用的数据不存在表-*(!,命令报文代码!###\"##$##))))))#含义读取模式:-用方式*(如果#=)(取值范围-$)表-$*(!,命令引用控制参数
命令报文数据域
命令报文数据域包括更新原有数据的新数据。使用安全报文时,命令报文
的数据域中应包括。是由卡片维护密钥或应用维护密钥对更新原有数据的新数据计算而得到的。
卡手册
响应报文数据域
响应报文数据域不存在。
卡手册
外部认证(外部认证( )
定义和范围
)!*-!!命令用于对卡片外部的安全认证。计算的方法是利用卡片中的卡片主控密钥或应用主控密钥,对卡片产生的随机数(使用.-!.命令)和接口设备传输进来的认证数据进行验证。
命令报文
)!*-!!命令报文见表-。值 发卡方认证数据不存在表-)!*-!!命令报文代码! 命令报文数据域命令报文数据域中包含字节的加密数据,该数据是用主控密钥对此命令前一条命令“.-!.”命令获得的随机数后缀“”之后做$加密运算产生的。 响应报文数据域响应报文数据域不存在。
卡手册
! 取响应数据(取响应数据(\"##)
定义和范围
当*不能用现有协议传输时,.!命令提供了一种从卡向接口设备传送*(或*的一部分)的传输方法。
命令报文
.!命令报文见表-\"。
值 不存在不存在期望数据的最大长度表-\".!命令报文代码! 命令报文数据域命令报文数据域不存在。 响应报文数据域响应报文数据域的长度由的值决定。如果的值为,在后续数据有效时,卡必须回送状态码‘//’,否则‘’。
卡手册
$ 取随机数(取随机数(\"% &)
定义和范围
.-!.命令用于从卡中获得一个个字节的随机数。该随机数服务于安全过程(如安全报文),在使用随机数的命令执行后失效。
命令报文
.-!.命令报文见表-。值 不存在不存在 表-.-!.命令报文代码! 命令报文数据域命令报文数据域不存在。 响应报文数据域卡产生的随机数,长度为字节。
卡手册
' 内部认证(内部认证(( ))))
定义和范围
!!*-!!命令提供了利用接口设备发来的随机数和自身存储的相关密钥进行数据认证的功能。
命令报文
!!*-!!命令报文见表-'。值 密钥标识号认证数据长度认证数据运算后的数据长度表-'!!*-!!命令报文指示可以使用!!*-!!命令进行验证密钥的标代码!识号。 命令报文数据域命令报文数据域中包含应用专用的认证数据。 响应报文数据域响应报文数据域是相关认证数据,即运算结果。
响应报文状态码
卡可能回送的状态码及意义如下所示:状态码''$命令成功执行密钥不存在
意义
无或卡片已锁定、参数错误错误的数据长度安全权限不满足无效的
卡手册
'卡手册
三 扩展命令
为符合《中国金融集成电路()卡规范(01)》和《银行卡联合试点技术方案》的安全控管要求,卡必须支持以下专用命令。
写入密钥(写入密钥(*+)
定义和范围
23,命令可向卡中装载密钥或更新卡中已存在的密钥。本命令可支持字节或字节的密钥,密钥写入必须采用加密的方式,在主控密钥的控制下进行。在密钥装载前必须用.-!.命令从卡取一个字节的随机数。 命令报文值 或 加密后的密钥信息、不存在表$-23,命令报文
23,命令报文见表$-。代码! 命令报文数据域
命令报文数据域包括要装载的密钥密文信息和。
密钥密文信息是用主控密钥对以下数据加密(按所列顺序)产生的:44密钥用途
卡手册
44密钥版本44密钥算法标识44密钥值
是用主控密钥对下数据进行计算(按所列顺序)产生的:4444!444444
44密钥密文信息
加密和计算的方法遵循《中国金融集成电路()卡规范》。装载字节的单长度密钥时,数据长度为 ;装载字节的双长度密钥时,数据长度为 。
响应报文数据域
响应报文数据域不存在。 举例说明
例如:某下的主控密钥为3,在该应用下写入一应用维护密钥3(字节),则命令报文如下(该命令的前一条命令为取字节的随机数5):
67(3,83)9(7:;8(58,3,<67(3,83)9(7:;)9(7:;响应状态为'
卡手册
通用计算初始化(计算初始化((,(-./.%01-)
定义和范围
!==,命令用来初始化通用密钥计算过程。卡将利用卡中指定的密钥进行运算,产生一个临时密钥。运算方式由指定的密钥类型、密钥分散级数和密钥算法标识确定。
不支持计算临时密钥计算的密钥类型有:44主控密钥44维护密钥44消费密钥
双长度密钥产生双长度临时密钥的密钥类型有:44!解锁密钥44用户卡应用维护密钥双长度密钥左右异或产生单长度临时密钥的密钥类型有:44重装!密钥
双长度密钥产生双长度临时密钥,单长度密钥产生单长度临时密钥的密钥类型有:
44密钥44加密密钥44、加密密钥44解密密钥
指定密钥经过几级处理由密钥分散级数和确定,若二者不一致,则返回错误信息。
临时密钥在卡下电后自动消失,不允许读。临时密钥产生后,与原密钥的属性一致。
命令报文
!==,命令报文见表$-。
卡手册
代码! 密钥用途密钥版本待处理数据的长度待处理的数据无
值
表$-$!==,命令报文
命令报文数据域命令报文数据域包括待处理的输入数据。数据长度为的整数倍,长度也
可以为。密钥类型取密钥用途的低\"位,密钥分散级数取密钥用途的高$位。
如待处理的输入数据包括多级的分散因子,按最后一次分散因子在前、最先一次分散因子在后的顺序输入。 响应报文数据域响应报文数据域不存在。 举例说明
例如:假设某应用下有一,+$、3>+、?6 @+的密钥,
则使用该密钥产生临时密钥的命令报文如下:$$$\"\"''(($$\"\"
响应状态为:'
卡手册
通用计算(计算(%)
定义和范围
,命令利用指定的密钥来进行运算。若一条命令无法传输所有的待处理数据,可分几条命令输入。
加密计算采用(模式,数据的填充在卡片外面进行,卡片只支持长度为的整数倍数据的加密。
计算遵循《中国金融集成电路()卡规范》,数据的填充在卡片外面进行,卡片只支持长度为的整数倍数据的计算。,命令必须在!==,命令成功执行后才能进行。卡片状态在执行无后续块计算后,复原为通用计算初始化执行前的状态。 命令报文值 见表$- 要加密的数据长度要加密的数据不存在表$-$,命令报文,命令报文见表$-$。代码!(###\"##$##)含义计算模式44,加密44,计算
卡手册
))后续块
44,无后续块44,有后续块初始值(仅对计算有效)
44,无初始值44,有初始值
表$-,命令引用控制参数
值计算模式如下:44,无后续块加密44,最后一块计算44,有后续块加密44$,下一块计算44\",唯一一块计算44,第一块计算44其他,保留
命令报文数据域
命令报文数据域包括要加密的数据。加密数据的长度为的整数倍。在的#$位为时,待处理数据的前个字节为计算的初始值。
响应报文数据域
在的#位为时,响应报文数据域包括加密结果,数据长度是的整
数倍。
在的#位为,且的#位为时,响应报文数据域包括字节的。
举例说明
例如:以上一节例子为例,卡内已有一,+$密钥产生一
临时密钥3,根据密钥的继承性,该3可以用于进行和运算,举用于计算的命令报文如下:
卡手册
$$\"\"响应报文和状态如下:
$(3,%)9(7:;'
卡手册
应用解锁(应用解锁(23)
定义和范围
!*!(3命令用于恢复当前应用。当命令成功完成后,对应用访问的将被取消,利用消费密钥校验的错误计数器将被重置。
如果应用解锁连续失败三次,卡将永久锁定此应用。
在!*!(3命令执行前必须执行.-!!.命令取得字节的随机数。
命令报文值 数据字节数报文鉴别代码数据元不存在表$-\"!*!(3命令报文!*!(3命令报文见表$-\"。代码! 命令报文数据域命令报文数据域包括报文鉴别代码,由应用维护密钥对以下数据(按所列顺序)进行计算而得到的:4444!444444
计算的方式参见《中国金融集成电路()卡规范。》
卡手册
响应报文数据域
响应报文数据域不存在。
卡手册
%计算(计算((,(-../.1%4)
定义和范围
!===*-命令可支持多级消费密钥分散机制,产生《中国金融集成电路()卡规范》中定义的。根据银行卡试点技术方案,可以利用试点城市标识、成员行标识、卡片应用序列号、随机数和交易信息得到过程密钥,进而加密得到。卡产生脱机交易流程中的过程如下所示:
! 在其内部用.3(全国消费主密钥)对试点城市标识分散,
得到二级消费主密钥(3;! 在其内部用(3对成员行标识分散,得到成员行消费主密钥
3;
! 在其内部用3对卡片应用序列号分散,得到卡片消费子密钥
3;
! 在其内部用3对卡片传来的伪随机数、脱机交易序号、终端
交易序号加密,得到过程密钥3,作为临时密钥存放在卡中;! 在其内部用3对交易金额、交易类型标识、终端机编号、
交易日期(终端)和交易时间(终端)加密得到,将传送出去。
在此过程中,所有的中间结果只保留在卡片内部,外界无法得到。只有进行本命令后,才允许进行校验的命令。参与处理的终端机编号和终端交易序号由卡片操作系统从卡片中取得。!===*-命令可支持多级消费密钥分散机制,消费密钥的分散过程由和消费密钥共同确定,如果二者不一致,则返回错误信息。
命令报文
值
!===*-命令报文见表$-。代码卡手册
! +×!(!=,,$)要处理的数据表$-!===*-命令报文
命令报文数据域
命令报文数据域包括的数据以下列顺序排列:! 用户卡随机数,字节! 用户卡交易序号,字节! 交易金额,字节! 交易类型标识,字节! 交易日期(终端),字节! 交易时间(终端),$字节! 消费密钥版本号,字节! 消费密钥算法标识,字节! 用户卡应用序列号,字节! 成员银行标识,字节! 试点城市标识,字节 响应报文数据域
响应报文数据域包括以下数据(按顺序返回):44字节的终端脱机交易序号44字节的
举例说明
例如:有一密钥内容为%的,+、3>+的密钥
.3,下的终端公共信息文件内容为%,进行第一次计算命令报文如下:
卡手册
$$'''$\"'''$$$\"\"\"\"$$
响应报文及状态:
('
卡手册
校验%(%(-../.1%4)
定义和范围
===*-命令利用!===*-命令产生的过程密钥3校验,过程如下所示:
! 检查尝试计数器,如未被锁定,在其内部用3
对交易金额加密得到,与命令报文中的数据进行比较;! 若命令执行成功,卡将应用中的终端脱机消费交易序号加;! 如命令执行不成功,卡将尝试计数器减,并回送状态
码A$/A,这里A/A是尝试计数器的新值;! 如果A/A为零,卡将锁定消费密钥所在的。在此过程中,所有的中间结果只保留在卡片内部,外界无法得到。===*-命令必须在!===*-命令成功执行后才能进行。若尝试计数器为的话,消费密钥所在的应用将被锁定,只能在应用维护密钥的控制下应用解锁后使用。应用下的错误计数器在应用下所有消费密钥校验错误的情况下都要被减。卡片的状态在命令执行后将复原为校验前的状态。 命令报文值 ===*-命令报文见表$-。代码!
卡手册
不存在
表$-===*-命令报文
命令报文数据域
命令报文数据域包括字节的。
响应报文数据域
响应报文数据域不存在。
举例说明
例如:续上一节例子,校验的命令报文如下:$\"响应状态如下:'
卡手册
! 应用锁定(115(%-(/,5/%+))))
定义和范围
!(3命令使当前选择的应用失效。对其它命令的影响跟据不同应用而定。
命令报文
!(3命令报文编码如下:
代码!(由文件线路保护密钥生成)不存在值+:此命令执行成功后可锁定应用,但该应用可以用!*!(3命令解锁,可由命令选择进入该目录,但对文件操作时返回B。+:此命令执行成功后将永久锁定应用,卡将设置一个内部标志以表明不允许执行!*!(3命令,可由命令选择进入该目录,但对文件操作时返回'$$。 命令报文数据域命令报文数据域包括报文鉴别代码()数据元。 响应报文数据域
响应报文数据域不存在。
卡手册
$ 校验个人密码(校验个人密码(671(,))))
定义和范围
0,!命令用于校验命令数据域中的个人密码的正确性。
命令报文
0,!命令报文见表-。
值 可变外部输入的个人密码不存在表$-0,!命令报文代码! 命令报文数据域命令报文数据域由持卡者输入的个人密码组成。 响应报文数据域响应报文数据域不存在。 响应报文状态码卡可能回送的状态码及意义如下所示:状态码'$/命令成功执行无或卡片已锁定、参数错误错误的数据长度还有/次可试机会
意义卡手册
''$安全权限不满足!已锁定无效的
卡手册
' 修改1(,(% &1(,))))
定义和范围
-!.!命令允许持卡人将当前个人密码修改为新的密码。当-!.!命令成功完成后,卡要进行以下操作:密码尝试计数器恢复为最大值;将旧个人密码换为新的个人密码。
此命令中的个人密码(!)值以明文方式传送,并且个人密码值都是有效值。
命令报文
-!.!命令报文见表$-。值 \" \" - 当前!CCAACC新的!个人密码数据元不存在表$--!.!命令报文代码! 命令报文数据域命令报文数据域为当前的!和要更改的个人密码,中间以AA间隔。 响应报文数据域响应报文数据域不存在。响应报文状态码卡可能回送的状态码及意义如下所示:
卡手册
状态码''命令成功执行无或卡片已锁定、参数错误权限不满足错误的数据长度无效的
意义
卡手册
8 重装重装1(,(1(,))))
定义和范围
!命令用于发卡方重新给持卡人产生一个新的!(可以与原!相同)。
!命令只能在拥有!密钥的发卡方终端(例如发卡方银行终端)上执行。
在成功执行!命令后,卡必须完成以下操作:44!错误尝试计数器恢复;
4卡的原!值被设置为新的!值。命令中的!数据以明文传送。 命令报文!命令报文见表$-\"。值 \" - 重装的!CC不存在表$-\"!命令报文代码! 命令报文数据域命令报文数据域为要更改的个人密码和。是由口令重装密钥前
后字节异或后对!数据元进行运算的结果。在运算时,不需要取随机数,而以字节的作为初始值进行运算。
卡手册
响应报文数据域
响应报文数据域不存在。
响应报文状态码
卡可能回送的状态码及意义如下所示:状态码''$'命令成功执行无或卡片已锁定、参数错误密钥不存在权限不满足错误的数据长度无效的意义
卡手册
安全计算(安全计算(%))))安全计算
定义和范围
**!命令利用密钥文件中的密钥对输入数据进行特定运算,输出结果。用于安全计算的密钥的长度为字节。
命令报文
值 加密方式D 解密方式(*(!2,)密钥版本数据长度E!+D$D┄待运算的数据表$-$**!命令报文**!命令报文见表$-$。代码! 命令报文数据域命令报文数据域包括以下数据:! 字节的F5;! 字节的F5;! 字节的F5!G。! 字节的序列号 响应报文数据域响应报文数据域包括字节的运算结果。
响应报文状态码
卡可能回送的状态码及意义如下所示:
卡手册
状态码''$'命令成功执行无或卡片已锁定密钥不存在权限不满足错误的数据长度无效的
意义
举例说明
例如:某应用下有一内容为%的,+、3>+的密钥,用于安全计算方式的命令报文如下:
$\"$$\"\"$$\"\"响应报文及状态如下:\"((('
卡手册
擦除目录文件擦除目录文件())))
定义和范围
命令用于擦除当前下所有文件。
命令报文
命令报文编码如下:代码!不存在不存在值 命令报文数据域命令报文数据域不存在。 响应报文数据域响应报文数据域不存在。 响应报文状态码卡可能回送的错误状态码如下所示:22\"'含义写不成功擦除权限不满足说明:擦除当前下所有文件,擦除后即可任意在该下建立文件而不受建立权限的控制,当建立3,文件后下次再进入将受权限控制,因此建议的擦除权限应设计为最高,若不允许擦除设为即可。擦除成功后,下所有基本文件及下级目录文件都将丢失,成为一个空的,但本身及其的各权限及空间大小均不变。
卡手册
若当前目录为,则除外卡上所有基本文件和目录文件均被删除。
卡手册
创建文件创建文件9%:)))
定义和范围
命令用于在中建立一个新文件。
命令报文
!文件标识
符
长度为+名称长度
长度为
有关文件信
息
说明:与操作系统不同,在@卡操作系统下,文件一旦建立就
不可删除,但在一定的权限许可下可擦除当前的。目录文件建立后不能自动被选择,需使用命令选择。当一个目录下没有任何文件时H即空的目录I,则必须在该目录下先建立一个3,文件,根据应用要求写入相应的密钥,在还没有退出该目录之前,建立文件及读写文件等所有操作均不受权限控制,一旦退出该目录后再进入时,所有操作均受规定权限的控制。。建立目录文件!文件标8识符名称长度$主体空间建立文擦除短文件H字节I件权权标识符名称若无名称则建时的值为,只能用文件标识符对该目录文件进行访问。主体空间:指可在下建立文件的空间。建立文件权:指在下建立或所必须满足的条件。擦除权:指在满足何种条件时可以使用命令擦除,擦除后可以重新在下建立文件,但主体空间大小、建立文件权、擦除权、短文件标识符等项均不改变。
短文件标识符:
若建立的目录文件为,则高$位为,低\"位为目录文件的短文件
卡手册
标识符。
若建立的目录文件为,则高$位为时,低\"位为发卡方专用数据文件的短文件标识符,在选择时该文件内容被作为发卡方专用数据返回。
若不需要建目录文件或选择目录文件时不需要返回发卡方专用数据即公共应用基本文件的内容(见附录中的应用举例),则该值填。
建立基本文件
!文件类型文件主体空权限一权限二间H字节I文件标识符说明:记录个数必须大于,即每个记录文件至少有两条记录。对于二进制文件、定长记录文件、循环文件都可以使用线路保护。如需对上述文件进行线路保护,只需在建立文件时将文件类型字节最高位置即可。如定长记录文件类型由变为。对于上述文件也可以使用线路加密保护。如需进行线路加密保护,只需在建立文件时将文件类型最高位置及次高位置均置即可。如二进制文件类型由变为。以下举例说明建立基本文件的具体命令建立二进制文件(!,!文件标识符文件主体空间H字节I读权限写权限文件主体空间:指二进制文件可存放数据的空间大小读权:指读二进制文件((!,)的权限写权:指写二进制文件(*(!,)的权限建立定长记录文件)!文件标识记录个每条记录长读权写权
符
数
度
卡手册
记录个数:指该记录文件的总记录数
记录长度:指每条记录的长度,因此文件体空间=记录个数×H记录长度8I读权:指读记录()的权限写权:指写记录(*)的权限建立循环文件!文件标识记录个每条记录长读权追加记录符数度权记录个数:指循环文件中记录的总数记录长度:指每条记录的长度,因此文件体空间=记录个数×H记录长度8I读权J指读循环文件记录()的权限追加记录权:指往循环文件中追加条记录(!)的权限往循环文件中每追加条记录,记录号自动加字节。当写完最后一个记录时,将覆盖最先写入的记录。9例;:假设变长记录文件中仅有两条记录,第一条记录为‘$’,第二条记录为‘’。记录标识为的变长记录长度+888+H字节I记录标识为的变长记录长度+888+\"H字节I文件主体空间大小+8\"+H字节I读权:指使用命令读指定记录所必须满足的条件追加记录权:指使用!在文件尾的条件写权:指使用*命令写已存在的记录记录格式为0:
为个字节记录标识符?
为个字节记录数据长度,不包括?、? 0F指字节存放记录的区域
说明:修改记录时,新记录的长度必须和原记录长度相同,否则@返回错误。
建立密钥文件3,H每个目录下最先被建立的文件I
增加新记录所必须满足卡手册
!增加密钥的权限
$文件体长度
文件体长度:为所有记录长度之和8\"字节保留空间
每条记录长度+密钥数据长度H字节或字节I8字节密钥头
9例;:假设密钥文件中仅有两条密钥记录,第一条密钥记录中口令密钥数据长度为字节,第二条密钥记录中内部密钥数据长度为字节。
第一条密钥记录长度+8+\"H字节I第二条密钥记录长度+8+$H字节I密钥文件的文件体长度+\"8$8\"+$H字节I增加密钥的权限:指满足该权限可以用23,向密钥文件中增加密钥。记录格式为0:为个字节密钥标识符?D其值不可为为个字节密钥数据长度,不包括?、? 0F指字节存放密钥的区域9注;:建立密钥文件时,文件标识符被固定为AA,换句话说,密钥文件没有文件标识符,同样也不能使用命令对其进行选择。响应报文状态码卡可能回送的状态码及意义如下所示:状态码''命令成功执行无或卡片已锁定文件已存在空间不足创建文件权限不满足错误的数据长度无效的意义
卡手册
四 应用流程
全国密钥管理中心洗卡
.3是整个系统的根密钥,如果一旦被盗取或被非法使用,就可能会伪造出大量的假卡,所有的银行卡将不得不停止使用,从而带来政治、经济上的重大损失。所以,从安全的角度来说,全国所有的卡必须在全国密钥管理总中心统一安全装载.3。除了全国密钥管理总中心外,任何其他个人和组织无法得到.3的明文,也无法通过卡来利用.3进行非法的密钥运算。各个成员行可以向通过二级密钥管理中心申报所需卡的数量,由全国密钥管理总中心按需求量统一洗卡。全国密钥管理总中心从生产商处得到一批卡,卡片已经过预个人化处理,卡片区域和全国密钥管理总中心区域下的文件已由厂商建好,生产商密钥(卡片主控密钥)也已装载。在卡生产商将这一批卡交给全国密钥管理总中心的同时,存放生产商密钥的生产商母卡也要交给全国密钥管理总中心。
全国密钥管理总中心在接到这批卡之后,用生产商母卡中的生产商密钥K65来鉴别每一张卡。鉴别通过后,全国密钥管理总中心将用自己产生的密钥K,来替换卡上的生产商密钥K65,成为卡上的卡片主控密钥。K是全国密钥管理总中心随机产生或采用其他方法产生的,被加密导入后作为这一批卡的主控密钥,控制区域下文件创建和密钥更新。全国密钥管理总中心必须在卡片主控密钥的控制下装载和更新密钥。具体的过程如下所示:
44在生产商密钥(卡片主控密钥)的控制下,更新卡片主控密钥44在卡片主控密钥的控制下,装载卡片维护密钥44在卡片维护密钥的控制,安全更新卡片区域的文件44在卡片主控密钥的控制下,装载应用主控密钥44在应用主控密钥的控制下,装载应用维护密钥44在应用主控密钥的控制下,装载应用主工作密钥
卡手册
44在应用维护密钥的控制下,安全更新卡片区域的文件
消费交易流程
金融终端利用卡进行消费交易的处理流程如下图所示:
!+/0 10*+\"#$%&'()*+,-.23)+/45,)67)'(\"#:;<=>8=)?45,\"#@@ABABCD消费交易流程图
卡手册
五 安全特性
密钥装载
密钥装载采用安全报文的方式,利用23,命令来进行。安全报文产生的方式参见命令的说明。
密钥装载的控制过程如下:
! 卡片主控密钥在卡片主控密钥的控制下更新;! 卡片维护密钥在卡片主控密钥的控制下装载和更新;! 应用主控密钥在卡片主控密钥的控制下装载;! 应用主控密钥在应用主控密钥的控制下更新;! 应用维护密钥在应用主控密钥的控制下装载和更新;! 应用主工作密钥在应用主控密钥的控制下装载和更新。 密钥访问
! 密钥不允许直接读;! 密钥必须在主控密钥的控制下更新;! 消费密钥不能被外界直接访问,只能接受内部操作系统发来的进行
计算的指令,按照指定的流程计算出;! 计算临时密钥产生的结果只保留在卡片内部,不能被外界直接访问。
密钥属性
密钥的使用都有一定的,必须满足密钥属性的要求。密钥属性应包括以下几项:1
密钥用途:
密钥用途长度为字节,低\"位为密钥类型,高$位为密钥分散级数。密
钥类型约定如下:
44,主控密钥44,维护密钥44,消费密钥
卡手册
44$,!解锁密钥44,重装!密钥44\",用户卡应用维护密钥44,密钥44,加密密钥44,、加密密钥44'D56744D安全计算方式44D安全计算方式44G$保留
密钥算法标识
密钥算法标识指定了密钥所支持加密算法,长度字节。密钥算法标识约定如下:
44,$44,44-\"\",保留
密钥版本
密钥版本指定某种类型密钥的标识,长度字节。对消费密钥来说,密钥版本是用于消费交易密钥选择过程中的密钥版本号,而对于其他密钥来说,密钥版本是密钥标识。
! 加密算法描述
算法
算法遵循国际标准,加密模式采用(模式。利用加密密钥对字节块的输入数据),),)…加密,得到字节块的输出数据,,,,,…。
其中,
,=(加密密钥)9);
卡手册
$算法
$算法是指使用双长度(字节)密钥3=(3CC3)将字节明文数据块加密成密文数据块,如下所示:
,=H3I9H3I9H39);I;;
解密的方式如下:
)=H3I9H3I9H39,;I;;
密钥分散算法
简称>6:L7,是指将一个双长度的密钥3,对分散数据进行处理,推导出一个双长度的密钥3。推导3左半部分的方法是:! 将分散数据的最右个数字作为输入数据;! 将3作为加密密钥;! 用3对输入数据进行$运算。推导3右半部分的方法是:! 将分散数据的最右个数字求反,作为输入数据;! 将3作为加密密钥;! 用3对输入数据进行$运算。F#GG27算法
*(!2,方式是用双长度的密钥3对字节的输入数据按方式进行运算。具体运算的过程如下(3的左半部为3,右半部为3):! 用3对输入数据进行解密运算;! 用3对第一步结果进行加密运算;! 用3对第二步结果进行解密运算;! 输入数据与第三步结果进行异或。
安全计算HF6FI
用37指定的密钥对输入数据进行运算,具体过程如下所示:方式J
卡手册
首先用卡内密钥对最后字节序列号加密1
用加密的结果作为临时密钥对F5进行解密运算D解密的结果与F5异或后再用临时密钥解密D依此类推1
解密运算的结果与F5!G异或D用临时密钥解密D将最后的解密运算的字节结果送出1
方式J
首先用卡内密钥对最后字节序列号解密1解密的结果与输入异或后作临时密钥。
用临时密钥对F5进行加密运算D加密的结果与F5异或后再用临时密钥加密D依此类推1
加密运算的结果与F!G异或D用临时密钥加密D将最后的加密运算的字节结果送出1
卡手册
六 状态码
22'$$)\"'''''$'\"''$(//正确执行回送的数据可能错误选择文件无效,文件或密钥校验错误)表示还可再试次数状态标志未改变写不成功错误的长度与线路保护要求不匹配无效的状态命令与文件结构不相容不满足安全状态密钥被锁死使用条件不满足无安全报文安全报文数据项不正确数据域参数错误功能不支持或卡中无或卡片已锁定文件未找到记录未找到文件无足够空间参数错误在达到字节之前文件结束,偏移量错误错误无效的
意义卡手册
'$'$$''$'
数据无效错误应用已被锁定金额不足密钥未找到所需的不可用
注:当2的高半字节为A'A,且低半字节不为AA时,其含义依赖于相关应用。当2的高半字节为AA,且低半字节不为AA时,其含义与应用无关。
卡手册
附录卡片中的基本数据文件
表
文件标识()文件类型文件大小文件存取控制读+自由的卡片公共信息文件
&&(十进制)透明改写+需要安全信息字节-$-数据元序列号版本号密钥卡类型发卡方自定义数据长度表文件标识()文件类型文件大小文件存取控制的终端信息文件&&(十进制)透明读+自由改写+需要安全信息字节-数据元终端机编号长度表
文件标识()文件类型文件大小
全国密钥管理总中心应用的应用公共信息文件
&$&(十进制)
透明\"
卡手册
文件存取控制读+自由改写+需要安全信息
字节-'---\"
数据元全国消费密钥索引号应用发行者标识应用接收者标识应用启用日期应用有效日期
长度
卡手册
附录母卡
为方便实现卡密钥的装入,在卡基础上增加了密钥导出,该功能仅在母卡支持。母卡不支持手册中的计算、校验、通用运算、通用运算初始化以及安全计算命令。
密钥导出
命令报文如下J代码! 3数据长度$(数据不存在值当数据长度为$时,数据域包括$字节参数,字节导出密钥序列号,字节初值。当数据长度为(时,数据域包括$字节参数,字节分散序列号,字节导出密钥序列号,字节初值。特别提示:只有密钥类型为,+(-/)的密钥才允许使用该指令。使用该指令进行密钥导出时,使用到的保护密钥的类型,+(-/)。装载和更新密钥时,卡内自动以(码单方式写入,即在卡内解密得到密钥明文后,如果,+,则卡片自动使用某一保密变换算法对解密得到的密钥明文进行变换,变换的结果作为密钥写入。
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- aiwanbo.com 版权所有 赣ICP备2024042808号-3
违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务