资源描述
GB/T ××××—××××
国家质量监督检验检疫总局 发布
××××-××-××实施
××××-××-××发布
信息安全技术
公开密钥基础设施
具有数字签名功能的IC卡
应用接口规范
Specification of IC Card interface with digital signature application/function
(报批稿)
GB/T ××××—××××
中华人民共和国国家标准
ICS 35.40
L80
1
GB/T ××××—××××
目 次
目 次 I
前 言 III
引 言 IV
具有数字签名功能的IC卡应用接口规范 1
1 范围 1
2 规范性引用文件 1
3 术语和定义 1
4 命令接口 2
4.1 命令综述 2
4.2 选择文件 2
4.3 获取响应 3
4.4 二进制读 3
4.5 二进制写 4
4.6 验证 4
4.7 安全环境:恢复 5
4.8 安全环境:设置 5
4.9 执行安全操作:散列 7
4.10 执行安全操作:签名 7
4.11 执行安全操作:解密 8
4.12 修改密码 8
4.13 二进制更新 9
4.14 二进制擦除 10
4.15 生成密钥对 10
附 录 A 12
(规范性附录) 12
卡内文件系统 12
A.1 综述 12
A.2 专用文件和基本文件以及它们的访问条件 14
A.2.1 主文件 14
A.2.2 目录文件 14
A.2.3 电子签名应用目录文件 14
A.2.4 令牌信息文件 14
A.2.5 对象目录文件 15
A.2.6 鉴别对象目录文件 16
A.2.7 鉴别对象文件#1 18
A.2.8 鉴别对象文件#2 18
A.2.9 私钥目录文件 18
A.2.10 私钥文件#1 20
A.2.11 私钥文件#2 20
A.2.12 证书目录文件#1 21
A.2.13 证书文件#1 22
A.2.14 证书文件#2 22
A.2.15 证书目录文件#2 22
A.2.16 证书目录文件#3 23
A.2.17 CA证书文件#1 24
A.2.18 CA证书文件#2 24
A.2.19 数据对象目录文件 24
A.2.20 未用空间文件 24
A.2.21 空白区域文件 25
附 录 B 27
(资料性附录) 27
电子签名应用 27
B.1 概述 27
B.2 卡复位(ATR) 27
B.3 读取目录文件 27
B.4 应用选择 27
B.5 读取对象目录文件 28
B.6 电子签名 28
B.7 解密操作 30
B.8 卡维护 31
B.8.1 PIN1的验证 32
B.8.2 PIN1的修改 32
B.8.3 新密钥和证书的加入 32
附 录 C 34
(资料性附录) 34
文件控制信息(FCI)模板编码 34
附 录 D 39
(资料性附录) 39
命令状态码 39
参考文献 41
IV
前 言
本标准主要内容为具有数字签名功能的IC卡(电子签名卡)和上层PKI应用之间的接口规范,对电子签名卡和上层PKI应用之间的接口做出了规定,为电子签名卡的应用开发和电子签名卡操作系统的开发提供了统一标准。
本标准附录A是规范性附录。
本标准附录B是资料性附录。
本标准附录C是资料性附录。
本标准附录D是资料性附录。
本标准由全国信息安全标准化技术委员会提出并归口。
本标准起草单位:北京飞天诚信科技有限公司。
本标准主要起草人:于华章,周葵亮,朱鹏飞。
引 言
目前,电子签名卡在应用接口的设计上缺乏统一的规范,给电子签名应用的推广造成很大障碍。为了满足电子签名应用日益发展的需要,制定本标准。
本标准参考了国内外的相关IC卡、PKI规范,最大程度地保证标准的互操作性。
本标准中给出的SHA-1、RSA等密码算法均为举例性说明,具体使用时均须采用国家密码管理部门批准的相应算法。
具有数字签名功能的IC卡应用接口规范
1 范围
本标准规定了具有数字签名功能的IC卡(电子签名卡)和上层PKI应用之间的接口,规定了卡内基本文件系统、电子签名卡与外部应用交互的接口等方面的要求。
本标准适用于规范和指导电子签名卡的应用开发,规范和指导电子签名卡操作系统的开发。
2 规范性引用文件
下列文件中的条款通过本标准的引用而成为本标准的条款。凡是注日期的引用文件,其随后所有的修改单(不包括勘误的内容)或修订版均不适用于本标准,然而,鼓励根据本标准达成协议的各方研究是否可使用这些文件的最新版本。凡是不注日期的引用文件,其最新版本适用于本标准。
GB/T 1988-1998 信息技术 信息交换用七位编码字符集
GB/T 16649.5-2002 识别卡 带触点的集成电路卡 第五部分:应用标识符的编号体系
GB/T 16649.8-2002 识别卡 带触点的集成电路卡 第八部分:与安全相关的行业间命令
ISO/IEC 7816-4:2005 识别卡 集成电路卡 第4部分:交换用组织、安全和命令
ISO/IEC 7816-15:2004 识别卡 带触点的集成电路卡 第15部分:密码信息的应用
3 术语和定义
下列术语和定义适用于本标准。
3.1
应用标识符 application identifier
唯一地标识卡内一个应用的数据元,5-16字节。一般由两部分组成,前部分为注册的应用提供者标识符(5个字节)或者发行者标识号,后部分为发行者定义的扩展(0-11字节)。
3.2
标号 label
用于人机接口的数据元,直观地标识卡内一个应用。
3.3
应用模板 application template
包含与一个应用有关的若干数据对象的数据元,通常出现在DIR文件中。
3.4
控制引用模板control reference template
用于描述一个安全环境的各种成分。例如关于电子签名模板的CRT和机密性模板的CRT等。
3.5
路径path
没有分隔符的文件标识符的链接。如果是路径从 MF 开始的,则为绝对路径;否则为相对路径,即从当前DF的文件标识符开始。
3.6
安全环境 security environment
向卡片系统指出用于保护特定应用命令的安全功能的机制。任何安全环境都可指出引用的算法、所用密钥、操作模式和有关参数等成分。
4 命令接口
4.1 命令综述
本标准规定如表1所示的命令接口,也就是接口设备IFD和电子签名卡之间传输的APDU。
表1 电子签名应用相关的命令
命令
命令功能
SELECT FILE
选择一个文件
GET RESPONSE
获得响应数据(T=0协议中)
READ BINARY
读取二进制文件的内容
WRITE BINARY
写二进制数据到文件
VERIFY
验证个人标识号(PIN)
MANAGE SECURITY ENVIRONMENT:RESTORE
恢复预定义的安全环境
MANAGE SECURITY ENVIRONMENT: SET
设置安全环境(算法、密钥)
在执行安全操作命令之前用到
PERFORM SECURITY OPERATION:
HASH
对数据进行HASH操作,算法由MSE命令指定
PERFORM SECURITY OPERATION:
COMPUTE DIGITAL SIGNATURE
用私钥生成电子签名,算法和密钥由MSE命令指定
PERFORM SECURITY OPERATION:
DECIPHER
用私钥解密,算法和密钥由MSE命令指定
CHANGE REFERENCE DATA
修改PIN
UPDATE BINARY
更新二进制文件的内容
ERASE BINARY
擦除二进制文件的内容
GENERATE PUBLIC KEY PAIR
生成密钥对和返回公钥
4.2 选择文件
选择文件(SELECT FILE)命令通过文件FID、文件path、或AID来选择电子签名卡中的文件。命令报文和响应报文分别如表2,表3所示。
表2 SELECT File 命令报文
代码
值
CLA
‘00’
INS
‘A4’
P1
‘00’ – 根据FID选择文件
‘04’ - 根据AID选择应用
‘08’ – 选择文件通过相对于MF的绝对路径
‘09’ – 选择文件通过相对于当前DF的相对路径
P2
‘00’ – 返回FCI
p1=‘04’时,‘00’为选择当前应用;
‘02’选择下一个应用;
Lc
选择文件参数长度或者为空
Data
P1 = ‘00’
- EF, DF 或 MF 的FID (或空=MF)
P1 = ‘08’
- 文件相对于MF的绝对路径 (MF=’3F00’)
P1 = ‘09’
-文件相对于DF的相对路径
P1 = ‘04’
- AID
Le
FCI信息长度或空
表3 SELECT FILE 响应报文
数据
值
Data
文件控制信息(FCI)
SW1-SW2
状态字节
4.3 获取响应
获取响应(GET RESPONSE) 命令从卡中返回响应数据(在T=0协议中)。通常它作为下列命令的后续命令:
——SELECT FILE
——PERFORM SECURITY OPERATION: COMPUTE DIGITAL SIGNATURE
——PERFORM SECURITY OPERATION: DECIPHER.
命令报文和响应报文分别如表4,表5所示。
表4 GET RESPONSE 命令报文
代码
值
CLA
‘00’
INS
‘C0’
P1
‘00’
P2
‘00’
Lc
无
Data
无
Le
期望最大的返回数据长度
表5 GET RESPONSE响应报文
数据
值
Data
返回的数据
SW1-SW2
状态字节
4.4 二进制读
二进制读(READ BINARY)是从当前的文件中读取连续的字节。命令报文和响应报文分别如表6,表8所示。
表6 READ BINARY命令报文
代码
值
CLA
‘00’
INS
‘B0’
P1
见表7
P2
见表7
Lc
无
Data
无
Le
读取的字节数
表7 P1、P2参数
b8 b7 b6 b5
b4 b3 b2 b1
说明
0 - - -
- - - -
P1-P2指定读偏移(15位)
1 - - -
- - - -
P1指定短文件标识SFID,P2 指定8位偏移
1 0 0 x
x x x x
短文件标识SFID(1-30)
表8 READ BINARY 响应报文
数据
值
Data
读取的数据
SW1-SW2
状态字节
4.5 二进制写
二进制写(WRITE BINARY)该命令把二进制数据写入EF
命令报文和响应报文分别如表9,表10所示。
表9 WRITE BINARY命令报文
代码
值
CLA
‘00’
INS
‘D0’
P1
在P1中b8=1,b7=b6=0,b5——b1是文件的短标示符(SFID)。P2是在文件中写入数据的位置的偏移量(相对于第一个字节)。如果在P1中b8=0,P1||P2是偏移量。
P2
Lc
随后数据字段的长度
Data
需要写入的数据单元串
Le
空
表10 WRITE BINARY响应报文
数据
值
Data
空
SW1-SW2
状态字节
4.6 验证
验证(VERIFY)命令验证PIN(持卡人输入的)。命令报文和响应报文分别如表11,表13所示。
表11 VERIFY命令报文
代码
值
CLA
‘00’
INS
‘20’
P1
‘00’
P2
PIN的限定,见表12
Lc
空或以下的数据长度
Data
空或者PIN(填充正确的长度,根据ISO/IEC 7816-15填充)
Le
无
表12 P2的编码
P2的编码
b8 b7 b6 b5
b4 b3 b2 b1
含义
0
全局的引用数据(卡的PIN)
1
特殊的引用数据(特定的DF PIN)
- x x x
X
‘0000’(其它的值保留)
- - - -
- x x x
PIN编号(依据ISO/IEC 7816-15)
- - - -
- 0 0 0
RFU
表13 VERIFY响应报文
数据
值
Data
无
SW1-SW2
状态字节
当主体为空时,命令既可用来检索进一步允许的重试数(SW1-SW2=‘63CX’)或用来校验是否不要求验证(SW1-SW2=‘9000’)。
4.7 安全环境:恢复
安全环境:恢复(MANAGE SECURITY ENVIRONMENT: RESTORE)命令恢复一个预先定义(或者空的)的安全环境。命令报文和响应报文分别如表14,表15所示。
表14 MANAGE SECURITY 命令报文
代码
值
CLA
‘00’
INS
‘22’表示MSE
P1
‘F3’表示RESTORE
P2
安全环境索引(00是空的安全环境)
Lc
无
Data
无
Le
无
表15 MANAGE SECURITY 响应报文
数据
值
Data
无
SW1-SW2
状态字节
4.8 安全环境:设置
安全环境:设置(MANAGE SECURITY ENVIRONMENT: SET)在当前的安全环境中设置属性。命令报文和响应报文分别如表16,表17所示。
表16 MANAGE SECURITY 命令报文
代码
值
CLA
‘00’
INS
‘22’
P1
‘41’—设置签名和解密的安全环境
P2
‘B6’---Data为电子签名模板
‘B8’---Data为保密性模板
Lc
空或发送的数据长度
Data
CRDOs的串接
Le
无
表17 MANAGE SECURITY ENVIRONMENT响应报文
数据
值
Data
无
SW1-SW2
状态字节
表18描述了控制引用数据对象(CRDO),在电子签名模版(DST)和保密性模版(CT)中引用。
表18 CRDO
标签(Tag)
值(Value)
DST
CT
80h
算法引用
+
+
81h
文件引用(文件标识符或者路径)
+
+
表19 P1-P2的组合
支持P1-P2组合
P1
P2
含义
数据字段中的CRDO
数据字段内容
‘41’
‘B6’
设置电子签名安全环境
DST
‘8001xx8102xxxx’
‘41’
‘B8’
设置解密的安全环境
CT
‘8001xx8102xxxx’
CRDO算法引用(Tag = 80h)在表20中指定。算法引用的高四位指定hash算法(如果hash操作是与算法相关的),低四位指定关于算法的细节部分。
表20 CRDO算法引用
算法引用
详细资料
0Xh
没有hash算法
1Xh
SHA-1算法
2Xh
RFU
X0h
RSA算法(卡不操作任何输入输出格式化,例如:不做填充或hash封装)
签名产生操作(PSO:COMPUTE DIGITAL SIGNATURE):
1、输入的数据长度必须等于模数的长度,也就是说hash和填充不由卡来完成。对于这个算法,模数的长度应当是8的倍数。
2、应用RSASP1签名原语(RSA私钥操作)
解密操作(PSO:DECIPHER):
1、应用RSADP解密原语(RSA私钥操作)
2、填充不被卡删除
X1h
RFU
X2h
RSASSA-PKCS1-v1-5签名方案(依照PKCS#1v2.1使用RSA算法,与PKCS#1v1.5兼容)
签名操作(PSO:COMPUTE DIGITAL SIGNATURE):
1、要Hash的代码根据选择的算法被压缩成摘要信息的结构,如果没有hash算法被选择(02h),那么hash操作就不由卡来做。
2、数据摘要信息根据PKCS#1v1.5(块类型01h)被填充成模数的长度。数据摘要信息的长度不长于模数长度的40%。
3、应用RSASP1签名原语(RSA私钥操作)
RSAES-PKCS1-v1_5加密方案(依照PKCS#1v2.1使用RSA算法,与PKCS#1v1.5兼容)
解密操作 (PSO: DECIPHER):
1、应用RSADP解密原语(RSA私钥操作)
2、PKCS#1 v1.5填充被删除
X3h
RFU
X4h
RFU
4.9 执行安全操作:散列
执行安全操作:散列(PERFORM SECURITY OPERATION:HASH)计算数据的散列(hash)值,算法必须由MANAGE SECURITY ENVIRONMENT命令指定(在数据字段用DST CRDO)。
这个命令支持命令链机制,它利用CLA值来指示命令链的结尾。命令链中除最后一个命令CLA=00h外,其余所有命令CLA=10h。CLA=10h的命令只携带hash算法块大小(SHA-1是64个字节)的倍数数据,链中最后的命令没有数据长度的限制。为了能够签名和验证hash,在PSO:HASH命令中的CLA必须为00h(链的结尾),接着立即执行命令PSO:COMPUTE DIGITAL SIGNATURE。
除了命令链中最后一个命令,数据字段的大小是hash算法块大小(SHA-1是64个字节)的整数倍。算法由MSE:SET命令来指定。Hash的结果暂时保存在卡中,用于随后的PSO命令:COMPUTE DIGITAL SIGNATURE。
命令报文和响应报文分别如表21,表22所示。
表21 HASH 命令报文
代码
值
CLA
‘00’/’10’
INS
‘2A’
P1
‘90’
P2
‘80’
Lc
数据长度
Data
用来被hash的数据
Le
空
表22 HASH 响应报文
数据
值
Data
无
SW1-SW2
状态字节
4.10 执行安全操作:签名
执行安全操作:签名(PERFORM SECURITY OPERATION:COMPUTE DIGITAL SIGNATURE)计算一个电子签名。私钥和算法必须由MANAGE SECURITY ENVIRONMENT命令指定(支持RSA算法,其它的算法如DSA和ECDSA可以作为扩展)。
根据选择的算法,命令的输入是下列之一:
———散列结果(例如:SHA-1是20个字节)
——一个数字摘要信息结构封装的散列值
——一个完整的模数大小输入缓冲区(由应用程序填充)
———空(由前面PSO:HASH命令计算的已经保存在卡内的散列值)。
命令报文和响应报文分别如表23,表24所示。
表23 COMPUTE DIGITAL SIGNATURE 命令报文
代码
值
CLA
‘00’
INS
‘2A’
P1
‘9E’ 电子签名在响应报文中返回
P2
‘9A’ 数据字段包含要签名的数据
Lc
发送数据的数据长度
Data
如果在SE中的算法引用=00h
数据被签名,由应用程序进行填充;
如果在SE中的算法引用=02h
hash代码被主应用程序包封成数据摘要信息结构,填充在卡的内部完成;
如果在SE中的算法引用=12h
hash代码,卡包封hash代码成数字摘要信息结构,在卡内根据PKCS#1 v1.5进行填充;
空的(被前面PSO:HASH命令计算的hash代码);
Le
电子签名长度
表24 COMPUTE DIGITAL SIGNATURE 响应报文
数据
值
Data
电子签名
SW1-SW2
状态字节
4.11 执行安全操作:解密
执行安全操作:解密(PERFORM SECURITY OPERATION: DECIPHER)是解密命令,私钥和算法由MSE命令指定。命令报文和响应报文分别如表25,表26所示。
表25 DECIPHER 命令报文
代码
值
CLA
‘00’
INS
‘2A’
P1
‘80’解密值在响应报文中被返回
P2
‘86’数据字段包含填充指示字节(根据ISO/IEC 7816-4:2005是00h),后面跟着密文
Lc
发送数据的长度
Data
‘00’(填充标志)||密文
Le
解密后数据长度或空
表26 DECIPHER 响应报文
数据
值
Data
解密后的数据
如果在SE中算法引用=00
填充没有被卡删除;
如果在SE中算法引用=02h
PKCS#1 v1.5填充被卡删除,只留下实际的数据
SW1-SW2
状态字节
4.12 修改密码
修改密码(CHANGE REFERENCE DATA)命令用来修改个人密码,命令报文和响应报文分别如表27,表29所示。
表27 CHANGE REFERENCE DATA命令报文
代码
值
CLA
‘00’
INS
‘24’
P1
‘00’
P2
PIN的限定,见表28
Lc
发送的数据长度
Data
旧个人密码(old pin)|新个人密码(new pin)
(填充到正确的长度,依照ISO/IEC 7816-15)
Le
无
表28 P2的编码
P2的编码
b8 b7 b6 b5
b4 b3 b2 b1
含义
0
全局的引用数据(卡的PIN)
1
特殊的引用数据(特殊的DF PIN)
- x x x
X
‘0000’(其它的值保留)
- - - -
- x x x
PIN号码(依据ISO/IEC 7816-15)
- - - -
- 0 0 0
RFU
表29 CHANGE REFERENCE DATA响应报文
数据
值
Data
无
SW1-SW2
状态字节
4.13 二进制更新
二进制更新(UPDATE BINARY)命令用来修改二进制文件的数据,命令报文和响应报文如表30,表32所示。
表30 UPDATE BINARY 命令报文
代码
值
CLA
‘00’
INS
‘D6’
P1
见表31
P2
见表31
Lc
发送的数据长度
Data
更新的数据
Le
无
表31 P1、P2参数
b8 b7 b6 b5
b4 b3 b2 b1
说明
0 - - -
- - - -
P1-P2指定读偏移(15位)
1 - - -
- - - -
P1指定文件短标识 P2 指定8位偏移
1 0 0 x
x x x x
文件短标识(1-30)
表32 UPDATE BINARY 响应报文
数据
值
Data
无
SW1-SW2
状态字节
4.14 二进制擦除
二进制擦除(ERASE BINARY)命令擦除二进制文件的内容,擦除的位置从P1中指定的位置开始到P2中指定的位置结束。
命令报文和响应报文分别如表33,表35所示。
表33 ERASE BINARY 命令报文
代码
值
CLA
‘00’
INS
‘0E’
P1
见表34
P2
见表34
Lc
无
Data
无
Le
无
表34 P1、P2参数
b8 b7 b6 b5
b4 b3 b2 b1
说明
0 - - -
- - - -
P1-P2指定读偏移(15位)
1 - - -
- - - -
P1指定文件短标识 P2 指定8位偏移
1 0 0 x
x x x x
文件短标识(1-30)
表35 ERASE BINARY 响应报文
数据
值
Data
无
SW1-SW2
状态字节
4.15 生成密钥对
生成密钥对(GENERATE PUBLIC KEY PAIR)命令的作用是在卡中生成和保存密钥对,在该命令之前必须先用MSE命令设置密钥生成的相关参数,如算法。参照前面5.8中DST的设置。
命令报文和响应报文分别如表36,表37所示。
表36 GENERATE PUBLIC KEY PAIR 命令报文
代码
值
CLA
‘00’
INS
‘46’
P1
‘0000’
生成和存储密钥对
P2
Lc
‘02’
Data
需要生成的密钥长度
Le
空或者期望的数据长度
表37 GENERATE PUBLIC KEY PAIR 响应报文
数据
值
Data
空或者公钥
SW1-SW2
状态字节
41
附 录 A
(规范性附录)
卡内文件系统
A.1 综述
本标准规定的卡内文件系统依照ISO/IEC 7816-15:2004标准,规定如图A1。
图 A1 电子签名卡内文件系统
A.2 专用文件和基本文件以及它们的访问条件
A.2.1 主文件
主文件(Master File,简称MF)是文件系统的根,规定它的FID是3F00。它的访问条件如表A1。
表 A1 MF文件的访问条件
访问方法
访问条件
创建
总是可以访问
删除
总是不可以访问
A.2.2 目录文件
目录(DIR)文件是基本文件(Elementary File,简称EP)的一种,简写为EF(DIR)文件。本标准中,仅MF下才有目录文件。该文件包含MF下的全部应用的应用模板(在GB/T 16649-5:2002中定义),EF(DIR)文件的FID规定为2F00。它的访问条件如表A2。
表 A2 EF(DIR)的访问条件
访问方法
访问条件
读
总是可以访问
更新
提供了系统密钥以后允许访问
一个应用模板包含的数据对象是:应用标识符(AID)、应用标号(label)、路径(path),和自选数据对象(ddo)。一个例子是:
{
aid ‘未确定’,
path ‘3F005015’H,
ddo {
oid {}
}
}
A.2.3 电子签名应用目录文件
电子签名应用目录文件是专用文件(Delicated File,简称DF)的一种,简写为DF(电子签名应用)。它的AID是:未定,也就是文件EF(DIR)中的AID。
访问条件如表A3。
表 A3 DF(CHN Application)的访问条件
访问方法
访问条件
创建
提供了系统密钥以后允许访问
删除
提供了系统密钥以后允许访问
A.2.4 令牌信息文件
令牌信息文件是基本文件的一种,简写为EF(TokenInfo)。该文件包含令牌(在这里是IC卡)的一般信息和性能。这些信息包括令牌的系列号,支持的文件类型,令牌中实现的算法等。规定该文件的文件标识符FID是5032。它的访问条件(AC)如表A4。
表 A4 EF(TokenInfo)的访问条件
访问方法
访问条件
读
总是可以访问
更新
总是不可以访问
值的例子:
{
version v1,
serialNumber 2343546435363456
manufacturerID “FEITIAN”
label “IDENTITY CARD”
tokenFlags {eidCompliant}
{--SEQUENCE OF
supportedAlgorithms {
reference ‘00’H,
algorithm 0,
parameters NULL,
supportedOperations { compute-signature, decipherr,
generate-key}
}
}
}
A.2.5 对象目录文件
对象目录文件(Object Directory File,简称ODF)是基本文件的一种,简写为EF(ODF)。该文件是一个透明的基本文件,包含指向电子签名卡中其它基本目录文件(私钥目录文件, 证书目录文件, 鉴别对象目录文件, 数据对象目录文件等)的指针。规定它的FID是5031。
电子签名卡的应用由这个文件来决定怎么样来完成安全服务。它的访问条件如表A5。
表 A5 EF(ODF)的访问条件
访问方法
访问条件
读
总是可以访问
更新
提供了系统密钥以后允许访问
值的例子:
{
authObjects : path : {
path ‘3F0050154401’H
},
privateKeys : path : {
path ‘3F0050154402’H
}
certif.icates : path : {
path ‘3F0050154403’H
}
certif.icates : path : {
path ‘3F0050154404’H
}
trustedCertificates : path : {
path ‘3F0050154405’H
}
dataObjects : path : {
path ‘3F0050154406’H
}
}
DER编码序列如下:
A8 0A
30 08
04 06 3F 00 50 15 44 01
A0 0A
30 08
04 06 3F 00 50 15 44 02
A4 0A
30 08
04 06 3F 00 50 15 44 03
A4 0A
30 08
04 06 3F 00 50 15 44 04
A5 0A
30 08
04 06 3F 00 50 15 44 05
A7 0A
30 08
04 06 3F 00 50 15 44 06
文件EF(ODF)由六个记录组成。
A.2.6 鉴别对象目录文件
鉴别对象目录文件(Authentication Obejct Directory File,简称AODF)是基本文件的一种,简写为EF(AODF)。该文件包含一般的鉴别对象属性,如许可性质、PIN长度,和PIN填充字符等。它也包含指向认证对象的指针。认证对象用来控制其它对象(如密钥)的访问。这个文件的内容是根据ISO/IEC 7816-15:2004来确定的。它访问条件如表A6。
表 A6 EF(AODF)的访问条件
访问方法
访问条件
读
总是可以访问
更新
提供了系统密钥以后允许访问
PIN码的设置:
——PIN值的编码类型为GB/T 1988数字
——最小的PIN长度是4个字符
——最大的PIN长度是8个字符
——开始的PIN是随机产生的
——卡应该支持PIN修改
——卡应当支持解锁PIN
——PIN的标签和‘local’标志应当根据表A7设置
表 A7 PIN标签
PIN编号
PIN适用于
PIN标签(local)
Local or global PIN
PIN1
验证用户和加密
‘basic PIN’
Global PIN
PIN2
签名密钥
‘signature PIN’
Local PIN
值的例子:
{
pin : {
commonObjectAttributes { -- CommonObjectAttributes
label “basic PIN”,
flags {private, modifiable}
},
classAttributes { -- CommonAuthenticationObjectAttrib.
authID ‘01’H -- cross referenced from PrKDF
},
typeAttributes { -- PinAttributes
pinFlags {initialized, needs-padding},
pinType ascii-numeric,
minLength 4,
storedLength 8,
pinReference 1,
padChar ‘00’H,
path {
path ‘3F00xxxx’H -- PIN is in MF
}
},
pin : {
commonObjectAttributes { -- CommonObjectAttributes
label “signature PIN”,
flags {private, modifiable}
},
classAttributes { -- CommonAuthenticationObjectAttrib.
authID ‘02’H -- cross referenced from PrKDF
},
typeAttributes { -- PinAttributes
pinFlags {local, initialized, needs-padding},
pinType ascii-numeric,
minLength 4,
storedLength 8,
pinReference 2,
padChar ‘00’H,
path {
path ‘3F005015xxxx’H -- PIN in DF
}
}
}
A.2.7 鉴别对象文件#1
鉴别对象#1(Authentication Object #1)包含卡的一个基本的PIN码,简写为PIN1。所有的应用(包括电子签名应用)使用在MF下的PIN1的验证作为一个访问条件。
PIN1的使用原则:
——三次连续的PIN1输入失败后,PIN1被锁定;
——十次连续的PUK输入失败后,PIN1将永远被锁定;
——PIN1能够被解锁无限多次。
它的访问条件如表A8。
表 A8 PIN1的访问条件
访问方法
访问条件
读
总是不可以访问
更新
总是不可以访问
A.2.8 鉴别对象文件#2
鉴别对象#2(Authentication Object #2)包含签名应用的PIN码,简写为PIN2。PIN2被用来作为签名私钥的访问控制,但是不作为卡的其它应用的访问控制。
PIN2的使用原则:
展开阅读全文