PSAM卡应用规范990716Word格式文档下载.docx
《PSAM卡应用规范990716Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《PSAM卡应用规范990716Word格式文档下载.docx(34页珍藏版)》请在冰豆网上搜索。
一.文件结构
PSAM卡用于商户POS、网点终端、直联终端等端末设备上,负责机具的安全控管。
PSAM卡具有一定的通用性。
经过个人化处理的PSAM卡能在不同的机具上使用。
PSAM卡支持多级发卡的机制,各级发卡方在卡片主控密钥和应用主控密钥的控制下创建文件和装载密钥。
1.文件结构
PSAM卡文件结构符合ISO/IEC7816-4。
本条款描述了符合本规范的应用文件结构,这些应用被定义为支付系统应用(PSA)。
符合ISO/IEC7816-4,但不符合本规范的其他应用也可出现在PSA上,并可以使用本规范中定义的命令进行操作。
PSAM卡中PSA的路径可以通过明确选择支付系统环境(PSE)来激活。
PSAM卡文件结构如下图所示:
图1PSAM卡文件结构
2.MF区域说明
在PSAM卡的MF区域中,文件创建和密钥装载是在卡片主控密钥的控制下进行。
1)DIR目录数据文件
DIR目录数据文件的说明参考《中国金融集成电路(IC)卡规范》,但DIR目录数据文件的入口地址必须包括全国密钥管理总中心应用ADF。
2)卡片主控密钥
卡片主控密钥是卡片的控制密钥,由卡片生产商写入,由发卡方替换为发卡方的卡片主控密钥。
卡片主控密钥的更新在自身的控制下进行。
发卡方必须在卡片主控密钥的控制下,
●创建卡片MF区域的文件;
●装载卡片维护密钥、应用主控密钥;
●更新卡片主控密钥、卡片维护密钥。
卡片主控密钥的控制可通过外部认证操作实现,也可通过安全报文的方式实现。
3)卡片维护密钥
卡片维护密钥用于卡片MF区域的应用维护,在卡片主控密钥的控制下装载和更新。
卡片的管理者可在卡片维护密钥的控制下,
●安全更新记录文件;
●安全更新二进制文件。
卡片维护密钥的控制通过安全报文的形式实现。
4)卡片公共信息文件
卡片公共信息文件存放卡片的公共信息,在卡片主控密钥的控制下创建,可自由读,可在卡片维护密钥的控制下改写。
5)终端信息文件
终端信息文件存放终端的信息,在卡片主控密钥的控制下创建,可自由读,可在卡片维护密钥的控制下改写。
3.ADF区域说明
在PSAM卡的ADF(ApplicationDataFile)区域中,文件创建和密钥装载是在应用主控密钥的控制下进行。
ADF下的文件结构可由应用发行者自行确定。
全国密钥管理中心应用ADF的文件结构必须包括应用主控密钥、应用维护密钥、应用主工作密钥数据元、应用公共数据文件和终端应用交易序号数据元。
1)应用主控密钥
应用主控密钥是应用的控制密钥,在卡片主控密钥控制下写入。
发卡方必须在应用主控密钥的控制下,
●装载应用维护密钥、应用主工作密钥;
●更新应用主控密钥、应用维护密钥。
应用主控密钥的控制可通过外部认证操作实现,也可通过安全报文的方式实现。
2)应用维护密钥
应用维护密钥用于卡片ADF区域的应用维护,在应用主控密钥的控制下装载和更新。
卡片的管理者可在应用维护密钥的控制下,
●安全更新二进制文件;
●进行应用解锁。
3)应用主工作密钥
应用主工作密钥用于卡片的交易,在应用主控密钥的控制下装载。
4)应用公共信息文件
应用公共信息文件存放应用的公共信息,在应用主控密钥的控制下创建,可自由读,可在应用维护密钥的控制下改写。
5)终端应用交易序号数据元
终端应用交易序号长度4字节,用于终端的脱机交易,在消费交易MAC2验证通过的情况下由卡片操作系统改写。
终端应用交易序号只对本应用有效。
二.
基本命令
1.选择文件(Select)
1)定义和范围
SELECT命令通过文件名或AID来选择IC卡中的PSE、DDF或ADF。
命令执行成功后,PSE、DDF或ADF的路径被设定。
应用到AEF的后续命令将采用SFI方式联系到所选定的PSE、DDF或ADF。
从IC卡的响应报文应由回送的FCI组成。
2)命令报文
SELECTFILE命令报文见表2-1。
代码
值
CLA
00h
INS
A4h
P1
引用控制参数(见表2-2)
P2
00h:
第一个或仅有一个
02h:
下一个
Lc
05h~10h
Data
文件名
Le
表2-1SELECT命令报文表
b8
b7
b6
b5
b4
b3
b2
b1
含义
1
通过文件名选择
表2-2SELECT命令引用控制参数
3)命令报文数据域
命令报文数据域应包括所选择的PSE名、DF名或AID。
4)响应报文数据域
响应报文中数据域应包括所选择的PSE、DDF或ADF的FCI。
表2-3到表2-5规定了此定义所用的标志。
本规范不规定FCI中回送的附加附加标志。
表2-3定义了成功选择PSE后回送的FCI:
标志
存在方式
'
6F'
FCI模板
M
84'
DF名
A5'
FCI专用数据
88'
目录基本文件的SFI
表2-3SELECTPSE的响应报文(FCI)
表2-4定义了成功选择DDF后回送的FCI:
表2-4SELECTDDF的响应报文(FCI)
表2-5定义了成功选择ADF后回送的FCI:
9F0C'
发卡方自定义数据的FCI
O
表2-5SELECTADF的响应报文(FCI)
2.
读记录文件(ReadRecord)
READRECORD命令用于读取记录文件中内容。
IC卡的响应由回送的记录数据组成。
READRECORD命令报文见表2-6。
B2h
记录的序号
引用控制参数(见表2-7)
不存在;
表2-6READRECORD命令报文
X
SFI
P1为记录的序号
表2-7READRECORD命令引用控制参数
命令报文数据域不存在。
所有执行成功的READRECORD命令响应报文数据域由读取的记录组成。
3.
写记录文件(UpdateRecord)
UPDATERECORD命令用命令APDU中给定的数据更改指定的记录。
在使用当前记录地址时,该命令将在修改记录成功后重新设定记录指针。
在安全更新记录时,若安全报文连续三次出错,则永久锁定应用。
UPDATERECORD命令报文见表2-8。
00h或04h
DCh
P1=00h:
表示当前记录
P100h:
指定的记录号
见表2-8
后续数据域长度
输入数据
不存在
表2-8UPDATERECORD命令报文
第一个记录
最后一个记录
下一个记录
上一个记录
记录号在P1中给出
其余值
RFU
表2-9UPDATERECORD命令引用控制参数
命令报文数据域由更新原有记录的新记录组成。
使用安全报文时,命令报文的数据域中应包括MAC。
MAC是由卡片维护密钥或应用维护密钥对更新原有记录的新记录计算而得到的。
响应报文数据域不存在。
4.
读二进制文件(ReadBinary)
READBINARY命令用于读取二进制文件的内容(或部分内容)。
READBINARY命令报文见表2-10。
B0h
见表2-11
从文件中读取的第一个字节的偏移地址
00
表2-10READBINARY命令报文
读取模式:
-用SFI方式
RFU(如果b8=1)
SFI(取值范围21-30)
表2-11READBINARY命令引用控制参数
当Le的值为0时,只要文件的最大长度在256(短长度)或65536(扩展长度)之内,则其全部字节将被读出。
5.
写二进制文件(UpdateBinary)
UPDATEBINARY命令用命令APDU中给定的数据修改EF文件中已有的数据。
UPDATEBINARY命令报文见表2-12。
D6h
见表2-13
要修改的第一个字节的偏移地址
后续数据域的长度
修改用的数据
表2-12UPDATEBINARY命令报文
表2-13UPDATEBINARY命令引用控制参数
命令报文数据域包括更新原有数据的新数据。
MAC是由卡片维护密钥或应用维护密钥对更新原有数据的新数据计算而得到的。
6.
外部认证(ExternalAuthentication)
EXTERNALAUTHENTICATION命令用于对卡片外部的安全认证。
计算的方法是利用卡片中的卡片主控密钥或应用主控密钥,对卡片产生的随机数(使用GETCHALLENGE命令)和接口设备传输进来的认证数据进行验证。
EXTERNALAUTHENTICATION命令报文见表2-14。
82h
08h
发卡方认证数据
表2-14EXTERNALAUTHENTICATION命令报文
命令报文数据域中包含8字节的加密数据,该数据是用主控密钥对此命令前一条命令“GETCHALLENGE”命令获得的随机数后缀“00000000”之后做3DES加密运算产生的。
7.
取响应数据(GetResponse)
当APDU不能用现有协议传输时,GETRESPONSE命令提供了一种从IC卡向接口设备传送APDU(或APDU的一部分)的传输方法。
GETRESPONSE命令报文见表2-15。
C0h
期望数据的最大长度
表2-15GETRESPONSE命令报文
响应报文数据域的长度由Le的值决定。
如果Le的值为0,在后续数据有效时,IC卡必须回送状态码‘6Cxx’,否则‘6F00’。
8.
取随机数(GetChallenge)
GETCHALLENGE命令用于从IC卡中获得一个4个字节的随机数。
该随机数服务于安全过程(如安全报文),在使用随机数的命令执行后失效。
GETCHALLENGE命令报文见表2-16。
84h
04h
表2-16GETCHALLENGE命令报文
IC卡产生的随机数,长度为4字节。
三.
扩展命令
为符合《中国金融集成电路(IC)卡规范(V1.0)》和《银行IC卡联合试点技术方案》的安全控管要求,PSAM卡必须支持以下专用命令。
1.写入密钥(WriteKey)
WRITEKEY命令可向卡中装载密钥或更新卡中已存在的密钥。
本命令可支持8字节或16字节的密钥,密钥写入必须采用加密的方式,在主控密钥的控制下进行。
在密钥装载前必须用GETCHANLLEGE命令从PSAM卡取一个4字节的随机数。
WRITEKEY命令报文见表3-1。
D4h
14h或1Ch
加密后的密钥信息、MAC
表3-1WRITEKEY命令报文
命令报文数据域包括要装载的密钥密文信息和MAC。
密钥密文信息是用主控密钥对以下数据加密(按所列顺序)产生的:
——密钥用途
——密钥版本
——密钥算法标识
——密钥值
MAC是用主控密钥对下数据进行MAC计算(按所列顺序)产生的:
——CLA
——INS
——P1
——P2
——Lc
——密钥密文信息
加密和MAC计算的方法遵循《中国金融集成电路(IC)卡规范》。
装载8字节的单长度密钥时,数据长度为14h;
装载16字节的双长度密钥时,数据长度为1Ch。
通用DES计算初始化(INIT_FOR_DESCRYPT)
INIT_FOR_DESCRYPT命令用来初始化通用密钥计算过程。
PSAM卡将利用卡中指定的密钥进行运算,产生一个临时密钥。
运算方式由指定的密钥类型、密钥分散级数和密钥算法标识确定。
不支持计算临时密钥计算的密钥类型有:
——主控密钥
——维护密钥
——消费密钥
双长度密钥产生双长度临时密钥的密钥类型有:
——PIN解锁密钥
——用户卡应用维护密钥
双长度密钥左右异或产生单长度临时密钥的密钥类型有:
——重装PIN密钥
双长度密钥产生双长度临时密钥,单长度密钥产生单长度临时密钥的密钥类型有:
——MAC密钥
——加密密钥
——MAC、加密密钥
指定密钥经过几级处理由密钥分散级数和Lc确定,若二者不一致,则返回错误信息。
临时密钥在PSAM卡下电后自动消失,不允许读。
临时密钥产生后,与原密钥的属性一致。
INIT_FOR_DESCRYPT命令报文见表3-2。
80h
1Ah
密钥用途
密钥版本
待处理数据的长度
待处理的数据
无
表3-3INIT_FOR_DESCRYPT命令报文
命令报文数据域包括待处理的输入数据。
数据长度为8的整数倍,长度也可以为0。
密钥类型取密钥用途的低5位,密钥分散级数取密钥用途的高3位。
如待处理的输入数据包括多级的分散因子,按最后一次分散因子在前、最先一次分散因子在后的顺序输入。
响应报文数据域不存在。
通用DES计算(DESCrypt)
DESCRYPT命令利用指定的密钥来进行运算。
若一条命令无法传输所有的待处理数据,可分几条命令输入。
加密计算采用ECB模式,数据的填充在卡片外面进行,卡片只支持长度为8的整数倍数据的加密。
MAC计算遵循《中国金融集成电路(IC)卡规范》,数据的填充在卡片外面进行,卡片只支持长度为8的整数倍数据的MAC计算。
DESCRYPT命令必须在INIT_FOR_DESCRYPT命令成功执行后才能进行。
卡片状态在执行无后续块计算后,复原为通用DES计算初始化执行前的状态。
DESCRYPT命令报文见表3-3。
Fah
见表3-4
要加密的数据长度
要加密的数据
表3-3DESCRYPT命令报文
计算模式
——0,加密
——1,MAC计算
后续块
——0,无后续块
——1,有后续块
初始值(仅对MAC计算有效)
——0,无初始值
——1,有初始值
表3-4DESCRYPT命令引用控制参数
P1值计算模式如下:
——0,无后续块加密
——1,最后一块MAC计算
——2,有后续块加密
——3,下一块MAC计算
——5,唯一一块MAC计算
——7,第一块MAC计算
——其他,保留
命令报文数据域包括要加密的数据。
加密数据的长度为8的整数倍。
在P1的b3位为1时,待处理数据的前8个字节为MAC计算的初始值。
在P1的b1位为0时,响应报文数据域包括加密结果,数据长度是8的整数倍。
在P1的b1位为1,且P1的b2位为0时,响应报文数据域包括4字节的MAC。
应用解锁(ApplicationUnblock)
APPLICATIONUNBLOCK命令用于恢复当前应用。
当命令成功完成后,对应用访问的限制将被取消,利用消费密钥校验MAC2的错误计数器将被重置。
如果应用解锁连续失败三次,卡将永久锁定此应用。
在APPLICATIONUNBLOCK命令执行前必须执行GETCHANLLENGE命令取得4字节的随机数。
APPLICATIONUNBLOCK命令报文见表3-5。
18h
数据字节数
报文鉴别代码数据元
表3-5APPLICATIONUNBLOCK命令报文
命令报文数据域包括报文鉴别代码,由应用维护密钥对以下数据(按所列顺序)进行MAC计算而得到的:
MAC计算的方式参见《中国金融集成电路(IC)卡规范。
》
MAC1计算(INIT_SAM_FOR_PURCHASE)
INIT_SAM_FOR_PURCHASE命令可支持多级消费密钥分散机制,产生《中国金融集成电路(IC)卡规范》中定义的MAC1。
根据银行IC卡试点技术方案,可以利用试点城市标识、成员行标识、卡片应用序列号、随机数和交易信息得到过程密钥,进而加密得到MAC。
PSAM卡产生脱机交易流程中MAC1的过程如下所示:
●PSAM在其内部用GMPK(全国消费主密钥)对试点城市标识分散,得到二级消费主密钥BMPK;
●PSAM在其内部用BMPK对成员行标识分散,得到成员行消费主密钥MPK;
●PSAM在其内部用MPK对卡片应用序列号分散,得到卡片消费子密钥DPK;
●PSAM在其内部用DPK对卡片传来的伪随机数、脱机交易序号、终端交易序号加密,得到过程密钥SESPK,作为临时密钥存放在卡中;
●PSAM在其内部用SESPK对交易金额、交易类型标识、终端机编号、交易日期(终端)和交易时间(终端)加密得到MAC1,将MAC1传送出去。
在此过程中,所有的中间结果只保留在卡片内部,外界无法得到。
只有进行本命令后,才允许进行MAC2校验的命令。
参与处理的终端机编号和终端交易序号由卡片操作系统从卡片中取得。
IN