中国金融IC卡试点PSAM卡应用规范
(V2.0讨论稿)
二零零六 年 八 月
0
……………………………………………………………精品资料推荐…………………………………………………
目 录
一. 文件结构 ........................................................................................................................................ 1 1. 2. 3.
文件结构 .................................................................................................................................... 1 MF区域说明 ............................................................................................................................. 2 ADF区域说明 ........................................................................................................................... 3
二. 基本命令 ........................................................................................................................................ 5 1. 2. 3. 4. 5. 6. 7. 8.
选择文件(SELECT) ................................................................................................................ 5 读记录文件(READ RECORD) ................................................................................................ 7 写记录文件(UPDATE RECORD) ............................................................................................ 8 读二进制文件(READ BINARY) ........................................................................................... 10 写二进制文件(UPDATE BINARY) ....................................................................................... 11 外部认证(EXTERNAL AUTHENTICATION) ........................................................................... 13 取响应数据(GET RESPONSE) .............................................................................................. 14 取随机数(GET CHALLENGE) ............................................................................................... 15
三. 扩展命令 ...................................................................................................................................... 16 1. 2. 3. 4. 5. 6. 7. 8.
写入密钥(WRITE KEY) ....................................................................................................... 16 批量更新密钥初始化(INIT BATCH UPDATE) ..................................................................... 17 批量更新消费主密钥(BATCH UPDATE GMPK) ................................................................ 18 通用DES计算初始化(INIT_FOR_ DESCRYPT) ............................................................ 20 通用DES计算(DES CRYPT) ............................................................................................. 22 应用解锁(APPLICATION UNBLOCK) .................................................................................... 24 MAC1计算(INIT_SAM_FOR_PURCHASE) ................................................................... 26 校验MAC2(CREDIT_SAM_FOR_PURCHASE) ............................................................ 28
四. 应用流程 ...................................................................................................................................... 30 1. 2.
全国密钥管理中心洗卡 .......................................................................................................... 30 消费交易流程 .......................................................................................................................... 31
1
……………………………………………………………精品资料推荐…………………………………………………
五. 安全特性 ...................................................................................................................................... 32 1. 2. 3. 4.
密钥装载 .................................................................................................................................. 32 密钥访问 .................................................................................................................................. 32 密钥属性 .................................................................................................................................. 32 加密算法描述 .......................................................................................................................... 33
六. 状态码 .......................................................................................................................................... 35
附录A 命令清单 ................................................................................................................................ 37
附录B 卡片中的基本数据文件 ......................................................................................................... 38
2
……………………………………………………………精品资料推荐…………………………………………………
一. 文件结构
PSAM卡用于商户POS、网点终端、直联终端等端末设备上,负责机具的安全控管。PSAM卡具有一定的通用性。经过个人化处理的PSAM卡能在不同的机具上使用。
PSAM卡支持多级发卡的机制,各级发卡方在卡片主控密钥和应用主控密钥的控制下创建文件和装载密钥。
1. 文件结构
PSAM卡文件结构符合ISO/IEC7816-4。
本条款描述了符合本规范的应用文件结构,这些应用被定义为支付系统应用(PSA)。符合ISO/IEC7816-4,但不符合本规范的其他应用也可出现在PSA上,并可以使用本规范中定义的命令进行操作。
PSAM卡中PSA的路径可以通过明确选择支付系统环境(PSE)来激活。 PSAM卡文件结构如下图所示:
1
……………………………………………………………精品资料推荐…………………………………………………
MF(用于PSE)DIR目录数据文件卡片主控密钥数据元卡片维护密钥数据元卡片公共信息文件终端信息文件DF(PBOC应用ADF)应用主控密钥数据元应用维护密钥数据元应用主工作密钥数据元应用公共信息文件终端应用交易序号数据元DF2DF3。。。图1 PSAM卡文件结构
2. MF区域说明
在PSAM卡的MF区域中,文件创建和密钥装载是在卡片主控密钥的控制下进行。
2
……………………………………………………………精品资料推荐…………………………………………………
1) DIR目录数据文件
DIR目录数据文件的说明参考《中国金融集成电路(IC)卡规范》,但DIR
目录数据文件的入口地址必须包括全国密钥管理总中心应用ADF。
2) 卡片主控密钥
卡片主控密钥是卡片的控制密钥,由卡片生产商写入,由发卡方替换为发卡
方的卡片主控密钥。卡片主控密钥的更新在自身的控制下进行。发卡方必须在卡片主控密钥的控制下,
创建卡片MF区域的文件;
装载卡片维护密钥、应用主控密钥; 更新卡片主控密钥、卡片维护密钥。
卡片主控密钥的控制可通过外部认证操作实现,也可通过安全报文的方式实现。
3) 卡片维护密钥
卡片维护密钥用于卡片MF区域的应用维护,在卡片主控密钥的控制下装载
和更新。卡片的管理者可在卡片维护密钥的控制下,
安全更新记录文件; 安全更新二进制文件。
卡片维护密钥的控制通过安全报文的形式实现。
4) 卡片公共信息文件
卡片公共信息文件存放卡片的公共信息,在卡片主控密钥的控制下创建,可
自由读,可在卡片维护密钥的控制下改写。
5) 终端信息文件
终端信息文件存放终端的信息,在卡片主控密钥的控制下创建,可自由读,可在卡片维护密钥的控制下改写。
3. ADF区域说明
在PSAM卡的ADF(Application Data File)区域中,文件创建和密钥装载
3
……………………………………………………………精品资料推荐…………………………………………………
是在应用主控密钥的控制下进行。ADF下的文件结构可由应用发行者自行确定。全国密钥管理中心应用ADF的文件结构必须包括应用主控密钥、应用维护密钥、应用主工作密钥数据元、应用公共数据文件和终端应用交易序号数据元。
1) 应用主控密钥
应用主控密钥是应用的控制密钥,在卡片主控密钥控制下写入。发卡方必须
在应用主控密钥的控制下,
装载应用维护密钥、应用主工作密钥; 更新应用主控密钥、应用维护密钥。
应用主控密钥的控制可通过外部认证操作实现,也可通过安全报文的方式实现。
2) 应用维护密钥
应用维护密钥用于卡片ADF区域的应用维护,在应用主控密钥的控制下装
载和更新。卡片的管理者可在应用维护密钥的控制下,
安全更新记录文件; 安全更新二进制文件; 进行应用解锁。
卡片维护密钥的控制通过安全报文的形式实现。
3) 应用主工作密钥
应用主工作密钥用于卡片的交易,在应用主控密钥的控制下装载。
4) 应用公共信息文件
应用公共信息文件存放应用的公共信息,在应用主控密钥的控制下创建,可
自由读,可在应用维护密钥的控制下改写。
5) 终端应用交易序号数据元
终端应用交易序号长度4字节,用于终端的脱机交易,在消费交易MAC2
验证通过的情况下由卡片操作系统改写。
终端应用交易序号只对本应用有效。
4
……………………………………………………………精品资料推荐…………………………………………………
二. 基本命令
1. 选择文件(Select)
1)
定义和范围
SELECT命令通过文件名或AID来选择IC卡中的PSE、DDF或ADF。 命令执行成功后,PSE、DDF或ADF的路径被设定。
应用到AEF的后续命令将采用SFI方式联系到所选定的PSE、DDF或ADF。 从IC卡的响应报文应由回送的FCI组成。
2) 命令报文
SELECT FILE命令报文见表2-1。
值 00h A4h 引用控制参数(见表2-2) 00h:第一个或仅有一个 02h:下一个 Lc 05h~10h 文件名 00h 表2-1 SELECT命令报文表
代码 CLA INS P1 P2 Data Le b8 0 b7 0 b6 0 b5 0 b4 0 b3 1 b2 0 b1 含义 通过文件名选择 0 表2-2 SELECT命令引用控制参数
5
……………………………………………………………精品资料推荐…………………………………………………
3) 命令报文数据域
命令报文数据域应包括所选择的PSE名、DF名或AID。
4) 响应报文数据域
响应报文中数据域应包括所选择的PSE、DDF或ADF的FCI。表2-3到
表2-5规定了此定义所用的标志。本规范不规定FCI中回送的附加附加标志。
表2-3定义了成功选择PSE后回送的FCI: 标志 '6F' '84' 'A5' '88' FCI模板 DF名 FCI专用数据 目录基本文件的SFI 表2-3 SELECT PSE的响应报文(FCI)
表2-4定义了成功选择DDF后回送的FCI: 标志 '6F' '84' 'A5' '88' FCI模板 DF名 FCI专用数据 目录基本文件的SFI 表2-4 SELECT DDF的响应报文(FCI)
表2-5定义了成功选择ADF后回送的FCI: 标志 '6F' '84' 'A5' '9F0C' FCI模板 DF名 FCI专用数据 发卡方自定义数据的FCI 表2-5 SELECT ADF的响应报文(FCI)
值 存在方式 M M M O 值 存在方式 M M M M 值 存在方式 M M M M
6
……………………………………………………………精品资料推荐…………………………………………………
2. 读记录文件(Read Record)
1)
定义和范围
READ RECORD命令用于读取记录文件中内容。 IC卡的响应由回送的记录数据组成。
2) 命令报文
值 00h B2h 记录的序号 引用控制参数(见表2-7) 不存在; 不存在; 00h 表2-6 READ RECORD命令报文
READ RECORD命令报文见表2-6。 代码 CLA INS P1 P2 Lc Data Le b8 X b7 X b6 X b5 X b4 X b3 1 b2 0 b1 0 SFI 含义 P1为记录的序号 表2-7 READ RECORD命令引用控制参数
3) 命令报文数据域
命令报文数据域不存在。
4) 响应报文数据域
所有执行成功的READ RECORD命令响应报文数据域由读取的记录组成。
7
……………………………………………………………精品资料推荐…………………………………………………
3. 写记录文件(Update Record)
1)
定义和范围
UPDATE RECORD命令用命令APDU中给定的数据更改指定的记录。 在使用当前记录地址时,该命令将在修改记录成功后重新设定记录指针。 在安全更新记录时,若安全报文连续三次出错,则永久锁定应用。
2) 命令报文
UPDATE RECORD命令报文见表2-8。
值 00h或04h DCh P1= 00h:表示当前记录 P1 00h:指定的记录号 P2 Lc 见表2-8 后续数据域长度 输入数据 不存在 表2-8 UPDATE RECORD命令报文
代码 CLA INS P1 Data Le b8 X b7 X b6 X b5 X b4 X b3 0 0 0 0 1 b2 0 0 1 1 0 b1 0 1 0 1 0 SFI 含义 第一个记录 最后一个记录 下一个记录 上一个记录 记录号在P1中给出 RFU 其余值 表2-9 UPDATE RECORD命令引用控制参数
8
……………………………………………………………精品资料推荐…………………………………………………
3) 命令报文数据域
命令报文数据域由更新原有记录的新记录组成。使用安全报文时,命令报
文的数据域中应包括MAC。MAC是由卡片维护密钥或应用维护密钥对更新原有记录的新记录计算而得到的。
4) 响应报文数据域
响应报文数据域不存在。
9
……………………………………………………………精品资料推荐…………………………………………………
4. 读二进制文件(Read Binary)
1)
定义和范围
READ BINARY命令用于读取二进制文件的内容(或部分内容)。
2) 命令报文
READ BINARY命令报文见表2-10。
值 00h B0h 见表2-11 从文件中读取的第一个字节的偏移地址 不存在 不存在 00 表2-10 READ BINARY命令报文
代码 CLA INS P1 P2 Lc Data Le b8 X 1 b7 b6 b5 b4 b3 b2 b1 含义 读取模式: -用SFI方式 0 0 X X X X X RFU(如果b8=1) SFI(取值范围21-30) 表2-11 READ BINARY命令引用控制参数
3) 命令报文数据域
命令报文数据域不存在。
4) 响应报文数据域
当Le的值为0时,只要文件的最大长度在256(短长度)或65536(扩展长
度)之内,则其全部字节将被读出。
10
……………………………………………………………精品资料推荐…………………………………………………
5. 写二进制文件(Update Binary)
1)
定义和范围
UPDATE BINARY命令用命令APDU中给定的数据修改EF文件中已有的数据。
2) 命令报文
UPDATE BINARY命令报文见表2-12。
值 00h或04h D6h 见表2-13 要修改的第一个字节的偏移地址 后续数据域的长度 修改用的数据 不存在 表2-12 UPDATE BINARY命令报文
代码 CLA INS P1 P2 Lc Data Le b8 X 1 b7 b6 b5 b4 b3 b2 b1 含义 读取模式: -用SFI方式 0 0 X X X X X RFU(如果b8=1) SFI(取值范围21-30) 表2-13 UPDATE BINARY命令引用控制参数
3) 命令报文数据域
命令报文数据域包括更新原有数据的新数据。使用安全报文时,命令报文
的数据域中应包括MAC。MAC是由卡片维护密钥或应用维护密钥对更新原有数据的新数据计算而得到的。
11
……………………………………………………………精品资料推荐…………………………………………………
4) 响应报文数据域
响应报文数据域不存在。
12
……………………………………………………………精品资料推荐…………………………………………………
6. 外部认证(External Authentication)
1)
定义和范围
EXTERNAL AUTHENTICATION命令用于对卡片外部的安全认证。计算的方法是利用卡片中的卡片主控密钥或应用主控密钥,对卡片产生的随机数(使用GET CHALLENGE命令)和接口设备传输进来的认证数据进行验证。
2) 命令报文
EXTERNAL AUTHENTICATION命令报文见表2-14。
值 00h 82h 00h 00h 08h 发卡方认证数据 不存在 表2-14 EXTERNAL AUTHENTICATION命令报文
代码 CLA INS P1 P2 Lc Data Le 3) 命令报文数据域
命令报文数据域中包含8字节的加密数据,该数据是用主控密钥对此命令
前一条命令“GET CHALLENGE”命令获得的随机数后缀“00 00 00 00”之后做3DES加密运算产生的。
4) 响应报文数据域
响应报文数据域不存在。
13
……………………………………………………………精品资料推荐…………………………………………………
7. 取响应数据(Get Response)
1)
定义和范围
当APDU不能用现有协议传输时,GET RESPONSE命令提供了一种从IC卡向接口设备传送APDU(或APDU的一部分)的传输方法。
2) 命令报文
GET RESPONSE命令报文见表2-15。
值 00h C0h 00h 00h 不存在 不存在 期望数据的最大长度 表2-15 GET RESPONSE命令报文
代码 CLA INS P1 P2 Lc Data Le 3) 命令报文数据域
命令报文数据域不存在。
4) 响应报文数据域
响应报文数据域的长度由Le的值决定。如果Le的值为0,在后续数据有
效时,IC卡必须回送状态码‘6Cxx’,否则‘6F00’。
14
……………………………………………………………精品资料推荐…………………………………………………
8. 取随机数(Get Challenge)
1)
定义和范围
GET CHALLENGE命令用于从IC卡中获得一个4个字节的随机数。该随机数服务于安全过程(如安全报文),在使用随机数的命令执行后失效。
2) 命令报文
GET CHALLENGE命令报文见表2-16。
值 00h 84h 00h 00h 不存在 不存在 04h 表2-16 GET CHALLENGE命令报文
代码 CLA INS P1 P2 Lc Data Le 3) 命令报文数据域
命令报文数据域不存在。
4) 响应报文数据域
IC卡产生的随机数,长度为4字节。
15
……………………………………………………………精品资料推荐…………………………………………………
三. 扩展命令
为符合《中国金融集成电路(IC)卡规范(V1.0)》和《银行IC卡联合试点技术方案》的安全控管要求,PSAM卡必须支持以下专用命令。
1. 写入密钥(Write Key)
1)
定义和范围
WRITE KEY命令可向卡中装载密钥或更新卡中已存在的密钥。本命令可支持8字节或16字节的密钥,密钥写入必须采用加密的方式,在主控密钥的控制下进行。
在密钥装载前必须用GET CHANLLEGE命令从PSAM卡取一个4字节的随机数。
2) 命令报文
值 84h D4h 00h 00h 14h或1Ch 加密后的密钥信息、MAC 不存在 表3-1 WRITE KEY命令报文
WRITE KEY命令报文见表3-1。 代码 CLA INS P1 P2 Lc Data Le 3) 命令报文数据域
命令报文数据域包括要装载的密钥密文信息和MAC。
密钥密文信息是用主控密钥对以下数据加密(按所列顺序)产生的: ——密钥用途
16
……………………………………………………………精品资料推荐…………………………………………………
——密钥版本 ——密钥算法标识 ——密钥值
MAC是用主控密钥对下数据进行MAC计算(按所列顺序)产生的: ——CLA ——INS ——P1 ——P2 ——Lc
——密钥密文信息
加密和MAC计算的方法遵循《中国金融集成电路(IC)卡规范》。 装载8字节的单长度密钥时,数据长度为14h;装载16字节的双长度密钥时,数据长度为1Ch。
4) 响应报文数据域
响应报文数据域不存在。
2. 批量更新密钥初始化(Init Batch Update)
1)
定义和范围
Init Batch Update命令用于从IC卡中获得一个4个字节的随机因子。该随机因子服务于批量更新消费主密钥指令的安全过程(如安全报文),在使用批量更新消费主密钥指令的命令执行后失效。
2) 命令报文
GET CHALLENGE命令报文见表2-16。
值 00h 85h 00h 00h 17
代码 CLA INS P1 P2
……………………………………………………………精品资料推荐…………………………………………………
Lc Data Le 不存在 不存在 13h 表2-16 Init Batch Update命令报文
3) 命令报文数据域
命令报文数据域不存在。
4) 响应报文数据域
此命令执行成功的响应报文数据域见表。
如果命令执行不成功,则只在响应报文中回送SW1和SW2。
说明 PSAM序列号 密钥索引号(GMPK) 有效期 随机因子
长度(字节) 10 1 4 4 3. 批量更新消费主密钥(Batch Update GMPK)
1)
定义和范围
Batch Update GMPK命令可向卡中更新卡中已存在的消费密钥。本命令只支持16字节的密钥,密钥写入必须采用加密的方式,在主控密钥的控制下进行。
在密钥更新前必须用Init Batch Update命令从PSAM卡取一个4字节的随机数。
2) 命令报文
值 Batch Update GMPK命令报文见表3-1。 代码
18
……………………………………………………………精品资料推荐…………………………………………………
CLA INS P1 P2 Lc Data Le 84h D5h 00h 00h 10 +(N*18h) 见说明 不存在 表3-1 Batch Update GMPK命令报文
3) 命令报文数据域
加密和MAC计算的方法遵循《中国金融集成电路(IC)卡规范》。装载16
字节的双长度密钥时,数据长度为18h。
说明 已发送更新密钥指令数量(N) 新的密钥索引号(GMPK) 有效期 GMPK CRYPTOGRAPH MAC
长度(字节) 1 1 4 N*18h 4 4) 响应报文数据域
响应报文数据域不存在。
19
……………………………………………………………精品资料推荐…………………………………………………
4. 通用DES计算初始化(INIT_FOR_ DESCRYPT)
1)
定义和范围
INIT_FOR_ DESCRYPT命令用来初始化通用密钥计算过程。PSAM卡将利用卡中指定的密钥进行运算,产生一个临时密钥。运算方式由指定的密钥类型、密钥分散级数和密钥算法标识确定。
不支持计算临时密钥计算的密钥类型有: ——主控密钥 ——维护密钥 ——消费密钥
双长度密钥产生双长度临时密钥的密钥类型有: ——PIN解锁密钥 ——用户卡应用维护密钥
双长度密钥左右异或产生单长度临时密钥的密钥类型有: ——重装PIN密钥
双长度密钥产生双长度临时密钥,单长度密钥产生单长度临时密钥的密钥类型有:
——MAC密钥 ——加密密钥 ——MAC、加密密钥
指定密钥经过几级处理由密钥分散级数和Lc确定,若二者不一致,则返回错误信息。
临时密钥在PSAM卡下电后自动消失,不允许读。 临时密钥产生后,与原密钥的属性一致。
2) 命令报文
INIT_FOR_ DESCRYPT命令报文见表3-2。
代码
20
值 ……………………………………………………………精品资料推荐…………………………………………………
CLA INS P1 P2 Lc Data Le 80h 1Ah 密钥用途 密钥版本 待处理数据的长度 待处理的数据 无 表3-3 INIT_FOR_ DESCRYPT命令报文
3) 命令报文数据域
命令报文数据域包括待处理的输入数据。数据长度为8的整数倍,长度也
可以为0。密钥类型取密钥用途的低5位,密钥分散级数取密钥用途的高3位。
如待处理的输入数据包括多级的分散因子,按最后一次分散因子在前、最先一次分散因子在后的顺序输入。
4) 响应报文数据域
响应报文数据域不存在。
21
……………………………………………………………精品资料推荐…………………………………………………
5. 通用DES计算(DES Crypt)
1)
定义和范围
DES CRYPT命令利用指定的密钥来进行运算。若一条命令无法传输所有的待处理数据,可分几条命令输入。
加密计算采用ECB模式,数据的填充在卡片外面进行,卡片只支持长度为8的整数倍数据的加密。
MAC计算遵循《中国金融集成电路(IC)卡规范》,数据的填充在卡片外面进行,卡片只支持长度为8的整数倍数据的MAC计算。
DES CRYPT命令必须在INIT_FOR_ DESCRYPT命令成功执行后才能进行。卡片状态在执行无后续块计算后,复原为通用DES计算初始化执行前的状态。
2) 命令报文
值 80h Fah 见表3-4 00h 要加密的数据长度 要加密的数据 不存在 表3-3 DES CRYPT命令报文
DES CRYPT命令报文见表3-3。 代码 CLA INS P1 P2 Lc Data Le b8 b7 b6 b5 b4 b3 b2 b1 X 计算模式 含义 ——0,加密 ——1,MAC计算
22
……………………………………………………………精品资料推荐…………………………………………………
X 后续块 ——0,无后续块 ——1,有后续块 X 初始值(仅对MAC计算有效) ——0,无初始值 ——1,有初始值 表3-4 DES CRYPT命令引用控制参数
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。
23
……………………………………………………………精品资料推荐…………………………………………………
6. 应用解锁(Application Unblock)
1)
定义和范围
APPLICATION UNBLOCK命令用于恢复当前应用。当命令成功完成后,对应用访问的限制将被取消,利用消费密钥校验MAC2的错误计数器将被重置。
如果应用解锁连续失败三次,卡将永久锁定此应用。
在APPLICATION UNBLOCK命令执行前必须执行GET CHANLLENGE命令取得4字节的随机数。
2) 命令报文
值 84h 18h 00 00 数据字节数 报文鉴别代码数据元 不存在 表3-5 APPLICATION UNBLOCK命令报文
APPLICATION UNBLOCK命令报文见表3-5。 代码 CLA INS P1 P2 Lc Data Le 3) 命令报文数据域
命令报文数据域包括报文鉴别代码,由应用维护密钥对以下数据(按所列
顺序)进行MAC计算而得到的:
——CLA ——INS ——P1 ——P2 ——Lc
MAC计算的方式参见《中国金融集成电路(IC)卡规范。》
24
……………………………………………………………精品资料推荐…………………………………………………
4) 响应报文数据域
响应报文数据域不存在。
25
……………………………………………………………精品资料推荐…………………………………………………
7. MAC1计算(INIT_SAM_FOR_PURCHASE)
1)
定义和范围
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校验的命令。
参与处理的终端机编号和终端交易序号由卡片操作系统从卡片中取得。 INIT_SAM_FOR_PURCHASE命令可支持多级消费密钥分散机制,消费密钥的分散过程由Lc和消费密钥共同确定,如果二者不一致,则返回错误信息。
2) 命令报文
值 80h 26
INIT_SAM_FOR_PURCHASE命令报文见表3-6。 代码 CLA
……………………………………………………………精品资料推荐…………………………………………………
INS P1 P2 Lc Data Le 70h 00h 00h 14h+8×N(N=1,2,3) 要处理的数据 08 表3-6 INIT_SAM_FOR_PURCHASE命令报文
3) 命令报文数据域
命令报文数据域包括的数据以下列顺序排列: 用户卡随机数,4字节 用户卡交易序号,2字节 交易金额,4字节 交易类型标识,1字节 交易日期(终端),4字节 交易时间(终端),3字节 消费密钥版本号,1字节 消费密钥算法标识,1字节 用户卡应用序列号,8字节 成员银行标识,8字节 试点城市标识,8字节
4) 响应报文数据域
响应报文数据域包括以下数据(按顺序返回): ——4字节的终端脱机交易序号 ——4字节的MAC1
27
……………………………………………………………精品资料推荐…………………………………………………
8. 校验MAC2(CREDIT_SAM_FOR_PURCHASE)
1)
定义和范围
CREDIT_SAM_FOR_PURCHASE命令利用INIT_SAM_FOR_PURCHASE命令产生的过程密钥SESPKP校验MAC2,过程如下所示:
检查MAC2尝试计数器,如MAC2未被锁定,PSAM在其内部用SESPK
对交易金额加密得到MAC2,与命令报文中的数据进行比较; 若命令执行成功,PSAM卡将应用中的终端脱机消费交易序号加1; 如命令执行不成功,PSAM卡将MAC2尝试计数器减1,并回送状态
码’63Cx’,这里’x’是MAC2尝试计数器的新值; 如果’x’为零,PSAM卡将锁定消费密钥所在的ADF。 在此过程中,所有的中间结果只保留在卡片内部,外界无法得到。 CREDIT _ SAM _ FOR_ PURCHASE命令必须在INIT _ SAM _ FOR _ PURCHASE命令成功执行后才能进行。
若MAC2尝试计数器为0的话,消费密钥所在的应用将被锁定,只能在应用维护密钥的控制下应用解锁后使用。
应用下的MAC2错误计数器在应用下所有消费密钥MAC2校验错误的情况下都要被减1。
卡片的状态在命令执行后将复原为MAC1校验前的状态。
2) 命令报文
值 80h 72h 00h 00h 04h MAC2 28
CREDIT_SAM_FOR_PURCHASE命令报文见表3-7。 代码 CLA INS P1 P2 Lc Data
……………………………………………………………精品资料推荐…………………………………………………
Le 不存在 表3-7 CREDIT_SAM_FOR_PURCHASE命令报文
3) 命令报文数据域
命令报文数据域包括4字节的MAC2。
4) 响应报文数据域
响应报文数据域不存在。
29
……………………………………………………………精品资料推荐…………………………………………………
四. 应用流程
1. 全国密钥管理中心洗卡
GMPK是整个系统的根密钥,如果一旦被盗取或被非法使用,就可能会伪造出大量的假卡,所有的银行IC卡将不得不停止使用,从而带来政治、经济上的重大损失。所以,从安全的角度来说,全国所有的PSAM卡必须在全国密钥管理总中心统一安全装载GMPK。除了全国密钥管理总中心外,任何其他个人和组织无法得到GMPK的明文,也无法通过PSAM卡来利用GMPK进行非法的密钥运算。各个成员行可以向通过二级密钥管理中心申报所需PSAM卡的数量,由全国密钥管理总中心按需求量统一洗卡。
全国密钥管理总中心从生产商处得到一批PSAM卡,卡片已经过预个人化处理,卡片MF区域和全国密钥管理总中心ADF区域下的文件已由厂商建好,生产商密钥(卡片主控密钥)也已装载。在IC卡生产商将这一批IC卡交给全国密钥管理总中心的同时,存放生产商密钥的生产商母卡也要交给全国密钥管理总中心。
全国密钥管理总中心在接到这批卡之后,用生产商母卡中的生产商密钥kMprd来鉴别每一张IC卡。鉴别通过后,全国密钥管理总中心将用自己产生的密钥kIctlR,来替换卡上的生产商密钥kMprd,成为卡上的卡片主控密钥。
kIctlR是全国密钥管理总中心随机产生或采用其他方法产生的,被加密导入后作为这一批PSAM卡的主控密钥,控制MF区域下文件创建和密钥更新。
全国密钥管理总中心必须在卡片主控密钥的控制下装载和更新密钥。具体的过程如下所示:
——在生产商密钥(卡片主控密钥)的控制下,更新卡片主控密钥 ——在卡片主控密钥的控制下,装载卡片维护密钥 ——在卡片维护密钥的控制,安全更新卡片MF区域的文件 ——在卡片主控密钥的控制下,装载应用主控密钥 ——在应用主控密钥的控制下,装载应用维护密钥
30
……………………………………………………………精品资料推荐…………………………………………………
——在应用主控密钥的控制下,装载应用主工作密钥
——在应用维护密钥的控制下,安全更新卡片ADF区域的文件
2. 消费交易流程
金融终端利用PSAM卡进行消费交易的处理流程如下图所示:
IC卡终端PSAM卡读取终端信息文件发出终端机编号选择全国密钥管理总中心ADF发出消费密钥索引选择用户卡ED/EP应用发出发卡方标识、应用序列号等信息消费初始化发出随机数、用户卡交易序号、密钥版本、算法标识MAC1计算发出MAC1、终端脱机交易序号消费发出MAC2MAC2校验发出校验结果图2 消费交易流程图
31
……………………………………………………………精品资料推荐…………………………………………………
五. 安全特性
1. 密钥装载
密钥装载采用安全报文的方式,利用WRITE KEY命令来进行。安全报文产生的方式参见命令的说明。
密钥装载的控制过程如下:
卡片主控密钥在卡片主控密钥的控制下更新; 卡片维护密钥在卡片主控密钥的控制下装载和更新; 应用主控密钥在卡片主控密钥的控制下装载; 应用主控密钥在应用主控密钥的控制下更新; 应用维护密钥在应用主控密钥的控制下装载和更新; 应用主工作密钥在应用主控密钥的控制下装载和更新。
2. 密钥访问
密钥不允许直接读;
密钥必须在主控密钥的控制下更新;
消费密钥不能被外界直接访问,只能接受内部操作系统发来的进行MAC
计算的指令,按照指定的流程计算出MAC;
计算临时密钥产生的结果只保留在卡片内部,不能被外界直接访问。
3. 密钥属性
密钥的使用都有一定的限制,必须满足密钥属性的要求。 密钥属性应包括以下几项:
1) 密钥用途:
密钥用途长度为1字节,低5位为密钥类型,高3位为密钥分散级数。密钥
类型约定如下:
32
……………………………………………………………精品资料推荐…………………………………………………
——0,主控密钥 ——1,维护密钥 ——2,消费密钥 ——3,PIN解锁密钥 ——4,重装PIN密钥 ——5,用户卡应用维护密钥 ——6,MAC密钥 ——7,加密密钥 ——8,MAC、加密密钥 ——9-31,保留
2) 密钥算法标识
密钥算法标识指定了密钥所支持加密算法,长度1字节。密钥算法标识约定
如下:
——0,3DES ——1,DES ——2-255,保留
3) 密钥版本
密钥版本指定某种类型密钥的标识,长度1字节。对消费密钥来说,密钥版
本是用于消费交易密钥选择过程中的密钥版本号,而对于其他密钥来说,密钥版本是密钥标识。
对于主控密钥的版本为0x00;对于保护卡片中的基本数据文件的应用密钥的版本是0x01。
4. 加密算法描述
1)
DES算法
DES算法遵循国际标准,加密模式采用ECB模式。
利用加密密钥对8字节块的输入数据X1,X2,X3…加密,得到8字节块的输出数据Y1,Y2,Y3…。
33
……………………………………………………………精品资料推荐…………………………………………………
其中,
YI = DES(加密密钥)[ XI ]
2) 3DES算法
3DES算法是指使用双长度(16字节)密钥K=(KL||KR)将8字节明文数据块加密成密文数据块,如下所示:
Y = DES(KL)[DES-1(KR)[DES(KL[X])]]
解密的方式如下:
X =DES-1 (KL)[DES(KR)[ DES-1 (KL[Y])]]
3) 密钥分散算法
简称Diversify,是指将一个双长度的密钥MK,对分散数据进行处理,推导出一个双长度的密钥DK。 推导DK左半部分的方法是:
将分散数据的最右16个数字作为输入数据; 将MK作为加密密钥;
用MK对输入数据进行3DEA运算。 推导DK右半部分的方法是:
将分散数据的最右16个数字求反,作为输入数据;
将MK作为加密密钥;
用MK对输入数据进行3DEA运算。
34
……………………………………………………………精品资料推荐…………………………………………………
六. 状态码
命令返回的状态码如下所示: 状态号 返回状态码 00h 01h 02h 03h 04h 05h 06h 07h 08h 09h 0Ah 0Bh 0Ch 0Dh 0Eh 0Fh 10h 11h 12h 13h 14h 15h 16h 17h
9000 6200 6281 6282 6283 6284 6300 63Cx 6400 6581 6700 6882 6981 6982 6983 6984 6985 6986 6987 6988 698D 6A80 6A81 6A82 性质 正常 警告 警告 警告 警告 警告 警告 警告 出错 出错 出错 出错 出错 出错 出错 出错 出错 出错 出错 出错 保留 出错 出错 出错 成功执行 信息未提供 回送数据可能出错 文件长度小于Le 选中的文件无效 FCI格式与P2指定的不符 鉴别失败 校验失败(x-允许重试次数) 状态标志位没有变 内存失败 长度错误 不支持安全报文 命令与文件结构不相容,当前文件非所需文件 操作条件(AC)不满足,没有校验PIN 认证方法锁定,PIN被锁定 随机数无效,引用的数据无效 使用条件不满足 不满足命令执行条件(不允许的命令,INS有错) MAC丢失 MAC不正确 数据域参数不正确 功能不支持;创建不允许;目录无效;应用锁定 该文件未找到 35
错误解释 ……………………………………………………………精品资料推荐…………………………………………………
18h 19h 1Ah 1Bh 1Ch 1Dh 1Eh 1Fh 20h 21h 22h 23h 24h 25h 26h 27h 28h 29h 2Ah 2Bh 2Ch 2Dh 2Eh 2Fh 30h 6A83 6A84 6A86 6A88 6B00 6Cxx 6E00 6F00 6D00 9301 9302 9303 9401 9402 9403 9406 6900 6901 61xx 6600 6601 6602 6603 6604 出错 出错 出错 出错 出错 出错 出错 出错 出错 出错 出错 出错 出错 出错 出错 出错 出错 出错 正常 出错 出错 出错 警告 警告 出错 该记录未找到 文件预留空间不足 P1或P2不正确 引用数据未找到 参数错误 Le长度错误,实际长度是xx 不支持的类:CLA有错 数据无效 不支持的指令代码 资金不足 MAC无效 应用被永久锁定 交易金额不足 交易计数器达到最大值 密钥索引不支持 所需MAC不可用 不能处理 命令不接受(无效状态) 需发GET RESPONSE命令 接收通讯超时 接收字符奇偶错 校验和不对 当前DF文件无FCI 当前DF下无SF或KF 密钥属性和命令参数不一致
36
……………………………………………………………精品资料推荐…………………………………………………
附录A 命令清单
Application Unblock ................................................................................................................................................ 23 CREDIT_SAM_FOR_PURCHASE ........................................................................................................................ 27 DES Crypt ................................................................................................................................................................ 21 External Authentication ........................................................................................................................................... 14 Get Challenge .......................................................................................................................................................... 16 Get Response ........................................................................................................................................................... 15 INIT_FOR_ DESCRYPT ........................................................................................................................................ 19 INIT_SAM_FOR_PURCHASE .............................................................................................................................. 25 Read Binary ............................................................................................................................................................. 11 Read Record ............................................................................................................................................................... 9 Select ......................................................................................................................................................................... 7 Update Binary .......................................................................................................................................................... 12 Update Record ......................................................................................................................................................... 10 Write Key................................................................................................................................................................. 17
37
……………………………………………………………精品资料推荐…………………………………………………
附录B 卡片中的基本数据文件
表B1
MF的卡片公共信息文件
'21'(十进制) 透明 14 读 = 自由 改写 = 需要 安全信息 字节 1-10 11 12 13-14 数据元 PSAM序列号 PSAM版本号 密钥卡类型 发卡方自定义FCI数据
表B2
MF的终端信息文件
'22'(十进制) 透明 6 读 = 自由 改写 = 需要 安全信息 字节 1-6 数据元 终端机编号
表B3
全国密钥管理总中心应用的应用公共信息文件
'23'(十进制) 透明 25 长度 6 长度 10 1 1 2 文件标识(SFI) 文件类型 文件大小 文件存取控制 文件标识(SFI) 文件类型 文件大小 文件存取控制 文件标识(SFI) 文件类型 文件大小
38
……………………………………………………………精品资料推荐…………………………………………………
文件存取控制 读 = 自由 改写 = 需要 安全信息 字节 1 2-9 10-17 18-21 22-25 数据元 全国消费密钥索引号 应用发行者标识 应用接收者标识 应用启用日期 应用有效日期
长度 1 8 8 4 4
39
因篇幅问题不能全部显示,请点此查看更多更全内容