PSAM卡需求分析深圳职业技术学院精品课程中心.docx
《PSAM卡需求分析深圳职业技术学院精品课程中心.docx》由会员分享,可在线阅读,更多相关《PSAM卡需求分析深圳职业技术学院精品课程中心.docx(55页珍藏版)》请在冰豆网上搜索。
PSAM卡需求分析深圳职业技术学院精品课程中心
建设部安全认证卡(模块)技术要求
(V3.0)
建设部IC卡管理领导小组办公室
一九九九年七月
目录
一.概述
二.技术要求
1.技术要求的目的
2.技术要求
3.使用方案
4.硬件技术性能参数
三.安全认证卡(模块)文件结构3
1.安全认证卡的文件结构5
2.MF区域说明6
3.ADF区域说明6
3.安全模块的文件结构6
四.安全认证卡(模块)认证流程
二.基本命令6
1.选择文件(Select)6
2.读记录文件(ReadRecord)6
3.写记录文件(UpdateRecord)6
4.读二进制文件(ReadBinary)6
5.写二进制文件(UpdateBinary)6
6.外部认证(ExternalAuthentication)6
7.取响应数据(GetResponse)6
8.取随机数(GetChallenge)6
9.内部认证(InternalAuthentication)***6
三.扩展命令6
1.写入密钥(WriteKey)6
2.通用DES计算初始化(INIT_FOR_DESCRYPT)6
3.通用DES计算(DESCrypt)6
4.应用解锁(ApplicationUnblock)6
5.MAC1计算(INIT_SAM_FOR_PURCHASE)6
6.校验MAC2(CREDIT_SAM_FOR_PURCHASE)6
7.应用锁定(APPLICATIONBLOCK)***6
8.校验个人密码(VerifyPIN)***6
9.修改PIN(ChangePIN)***6
10.重装PIN(ReloadPIN)***6
11.安全计算(SecureCalculation)***6
12.擦除目录文件(ERASEDF)***6
13.创建文件(CreateFile)***6
四.应用流程6
1.全国密钥管理中心洗卡6
2.消费交易流程6
五.安全特性6
六.状态码6
附录A卡片中的基本数据文件6
附录BPSAM母卡***6
本手册完全遵从建设部IC卡应用规范,增加内容用***表示
一.概述
为规范全国建设事业IC卡应用管理,促进建设事业IC卡市场健康、有序地发展,保障应用系统的安全性和兼容性,根据建设部建办[1999]65号《关于建设事业IC卡应用管理工作的通知》及有关规定,各地在开展IC卡应用时,均应采用终端硬件加密及安全认证卡(SAM卡)或安全认证模块(SAM模块)的方式,以保证应用系统的安全性和通用性。
各地的IC卡应用均应采用建设部统一提供的密钥管理系统,用于发行和管理城市内各行业的消费SAM卡、充值SAM卡、交易验证卡和用户卡。
二.技术要求
1、技术要求的目的
本次系统修改方案希望达到以下目标:
①、提高终端系统的安全性
采用安全模块和卡片的认证方式,安全级别高,外人很难攻击。
安全认证过程完全在卡内部实现。
同时掌握核心主密钥的人极少。
②、增强终端的可扩展性
由于安全模块内部多应用目录,为将来实现一卡多用打下基础。
2、技术要求:
建设部提供的SAM卡或SAM模块规范符合中国金融集成电路(IC)卡规范。
①、各终端机具必须采用建设部统一提供的机具安全模块(SAM卡或双列直插的SAM模块)。
②、SAM卡或SAM模块内装有由建设部安全管理系统产生的各类密钥,SAM中的密钥用于与用户卡中的密钥进行相互认证。
③、各终端机具内必须留有SAM卡插槽或双列直插的SAM模块的插口。
RST
VCC
GND
I/O
CLK
双列直插的SAM模块符合集成电路芯片标准,其管脚图如下:
3、使用方案:
①、硬件:
为配合安全模块的使用,需对终端内的电路进行改造,具体为配合安全模块,需增加一个晶振,频率为3.579545MHz,终端内单片机与以及SAM模块的通讯速率均为9600波特。
具体的硬件连接设计,可参考ISO7816-3。
②、软件:
增加终端内CPU与用户卡以及SAM模块通讯部分,均采用T=0协议,可参考ISO7816-3。
终端的安全认证由用户卡和SAM模块来完成,表内的CPU只起通讯传递作用,无需增加加密算法。
按如下方式进行通讯调试:
(1)主控CPU先尝试接受SAM模块上电复位应答(ATR);3B,69,00,00,XX,XX,XX,XX,XX,XX,XX,XX,XX,9个XX位历史字符,不同SAM模块的XX值不同。
(2)ATR接受调试成功后,调试SAM模块的一条SelectFile命令:
(3)若主控CPU接收90H、00H值,则说明主控CPU和SAM模块通讯成功。
4、硬件技术性能参数
技术指标
安全认证卡P83C864
安全认证模块SLE44C10
微处理器
程序空间ROM
RAM
EEPROM
8K
1K
时钟频率
1~5MHz可选,确省为3.579545MHz
EEPROM寿命
500000次
擦写时间
擦写1/2/4/8/16/字节时需5.28/5.31/5.38/5.52/5.8毫秒
数据保存时间
10年
工作电压
2.7~5.5V,确省为5V
工作电流
小于10mA
省电模式
当卡片(模块)等待命令时处于休眠状态,最大电流100uA
温度
-25~+70摄氏度
通讯速率
接触模式下支持9600bps,19200bps,38400bps,76800bps可选,确省为9600bps,
非接触模式下为106Kbps
通讯协议
接触模式下支持T=0
非接触模式下:
支持ISO14443TypeA
三.文件结构
SAM卡用于商户POS、网点终端、直联终端等端末设备上,负责机具的安全控管。
SAM卡具有一定的通用性。
经过个人化处理的SAM卡能在不同的机具上使用。
SAM卡支持多级发卡的机制,各级发卡方在卡片主控密钥和应用主控密钥的控制下创建文件和装载密钥。
1.文件结构
SAM卡文件结构符合ISO/IEC7816-4。
本条款描述了符合建设部规范的应用文件结构,这些应用被定义为支付系统应用(PSA)。
符合ISO/IEC7816-4,但不符合本规范的其他应用也可出现在SAM上,并可以使用本规范中定义的命令进行操作。
SAM卡中PSA的路径可以通过明确选择支付系统环境(PSE)来激活。
SAM卡文件结构如下图所示:
应用主控密钥
ADF4
其他DF
KEY文件
公共信息文件
工作密钥
应用维护密钥
应用主控密钥
KEY文件
ADF3
非接触
公共信息文件
工作密钥
应用维护密钥
应用主控密钥
KEY文件
ADF2
行业消费
终端应用交易
序号数据元
应用公共
信息文件
应用主
工作密钥
应用维护密钥
应用主控密钥
ADF1
建设部
终端信
息文件
卡片公共
信息文件
DIR目录
数据文件
卡片维
护密钥
卡片主
控密钥
KEY文件
MF
图1PSAM卡文件结构
2.MF区域说明
在SAM卡的MF区域中,文件创建和密钥装载是在卡片主控密钥的控制下进行。
1)卡片主控密钥
卡片主控密钥是卡片的控制密钥,由卡片生产商写入,由发卡方替换为发卡方的卡片主控密钥。
卡片主控密钥的更新在自身的控制下进行。
发卡方必须在卡片主控密钥的控制下,
●创建卡片MF区域的文件;
●装载卡片维护密钥、应用主控密钥;
●更新卡片主控密钥、卡片维护密钥。
卡片主控密钥的控制可通过外部认证操作实现,也可通过安全报文的方式实现。
2)卡片维护密钥
卡片维护密钥用于卡片MF区域的应用维护,在卡片主控密钥的控制下装载和更新。
卡片的管理者可在卡片维护密钥的控制下,
●安全更新记录文件;
●安全更新二进制文件。
卡片维护密钥的控制通过安全报文的形式实现。
3)DIR目录数据文件
DIR目录数据文件的内容为四个目录名称,即ADF1:
“建设部”,CCMM;ADF2:
“城市”,city;ADF3:
“非接触”,mifa:
ADF4:
“其他DF”,temp;说明参考《中国金融集成电路(IC)卡规范》,但DIR目录数据文件的入口地址必须包括全国密钥管理总中心应用ADF。
4)卡片公共信息文件
卡片公共信息文件存放卡片的公共信息,在卡片主控密钥的控制下创建,可自由读,可在卡片维护密钥的控制下改写。
5)终端信息文件
终端信息文件存放终端的信息,在卡片主控密钥的控制下创建,可自由读,可在卡片维护密钥的控制下改写。
3.ADF区域说明
在SAM卡的ADF(ApplicationDataFile)区域中,文件创建和密钥装载是在应用主控密钥的控制下进行。
ADF下的文件结构可由应用发行者自行确定。
建设部应用ADF的文件结构必须包括应用主控密钥、应用维护密钥、应用主工作密钥、应用公共数据文件和终端应用交易序号数据元。
1)应用主控密钥
应用主控密钥是应用的控制密钥,在卡片主控密钥控制下写入。
发卡方必须在应用主控密钥的控制下,
●装载应用维护密钥、应用主工作密钥;
●更新应用主控密钥、应用维护密钥。
应用主控密钥的控制可通过外部认证操作实现,也可通过安全报文的方式实现。
2)应用维护密钥
应用维护密钥用于卡片ADF区域的应用维护,在应用主控密钥的控制下装载和更新。
卡片的管理者可在应用维护密钥的控制下,
●安全更新记录文件;
●安全更新二进制文件;
●进行应用解锁。
卡片维护密钥的控制通过安全报文的形式实现。
3)应用主工作密钥
应用主工作密钥用于卡片的交易,在应用主控密钥的控制下装载。
4)应用公共信息文件
应用公共信息文件存放应用的公共信息,在应用主控密钥的控制下创建,可自由读,可在卡片维护密钥的控制下改写。
5)终端应用交易序号数据元
终端应用交易序号长度4字节,用于终端的脱机交易,在消费交易MAC2验证通过的情况下由卡片操作系统改写。
终端应用交易序号只对本应用有效。
4.SAM模块文件结构
脉冲常数文件
计量文件
KEY文件
外部认证主密钥
应用维护密钥
应用主控密钥
ADF1
卡片维护密钥
卡片主控密钥
KEY文件
MF主文件
如下图所示:
脉冲常数认证密钥
计量文件认证密钥
基本信息文件
内部认证主密钥
其他ADF
在SAM模块中,KEY文件中的外部认证主工作密钥和内部认证主工作密钥用于一户一表安全认证用;更改密钥外部认证密钥用于更换终端表内应用主工作密钥。
二.基本命令
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。
数据域的长度为5~16字节。
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命令响应报文数据域由读取的记录组成。
5)举例说明
例如:
读取DIR文件的第一条记录的APDU如下:
00B2010C15
响应报文及状态如下:
701361114F09A000000003869807015004504249439000
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)举例说明
例如,读取MF终端信息文件的APDU如下:
00B0960006
响应报文和状态如下:
0102030405069000
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字节。
9.内部认证(InternalAuthentication)***
1)定义和范围
INTERNALAUTHENTICATION命令提供了利用接口设备发来的随机数和自身存储的相关密钥进行数据认证的功能。
2)命令报文
INTERNALAUTHENTICATION命令报文见表2-9。
代码
值
CLA
00h
INS
88h
P1
00h
P2
密钥标识号
Lc
认证数据长度
Data
认证数据
Le
运算后的数据长度
表2-9INTERNALAUTHENTICATION命令报文
P2指示可以使用INTERNALAUTHENTICATION命令进行验证密钥的标识号。
3)命令报文数据域
命令报文数据域中包含应用专用的认证数据。
4)响应报文数据域
响应报文数据域是相关认证数据,即DES运算结果。
5)响应报文状态码
IC卡可能回送的状态码及意义如下所示:
状态码
意义
9000
命令成功执行
9403
密钥不存在
6A81
无MF或卡片已锁定
6A86
P1、P2参数错误
6700
错误的数据长度
6982
安全权限不满足
6E00
无效的CLA
三.
扩展命令
为符合《中国金融集成电路(IC)卡规范(V1.0)》和《城市IC卡联合试点技术方案》的安全控管要求,PSAM卡必须支持以下专用命令。
1.写入密钥(WriteKey)
1)定义和范围
WRITEKEY命令可向卡中装载密钥或更新卡中已存在的密钥。
本命令可支持8字节或16字节的密钥,密钥写入必须采用加密的方式,在主控密钥的控制下进行。
在密钥装载前必须用GETCHANLLEGE命令从PSAM卡取一个4字节的随机数。
2)命令报文
WRI