智能卡ISO7816-4规范(中文版) 联系客服

发布时间 : 星期二 文章智能卡ISO7816-4规范(中文版)更新完毕开始阅读8c465adc2f3f5727a5e9856a561252d381eb2051

‘66XX’ ‘6700’ ‘68XX’ ‘69XX’ ‘6AXX’ ‘6B00’ ‘6CXX’ ‘6D00’ ‘6E00’ ‘6F00’ —保留供安全相关的发布使用 (本规范本部分不定义) 校验差错 —错误的长度 —CLA的功能不被支持 (在SW2中进一步的限定,见表16) —不允许的命令 (在SW2中进一步的限定,见表17) —错误的参数P1~P2 (在SW2中进一步的限定,见表18) —错误的参数P1~P2 —错误的长度Le:SW2指示准确的长度 (见下面的文本) —指令代码不被支持或无效 —类别不被支持 —没有精确的诊断

表13 当SW1=‘62’时,SW2的编码 含 义 没有信息被给出 返回数据的一部分可能被损坏 读出Le字节之前,文件/记录已结束 选择的文件无效 FCI未按照5.1.5格式化

表14 当SW1=‘63’时,SW2的编码 含 义 没有信息被给出 通过最后写入来填满文件 通过‘X’(值从0至15)提供的计数器 (正确的含义依赖于命令)

表15 当SW1=‘65’时,SW2的编码 含 义 没有信息被给出 存储器故障

表16 当SW1=‘68’时,SW2的编码

含 义 没有信息被给出 逻辑信道不被支持 安全报文不被支持 表17 当SW1=‘69’时,SW2的含义 含 义 没有信息被给出 命令与文件结构不兼容 安全状态不被满足 认证方法被阻塞 SW2 ‘00’ ‘81’ ‘82’ ‘83’ ‘84’ SW2 ‘00’ ‘81’ ‘CX’ SW2 ‘00’ ‘81’ SW2 ‘00’ ‘81’ ‘82’ SW2 ‘00’ ‘81’ ‘82’ ‘83’

‘84’ ‘85’ ‘86’ ‘87’ ‘88’ SW2 ‘00’ ‘80’ ‘81’ ‘82’ ‘83’ ‘84’ ‘85’ ‘86’ ‘87’ ‘88’ 引用的数据无效 使用的条件不被满足 命令不被允许(无当前EF) 期望的SM数据对象失踪 SM数据对象不正确

表18 当SW1=‘6A’时,SW2的编码 含 义 没有信息被给出 在数据字段中的不正确参数 功能不被支持 文件未找到 记录未找到 无足够的文件存储空间 Lc与TLV结构不一致 不正确的参数P1—P2 Lc与P1—P2不一致 引用的数据未找到

5.5 逻辑信道 5.5.1 一般概念

在接口处看到的逻辑信道作为与DF的逻辑链路进行工作。

在一个逻辑信道上应存在独立的活动,而与另一个信道上的活动无关。也就是说,在一个逻辑信道上的命令相互关系应独立于另一个逻辑信道上的命令相互关系。然而,逻辑信道可以共享与应用相关的安全状态,因此,可以具有与安全有关的跨越逻辑信道的命令相互关系(例如,命令VERIFY)。

提供给某一逻辑信道的命令运载了在CLA字节中的相应逻辑信道号(见表8和9)。逻辑信道的编号从0至3。如果卡支持逻辑信道机制,则有效逻辑信道的最大编号可以在卡能力中指出(见本部分规范8.3.6节)命令响应对按当前描述的那样进行工作。

本规范本部分仅支持在启动后续命令响应对之前应完成的命令响应对。跨越逻辑信道应该没有命令及其响应的交错;在收到命令与发送响应给该命令之间,只有一个逻辑信道是活动的。当逻辑信道被开放时,它保持开放,直到由MANAGE CHANNEL 命令显式地关闭为止。

注:

1)如果不排除,对同一DF,可以开放一个以上的逻辑信道(见5.1.5文件可访问性)。 2)如果不排除,一个以上的逻辑信道可以选择同一EF(见5.1.5文件可访问性)。 3)在逻辑信道上的SELECT FILE 命令将开放当前DF及可能的当前EF。因此,每个逻辑信道有一个当前DF及可能的一个当前EF作为SELECT FILE 命令行为的结果以及使用短EF标识符访问命令的文件。 5.5.2 基本逻辑信道

基本逻辑信道永久有效。当被编号时,它的编号为0。当类别字节按照表8和9进行编码时,位1和2编码了逻辑信道号。 5.5.3 打开逻辑信道

逻辑信道可通过成功地完成下列内容来打开:

——通过分配类别字节中的大于0的逻辑信道号来完成引用的DF的SELECT FILE 命令;

——或者,完成MANAGE CHANNEL 命令的开放功能,该命令分配在命令APDU中的0以

外的逻辑信道号或请求卡分配的和响应中返回的逻辑信道号。 5.5.4 关闭逻辑信道

MANAGE CHANNEL 命令的关闭功能可以用来显式地使用逻辑信道号关闭逻辑信道。关闭之后,逻辑信道号可供重新使用。基本逻辑信道应不予关闭。 5.6 安全报文交换

安全报文交换的目的是通过确保两种基本安全功能来保护往返于卡的报文部分,这两种功能是:数据鉴别和数据安全性。

安全报文交换可通过应用一种或多种安全机制来获得。每种安全机制都涉及算法、密钥、自变量、经常还有初始数据。

·对于安全机制的执行,数据字段的发送和接收可以交错进行。本规范不妨碍通过顺序地分析哪些机制

·两种或两种以上的安全机制可以使用带有不同操作方式的相同算法(见ISO10116)。填充规则的现有规范不排除这种特征。

本条定义了SM相关数据对象的三种类型:

——普通值数据对象,预期用来运载普通数据;

——安全机制数据对象,预期用来运载安全机制的计算结果; ——辅助安全数据对象,预期用来运载控制引用和响应描述符。 5.6.1 SM格式概念

在涉及基于密码安全机制的每个报文中,数据字段应符合ASN.1的基本编码规则(见ISO8825和附录D),除非通过类别字节另有指示(见本部分规范5.4.1)。

在数据字段中,可以选择现存的SM格式: ——隐式地选择,即,在发出命令之前已知;

——显式地选择,即,通过类别字节来固定(见表9)。 本规范本部分定义的SM格式是BER—TLV编码的。

·上下文特定的标签类别(范围从‘80’至‘BF’)被保留供SM用。 ·其他类别的数据对象可以呈现(例如,应用特定类别的数据对象)。 ·某些与SM相关的数据对象是递归的:它们的普通值字段仍然是BER—TLV编码的,因此上下文特定的类别自然是被保留供SM用。

在上下文特定类别中,标签的位1决定了SM相关的数据对象会(b1=1)或不会(b1=0)集成到认证用的数据对象的计算中。如果呈现,其它类别数据对象会集成到该计算中。 5.6.2 普通值数据对象

对于不按BER—TLV编码的数据以及对于包括与SM相关的数据对象的BER—TLV,ENVELOPE都是强制性的。对于不包括与SM相关的数据对象的BER—TLV,ENVELOPE是任选的。表19示出了ENVELOPE用的普通值数据对象。

表19 普通值数据对象

标 记 值 简明值由下列内容组成 ‘B0’,‘B1’ —BER—TLV 包括与SM相关的数据对象 ‘B2’,‘B3’ —BER—TLV 但不包括与SM相关的数据对象 ‘80’,‘81’ —不是BER—TLV编码的数据 ‘99’ —SM状态信息(例如 SW1—SW2)

5.6.3 认证用的数据对象

5.6.3.1 密码“校验和”数据对象

密码校验和的计算(见ISO9797)包含有初始校验块、密钥以及不可逆密码算法块。 在相关密钥的控制下,该算法在本质上将现行的K字节(典型地是8或16)输入块变换成现行的相同长度输出块。

密码校验和的计算按下列连续步骤执行:

——初始步骤——初始步骤设置下列块之一的初始校验块: ·空块,即,K字节值为‘00’

·链接块,即,由先前计算命令(先前命令的最后一校验块)和响应(先前响应的最后一校验块)的结果,例如,由外界提供的初始值块;

·按照相关密钥从变换辅助数据产生的辅助块。如果辅助数据小于K字节,则它通过置为0的位为起头,直至块长度。

——相继步骤——当表9可用(CLA=‘0X’,‘8X’,‘9X’或‘AX’)时,如类别字节的位b4和b3置为1,则第1个数据、块由命令APDU(CLA INS P1 P2)的首标后随值为‘80’的一个字节和值为 ‘00’的5个字节的K组成。

密码“校验和”应集成具有标记(b1=1)的任何SM相关数据对象和带有标记超出范围‘80’至‘BF’的任何数据对象。这些数据对象应通过数据块集成到当前的校验块中。分解数据块应按下列方法进行:

——分块应在被集成的相邻数据对象之间的边界处继续进行。

——填充应在被集成的每个数据对象(既可后随不被集成的数据对象,也可不后随进一步的数据对象)的结束处使用。

填充由一个值为‘80’的必备字节组成,如果需要可后随置为‘00’的0至(K—1)个字节,直到相应的数据块被填充直至K个字节为止。当填充字节不被发送时,鉴别的填充不影响传输。

操作方式为“密码块链接”(见ISO10116)。第1个输入是初始校验块与第1个数据块的异或运算结果。第1个输出由第1个输入产生。当前输入是先前输出与当前数据块的异运算结果。最终的校验块就是最后的输出。

——最终步骤——最终步骤从最终校验块中抽取出密码“校验和”(开始的m个字节,至少4个)。

表20示出了密码“校验和”数据对象。

20 密码“校验和”数据对象

标记 值 ‘8E’ 密码校验和(至少4个字节)

5.6.3.2 数字签名数据对象

数字签名计算典型地基于非对称密码技术,数字签名有两种类型: ——带有附件的数字签名;

——给出报文恢复的数字签名。

带有附件数字签名的计算隐含着使用散列函数(见ISO10118)。数据输入或者由数字签名输入数据对象的值(见表21)组成,或者通过本部分规范5.6.3.1定义的机制来确定。

给出报文恢复的数字签名的计算(见ISO9796)不隐含使用散列函数。然后,根据应用的需要,散列代码可以呈现作为恢复报文的一部分,而该报文本身可以是BER—TLV编码的。表21示出了数字签名相关的数据对象。

表21 数字签字有关的数据对象