中国金融IC卡试点PSAM卡应用规范V20.docx
- 文档编号:5297905
- 上传时间:2023-05-08
- 格式:DOCX
- 页数:40
- 大小:127.49KB
中国金融IC卡试点PSAM卡应用规范V20.docx
《中国金融IC卡试点PSAM卡应用规范V20.docx》由会员分享,可在线阅读,更多相关《中国金融IC卡试点PSAM卡应用规范V20.docx(40页珍藏版)》请在冰点文库上搜索。
中国金融IC卡试点PSAM卡应用规范V20
中国金融IC卡试点PSAM卡应用规范
(V2.0讨论稿)
二零零六年八月
目录
一.文件结构1
1.文件结构1
2.MF区域说明2
3.ADF区域说明3
二.基本命令5
1.选择文件(Select)5
2.读记录文件(ReadRecord)7
3.写记录文件(UpdateRecord)8
4.读二进制文件(ReadBinary)10
5.写二进制文件(UpdateBinary)11
6.外部认证(ExternalAuthentication)13
7.取响应数据(GetResponse)14
8.取随机数(GetChallenge)15
三.扩展命令16
1.写入密钥(WriteKey)16
2.批量更新密钥初始化(InitBatchUpdate)17
3.批量更新消费主密钥(BatchUpdateGMPK)18
4.通用DES计算初始化(INIT_FOR_DESCRYPT)20
5.通用DES计算(DESCrypt)22
6.应用解锁(ApplicationUnblock)24
7.MAC1计算(INIT_SAM_FOR_PURCHASE)26
8.校验MAC2(CREDIT_SAM_FOR_PURCHASE)28
四.应用流程30
1.全国密钥管理中心洗卡30
2.消费交易流程31
五.安全特性32
1.密钥装载32
2.密钥访问32
3.密钥属性32
4.加密算法描述33
六.状态码35
附录A命令清单37
附录B卡片中的基本数据文件38
一.文件结构
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
00h
表2-1SELECT命令报文表
b8
b7
b6
b5
b4
b3
b2
b1
含义
0
0
0
0
0
1
通过文件名选择
0
0
表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名
M
'A5'
FCI专用数据
M
'88'
目录基本文件的SFI
M
表2-3SELECTPSE的响应报文(FCI)
表2-4定义了成功选择DDF后回送的FCI:
标志
值
存在方式
'6F'
FCI模板
M
'84'
DF名
M
'A5'
FCI专用数据
M
'88'
目录基本文件的SFI
M
表2-4SELECTDDF的响应报文(FCI)
表2-5定义了成功选择ADF后回送的FCI:
标志
值
存在方式
'6F'
FCI模板
M
'84'
DF名
M
'A5'
FCI专用数据
M
'9F0C'
发卡方自定义数据的FCI
O
表2-5SELECTADF的响应报文(FCI)
2.
读记录文件(ReadRecord)
1)定义和范围
READRECORD命令用于读取记录文件中内容。
IC卡的响应由回送的记录数据组成。
2)命令报文
READRECORD命令报文见表2-6。
代码
值
CLA
00h
INS
B2h
P1
记录的序号
P2
引用控制参数(见表2-7)
Lc
不存在;
Data
不存在;
Le
00h
表2-6READRECORD命令报文
b8
b7
b6
b5
b4
b3
b2
b1
含义
X
X
X
X
X
SFI
1
0
0
P1为记录的序号
表2-7READRECORD命令引用控制参数
3)命令报文数据域
命令报文数据域不存在。
4)响应报文数据域
所有执行成功的READRECORD命令响应报文数据域由读取的记录组成。
3.
写记录文件(UpdateRecord)
1)定义和范围
UPDATERECORD命令用命令APDU中给定的数据更改指定的记录。
在使用当前记录地址时,该命令将在修改记录成功后重新设定记录指针。
在安全更新记录时,若安全报文连续三次出错,则永久锁定应用。
2)命令报文
UPDATERECORD命令报文见表2-8。
代码
值
CLA
00h或04h
INS
DCh
P1
P1=00h:
表示当前记录
P100h:
指定的记录号
P2
见表2-8
Lc
后续数据域长度
Data
输入数据
Le
不存在
表2-8UPDATERECORD命令报文
b8
b7
b6
b5
b4
b3
b2
b1
含义
X
X
X
X
X
SFI
0
0
0
第一个记录
0
0
1
最后一个记录
0
1
0
下一个记录
0
1
1
上一个记录
1
0
0
记录号在P1中给出
其余值
RFU
表2-9UPDATERECORD命令引用控制参数
3)命令报文数据域
命令报文数据域由更新原有记录的新记录组成。
使用安全报文时,命令报文的数据域中应包括MAC。
MAC是由卡片维护密钥或应用维护密钥对更新原有记录的新记录计算而得到的。
4)响应报文数据域
响应报文数据域不存在。
4.
读二进制文件(ReadBinary)
1)定义和范围
READBINARY命令用于读取二进制文件的内容(或部分内容)。
2)命令报文
READBINARY命令报文见表2-10。
代码
值
CLA
00h
INS
B0h
P1
见表2-11
P2
从文件中读取的第一个字节的偏移地址
Lc
不存在
Data
不存在
Le
00
表2-10READBINARY命令报文
b8
b7
b6
b5
b4
b3
b2
b1
含义
X
1
读取模式:
-用SFI方式
0
0
RFU(如果b8=1)
X
X
X
X
X
SFI(取值范围21-30)
表2-11READBINARY命令引用控制参数
3)命令报文数据域
命令报文数据域不存在。
4)响应报文数据域
当Le的值为0时,只要文件的最大长度在256(短长度)或65536(扩展长度)之内,则其全部字节将被读出。
5.
写二进制文件(UpdateBinary)
1)定义和范围
UPDATEBINARY命令用命令APDU中给定的数据修改EF文件中已有的数据。
2)命令报文
UPDATEBINARY命令报文见表2-12。
代码
值
CLA
00h或04h
INS
D6h
P1
见表2-13
P2
要修改的第一个字节的偏移地址
Lc
后续数据域的长度
Data
修改用的数据
Le
不存在
表2-12UPDATEBINARY命令报文
b8
b7
b6
b5
b4
b3
b2
b1
含义
X
1
读取模式:
-用SFI方式
0
0
RFU(如果b8=1)
X
X
X
X
X
SFI(取值范围21-30)
表2-13UPDATEBINARY命令引用控制参数
3)命令报文数据域
命令报文数据域包括更新原有数据的新数据。
使用安全报文时,命令报文的数据域中应包括MAC。
MAC是由卡片维护密钥或应用维护密钥对更新原有数据的新数据计算而得到的。
4)响应报文数据域
响应报文数据域不存在。
6.
外部认证(ExternalAuthentication)
1)定义和范围
EXTERNALAUTHENTICATION命令用于对卡片外部的安全认证。
计算的方法是利用卡片中的卡片主控密钥或应用主控密钥,对卡片产生的随机数(使用GETCHALLENGE命令)和接口设备传输进来的认证数据进行验证。
2)命令报文
EXTERNALAUTHENTICATION命令报文见表2-14。
代码
值
CLA
00h
INS
82h
P1
00h
P2
00h
Lc
08h
Data
发卡方认证数据
Le
不存在
表2-14EXTERNALAUTHENTICATION命令报文
3)命令报文数据域
命令报文数据域中包含8字节的加密数据,该数据是用主控密钥对此命令前一条命令“GETCHALLENGE”命令获得的随机数后缀“00000000”之后做3DES加密运算产生的。
4)响应报文数据域
响应报文数据域不存在。
7.
取响应数据(GetResponse)
1)定义和范围
当APDU不能用现有协议传输时,GETRESPONSE命令提供了一种从IC卡向接口设备传送APDU(或APDU的一部分)的传输方法。
2)命令报文
GETRESPONSE命令报文见表2-15。
代码
值
CLA
00h
INS
C0h
P1
00h
P2
00h
Lc
不存在
Data
不存在
Le
期望数据的最大长度
表2-15GETRESPONSE命令报文
3)命令报文数据域
命令报文数据域不存在。
4)响应报文数据域
响应报文数据域的长度由Le的值决定。
如果Le的值为0,在后续数据有效时,IC卡必须回送状态码‘6Cxx’,否则‘6F00’。
8.
取随机数(GetChallenge)
1)定义和范围
GETCHALLENGE命令用于从IC卡中获得一个4个字节的随机数。
该随机数服务于安全过程(如安全报文),在使用随机数的命令执行后失效。
2)命令报文
GETCHALLENGE命令报文见表2-16。
代码
值
CLA
00h
INS
84h
P1
00h
P2
00h
Lc
不存在
Data
不存在
Le
04h
表2-16GETCHALLENGE命令报文
3)命令报文数据域
命令报文数据域不存在。
4)响应报文数据域
IC卡产生的随机数,长度为4字节。
三.
扩展命令
为符合《中国金融集成电路(IC)卡规范(V1.0)》和《银行IC卡联合试点技术方案》的安全控管要求,PSAM卡必须支持以下专用命令。
1.写入密钥(WriteKey)
1)定义和范围
WRITEKEY命令可向卡中装载密钥或更新卡中已存在的密钥。
本命令可支持8字节或16字节的密钥,密钥写入必须采用加密的方式,在主控密钥的控制下进行。
在密钥装载前必须用GETCHANLLEGE命令从PSAM卡取一个4字节的随机数。
2)命令报文
WRITEKEY命令报文见表3-1。
代码
值
CLA
84h
INS
D4h
P1
00h
P2
00h
Lc
14h或1Ch
Data
加密后的密钥信息、MAC
Le
不存在
表3-1WRITEKEY命令报文
3)命令报文数据域
命令报文数据域包括要装载的密钥密文信息和MAC。
密钥密文信息是用主控密钥对以下数据加密(按所列顺序)产生的:
——密钥用途
——密钥版本
——密钥算法标识
——密钥值
MAC是用主控密钥对下数据进行MAC计算(按所列顺序)产生的:
——CLA
——INS
——P1
——P2
——Lc
——密钥密文信息
加密和MAC计算的方法遵循《中国金融集成电路(IC)卡规范》。
装载8字节的单长度密钥时,数据长度为14h;装载16字节的双长度密钥时,数据长度为1Ch。
4)响应报文数据域
响应报文数据域不存在。
2.批量更新密钥初始化(InitBatchUpdate)
1)定义和范围
InitBatchUpdate命令用于从IC卡中获得一个4个字节的随机因子。
该随机因子服务于批量更新消费主密钥指令的安全过程(如安全报文),在使用批量更新消费主密钥指令的命令执行后失效。
2)命令报文
GETCHALLENGE命令报文见表2-16。
代码
值
CLA
00h
INS
85h
P1
00h
P2
00h
Lc
不存在
Data
不存在
Le
13h
表2-16InitBatchUpdate命令报文
3)命令报文数据域
命令报文数据域不存在。
4)响应报文数据域
此命令执行成功的响应报文数据域见表。
如果命令执行不成功,则只在响应报文中回送SW1和SW2。
说明
长度(字节)
PSAM序列号
10
密钥索引号(GMPK)
1
有效期
4
随机因子
4
3.批量更新消费主密钥(BatchUpdateGMPK)
1)定义和范围
BatchUpdateGMPK命令可向卡中更新卡中已存在的消费密钥。
本命令只支持16字节的密钥,密钥写入必须采用加密的方式,在主控密钥的控制下进行。
在密钥更新前必须用InitBatchUpdate命令从PSAM卡取一个4字节的随机数。
2)命令报文
BatchUpdateGMPK命令报文见表3-1。
代码
值
CLA
84h
INS
D5h
P1
00h
P2
00h
Lc
10+(N*18h)
Data
见说明
Le
不存在
表3-1BatchUpdateGMPK命令报文
3)命令报文数据域
加密和MAC计算的方法遵循《中国金融集成电路(IC)卡规范》。
装载16字节的双长度密钥时,数据长度为18h。
说明
长度(字节)
已发送更新密钥指令数量(N)
1
新的密钥索引号(GMPK)
1
有效期
4
GMPKCRYPTOGRAPH
N*18h
MAC
4
4)响应报文数据域
响应报文数据域不存在。
4.
通用DES计算初始化(INIT_FOR_DESCRYPT)
1)定义和范围
INIT_FOR_DESCRYPT命令用来初始化通用密钥计算过程。
PSAM卡将利用卡中指定的密钥进行运算,产生一个临时密钥。
运算方式由指定的密钥类型、密钥分散级数和密钥算法标识确定。
不支持计算临时密钥计算的密钥类型有:
——主控密钥
——维护密钥
——消费密钥
双长度密钥产生双长度临时密钥的密钥类型有:
——PIN解锁密钥
——用户卡应用维护密钥
双长度密钥左右异或产生单长度临时密钥的密钥类型有:
——重装PIN密钥
双长度密钥产生双长度临时密钥,单长度密钥产生单长度临时密钥的密钥类型有:
——MAC密钥
——加密密钥
——MAC、加密密钥
指定密钥经过几级处理由密钥分散级数和Lc确定,若二者不一致,则返回错误信息。
临时密钥在PSAM卡下电后自动消失,不允许读。
临时密钥产生后,与原密钥的属性一致。
2)命令报文
INIT_FOR_DESCRYPT命令报文见表3-2。
代码
值
CLA
80h
INS
1Ah
P1
密钥用途
P2
密钥版本
Lc
待处理数据的长度
Data
待处理的数据
Le
无
表3-3INIT_FOR_DESCRYPT命令报文
3)命令报文数据域
命令报文数据域包括待处理的输入数据。
数据长度为8的整数倍,长度也可以为0。
密钥类型取密钥用途的低5位,密钥分散级数取密钥用途的高3位。
如待处理的输入数据包括多级的分散因子,按最后一次分散因子在前、最先一次分散因子在后的顺序输入。
4)响应报文数据域
响应报文数据域不存在。
5.
通用DES计算(DESCrypt)
1)定义和范围
DESCRYPT命令利用指定的密钥来进行运算。
若一条命令无法传输所有的待处理数据,可分几条命令输入。
加密计算采用ECB模式,数据的填充在卡片外面进行,卡片只支持长度为8的整数倍数据的加密。
MAC计算遵循《中国金融集成电路(IC)卡规范》,数据的填充在卡片外面进行,卡片只支持长度为8的整数倍数据的MAC计算。
DESCRYPT命令必须在INIT_FOR_DESCRYPT命令成功执行后才能进行。
卡片状态在执行无后续块计算后,复原为通用DES计算初始化执行前的状态。
2)命令报文
DESCRYPT命令报文见表3-3。
代码
值
CLA
80h
INS
Fah
P1
见表3-4
P2
00h
Lc
要加密的数据长度
Data
要加密的数据
Le
不存在
表3-3DESCRYPT命令报文
b8
b7
b6
b5
b4
b3
b2
b1
含义
X
计算模式
——0,加密
——1,MAC计算
X
后续块
——0,无后续块
——1,有后续块
X
初始值(仅对MAC计算有效)
——0,无初始值
——1,有初始值
表3-4DESCRYPT命令引用控制参数
P1值计算模式如下:
——0,无后续块加密
——1,最后一块MAC计算
——2,有后续块加密
——3,下一块MAC计算
——5,唯一一块MAC计算
——7,第一块MAC计算
——其他,保留
3)命令报文数据域
命令报文数据域包括要加密的数据。
加密数据的长度为8的整数倍。
在P1的b3位为1时,待处理数据的前8个字节为MAC计算的初始值。
4)响应报文数据域
在P1的b1位为0时,响应报文数据域包括加密结果,数据长度是8的整数倍。
在P1的b1位为1,且P1的b2位为0时,响应报文数据域包括4字节的MAC。
6.
应用解锁(ApplicationUnblock)
1)定义和范围
APPLICATIONUNBLOCK命令
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 中国金融 IC 试点 PSAM 应用 规范 V20