• 2.69 MB
  • 2022-04-22 13:49:19 发布

GBT16649.4-2010识别卡集成电路卡用于交换的结构、安全和命令.pdf

  • 89页
  • 当前文档由用户上传发布,收益归属用户
  1. 1、本文档共5页,可阅读全部内容。
  2. 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,可选择认领,认领后既往收益都归您。
  3. 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细先通过免费阅读内容等途径辨别内容交易风险。如存在严重挂羊头卖狗肉之情形,可联系本站下载客服投诉处理。
  4. 文档侵权举报电话:19940600175。
'ICS35.240.15L64a雪中华人民共和国国家标准GB/T16649.4—2010/ISO/IEC7816-4:2005识别卡集成电路卡第4部分:用于交换的结构、安全和命令IdentificationCards--Integratedcircuitcards——Part4:Organization,securityandcommandsforinterchange2010-12-01发布(ISO/iEc7816—4:2005,IDT)2011—04—01实施丰瞀职紫瓣警糟瞥星发布中国国家标准化管理委员会仅19 标准分享网www.bzfxw.com免费下载目次GB/T16649.4—2010/ISO/IEC7816-4:2005前言···⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯--·⋯⋯’’日f言·······················⋯·············⋯·--·················⋯-·········-·-·--···········-⋯-········---·--..1范围一⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯·⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯‘2规范性引用文件··⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯·⋯⋯⋯⋯⋯⋯⋯·3术语和定义⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯···⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯·4符号和缩略语⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯。5用于交换的结构⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯·5.1命令响应对⋯⋯⋯⋯··⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯·5.2数据对象⋯⋯⋯⋯·⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯-⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯一5.3应用与数据的结构⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯·5.4安全体系结构⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯一6安全报文⋯··⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯--⋯⋯·⋯⋯⋯一6.1SM字段和SM数据对象⋯⋯⋯⋯·⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯‘6.2基本SM数据对象⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯-.6.3辅助的SM数据对象·⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯--⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯··6.4命令一响应对中SM的效果⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯---⋯⋯··7交换命令⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯··7.1选择···⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯·⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯-⋯⋯·⋯⋯’。7.2数据单元操作⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯·⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯-⋯⋯⋯⋯⋯7.3记录操作⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯‘‘7.4数据对象操作⋯⋯⋯·⋯··⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯---⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯‘‘7.5基本安全操作⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯--⋯-⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯’7.6传输处理⋯⋯⋯⋯⋯·⋯·⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯--⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯8与应用无关的卡服务⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯--8.1卡标识⋯⋯··⋯·⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯·⋯·⋯⋯·⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯’’8.2应用标识和选择⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯···⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯-⋯-8.3通过路径选择⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯··⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯··-8.4数据检索⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯·⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯-⋯⋯⋯⋯’’’8.5数据元检索⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯。‘8.6卡发起的字节串⋯⋯⋯··⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯-⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯‘‘附录A(资料性附录)对象标识符和标记分配方案示例⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯‘附录B(资料性附录)安全报文传输示例⋯⋯⋯·⋯-⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯’’附录C(资料性附录)GENERALAUTHENTICATE命令产生的AuTHENTIcATE功能的示例附录D(资料性附录)使用发行者标识号的应用标识符⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯··参考文献⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯·⋯--⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯·⋯⋯⋯‘ⅢⅣ,●●i0¨"毖嚣趵∞驼”弘弘们们妁匏的∞∞“盯盯盯∞儿他佃舭踮 www.bzfxw.comGB/T16649.4—2010/ISO/[EC7816-4:2005刖吾16649在总标题《识别卡集成电路卡》下目前由下述14个部分构成:——第1部分:带触点的卡物理特性;一第2部分:带触点的卡触点的尺寸和位置;第3部分:带触点的卡电信号和传输协议;第4部分:用于交换的结构、安全和命令;第5部分:应用标识符的国家编号体系和注册规程;一第6部分:行业间数据元;一一第7部分:用于结构化卡查询语言(SCQI,)的行业间命令;——第8部分:与安全相关的行业问命令;第9部分:用于卡管理的命令;第10部分:带触点的卡同步卡的电信号和复位应答;第11部分:通过生物识别方法的个人验证(制定中);一第12部分:带触点的卡USB电气接口和操作规程;——第13部分:在多应用环境中用于应用管理的命令(制定中);——第15部分:密码信息应用。本部分为GB/T16649的第4部分。本部分等同采用国际标准ISO/IEC7816—4:2005((识别卡集成电路卡第4部分:用于交换的结构、安全和命令》(英文版)。为便于使用,本部分作了下列编辑性修改:a)删除国际标准前言;b)将“本文件”改为“本部分”。本部分的附录A、附录B、附录C、附录D是资料性附录。本部分由中华人民共和国工业和信息化部提出。本部分由全国信息技术标准化技术委员会(SAC/TC28)归口。本部分起草单位:中国电子技术标准化研究所、北京握奇数据系统有限公司。本部分主要起草人:金倩、冯敬、耿力、袁理、王文峰、乔申杰。Ⅲ www.bzfxw.com标准分享网www.bzfxw.com免费下载GB/T16649.4—2010/ISO/IEC7816-4:2005引言16649是规定集成电路卡参数和交换中集成电路卡使用的系列国际标准。集成电路卡是用于信息交换(该信息交换由外界和卡上集成电路之间商定)的识别卡。作为信息交换的结果,卡传送信息(计算结果、存储的数据),和/或更改其内容(数据存储、结果记忆)。——有4个部分规定了带电触点的卡,其中有3部分还规定了电接口:OB/T16649.1规定了带触点的卡的物理特性;16649.2规定了触点的尺寸和位置;16649.3规定了异步卡的电接口和传输协议;16649.10规定了同步卡的电接口和复位应答。——所有其他部分均独立于物理接口技术。它们用于通过触点和/或射频访问的卡:16649.4规定了用于交换的组件、安全和命令;16649.5规定了应用提供者的注册;16649.6规定了用于交换的行业间数据元;16649.7规定了用于结构化卡查询语言的命令;16649.8规定了用于安全操作的命令;16649.9规定了用于卡管理的命令。Ⅳ www.bzfxw.comGB/T16649.4--2010/ISO/IEC7816-4:2005识别卡集成电路卡第4部分:用于交换的结构、安全和命令1范围16649的本部分规定了:——在接口处交换的命令一响应对的内容;——获取卡内数据元和数据对象的方法;——用于描述卡的操作特性的历史字节的结构和内容;——当处理命令时在接口处所看到的卡内应用和数据的结构;——访问卡内文件和数据的方法;——定义访问卡内文件和数据的权限的安全体系结构;——卡内识别和选择应用的方法和机制;——安全报文传输的方法;——访问卡采用的算法的方法。本部分不描述这些算法。本部分不涵盖卡内和/或外界的内部实现。本部分独立于物理接口技术。它适用于通过触点、近耦合和射频等方式访问的卡。2规范性引用文件下列文件中的条款通过GB/T16649的本部分的引用而成为本部分的条款。凡是注日期的引用文件,其随后所有的修改单(不包括勘误的内容)或修订版均不适用于本部分,然而,鼓励根据本部分达成协议的各方研究是否可使用这些文件的最新版本。凡是不注日期的引用文件,其最新版本适用于本部分。16649.3识别卡带触点的集成电路卡第3部分;电信号和传输协议(GB/T16649.32006,ISCI/IEC78163:1997,IDT)16649.6识别卡带触点的集成电路卡第6部分:行业间数据元(GB/T16649.6--2001,idtISO/iEC7816—6:1996)16263.1—2006信息技术ASN.1编码规则第1部分:基本编码规则(BER)、正则编码规则(CER)和非典型编码规则(DER)规范(IsO/IEc88251:2002,IDT)3术语和定义下列术语和定义适用于本部分。3.1访问规则accessrule包含针对一个操作的访问模式和操作前要满足的安全条件的数据元。3.2复位应答文件Answer-to-Resetfile表示卡操作特性的可选基本文件。 www.bzfxw.com标准分享网www.bzfxw.com免费下载GB/T16649.4—2010/ISO/IEC7816-4:20053.3应用application为满足特定功能所需的数据结构、数据元和程序模块。3.4应用DFapplicationDF卡上承载应用的结构。3.5应用标识符applicationidentifier标识应用的数据元(最多16字节)。3.6应用标签applicationlabel在人一机界面处使用的数据元。3.7应用提供者applicationprovider提供卡上应用的组成部分的实体。3.8应用模板applicationtemplate与应用相关的数据对象的集合,其中的数据对象包括一个应用标识符数据对象。3.9非对称加密技术asymmetriccryptographictechnique采用两种相关变换进行加密的技术,一种是公钥运算(由公共密钥定义),另一种是私钥运算(由私有密钥定义)。这两种变换具有以下属性,即私钥运算不能通过给定的公钥运算导出。3.10证书certificate由发行证书的认证中心使用其私钥对实体的公钥、身份信息以及其他相关信息进行签名,形成的不可伪造的数据。3.11命令响应对command-responsepair接口处两个报文的集合,一个命令APDU跟着一个相反方向上的响应APDU。3.12数据元dataelement在接口处所看到的信息项,可以是名称、逻辑内容描述、格式和编码。3.13数据对象dataobject在接口处所看到的信息,由tag宇段(必备)、长度字段(必备)和值字段(可选)串联组成。3.14数据单元dataunit在支持数据元的EF内能被明确引用的最小的位集合。3.15专用文件dedicatedfile包含文件控制信息和可分配的存储空间(可选)的结构。 www.bzfxw.comGB/T16649.4—2010/[SO/IEC7816-4:20053.16DF名称DFname唯一地标识卡内专用文件的数据元(最多16字节)。3.17数字签名digitalsignature附加于数据串的数据,或对数据串的加密变换,它能够验证该数据串的原始性和完整性,保护数据串不被伪造。3.18目录文件directoryfile可选的EF,包含卡支持的应用列表和可选相关数据元。3.19基本文件elementaryfile共用同一文件标识符和同一安全属性的数据单元或记录或数据对象的集合。3.20文件file卡上应用和(或)数据的结构,如处理命令时接口处所看到的。3.21文件标识符fileidentifier用于文件访问的数据元(2字节)。3.22头列表headerlist无定界的tag字段和长度字段对的串联。3.23识别卡identificationcard一种可识别其持卡人和发卡方的卡,卡上载有其预期应用和有关交易所要求输人的数据。3.24内部EFinternalEF用于存储由卡解释的数据的EF。3.25密钥key控制加密操作的符号序列(例如,在动态鉴别、签名制作、签名验证中的加密、解密、私密操作或公共操作)。3.26主文件masterfile唯一的DF,它代表卡上层次结构文件的根。3.27偏移offset在支持数据单元的EF中为顺序引用数据单元的编号,在记录中为顺序引用字节的编号。3.28父文件parentfile在层次结构文件中,一个给定文件的上层DF。3.29口令password应用可能需要的、用来鉴别卡的用户的数据。3 www.bzfxw.com标准分享网www.bzfxw.com免费下载GB/T16649.4—2010/ISO/IEC7816-4:20053.30路径path无定界的文件标识符的链接。3.31私钥privatekey一个实体使用的非对称密钥对中仅被该实体使用的密钥。3.32提供者provider具有或已经获得权力来创建卡中DF的权力机构。3.33公钥publickey一个实体使用的非对称密钥对中可以公开的密钥。3.34记录record在支持EF的记录中,可以被卡引用和处理的字节串。3.35记录标识符recordidentifier在支持EF的记录中,用于引用一个或多个记录的编号。3.36记录号recordnumber’在支持EF的记录中,唯一标识每个记录的顺序号。3.37注册的应用提供者标识符registeredapplicationprovideridentifier唯一标识一个应用提供者的数据元(5字节)。3.38保密密钥secretkey对称加密技术中仅供指定实体所用的密钥。3.39安全报文传输securemessaging用于加密保护(部分)命令响应对的一组方法。3.40安全属性securityattribute卡内各种资源(包括存储的数据和数据处理功能)的使用条件,表现为包含一条或若干条访问规则的数据元。3.41安全环境securityenvironment卡上应用所需的用于安全报文传输或安全操作的组件的集合。3.42对称加密技术symmetriccryptographictechnique发送方和接收方使用相同保密密钥进行数据变换的加密技术。在不掌握保密密钥的情况下,不可能推导出发送方或接收方的数据变换。4 www.bzfxw.comGB/T16649.4—2010/ISO/IEC7816-4:20053.43tag列表taglist无定界的tag字段的串联。3.44模板template构成结构化BER—TLV数据对象值字段的BER—TLv数据对象的集合。3.45工作EFworkingEF用于存储不被卡解释的数据的EF。4符号和缩略语应用标识符应用层协议数据单元访问规则引用抽象语法记法用于鉴别的控制引用模板复位应答ASN.1的基本编码规则用于密码校验和的控制引用模板类别字节控制引用模板用于保密性的控制引用模板专用文件目录用于数字签名的控制引用模板基本文件访问规则引用文件复位应答文件目录文件文件控制信息文件控制参数文件管理数据用于哈希编码的控制引用模板指令字节密钥协议控制引用模板用于编码编号Nc的长度字段生存期状态字节用于编码编号Ne的长度字段主文件命令数据字段中的字节数响应数据字段中期望的字节最大数响应数据字段中的字节数专用应用标识符扩展J,RT琢MwM衄一撇僦盯m嗽唧卧唧明阶眦阱Ⅱ一~~阿研~盯№~~一~m№№№眦 www.bzfxw.com标准分享网www.bzfxw.com免费下载GB/T16649.4--2010/ISO/IEC7816-4:2005P1P2RFURIDSCSCQLSESEIDbyteSMSWl一SW2(SWlSW2)TLV{T—LV)‘XX’5用于交换的结构参数字节(为了区分而插入的短划线无意义)保留供将来使用注册的应用提供者标识符安全条件结构化卡查询语言安全环境安全环境标识符字节安全报文传输状态字节(为了区分而插入的短划线无意义)字节SWl和SW2的串联的值(首字节为最高有效字节)tag、长度、值数据对象(为了区分而插人的短划线和花括号无意义)使用十六进制数字‘O’至‘9’和‘A’至‘F’的记法,等效于16进制的XX为了实现交换,本章定义了下列基本特征结构:1)命令一响应对;2)数据对象;3)应用和数据的结构;4)安全体系结构。5.1命令-响应对表1示出了一个命令响应对,即一个命令APDU跟随着一个相反方向上的响应APDU(见GB/T16649.3)。通过接El的命令一响应对不可以有交叉,也就是说响应APDU应在发起下一个命令一响应对之前接收到。表1命令一响应对字段描述字节数类别字节CLA1命令头指令字节INS1参数字节Pl—P22Lc字段Nc编码为0则不存在,Nc编码大于0则存在0、1或3命令数据字段Nc编码为0则不存在,Nc编码大于0则以Nc字符串的形式存在NcLe字段Ne编码为0则不存在,Ne编码大于0则存在0、1、2或3响应数据字段Nr编码为0则不存在,Nr编码大于0则以Nc字符串的形式存在Nr(最多Ne)响应尾标状态字节SWl一SW22在所有包含Lc和Le字段的命令响应对中,短长度字段和扩展长度字段不应结合在一起:或者是均为短长度字段,或者是均为扩展长度字段。如果卡明确表明具有处理历史字节(见8.1.1)中的或EF.ATR(见8.2.1.1)中的“扩展Lc和Le字段”(见表88,第3软件功能表)的能力,则卡处理短长度字段和扩展长度字段;否则卡仅处理短长度字段。Nc指示命令数据字段中的字节数。Lc字段编码Nc。——如果Lc字段不存在,则Nc为零。——由1个字节组成的短Lc字段不能置为‘00’。6 www.bzfxw.comGB/T16649.4--2010/ISO/IEC7816-4:2005·从‘01’到‘FF’,字节编码Nc从1到255。——由3个字节组成的扩展Lc字段:1个置为‘00’的字节后随2个置为非‘00007的字节。·从‘0001’到‘FFFF’,2个字节编码Nc从1到65535。Ne指示期望的响应数据字段中的最大字节数。Le字段编码Ne。——如果Le字段不存在,则Ne为零。——由1个字节组成的短Le字段可以为任何值。·从‘01’到‘FF’,字节编码Ne从1到255。·如果字节被置成‘oo’,则Ne为256。——如果Lc字段不存在,则由3个字节(1个置为‘00’的字节后随2个置为任意值的字节)组成的扩展Le字段,如果扩展Lc字段存在,则由2个字节(可以是任何值)组成的扩展Le字段:·从‘0001’到‘FFFF’,2个字节编码Ne从l到65535。·如果2个字节被置成‘0000’,则Ne为65536。Nr指示响应数据字段中的字节数。Nr应小于或等于Ne。因此在所有的命令一响应对中,Le字段不存在是未接收到响应数据字段的标准方式。如果Le字段仅包含置为‘00’的字节,则Ne为最大值,即对短Le字段是在256以内,对扩展Le字段为65536,应返回所有可用字节。如果处理中断,则卡将或许不响应;如果出现响应APDU,那么响应数据字段应不存在,并且SWl一SW2应指出一个差错。P1P2指出处理命令的控制和选项。参数字节置为‘00’通常不提供进一步的限定。对参数字节的编码不存在其他通用约定。用于编码类别字节CLA(见5.1.1)、指令字节INS(见5.1.2)和状态字节SWl一SW2(见5.1.3)的通用约定在下面规定。在这些字节中,除非另有规定,RFU位应置为0。5.1.1类别字节CLA指示命令的类别。根据GB/T16649.3,值‘FF’是无效的。CLA的位8区分是行业间类别还是专用类别。位8置为0表示是行业间类别。值000xxxxx和01XXXXXX在下面规定。值001XXXXX由ISO/IECJTCl/SCl7保留供将来使用。——表2规定了000xxxxx为首要行业问值。·位8、7、6置为000。·位5控制命令链(见5.1.1.1)。·位4和3指明安全报文传输(见第6章)。·位2和1编码从0到3的逻辑通道号(见5.1.1.2)。表2CLA首要行业间值b8b7b6b5b4b3b2bl含义OX命令链控制(见5.1.1.1)0o——命令是命令链的最后一条或命令链仅此一条命令01——命令不是命令链的最后一条0O0X安全报文传输指示0——无SM或无指示O01——专用SM格式O010——sM根据6,根据6.2.3.1命令头不处理01——SM根据6,根据6.2.3.1命令头鉴别O0从0到3的逻辑通遭号(见5.1.1.2) www.bzfxw.com标准分享网www.bzfxw.com免费下载GB/T16649.4—2010/ISO/IEC7816-4:2005——表3规定了01xxxxxx为更进一步的行业间值。·位8和7置为01。·位6指明安全报文传输(见第6章)。·位5控制命令链(见5.1.1.1)。·位4到1编码从0到15,该值加上4即为从4到19的逻辑通道号(见5.1.1.2)。表3CLA更进一步行业间值b8b7b6b5b4b3b2bl含义01x安全报文传输指示010——无SM或无指示01——sM根据6,根据6.2.3.1命令头不处理O1X命令链控制(见5.1.1.1)01O——命令是命令链的最后一条或命令链仅此一条命令O1——命令不是命令链的最后一条01从4到19的逻辑通道号(见5.1.1.2)除值‘FF’是无效的外,位8置为1表明是专用类别。应用定义其他位。5.1.1.1命令链本条规定了在行业间类别中连续的命令一响应对可以被链接在一起的机制。该机制可以在执行多步处理时使用,例如,对单一命令传输的数据串过长时。如果卡支持该机制,则应在历史字节(见8.1.1)或EF.ATR(见8.2.1.1)中指明该机制(见表88,第3软件功能表)。本部分仅规定在发起一条不属于命令链一部分的命令一响应对前命令链即被终止的情况下的卡的行为。否则卡的行为没有规定。对于行业问类别中的命令链,当其他7位为常数时,应使用CLA的位5。——如果位5被置为0,则命令是命令链的最后一条或命令链仅此一条命令。——如果位5被置为1,则命令不是命令链的最后一条。响应不是命令链最后一条的命令,SWl—SW2被置为‘9000’意味着处理已经完成,警告指示被禁止(见5.1.3),而且下列特定错误情形将产生:——如果SWl—SW2被置为‘6883’,则期望命令链的最后一条。——如果SWl—SW2被置为‘6884’,则不支持命令链。5.1.1.2逻辑通道本条规定了在行业间类别中命令一响应对能查阅逻辑通道的机制。如果卡支持该机制,则应在历史字节(见8.1.1)或EF.ATR(见8.2.1.1)中指明可用逻辑通道数的最大值(见表88,第3软件功能表)。——如果指明的通道数小于或等于4,则仅用表2。——如果指明的通道数大于或等于5,则另外还用到表3。为查阅行业间类别中的逻辑通道,规定了下列规则:——cLA编码命令一响应对的通道号;——基本通道始终可用,即它不能被关闭。它的通道号为0;——不支持该机制(缺省值)的卡仅使用基本通道;——在CLA编码尚未使用的通道号的情况下,可以通过SELECT命令来开放任何通道,或通过MANAGECHANNEI。命令的开放功能来开放任何其他通道;——可以通过MANAGECHANNEL命令的关闭功能来关闭任何通道,在关闭后,可以通过重用8 GB/T16649.4—2010/ISO/IEC7816-4:2005使通道变得可用;——在同一时刻,仅有1个通道可用。逻辑通道的使用并不消除对通过接口的交叉命令一响应对的禁令,即,响应APDU应该在发起另一个命令一响应对之前接收到(见5.1);——如果文件描述符字节(见表14)没有明确拒绝共享,则对相同的结构(见6.3)即,对同一DF,也可能是同一应用DF,也可能是同一EF,可以有多个通道被打开。每一个逻辑通道都有它自己的安全状态(见5.4)。共享一个安全状态的方法不在本部分的范围之内。5.1.2指令字节INS指明要操作的命令。根据GB/T16649.3的规定,值‘6X’和‘9X’是无效的。表4列出了目前已出版的GB/T16649中规定的所有命令。——表4.1以字母表顺序列出了命令名称。——表4.2以数字顺序列出了命令名称。表4.1以字母表顺序排列的命令命令名称INS见ACTIVATEFll,E‘44第9部分APPENDRECORD’E2’737CHANGEREFERENCEDATA’24’75.7CREATEFILE’E0’第9部分DEACTIVATEFILE704’第9部分DELETEFILE7E4第9部分DISABLEVERIFICATIONREQUIREMENT’26‘7.59ENABLEVERIFICATIONREQUIREMENT’28’7.58ENVELOPE’C27.7C376.2ERASEBINARY’0E’,‘OF7.2.7ERASERECORD(S)70C’7.3.8EXTERNAL(/MUTUAL)AUTHENTICATE’827.5.4GENERALAUTHENTICATE’86’.’8775GENERATEASYMMETRICKEYPAIR’46’第8部分GETCHALI,ENGE784’7.5.3GETDATA‘CA7.’CB7.4.2GETRESPONSE’CO7.6.1INTERNALAUTHENTICATE788’7.5.2MANAGECHANNEL‘70712MANAGESECURITYENVIRONMENT’22’7511PERFORMSCQL0PERATION’10’第7部分PERFORMSECURITYOPERATION72A第8部分PERFORMTRANSACTIONoPERATION’12’第7部分PERFORMUSEROPERATION714’第7部分PUTDATA’DA’.7DB’7.4.3READBINARY’130’.’B1’723READRECoRD(S)’B2’.’B3’73RESETRETRYCOUNTER’2C’7.5.10SEARCHBINARY’A07.’A1’7.2.6SEARCHRECoRD‘A2’7.3.7SELECT‘A4’7.1.1 标准分享网www.bzfxw.com免费下载GB/T16649.4--2010/ISO/IEC7816-4:2005表4.1(续)命令名称INS见TERMlNATECARDUSAGE’FE’第9部分TERMlNATEDF’E6‘第9部分TERMINATEEF7E8第9部分UPDATEBINARY7D6‘.‘D7’7.2.5UPDATERECORD’DC’,’DD’7.3.5VERIFY720‘.7217.5.6WRITEBINARY’DO7.7D1‘7.2.4WRITERECORD‘D2’7.3.4——在行业间类别中,所有不在GB/T16649中定义的有效INS代码由ISO/1ECJTCl/SCl7保留供将来使用。表4.2以数字顺序排列的命令INS命令名称见‘04’DEACTIVATEFILE第9部分’0C’ERASERECORD(S)7.3.8’0E7.’OF’ERASEBINARY72.7710’PERFoRMSCQLOPERATION第7部分712’PERFORMTRANSACTIONOPERATION第7部分714PERFORMUSEROPERATl0N第7部分720’,’21’VERIFY7.56’22MANAGESECURITYENVIR()NMENT7.5.11’24CHANGEREFERENCEDATA7.5.7’26DISABLEVERIFICATIONREQUIREMENT7.5.9’28’ENABLEVERIFICATl0NREQUIREMENT7.5.872A’PERFORMSECURITYOPERATION第8部分’2CRESETRETRYCOUNTER7.5.10744ACTIVATEFILE第9部分’46’GENERATEASYMMETRICKEYPAIR第8部分’70MANAGECHANNEI,7.1.2’82EXTERNAL(/MUTUAL)AUTHENTICATE7.5.4’84GETCHALLENGE75.3’86’.’87’GENERALAUTHENTICATE75.5788’INTERNALAUTHENTlCATE7.5.2’A07.’A1SEARCHBINARY7.2.6‘A2’SEARCHRECORD7.3.7’A4SELECT7.1.1’Bo’.781’READBINARY72.3’B2’,‘B3’READRECORD(S)73.3‘CO’GETRESPONSE7.6.1"C2‘.7C3‘ENVELoPE7.6.2’CA’.7CB’GETDATA7.427Do7.’DlWRITEBINARY7.2.6‘D2’WRITERECORD7.3.4’D6’,’D7’UPDATEBINARY7.2.5】0 表4.2(续)GB/T16649.4—2010/ISO/IEC7816-4:2005INS命令名称见’DA’.’DB’PUTDATA7.4.3’DC7.7DDUPDATERECORD7.3.57EO’CREATEFILE第9部分‘E2’APPENDRD00RD7.3.6’E4’DELETEFILE第9部分‘E6TERMINATEDF第9部分‘E8TERMINATEEF第9部分7FE’TERMINATECARDUSAGE第9部分——在行业间类别中,所有不在GB/T16649中定义的有效INS代码由ISO/IECJTCl/SCl7保留供将来使用。GB/T16649规定了这些行业间类别的命令的使用。——本部分(见第7章)规定了用于交换的命令。——GB/T16649.7规定了用于结构化卡查询语言(SCQL)的命令。——GB/T16649.8规定了用于安全操作的命令。——GB/T16649.9规定了用于卡管理的命令。在行业问类别中,INS的位1指明数据字段格式,如下:——如果位1置为0(偶数INS代码),则不提供指示。——如果位1置为1(奇数INS代码),则应用如下的BER—TLV编码(见5.2.2):·在SWl不置为‘61’的非链接命令中,如果有数据字段,则应该按BER—TLV编码;·命令链和(或)SWl置为‘61’的使用允许对单命令来说太长的数据串的传输。这样的处理会把数据字段中的数据对象分割开来并以一定的顺序在一个方向上连续地发送,即当发送时相反方向上没有数据字段。当链接命令和(或)使用SWl置为‘61’时,所有相同方向和相同顺序的连续数据字段的串联应以BER-TLV编码。5.1.3状态字节SWl一SW2指示了处理状态。根据GB/T16649.3,所有不同于‘6XXX’和‘9XXX’的值都是无效的,此外,值‘60XX’也是无效的。值‘61XX’、‘62XX’、‘63XX’、‘64XX’、‘65XX’、‘66XX’、‘68Xx’、‘69XX’、‘6AXX’、‘6CXX’是行业间的。根据GB/T16649.3,除了‘6700’、‘6800’、‘6D00’、‘6E00’、‘6F00’和‘9000’是行业间的外,‘67XX’、‘6BXX’、‘6DXX’、‘6EXX’‘6FXX’和‘9XXX’都是私有的。图1示出了用于SWlSW2的值‘9000’和‘61XX’到‘6FXX’的结构化图解。处理完成处理失败正常处理警告处理执行出错校验出错9000’和‘61XX’‘62XX’和‘63XX’‘64XX’~‘66xx’‘67XX’~‘6FXX图1SWl-SW2值的结构化图解表5列出了所有SWl—SW2行业间值以及它们通常的含义。不在GB/T16649中定义的SWlSW2行业间值由ISO/IECJTCl/SCl7保留供将来使用。 标准分享网www.bzfxw.com免费下载GB/T16649.4—2010/ISO/IEC7816-4二2005表5SWl一SW2行业间值的通常含义SWl一SW2含义‘9000’无进一步限定正常处理‘61xx,Sw2编码表示仍然可以获取的数据字节数(见下面文本)‘62xx’非易失存储器状态无变化(在sw2中进一步的限定)警告处理‘63xx’非易失存储器状态变化(在sw2中进一步的限定)‘64xx’非易失存储器状态无变化(在sw2中进一步的限定)执行出错‘65XX’非易失存储器状态变化(在sw2中进一步的限定)‘66XX’安全相关的发布‘6700’错误的长度;无进一步提示‘68XX’CLA中的功能不被支持(在SW2中进一步的限定)‘69xx’不允许的命令(在SW2中进一步的限定)‘6AXX’错误的参数P1P2(在SW2中进一步的限定)校验出错‘6Boo’错误的参数P卜P2‘6CXX’错误的Le字段;SW2编码准确的有效数据字节数(见下面的文本)‘6DOo’指令代码不被支持或无效‘6E00’类别不被支持‘6F00’没有精确的诊断如果处理失败返回SWl为‘64’至‘6F’,则没有响应数据字段。如果SWl置为‘63’或‘65’,则表明非易失性存储器状态发生改变。如果SWl置为除了‘63’和‘65’之外的‘6X’值,则表明非易失性存储器状态未发生改变。在对非链(见5.1.1.1)中结尾命令的响应中,禁止行业间警告提示(见GB/T16649.3),即SWl不能置为‘62’或‘63’。两种SWl行业间值不依赖于传输协议:——如果SWl置为‘61’,则处理完成,在发起其他命令之前,可以先调用与之有相同cI。A且SW2(数据字节数仍然有效)作为短Le字段的GETRESPONSE命令。——如果SWl置为‘6C’,则处理失败,在发起其他命令之前,可以重新调用原有命令且以SW2(确切的有效字节数)为短Le字段。表6列出了GB/T16649中使用的所有特定行业间警告和错误情形。表6特定行业间警告和错误情形SWlSW2含义‘62’‘00’没有信息被给出(警告)‘02’到‘08’由卡触发(见8.61)‘81’返回数据的一部分,数据可能被损坏‘82’读出Ne字节之前文件或记录已结束‘83’选择的文件无效‘84’FCI未按照5.3.3格式化‘85’选择的文件为终止状态‘86’没有来自卡传感器的有效数据‘63’‘00’没有信息被给出(警告)‘81’文件被上一次写入填满‘CX’通过‘x’(值从。至15)提供的计数器(JE确的含义依赖于命令) 表6(续)GB/T16649.4—2010/ISO/IEC7816-4:2005SWlSW2含义‘64’‘00’运行出错(错误)‘01’卡需要返回数据‘02’至‘80’由卡控制触发(见86.1)‘65+‘oo’没有信息被给出(错误)‘81’存储器故障‘68+‘oo’没有信息被给出(错误)‘8l’逻辑通道不被支持‘82’安全报文不被支持‘83’无命令链结束‘84’命令链接不被支持‘69‘‘oo’没有信息被给出(错误)‘81’命令与文件结构不兼容‘82’安全状态不被满足‘83’鉴别方法被阻塞‘84’引用的数据无效‘85’使用的条件不被满足‘86’命令不被允许(无当前EF)‘87’期望的SM数据对象失踪‘88’SM数据对象不正确‘6A’‘oo’没有信息被给出(错误)‘80’在数据字段中的不正确参数‘8】,功能不被支持‘82’文件或应用未找到‘83’记录未找到‘84’尤足够的文件存储空间‘85’Nc与TLV结构不一致‘86’不正确的参数P1P2‘87’Nc与P1P2不一致‘88’引用的数据未找到(正确的含义依赖于命令)‘99’文件已存在‘8A’DF名已存在其他所有SW2的值均被ISO/IECJTCl/SCl7定义为RFU。5.2数据对象如果以TLV方式编码,那么任何数据字段或数据字段的串联就是一个数据对象的序列。本条定义了两类数据对象:SIMPI。E—TI。V数据对象和BER—TLV数据对象。5.2.1SIMPLE—TLV数据对象每一个SIMPLE—TI。V数据对象将由2~3个连续字段构成:一个必备的lag字段、一个必备的长度字段和一个条件可选值字段。一个记录(见7.3.1)可能是一个SIMPI。E—TI,V数据对象。——tag字段由一个字节编码表示tag号从l到254。‘oo’和‘FF’为无效值。如果一个记录是一个SIMPLE—TI,V数据对象,则其tag可用作记录标识符。]3 标准分享网www.bzfxw.com免费下载GB/T16649.4—2010/ISO/IEC7816-4:2005——长度字段由1到3个连续字节构成。·如果第1个字节不是置为‘FF’,则长度字段包含~个字节编码表示一个从0到254的数N。·如果第1个字节置为‘FF’,则长度字段含3个字节,随后的2个字节编码表示从O到65535的数N。——如果N为0,则没有值字段,即数据对象为空,否则(N>o),值字段包含N个连续字节。5.2.2BER-TLV数据对象每一个BERTI。V数据对象由2~3个连续字段构成(见GB/T16263.1中的ASN.1基本编码原则):一个必备的tag字段、一个必备的长度字段和一个条件可选值字段。一tag字段由1个或者多个连续字节构成。它指明了类型、编码并编码tag数。tag字段的第一个字节不能为‘00’(见GB/T16263.1)。——长度字段由1个或者多个连续字节构成。它是长度值的编码,即数N。——如果N为0,则无值字段,即数据对象为空,否则(N>o),值字段包含N个连续字节。5.2.2.1BER-TLVtag字段GB/T16649支持的tag字段为1、2,或3字节长,更长的tag字段为RFU。tag字段头字节的b8和b7表明对象类型:——b8b7—00:数据对象为通用类型;——b8b7—01:数据对象为应用类型;——b8b7—10:数据对象为特定上下文类型;——b8b7—11:数据对象为私有类型。tag字段头字节的b6表明编码方式:——b6=0:数据对象简单编码,即值字段不是以BER—TI。V方式编码;——b6一l:数据对象结构化编码,即值字段以BERTLV方式编码。如果tag字段头字节的b5~bl不是全置为1,则其编码表示数从0至30且表明tag由单个字节构成。否则(b5~bl全置为1),tag字段是由一个或多个后续字节构成。——每个后续字节的b8应置为l,除非是最后一个字节;——第1个后续字节的b7~bl位不能全部置为0;——第1个后续字节的b7~bl位,以及随后的每个后续字节(包括最后一个字节)的b7~b1位共同编码构成tag号。表7描述了tag字段的第1个字节,其中‘00’为无效值。表7BER-TLVtag字段的第一个字节b8b7b6b5b4b3b2bl含义0通用类别,GB/T16649未定义01应用类别,由本规范定义l0特定上下文类型,GB/T16649定义1私有类型,GB/T16649未定义o简单编码1结构化编码不全置为1Tag号由0至30(短tag字段即1个字节)1lTag号大于30(长tag字段即2或3个字节)以BER—TLV方式编码的数据字段中,置为‘00’的字段可能出现在数据对象的前部、之间或者后部(例如,由于对EF支持数据单元进行数据对象的删除或修改)。该填充方式在GB/T16649中称作模板且不允许出现于数据对象的值字段中。无论是历史字节(见8.1.1),或者EF.ATR(见8.2.1.1),或文件控制信息(见表12中tag‘82’),14 GB/T16649.4--2010/ISO/IEC7816-4:2005数据编码字节(见表87)都表明了值‘FF’是:一对私有类的长tag字段的第一个字节有效,结构化编码(外在特征),或者一对tag字段(默认值)的第1个字节无效,即在同样目的(填充方式)和相同情形下作为值‘oo’。在2或多个字节的tag字段中,第2个字节不能为‘oo’至‘1E’以及‘80’。在2字节tag字段中,第2个字节的b8b7置为01,编码表示一个大于30的数,第2个字节从‘1F’至‘7F’,对应tag号从31到127;在3字节tag字段中,第2个字节b8h7置为ll且剩余位不全置为0,第3个字节b8h7置为01且剩余位任意,则第2个字节从‘81’至‘FF’,第3个字节从‘00’至‘7F’,对应tag号从128到16383。5。2.2.2BER-TLV长度字段在短格式中,长度字段由单个字节构成且该字节的b8置为0,b7~bl表示值字段的字节数。该字节因此可编码为从0到127的数。注:在BERTLV长度字段中任何从1到127的数的编码方式与Lc和Le字段相同。但O,128及大于t28的数的编码方式有区别,具体见7.4.2中GETDATA命令数据对象编码。在长格式中,长度字段由2个或更多字节构成。首字节的b8置为1,b7~bl不尽相同,其编码表示后续字节的长度字段。这些后续字节编码表示值字段的字节数。16649不采用ASN.1基本编码规则中定义的“可变长度”。16649支持长度字段由1,2,直到5个字节构成(见表8),在GB/T16649中,值‘80’及‘85’至‘FF’不允许出现在长度字段的第一个字节。表816649中的BER-TLV长度字段1“byte2“byte3“byte4‘“byte5“byteNlbyte700’~77F0~1272bytes’81‘’00‘~7FF‘0~2553bytes782’’00007~‘FFFF’0~655354bytes783’OOOOOo7~’FFFFFF’O~167772155bytes’84‘’000000007~7FFFFFFFF0~42949672955.2.3数据字段、值字段、数据对象和数据元所有的命令数据字段或响应数据字段均可按照BERTLV方式编码,例如,在一个命令响应对中,cI,A指示为安全报文时(见6)或INS的b1位设置为1(INS奇数编码,见5.1.2)时,数据字段按照BERTI,V方式编码。~任何BER—TI。V数据对象表示为{T—I,V),由一个tag字段紧随一个长度字段构成。根据长度字段表示的数字是否为0,决定值字段的有无。任何结构化BER—TI,V数据对象表示为{T—I。{T1L1一V1)...{TnI。n—Vn)},由一个tag字段紧随一个长度字段构成。如果长度字段表示的数字不为0,则该结构化数据对象的值字段将由一个或多个BER—TLV数据对象构成(例如模板),每一个BER—TLV数据对象包含tag字段、长度字段和值字段(若长度字段编码不为0)。某些数据字段(例如,处理数据单元的命令,见7.2),SIMPI。ETLV数据对象的值字段和某些原始BERTLV数据对象的值字段由符合命令规范或数据对象标记的数据元组成。某些其他数据字段(例如,处理记录的命令,见7.3),某些原始BERTLV数据对象的值字段由SIMPLE-TLV数据对象组成。还有某些数据字段(例如,处理数据对象的命令,见7.4),结构化BERTLV数据对象的值字段,即模板,由BERTLV数据对象组成。15 标准分享网www.bzfxw.com免费下载GB/T16649.4—2010/ISO/IEC7816-4:20055.2.4数据元识别数据元的识别遵照以下原则:1)如果表示数据元的bit数不是8的倍数,那么应在数据元对应上下文中规定如何映射为字节或字节串。除另有规定,最后一个字节从bit1开始的相应位都应置为1;2)在卡与接口设备之间,数据元一般出现于BER-TLV数据对象的值字段中;3)为了达到命令交换中取数据和引用的目的,数据元应与BER—TI。V数据对象tag关联且可被嵌入在该数据对象中;4)数据元可被相关联的BERTLVtag直接引用,也可以被属于同一上下文中的其他数据元关联;5)一个或多个command—toperform数据对象可间接引用数据元;6)通用类(第1个字节为‘01’至‘3F’)数据对象具有其通用含义;7)所有应用类(第1个字节为‘40’至‘7F’)数据对象除特殊规定外均为行业间的,GB/T16649本部分和其他部分分配应用类的tag。不在GB/T16649中定义的所有应用类tag由ISO/IECJTC1/SCl7保留;8)本部分定义了部分行业间数据元,此外,随着应用的需要,还会有更多的行业间数据元被定义,16649.6列出了详尽的已经在GB/T16649中被规定的行业间数据元列表;9)卡中可能重复出现相同的行业间数据对象;10)在命令和响应数据字段中,除了FCI(见5.3.3)和安全报文传输(见第6章),所有特定上下文类数据对象(首字节从‘80’到‘BF’)均应在行业间模板中嵌套;11)附录A中列出了后续章节规定的数据字段中行业间数据对象的tag分配方案。当需要时,这些tag分配方案使用表9列出的tag分配授权的行业间数据对象。表9tag分配授权的行业间数据对象tag值‘06’对象标识符(编码说明见GB/T16263.1.例子见附录A)‘41’国家代码(ISO316610j中规定的编码)和任选的国家数据‘42’发行者标识号(编码和注册在GB/T15694.1中规定)和任选的发行者数据‘4F’应用标识符(AID,编码规定见8.2.1.2)5.2.4.1一致性的tag分配方案tag分配方案使用行业间数据对象和其他的数据对象。这些其他的数据对象在tag为‘70’至‘777(‘73’除外,见5.2.4.3)行业间模板内实现嵌套。此间除tag‘41’,‘42’和‘4F’被分配授权外,其他应用类别tag的意义在GB/T16649中未作定义。特殊上下文类(首字节从‘80’到‘BF’)行业间模板tag不允许为‘65’(持卡人相关数据)、‘66’(卡数据)、‘67’(授权数据)和‘6E’(应用相关数据)。为保证tag位分配方案一致和对应授权的合理,可以使用tag为‘78’的行业间模板,该模板应包含一个表9中所示的某种数据对象用于确定tag的分配授权。——如果初始数据串(见8.1.2)或EF.ATR(见8.2.1.1)中包含tag‘78’,则该授权对整个卡有效;——如果tag‘78’在DF管理数据(见5.3.3)中,则该授权对DF有效。5.2.4.2共存的tag分配方案此类tag分配方案可能用到GB/T16649中未定义的带有解释的tag。为保证共存的tag分配方案一致和对应授权的合理,可以使用tag为‘79’的行业间模板,该模板将包含一个表9中所示的某种数据对象。16 GB/T16649.4—2010/ISO/IEC7816-4:2005——如果一个授权对整个卡有效,则初始数据串(见8.1.2)或EF.ATR(见8.2.1.1)中包含tag‘79’:——如果一个授权对DF有效,则‘79’在DF管理数据(见5.3.3)中出现。该方案中,所有的行业间数据对象在tag为‘7E’的行业间模板内实现嵌套。如同tag‘62’、‘64’、‘6F’(FCP,FMD和FCI模板,见5.3.3)和‘7D’(sM模板,见6)一样,tag‘79’和‘7E’不再用作其他。5.2.4.3独立的tag分配方案这些tag的分配办法,可能采用另一种不同于GB/T16649的解释,但它并不符合5.2.4.2,这种tag分配方法不能用于交换,也与本文档不符。tag‘53’用以表示使用行业间数据对象的任意数据元,而‘73’实现私有数据对象在任意模板的嵌套使用,从而保证私有数据元和数据对象的使用仍符合本文档。5.3应用与数据的结构本条规定当处理交换用的行业间命令时在接口处所看到的关于数据和应用结构的信息。超出本条概述之外的数据和结构信息的实际存储位置不在GB/T16649范围内。本部分支持下列两种文件:专用文件(DF)和基本文件(EF)。——DF用于支持应用、文件夹和数据对象存储。一个应用DF对应一种应用。DF可以作为其他文件的父文件。这些文件被称为该DF的直属文件。——EF用于存放数据。EF文件不能作为其他文件的父文件。EF分为两类:·内部EF,用于存储由卡所解释的数据,即,为了管理和控制目的由卡所分析和使用的数据。·工作的EF,用于存储不由卡所解释的数据,即,仅仅由外界待使用的数据。本部分提供两种逻辑组织方式:——图2例示了包含对应安全架构的DF层次结构(见5.4)。在这种卡的组织结构中,处于根部的DF称之为主文件(MF)。所有DF可以是应用DF,也可以有其DF子结构。图2DF层次结构例示图——图3例示了平行结构的应用DF,且接口处没有MF,也没有任何可见DF子结构。该组织结构支持卡内的独立应用,在这些独立应用中应用DF可以包含其DF层次和对应安全结构。圈圈图3独立应用DF例示图5.3.1结构选择5.3.1.1结构选择方法选择了一个结构,则可以访问其数据,如果是DF结构,则可以访问其子结构。结构选择可以是隐式实现,即,复位和可能的协议和参数的选择后自动进行(见GB/T16649.3)。如果一个结构不能被隐式选择,则应进行显式选择,如利用以下4种方式之一。通过DF名称选择——任何DF都可以通过按1至16个字节编码的DF名称来引用。任何应用标识符(AID.见8.2.12)均可作为DF名称。为了通过DF名称进行无二义性的选择,例如通过应用标识符AID选择,每个DF名称应在给定的卡内是唯一的。 标准分享网www.bzfxw.com免费下载GB/T16649.4—2010/ISO/IEC7816-4:2005通过文件标识符选择——任何文件都可以通过按2字节编码的文件标识符来引用。如果MF通过文件标识符来引用,应使用‘3F00’(保留值)。值‘FFFF’被保留供将来使用。值‘3FFF’被保留(见本条下文和7.4.1)。值‘0000’被保留(见7.2.2和7.4.1)。为了通过文件标识符来无二义性地选择任何文件,在给定DF下的所有直接EF和DF都应具有不同的文件标识符。通过路径选择——任何文件都可以通过路径来引用(文件标识符的串联)。该路径以MF或当前DF的标识符开始,并且以文件自身的标识符结束。在这两个标识符之间,路径由连续父DF(如果有)的标识符组成。文件标识符的次序总是在父级至子级的方向上。如果当前DF的标识符未知,值‘3FFF’(保留值)可以用于路径的开始处。值‘3F002F00’和‘3F002F01’被保留(见8.2.1.1)。路径允许从MF或当前DF中无二义性地选择任何文件(见8.3)。通过短EF标识符选择——任何EF都可以通过值在从1至30范围内的5位编码的短EF标识符来引用。用作短EF标识符的值0(即二进制的00000)引用了当前选择的EF,在MF级,值30(即二进制的11110)被保留(见8.2.1.1)。短EF标识符不能用在路径中或不能作为文件标识符(例如,在SELECT命令中)。如果支持,可以按短EF标识符进行选择:如果第一个软件函数表(见表86)于历史字节(见8.1.1)或EF.ATR(见8.2.1.1)中出现,则可在卡级有效;一如果短EF标识符(tag‘88’,见表12)于EF的控制参数(见5.3.3)中出现,则在EF级有效。5.3.1.2文件引用数据元引用tag‘51’,表示行业问数据元为文件,该文件可以为任意长度。⋯空数据对象引用MF;——如果长度为1,该数据元b8至b4不全相等,且b3至b1置为000,b8至b4编码表示一个从1至30的数,则其为一个短EF标识符;如果长度为2,则该数据元为文件标识符;一如果长度大于2,则该数据元为一条路径:·如果长度为偶数且头两个字节置为‘3F00’,则该路径为绝对路径。该数据元是由至少两个以MF标识符开始的文件标识符串联构成;·如果长度为偶数且头两个字节不是置为‘3F00’,则该路径为相对路径。该数据元是由至少两个以当前DF标识符开始的文件标识符串联构成;·如果长度为奇数,则该路径是受限制的。该数据元可以是无‘3F00’的绝对路径,也可以是没有当前DF标识符的相对路径,跟随的一个字节被用于一条或多条SEI,ECT命令(见7.1.1和8.3)中的Pl。表10示出了文件引用数据对象。表10文件引用数据对象tag长度值0空数据对象引用MF1短文件标识符(b8至b4编码表示一个从1至30的数;b3至b1置为000)2文件标识符‘51’偶数,>2绝对路径(头两个字节置为‘3F00’)相对路径(头两个字节不置为t3F00,)‘奇数,>2受限制的(最后一个字节将在一条或多条SELECT命令中用作P1)5.3.2数据引用方法在DF中,数据可能引用为数据对象(见5.2)。在接口处DF可被视作一个能被数据处理命令处理18 GB/T16649.4--2010/ISO/IEC7816-4:2005的数据对象集合(见7.4)。在EF中,数据可能引用为数据单元(见7.2.1)、记录(见7.3.1)或数据对象(见5.2)。数据引用方式依赖于EF。定义了以下3种EF结构。一——透明结构一在接口处EF可被看作一数据单元(见7.2)序列,该序列通过数据单元操作命令访问。数据单元大小与EF相关。——记录结构一在接口处EF可被看作一可独立标识的记录序列,该序列通过处理记录的命令来访问(见7.3)。记录编号方法与EF相关。为按记录构成的EF定义了下列两种属性。·记录的长度:固定的或可变的。·记录的组织结构:按顺序(线性结构)或者按环形(循环结构)。——TLv结构一在接口处EF可看作一个数据对象集合,该集合通过用于处理数据对象的命令来访问(见7.4)。这些在EF中的数据对象是SIMPLETLV或BER—TLv的则与EF相关。为引用EF数据,卡必须至少支持图4中5种结构中的一种。1)1)透明结构;2)线性定长记录结构;3)线性变长记录结构;4)循环定长记录结构(箭头引用最近写入的记录);5)TI。V结构。图4EF结构5.3.3文件控制信息FCI根据定义,文件控制信息(FCl)是可用于响应SELECT命令(见7.1.1)的数据字节串。对于任何结构,例如任何DF或任何EF,文件控制信息都可以呈现。一如果第一个字节的值字段为‘oO’至‘BF’,则该字节串为BERTLV编码。ISO/IECJTCl/SCl7保留所有的未在本文档中定义的‘oo’至‘BF’之间的值用于将来使用;——如果第1个字节的值字段为‘CO’至‘FF’,则该字节串未按本文档编码。表11示出了3种行业间模板用来嵌套文件控制信息BERTLV数据对象。FcP模板是文件控制参数(FCP)的集合,即,在表12中列出的和下面定义的逻辑属性、结构属性和安全属性。在FCP模板中,特定上下文类(fi-字节为‘80’至‘BF’)由文件控制参数保留,tag‘85’和‘A5’引用任意数据。FMD模板是文件管理数据(FMD)的集合,即行业间数据对象(例如,如8.2.1.2中定义的应用标识符、8.2.1.4中定义的应用标号和GB/T16649.6中定义的应用有效日期,还可能是嵌套在如8.2.1.3中定义的应用模板中)。在FMD模板中,tag‘53’和‘73’引用任意数据。——FcI模板是文件控制参数和文件管理数据的集合。表11与FCI相关的行业间模板tag值‘62’文件控制参数(FCP模板)‘64’文件管理数据(FMD模板)‘6F’文件控制参数和文件管理数据(FCI模板) 标准分享网www.bzfxw.com免费下载GB/T16649.4—2010/ISO/IEC7816-4:20053种模板可以根据选择“SELECT命令”中的选项(见表40)进行检索。——如果FCI被置位,则FCltag对引入相应数据字段的模板可选。——如果FCP或FMD被置位,则对应tag必须出现。表12列出了所有特定上下文类中的文件控制参数。如果一个文件存在控制参数时,表中还指出了它出现一次(明确表示)或重复出现(无表示)。表12文件控制参数tag长度值适用于‘80’变量在文件中的数据字节数,不包括结构信息任何EF.1次‘81’2在文件中的数据字节数,如果有,包括结构信息任何文件.1次1文件描述符字节(见5.333和表14)任何文件2文件描述符字节后面紧跟着数据编码字节(见表87)文件描述符字节后面紧跟着数据编码字节和1个或2个字节的最大‘82’3或4记录长度任何带有记录文件描述符字节后面紧跟着数据编码字节和2个字节的最大记录长结构的EF5或6度以及1个或2个字节的记录个数‘83’2文件标识符任何文件‘84’1~16DF名称任何DF‘85’变量非BERTLV编码的专有信息任何文件‘86’变量以专有格式的安全属性任何文件‘87’2包含扩充FCI的EF标识符任何DF,1次‘88’0或1短EF标识符(见5.3.3.1)任何EF,1次‘8A’1生命周期状态字节(LCS字节,见532和表13)任何文件,i次‘8B’变量扩展格式安全属性(见5.4.3.3和表15)任何文件,1次‘8C’变量压缩格式安全属性(见5.4.3.1)任何文件,1次‘8D’2包含安全环境模板的EF标识符(见6.3.4)任何DF‘8E’1通道安全属性(见5.43和表15)任何文件,1次‘A0’变量数据对象模板安全属性(见543)任何文件,1次‘A1’变量私有格式模板安全属性任何文件模板包含一或多对数据对象:‘A2’变量任何DF短EF标识符(tag‘88’)文件参考(tag‘51’,L>2,见5.3.1.2)‘A5’变量BERTI。V编码的私有信息任何文件‘AB’变量扩展格式模板安全属性(见5432)任何文件,1次‘AC’变量加密机制标识模板(见5.4.2)任何DF其他所有首字节为‘80’至‘BF’的特定上下文类型数据对象均保留。DF的部分控制信息可以存储在某个应用控制下的EF文件中,在文件控制参数中通过tag‘87’B用,如果出现此类EF,则FCI必须以FCPtag或FCItag引入。5.3.3.1短EF标识符以下规则定义了任意EF控制参数中tag‘88’的使用。 GB/T16649.4—2010/ISO/IEC7816-4:2005——如果卡支持短EF标识符选择(见5.3.1.1)且无tag‘88’.则标识符(tag为‘83’)的第2个字节b5~b1编码表示短EF标识符。——如果有tag位‘88’且长度置为0,则EF支持无短标识符。——如果有tag位‘88’且长度置为1,如果数据元b8~b4不全相等且b3~b1置为000,则b8~b4编码表示短EF标识符(1~30)。5.3.3.2生命周期状态字节无论是卡,文件,还是其他对象,均有其生命周期。此生命周期状态可以帮助卡和接口设备区分在卡、文件和其他卡内数据对象使用时的不同逻辑安全状态。为实现将生命周期作为一种属性(见GB/T16649.9)进行灵活管理,此处定义了4种原始的生命周期状态:1)创建状态;2)初始化状态;3)操作状态;4)终止状态。该生命周期状态字节(LCS字节)对应含义如表13所示:——值‘00’至‘OF’为行业的;——值‘10’至‘FF’为私有的。表13生命周期状态字节b8b7b6b5b4b3b2b1含义0o0没有信息给出01创建状态0o0l1初始化状态o01—1操作状态(激活)Oo0o01一O操作状态(停恬)0o01l一终止状态不全为零×专有的——其他值由ISO/IECJTCl/SCl7保留供将来使用。以tag‘8A’引用,文件LCS字节可以出现在任意文件的控制参数中(见表12)。卡LCS字节可能在历史字节(见8.1.1.3)中出现。以tag‘48’引用,卡LCS字节可能出现在EFATR(见8.2.1.1)中。如果有MF,则卡至少处于创建状态。注:除非特别规定,安全属性对操作状态有效。5.3.3.3文件描述符字节以tag‘82’引用,任意文件的控制参数中可以包含数据元(见表12)。——数据元的第1个字节为文件描述字节(见表14);——如果数据元包含2个或更多字节,则第2个字节为数据编码字节(见表87)。如果卡在若干位置设置了数据编码字节,则给定文件有效性在从MF至该文件的路径中最近点指示。表14文件描述符字节b8b7b6b5b4b3b2bl含义0X文件可访问性0不可共享的文件01可共享的文件01l10DF 标准分享网www.bzfxw.com免费下载GB/T16649.4—2010/ISO/IEC7816—4:2005表14(续)b8b7b6b5b4b3b2bl含义0不全置1EF类型oO0——工作的EFo01——内部的EFO其他所有值——EF专用类型使用0EF结构0不全置10o——没有信息被给出o不全置101——透明结构0不全置101o——线性结构,固定长度,没有进一步的信息o不全置101一线性结构,固定长度,TLV结构O不全置110——线性结构,可变长度,没有进一步的信息0不全置1101⋯一线性结构,可变长度,TLV结构0不全置11o——循环结构,固定长度,没有进一步的信息0不全置11——循环结构,固定长度,TLV结构ol101——TLV结构,用于BERTLV数据对象01010——TLV结构,用于SIMPLE—TLV数据对象——其他所有值均为RFU。——“可共享”意昧着至少支持在不同逻辑通道上的当前访问。5.4安全体系结构5.4.1概述本章描述安全状态、安全属性和安全机制。安全状态安全状态表示完成下列动作后可能获得的当前状态:——复位应答(ATR)和可能的协议参数选择(PPS)和/或——单个命令或一序列命令,可能执行的鉴别过程。安全状态也可以从完成与所包含实体(如果有)的标识有关的安全规程中产生,例如,——通过验证口令(例如,使用一个“VERIFY”命令);或——通过认证密钥(例如,使用“GETCHALLENGE”命令后面紧跟着“EXTERNALAUTHEN—TICATE”命令,或使用GENERALAUTHENTICATE命令序列);或——通过安全报文传输(例如,报文鉴别)。考虑了4种安全状态:——全局安全状态——在卡中使用DF层次,它可以通过完成与MF相关的鉴别规程进行修改(例如,附属于MF的口令或密钥的实体鉴别);——应用特定安全状态——它可以通过完成与应用相关的鉴别规程进行修改(例如,附属于特定应用的口令或密钥的实体鉴别);它可以通过应用选择进行维护、恢复或被丢失;这种修改只与鉴别规程所属的应用相关。如果应用了逻辑通道,则应用特定安全状态依赖于逻辑通道;——文件特定安全状态——它可以通过完成与DF相关的鉴别规程进行修改(例如,附属于特定DF的口令或密钥的实体鉴别);它可以通过文件选择进行维护、恢复或被丢失;这种修改只与鉴别规程所属的应用相关。如果应用了逻辑通道,则文件特定安全状态依赖于逻辑通道;——命令特定安全状态——仅在执行涉及使用安全报文传输的命令期问,它才存在;这种命令可以?, GB/T16649.4—2010/ISO/IEC7816-4:2005保留未变化的其他安全状态。安全属性当安全属性存在时,它定义了允许的动作以及所处于的条件。文件的安全属性依赖于:它的分类(DF或EF)、在它的文件控制信息中的和/或在其父文件的文件控制信息中的任选参数。安全属性也可以与命令、数据对象及表格和视图联合。特别地,安全属性可以——在数据访问之前强制性指定卡的安全状态;——如果卡处于某种特定状态则限制某些函数对数据的访问(如readonly);——定义某些安全功能必须获取特定安全状态方能执行。安全机制本部分定义了下列安全机制:——使用口令的实体鉴别:卡对从外界接收到的数据同保密的内部数据进行比较。该机制可以用来保护用户的权利。——使用密钥的实体鉴别:待鉴别的实体必须按鉴别规程(例如,使用“GETCHALLENGE”命令后面紧跟着“EXTERNALAUTHENTICATE”命令、GENERALAUTHENTICATE命令序列)来证明了解的相关密钥。——数据鉴别:使用保密的或公开的内部数据,卡校验从外界接收到的冗余数据。另一种方法是使用保密的内部数据,卡计算数据元(密码的校验和或者数字签名),并且将其插入发送给外界的数据中。该机制可以用来保护提供者的权利。——数据加密:使用保密的内部数据,卡解密在数据字段中接收到的密文。另一种方法是,使用秘密的或公开的内部数据,卡计算密码,并将其插人数据字段中,尽可能与其他数据一起进行。该机制可以用来提供保密性服务,例如,用于密钥管理和有条件的访问。除了密码机制外,数据保密性可以通过数据伪装来获得。在此情况下,卡计算伪装字节串,并通过“异或”运算将其加到从外界接收到的数据字节中,或将其加到发送给外界的数据字节中。该机制可以用来保护秘密,并且减少报文过滤的可能性。鉴别的结果可以按照应用的要求记录到内部EF中。5.4.2密码机制标识符模板按tag‘AC’引用,任意DF(见表12)的控制参数中可以包含一个或多个加密机制标识符模板。每种对应该DF及其子结构的一种密码机制应用。这样的模板必须包含2个或更多的数据对象。——第1个数据对象应为密码机制引用,tag为‘80’(见表33)。——第2个数据对象应为对象标识符,tag为‘06’,如GB/T16263.1中所定义。该标识对象应是由密码机制限定或标准注册,如ISO标准。密码机制的例子有加密算法(如ISO/IEC18033口81)、消息认证码(如ISO/IEC9797口3)、认证协议(如ISO/IEC9798t83)、数字签名(如ISO/IEC9796t63或14888”63)、已注册密码算法(如IsO/IEC9979∽1)等等。——如果还有后续数据对象,则以tag‘06’使用前导的已有机制(即操作模式,如ISO/IEC10116E“3、哈希功能,如ISO/IEC10118⋯3),或显示参数(依赖于前导的已有机制的tag)。具体例子(解释见附录A){7AC’’0B’一{’807’01t’017}{706’706’,’28818C710201㈨该模板将局部引用‘01’和ISO/IEC180332“”中的第1个加密算法联合起来。{’AC’一’117一{’80‘一’Ol’一702’卜{’06’一’05’728CC460502’}_{706t_105’一728CF060303’))第一个对象标识符指向ISO/IEC97985[83中第2种认证机制。第2个对象标识符指向ISO/IEC10118—3E”3中第3个专用的散列函数。因此,该模板通过SHA一1将局部引用‘02’和GQ2联合起来。23 标准分享网www.bzfxw.com免费下载GB/T16649.4—2010/ISO/IEC7816-4:20055.4.3安全属性以tag‘86’,‘8B’,‘8c’,‘8E’,‘A0’,‘A1’或‘AB’引用,安全属性可以出现在任意文件(见表12)的控制参数中。卡内任意对象(例如:命令、文件、数据对象、表/视图)可能与超过一个的安全属性和/或一个安全属性中包含的引用相关联。以tag‘A0’引用,数据对象安全属性模板可以出现在任意文件的控制参数中。该模板是通过安全状态数据对象的串联(tag‘86’,‘8B’,‘8c’,‘8E’,‘A0’,‘A1’,‘AB’)和tag链数据对象(tag‘5C’,见8.5.1)来显示某个文件内的相关数据对象。以tag‘8E’引用,一种通道安全状态(至多一种)可以出现在任意文件(见表12)和任意适合的安全环境(SE,见6.3.3)的控制参数中。可以根据表15来解释。——“不可共享”:表示至多~个逻辑通道可用,通道物理技术受限;——“安全”:表示SM密钥(见6)可用(例如,通过原有的鉴别来建立);——“用户鉴别”:表示用户应被鉴别(例如,成功的口令验证)。表15通道安全属性’b8b7b6b5b4b3b2bl含义0O0不可共享0安全0O用户鉴别——其他值由ISO/IECJTCl/SCl7保留供将来使用。在SCQL环境下(见GB/T16649.7,结构化卡查询语言命令),安全属性可在SCQI。操作中指定,例如CREATETABLE和CREATEVIEw命令。如果是使用基于本章定义的安全属性,那么将在SCQL操作的安全属性参数中被‘8B’,‘8C’或‘AB’取代。格式——本章为对象绑定和安全属性定义了2种格式,基于位图的压缩格式和利用TLv列表管理扩展压缩格式的扩展格式。5.4.3.1压缩格式在压缩格式中,访问规则由一个访问模式字节紧随一个或多个安全条件字节组成。对象访问控制受控于与相关对象绑定的访问规则。如果以‘8C’(见表12)标记的数据对象值字段中包含多个访问规则,则取“或(OR)”条件。访问模式字节——从b7至b1的每一位,置0则表示无对应安全条件,置1则有。当b8置为1,则b7~b4可能用于其他命令,如特定应用命令。表16~表19定义了DF,EF,数据对象和表格/视图对应的访问模式字节。表16DF访问模式字节b8b7b6b5b4b3b2bl含义0b7~b1依照此表设置1b3~b1依照此表设置(b7--b4专有)0DELETEFILE(self)0TERMINATECARDUSAGE(MF).TERMINATEDF0ACTIVATEFILE0DEACTIVATEFILEl一CREATEFILE(DFcreation)1CREATEFII。E(EFcreation)1DEI。ETEFII。E(child) CB/T16649.4—2010/ISO/IEC7816-4:2005表17EF访问模式字节b8b7b6b5b4b3b2bl含义ob7--bl依照此表设置1b3~bl依照此表设置(b7~b4专有)oDEI。ETEFILEo,I"ERMINATEEF0ACTIVATEFI/,EoDEACTIVATEFI]。EWRlTEBlNARY,WRlTEREC()RD.APPENDRECORDUPDATEBINARY,UPDATERECORD,ERASEBINARY,ERASERECORD(S)READB1NARY,READRECORD(S),SEARCHBINARY,SEARCHREC()RD表18数据对象访问模式字节b8b7b6b5b4b3b2bl含义0b7~b1依照此表设置1b3~bl依照此表设置(b7~b4专有)0000(其他值保留供将来使用)MANAGESECURITYENVIRONMENTPUTDATAGETDATA表19表格/视图访问模式字节b8b7b6b5b4b3b2bl含义0b7~b1依照此表设置1b3~b1依照此表设置(b7~b4专有)0CREATEUSER,DELEfIEUSER0GRANT。REV()KE0CREATETABLE,CREATEVIEW、CREATEDICTIONARY0DROPTABI.E.DROPV1EWINSERTUPDATE.DEI。ETEFETCH安全条件字节——每一个安全条件字节指定了访问规则对应的安全机制。表20示出了安全条件字节。表20安全条件字节b8b7b6b5b4b3b2bl含义【;0o0o0o无Ne条ve件r1】1 标准分享网www.bzfxw.com免费下载GB/T16649.4—2010/ISO/IEC7816-4:2005表20(续)b8b7b6b5b4b3b2b1含义o0O0不涉及安全环境不全相等安全环境标识符(1~14字节,SEID字节,见6.3.4)1保留0至少一种条件1所有条件安全报文外部认证用户认证(比如口令)b8~b5指明了所需的安全条件。如果不全相等,则b4~bl确定一种安全环境(见6.3.4,SEID字节从1到14)和该环境中定义的安全机制(由b7~b5指定)以用于命令保护、外部证明和用户鉴定。——如果b8置为1,则必须满足b7~b5指定的所有条件;——如果b8置为0,则至少满足一种b7~b5指定的条件;——如果b7置为1,则安全环境的控制引用模板(见6.3.1)由b4~bl指定,例如,一个SEID字节从1至14,描述安全报文传输是否应用于对应命令的数据字段和应答数据字段(见表35使用限定字节)。5.4.3.2扩展格式在扩展格式中,访问规则由一个访问模式数据对象紧随一个或多个安全条件数据对象组成。对象访问控制受控于与相关对象绑定的访问规则。以‘AB’标记的模板可以出现在该规则下任意文件(见表12)的控制参数中。访问模式数据对象——一个访问模式数据对象包含一个访问模式字节(见表16~表19)或命令描述列表或一种私有状态机描述。后续的安全条件数据对象均与命令相关。表2l示出了访问模式数据对象。表21访问模式数据对象tag长度值含义‘80’l访问模式字节见表16~表19‘81’至‘8F’变长命令头描述(部分)命令头列表(见表22)‘9C’变长私有的状态机描述如果tag从‘81’至‘8F’,则访问模式数据元表示为命令头CLA、INS、P1和P2四字节值的可能组合的列表。根据tag的b4~bl,该列表仅包含如表22所描述的值。可能会用集合来定义一个命令集,例如,tag‘87’下的INSP1P2,INSP1P2⋯.的值。表22tag为‘81’至‘8F’的访问模式数据对象含义oOo命令描述包括:——(CLA)即cI,A的值——(INS)即INS的值——(P1)即P1的值——(P2)即P2的值cLA的值作为通道号编码为o,表示描述与逻辑通道无关——INS的编码为偶数,表示描述与数据字段格式指示无关。 GB/T16649.4—2010/ISO/IEC7816—4:2005安全条件数据对象——依据表23,安全条件数据对象定义了访问受特定访问模式数据对象保护的对象所需的安全操作。如果用作安全条件,由‘A4’(AT)、‘B4’(CCT)、‘B6’(DST)或‘B8’(cT)引用的控制引用模板(见6.3.1)包含使用限定数据对象(见表35)以指示安全动作。表23安全条件数据对象tag长度值含义‘90’0A|ways‘97’0Never‘9E’1安全条件字节见表20‘A4’变长控制引用模板外部或用户认证依赖于使用限定符‘B4’’B6’’B8’变长控制引用模板命令SM和响应依赖于使用限定符‘A0’变长安全条件数据对象至少满足一种安全条件(OR模板)‘A7’变长安全条件数据对象安全条件倒置(NOT模板)‘AF’变长安全条件数据对象满足所有安全条件(AND模板)一些安全条件数据对象可能为同一操作控制:一如果安全条件数据对象按OR模板嵌套(tag‘A0’),则动作之前必须满足至少一个安全条件;——如果安全条件数据对象不按OR模板嵌套(tag‘AO’)或按AND模板嵌套(tag‘AF’),则动作之前必须满足所有安全条件;一如果安全条件数据对象按NOT模板嵌套(tag‘A7’),则在安全条件不满足之前,其值已为真。5.4.3.3访问规则引用扩展格式的访问规则可以保存在EF中(支持线性变长记录结构)。该EF被命名为EF.ARR。一个或多个访问规则可以按记录号保存在每一个记录中,该记录号被命名为ARR字节。表24给出了EF.ARR的布局。表24ARR布局l记录号(ARR字节)记录内容(1个或多个访问规则)·访问模式数据对象,一个或多个安全条件数据对象,访问模式数据对象,⋯⋯z访问模式数据对象,一个或多个安全条件数据对象,⋯⋯按tag‘8B’引用,扩展格式(见表25)下安全属性数据对象可以出现在任意文件(见表12)的控制参数中。一如果长度为1,则值字段为一个ARR字节,对应一个隐含的EF.ARR记录;如果长度为3,则值字段为一个文件标识符紧随一个ARR字节,该文件标识符引用EF.ARR且ARR字节即EF.ARR中的记录号;一如果长度为偶数且至少为4,则值字段为文件标识符紧随一个或多个字节对,每一对包含一个SEID字节紧随一个ARR字节,该SEID字节标识由ARR字节引用的访问规则应用的安全环境。表25安全属性数据对象应用扩展格式tag长度值1ARR字节(1个字节)3文件标识符(2个字节)ARR字节(1个字节)‘8B’文件标识符(2个字节)SEID字节(1个字节)ARR字节(1个字节)偶数,>3[-SEID字节ARR字节]⋯⋯·27 标准分享网www.bzfxw.com免费下载GB/T16649.4—2010/ISO/IEC7816-4:2005当前SE的ARR字节指明访问规则对应用DF的当前访问有效。注:如果未在早期的MANAGESECURITYENVIRONMENT命令中设置SE,则默认SE即为当前SE。5.4.4安全支持数据元本条定义了安全支持数据元的集合,该数据元中包含管理数据操作方式的规则。安全支持数据元扩展和细化了控制引用数据对象。卡将把它们作为应用所需安全机制的基本支持。应用可能引用它们作为安全报文和安全操作(见GB/T16649.8)。本条既不描述安全支持数据元的特征,如长度,也不定义能修改它们的值的算法。原则一卡必须按如下原则维护和使用安全支持数据元的值:——更新的值将由卡计算得出或者由外部提供,且对于特定类型的安全支持数据元将满足特定规则;——更新必须在导致更新的命令进行输出之前进行。更新将不依赖于命令的未完成状态。如果在可能导致更新的操作中,须先对数据元的值进行更新,然后用于应用;——特定应用的功能执行对特定应用安全支持数据元的访问是受限的。注:命令响应对中实际的安全实现是依赖于应用特定的算法和协议的,而卡仅仅提供数据元和对应使用规则的支持。数据元——卡用以支持命令响应对安全的数据元称为级数值。级数值在卡的生命周期中随特定事件而增加,每次卡激活对应级数值便不同。定义以下两种级数值——卡会话计数器和会话标识符。——卡会话计数器在每次卡激活时计数(增加)一次;——会话标识符从卡会话计数器和外部提供数据计算得来。定义以下两类级数值:——内部级数值:对于某种应用,用来记录特定事件发生的次数,发生该事件数据元便递增一次,且卡对该数据元提供专门的重置归0功能。内部级数值不可被外部控制,类似于卡内实时安全标记。内部级数值可用于密码计算。——外部级数值:对于某种应用,将只能被外部数据更新。且待更新的数值必须比当前卡内所存的值大。引用——卡按以下方式提供对安全支持数据元的访问。——EF可以出现于MF(如卡会话计数器)或应用DF(如特定应用级数值)中;——补充数据对象(tag为‘88’,‘92’,‘93’,见表33)可以出现于控制引用模板。如果SE明确使用这些数据元,那么这些tag可用;——在以tag‘7A’引用的行业间模板中,特定上下文类别(首字节从‘80’到‘BF’)用于安全支持数据对象(见表26)。表26安全支持数据对象6安全报文安全报3℃(Securemessaging)通.过确保数据秘密性和数据鉴别这两个基本安全功能,来保护全部或部28 GB/T16649.4—2010/ISO/IEC7816-4:2005分命令响应对或拼接起来的连续的数据字段(命令链,见5.1.1.1,SWl设置为‘61’)。安全报文通过应用一个或多个安全机制来实现。也可通过一种DF(见5.3.3)控制参数中的密码机制标识符模板(参考5.4.2)来识别。每种安全机制包括密码算法,操作模式,密钥,参数(输人数据),还经常包含初始化数据。——数据字段的传送和接收可与安全机制的处理交替进行。本规范不排除通过系列的分析处理余下的数据字段部分所用的机制和安全选项的决定;——两个或多个安全机制可能会使用相同的密码算法,尽管会有不同的操作模式。因此而产生的补充规则并不排除本特性。6.1SM字段和SM数据对象根据定义,SM格式以及SM模板(tag‘7D’)中的任何命令或响应数据字段都是SM字段。每一个SM字段被编码为BERTLV(见5.2.2),其中的特定的上下文类(首字节从‘80’到‘BF’)保留作SM数据对象。在命令一响应对中,SM格式可被默认地选择,如在发出命令前获知,或者明确地选择,如在CLA中指示(见5.1.1)。注:命令链和/或设置SWl为‘61’的方式引出一命令序列,数据字段(以及相关的数据对象)可以被拆分为连续的更小的数据字段。这样的情况下,当使用SM格式时,在同一方向上的同一序列的拼接起来的所有的连续的数据字段就是一个SM数据字段。表27示出了本文档中列出的在特定的上下文类的SM数据对象。一些SM数据对象(SMtag‘82’,‘83’,‘BO’,‘t31’)为递归式的,如无格式值字段就是一个SM字段。表27SM数据对象tag值‘80’.‘8I’未编码为BER—TLV的无格式值‘82’.‘83’密码(编码为BER—TI。V的无格式值并包含SM数据对象,如SM字段)‘84’.‘85’密码(编码为BER—TI。V的无格式值,但不包含SM数据对象)‘86’.‘87’填充内容指示字节,其后是密码(未编码为BERTLV的无格式值)‘89’命令头(cLAiNSP1P2,4字节)‘8E’密码校验和(至少4字节)‘90’.‘91’哈希编码‘92’.‘93’证书(未编码为BERTLV的数据)‘94’.‘95’安全环境标识符(SEID字节)‘96’.‘97’不安全的命令一响应对中编码Ne的1个或2个字节(可能为空)‘99’处理状态(SWlSW2,2字节,可能为空)‘9A’.‘9B’输入的用于数字签名计算的数据元(值字段时有符号的)‘9C’.‘9D’公钥‘9E’数字签名‘A0’.‘A1’用于计算哈希编码的输入模板(模板本身也是哈希值)‘A2’用于验证密码校验和的输入模板(包括模板本身)‘A4’.‘A5’用于认证控制引用模板(AT)‘A6’.‘A7’用于密钥协商的控制引用模板(KAT)‘A8’用于验证数字签名的输入模板(模板是有符号的)‘AA’.‘AB’用于哈希编码的控制引用模板(HT)‘AC’.‘AD’用于数字签名计算的输入模板(连接的值字段是有符号的)‘AE’.‘AF’用于验证证书的输入模板(连接的值字段是有符号的)‘B0’.‘B1’编码为BER-TLV的无格式值并包含SM数据对象,如SM字段‘B2’.‘B3’编码为BER-TLV的无格式值,但不包含SM数据对象‘B4’.‘B5’用于密码校验和的控制引用模板(CCT)‘B6’.‘B7’用于数字签名的控制引用模板(DST) 标准分享网www.bzfxw.com免费下载GB/T16649.4—2010/ISO/1EC7816-4:2005表27(续)tag值‘B8’.‘B9’用于保证秘密性的控制引用模板(CT)‘BA’.‘BB’响应描述符模板‘BC’。‘BD’用于数字签名计算的输人模板(模板是有符号的)‘BE’用于验证证书的输人模板(模板被验证)——在本Z-TZ中,ISO/IECJTCl/SCl7保留了特定上下文类的任何其他数据对象(第一字节从‘80,到‘BF,)。在SM字段中,每个SM数据对象(特定上下文类)的tag字段(tag奇偶)的最后一个字节的bit1用于指示,该SM数据对象是否包括在用于认证(密码校验和,见6.2.3.1,或者数字签名,见6.2.3.2)的数据元的计算中(bit1为1,奇tag数,表示包括;bit1为0,偶tag数,表示不包括)。如果出现,那么其他类的数据对象(如行业间数据对象)也包括在计算中。如果该计算出现,该数据元为认证(sMtag‘8E’,‘9E’)的某SM数据对象的值字段,出现在该sM字段的最后。有两类SM数据对象:——每个基本SM数据对象(见6.2)携带一个无格式值,或者输入,或者一个安全机制的结果。——每个附加SM数据刘象(见6.3)携带一个控制引用模板,或者一个安全环境标识符,或者一个响应描述符模板。注:基本SM数据对象也用于控制安全操作(见GB/T16649.8)。附加SM数据对象也用于管理安全环境(见7.5.11)。安全报文使用的全局安全方法与安全操作共享一些安全相关的方法,如安全中使用的原子方法。附录B为这2种方法之间的协同的示例。6.2基本SM数据对象6.2.1用于封装无格式值的SM数据对象对于SM数据字段和非BER—TLV编码的数据,封装是必要的。对不包括SM的BER—TLv和数据对象,封装是可选择的。表28为封装了无格式值的SM数据对象。表28封装无格式值的SM数据对象tag值‘B0’.‘B1’编码为BER—TLV的无格式值,并包含SM数据对象(如SM字段)‘B2’.‘B3’编码为BER—TLV的无格式值,不包含SM数据对象‘80’.‘81’没有编码为BERTLV的无格式值‘89’命令头(CLAINSP1P2,4字节)‘96’.‘97’不安全的命令一响应对中编码Ne的1个或2个字节(可能为空)‘99’处理状态(SWl一SW2,两字节,可能为空)6.2.2用于保持秘密性的SM数据对象表29显示了用于保持数据秘密性的SM数据对象。表29用于保持数据秘密性的SM数据对象tag值‘82’,‘83’密文(编码为BERTI。V的无格式值,并包含SM数据对象,如SM字段)‘84’.‘85’密文(编码为BERTLV的无格式值,不包含SM数据对象)‘86’.‘87’填充内容指示字节,其后是密码(没有编码为BERTI.V的无格式值)用于保持秘密性的安全机制由某种操作模式的密码算法组成。当没有明确指出并且没有暗含选择某种机制时,应用默认的机制保持秘密性:30 GB/T16649.4--2010/ISO/IEC7816-4:2005——对有填充指示的密码算法,默认机制是“电子密码本”模式的块密码。该分组密码可能包含填充字节。保持数据秘密性的填充可能影响到传输:密文(一个或多个分组)可能长于此无格式值。——对无填充指示的密文,默认机制是流密码。在这种情况中,密码是数据字节串与同样长度的隐蔽串的异或。隐蔽的方式中数据没有填充,且通过同样的方式恢复得到数据字节串。无格式值未编码为BER—TLV格式时需要指明有填充和/或内容。如果有填充但未指明,应用6.2.3.1中列出的规则。表30为填充一内容指示字节。表30填充一内容指示字节值含义‘oo’没有更多的意义‘01’根据6.2.3.1指定的方式填充‘02’无填充‘lX’1~4个加密信息而不是加密密钥的秘密密钥(‘x’表示‘o’到‘F’的任意值)‘11’表示第一密钥(如,付费电视系统中的“事件”控制字)‘12’表示第二密钥(如,付费电视系统中的“奇数”控制字)●‘13’表示接连的第一、二密钥(如,付费电视系统中一对控制字)‘2X’用于加密密钥而不是信息的私钥(‘x’表示‘o’到‘F’的任意值)(如,在付费电视系统中,加密控制字的操作密钥和加密操作密钥的控制密钥)‘3x’非对称密钥对中的私钥(‘X’表示‘0’到‘F’的任意值)‘4X’口令(‘X’表示‘o’到‘F’的任意值)‘80’到‘8E’私有一一根据ISO/IECJTCI/SCl7,其他值保留为将来使用。6.2.3用于认证的SM数据对象表31为用于认证的SM数据对象。表31用于认证的数据对象tag值‘8E’密码校验和(至少4字节)‘90’.‘9l’哈希编码‘92’.‘93’证书(非BERTLV格式的数据)‘9C’.‘9D’公钥‘9E’数字签名输人数据对象(另见GE/T16649.8)‘9A’.‘9B’用于计算数字签名的输人模板值字段是有符号的)‘A0’.‘A1’用于计算哈希编码的输人模板(模板本身也被哈希)‘A2’用于验证密码校验和的输入模板(包括模板本身)‘A8’用于验证数字签名的输入模板(模板是有符号的)‘AC’.‘AD’用于数字签名计算的输入模板(连接的值字段是有符号的)‘AE’.‘AF’用于验证证书的输入模板(连接的值字段是有符号的)‘BC’.‘BD’用于计算数字签名的输人模板(模板是有符号的)‘BE’用于验证证书的输入模板(模板是有符号韵)6.2.3.1密码校验和数据元计算密码校验和涉及到一个初始化检查块,密钥和加密算法(见ISO/IEC18033”3)或哈希函数 标准分享网www.bzfxw.com免费下载GB/T16649.4—2010/ISO/IEC7816-4:2005(见ISO/IEC10118u“)。计算的方法可以是系统规范中的一部分。或者使用密码机制标识符模板(见5.4.2)标识一个确定的计算方法的标准。除非特别申明,应该采用下列计算方法。在密钥的控制下,算法主要将k字节(通常为8,16或20)的当前的输入块转换为同样大小的当前输出块。计算过程分以下几个阶段:初始化阶段:初始化阶段设置初始化检查块为下列块之一:——空块,如k字节设置为‘oo’;——链接块,如之前的计算所产生的结果,即对命令,为之前的命令中的最后的检查块,对响应,为之前响应的最后的检查块;——提供的初始化值块,如外部提供的;——在密钥的控制下将辅助数据转换为辅助块。如果辅助数据长度小于k字节,在之前加入。以达到块的长度。持续阶段:为保护命令头(CLAINSP1P2),可以对其进行封装(SMtag‘89’)。但如果CLA中的bit8~bit6设置为000,且bit4、bit3设置为11(见5.1.1),第一个数据块由命令头(CLAINSP1P2)组成,其后是一个设置为‘80’的字节,并且k5个字节设置为‘00’。密码校验和应包含任何有奇tag数的安全报文数据对象和任何第一字节不为‘80’到‘BF’的数据对象。这些数据对象应以相连数据块的形式包含在当前检查块中。依据以下原则划分数据块:——相邻的数据对象之间的边界上的数据块应该是连续的。——在每个包含的数据对象的后面增加填充,并且填充之后是一个未包含的数据对象,或者没有数据对象。填充至少由一个必须设置为‘80’的字节组成,如果还有其他字节,将会是0到k一1个设置为‘00’的字节,直到相应的数据块填至k字节。由于填充字节未被传送,填充将不会影响到认证。这样的机制中,操作模式为“加密分组链”(见ISO/IEC10116口”)。第1个输入是检查块与第1个数据块的异或。第1个输出由第1个输入产生。当前输入是前一个输出与当前数据块的异或。当前输出由当前输入产生。最终阶段:最后的检查块就是最后的输出。最终阶段从最后的检查块中提取密码校验和(前m字节,至少有4字节)。6.2.3.2数字签名的数据元数字签名方案依赖于非对称密码技术(见ISO/IEC9796“],14888[163)。计算过程中使用到了哈希函数(见ISO/IEC10118[1”)。输入的数据由数字签名的输人数据对象的数据字段,或者某个数字签名的输入模板的多个数据字段的值字段拼接而成,可由6.2.3.1中指定的方法确定。6.3辅助的SM数据对象表32为辅助的SM数据对象。表32辅助的SM数据对象tag含义‘94’.‘95’安全环境标识符(SEID字节)‘A4’.‘A5’认证中有效的控制引用模板(AT)‘A6’,‘A7’密钥协商中有效的控制引用模板(KAT)‘AA’,‘AB’哈希编码中有效的控制引用模板(HT)‘B4’.‘B5’密码校验和中有效的控制引用模板(CCT)‘B6’.‘B7’数字签名中有效的控制引用模板(DST)‘B8’.‘B9’保持秘密性中有效的控制引用模板(cT)‘BA’,‘BB’响应描述符模板 GB/T16649.4—2010/[SO/IEC7816-4120056.3.1控制引用模板已经定义6类控制引用模板,即认证中有效(AT),密钥协商(KAT),哈希编码(HT),密码校验和(CCT),数字签名(DST)和通过对称密钥(CT—sym)或非对称密钥技术(CTasym)来保持秘密性(CT)。每种安全机制包括一个处于某种操作模式的密码算法,使用一个密钥,并且可能会有初始化数据。可以隐式选择这些项,如发出命令前知道,或者显式的选择这些项,如通过嵌在控制引用模板中的控制引用数据对象。在控制引用模板中,保留特定上下文类(第1字节为‘80’到‘BF’)作为控制引用数据对象。SM字段中,控制引用模板的最后的可能位置就在应用引用机制的第1个数据对象之前。例如,密码校验和中有效的模板(CCT)的最后的可能位置就在计算中引入的第1个数据对象之前。每一个控制引用对象在同类机制中的新的控制引用出现之前保留有效。例如,某条命令能为下一条命令提供控制引用。6.3.2控制引用模板中的控制引用数据对象每个控制引用模板(CRT)是一个控制引用数据对象的集合:一个密码机制引用,一个文件和密钥引用,一个初始化数据引用,一个使用限定符和在保持秘密性的控制引用模板的内容加密引用。——密码机制引用表示一个处于某种操作模式的加密算法。任何DF的控制参数(见表12中的tag‘AC’)可包含密码机制标识符模板(见5.4.2)。每个模板指出该密码机制引用的含义。——文件引用(与5.3.1.2中的编码相同)表示在文件中的某处密钥引用有效。如果没有文件引用,密钥引用在当前DF(可能是一个应用的DF)中有效。密钥引用明确地识别使用的密钥。——当应用于密码校验和时,初始化数据引用指出初始检查块。如果没有初始化数据引用且没有隐式地选择初始检查块则应用空块。并且在通过流密码传输第一个用于保持秘密性的数据对象前,保持秘密性的模板应该提供辅助数据以初始化秘密字节串的计算。表33列出控制引用数据对象并指出相关的控制引用模板。所有的控制引用数据对象都在特定上下文的类中。表33控制引用模板中的控制引用数据对象tag值ATKATHTCCTDSTCT—asymCT—sym‘80’密码机制引用×X×文件和密钥引用‘81’——(与5.3.1.2中的编码相同)ב82’——DF名(见5.3.1.1)ב83’——秘密密钥引用(直接使用)×——公钥引用×——引用数据限定符ב84’——计算会话密钥的引用×——私钥引用בA3’——密钥使用模板(见下面的文本)×初始化数据引用:初始检查块‘85’——L一0,空块ב86’——L一0,块链ב87’——L一0,前一个初始值块加一×——1。一k,初始值块× 标准分享网www.bzfxw.com免费下载GB/T16649.4--2010/ISO/IEC7816-4:2005表33(续)tag值ATKATHTCCTDSTCTasymCTsym初始化数据引用:辅助数据元(另见5.4.3)‘88’——L一0,前一个交换的挑战加一×——L>0,无下一步指示‘89’到——L一0,专有数据元索引ב8D’——L>o,专有数据元值ב90’——L一0,卡提供的哈希编码ב91’——L一0,卡提供的随机数×X——L>O,随机数Xב92’——L一0,卡提供的时戳×——L>0,时戳ב93’——L一0,前一个数字签名计数器加一X×——L>0,数字签名计数器ב94’源于密钥的挑战或数据元ב95’使用限定符字节(见下面文本)ב8E’密码内容模板(见下面文本)×——本文中,ISO/IECJTCl/SCl7保留任何其他特定上下文类的数据对象(首字节从‘80’到‘BF’)。~一CRT可能含行业间数据对象,如AT中的证书持有者的授权(tag‘5F4C’,见6.3.4),HT或DST中的头列表或扩展的头列表(tag‘5D’和‘4D’,见8.5.1)。在任何控制引用模板中,密钥使用模板(tag‘A3’)可使一个文件和密钥引用与密钥使用计数器和/或密钥重试计数器关联(见表34)。表34密钥使用数据对象tag值‘A3’带下面tag的密钥使用数据对象集‘80’至‘84’表33中列出的文件和密钥引用‘90,密钥使用计数器‘91’密钥重试计数器~一本文中,ISO/IECJTCl/SCl7保留任何其他的特定上下文类的数据对象(第一字节从‘80’到‘BF’)。在任何用于认证的控制引用模板(AT)、用于密钥协商的控制引用模板(KAT)、用于密码校验和的控制引用模板(CCT)、用于保持秘密性的控制引用模板(CT)或用于数字签名的控制引用模板(DST)中,用法限定字节(tag‘95’)可指定该模板作安全条件(见5.4.3.2和表23)或,遵循MANAGESECURITYENVIRONMENT命令(甩7.5.11)。表35为用法限定字节。表35用法限定字节b8b7b6b5b4b3b2bl含义1验证(DST,CCT),加密(cT),外部认证(AT),密钥协商(KAT)l计算(DST,CCT),解密(cT),内部认证(AT),密钥协商(KAT)响应数据字段中的安全报文(CCT,CT,DST) 表35(续)GB/T16649.4—2010/[so/me7816-4:2005b8b7b6b5b4b3b2bl含义命令数据字段中的安全报文(CCT,CT,DST)基于密码的用户认证(AT)基于生物特征的用户认证(AT)xxxxxx00(任何其他值保留作未来使用)在任何保持秘密性的控制引用模板中(cT),密码内容引用(tag‘8E’)可指定加密的内容。值字段的第一个字节是必备的,其名称是密码描述符字节。表36为密码描述符字节示意。表36密码描述符字节值含义‘oo’无更多的含义‘1X’一到四个加密信息而不是加密密钥的秘密密钥(‘X’表示‘o’到‘F’的任意值)‘11’表示第一密钥(如,付费电视系统中的“事件”控制字)‘12’表示第二密钥(如,付费电视系统中的“奇数”控制字)‘13’表示接连的第一、二密钥(如,付费电视系统中一对控制字)‘2X’用于加密密钥而不是信息的秘密密钥(‘x’表示‘o’到‘F’的任意值)(如,在付费电视系统中,加密控制字的操作密钥和加密操作密钥的控制密钥)‘3X’非对称钥对中的私钥(‘X’表示‘0’到‘F’的任意值)‘4X’口令(‘X’表示‘0’到‘F’的任意值)‘80’至‘FF’专有——根据ISO/IECJTCl/SCl7,其他值保留为未来使用。6.3.3安全环境本条说明引用密码算法、操作模式、协议、程序、密钥与安全报文和安全操作(见GB/T16649.8)所需的任何其他的数据安全环境(sE)。SE包含存储在卡中的数据元,或经指定的算法计算的结果数据元。SE可包含初始化用于该环境的非持续的数据的机制,如,会话密钥。SE可为处理计算结果提供指示,如卡中存储。行业间的SE模板(tag‘7B’)描述了一个SE。SE标识符:SE标识符(SEID字节)可引用任何安全环境,如,安全报文、通过MANAGESECURITYENVIRONMENT命令(见7.5.11)存储和转存。——除非在应用中另外指定,‘00’表示空环境,其中设有定义安全报文和认证。——‘FF’表示该环境中无操作可执行。——除非在应用中另外指定,‘01’为默认SE所保留,并一直可用。本条未指定默认SE的内容,可能为空。——‘EF’保留为将来使用。组件:控制引用模板(CRT)可描述SE的各种组件。环境定义中的某个机制指定的任何相关的控制引用(文件,密钥或数据),应该根据相关的DF在该机制使用前确定下来。绝对控制引用(如,绝对路径)不需要确定。在SE中,组件可能有两种:一种在命令数据字段中的SM才有效,另一种在响应数据字段中的SM有效。在任意的卡操作期间,应通过默认或作为卡执行命令的结果激活当前的SE。当前SE包含下面的组件中的一个或多个:——某些组件属于与当前DF关联的默认SE。——某些组件通过使用安全报文的命令传送。35 标准分享网www.bzfxw.com免费下载GB/T16649.4—2010/ISO/IEC7816-4:2005——某些组件通过MANAGESECURITYENVIRONMENT命令传送。——某些组件被MANAGESECURITYENVIRONMENT命令中的SEID字节调用。当发生下列事件前,当前SE有效:直到有热复位或触点终止(见GB/T16649.3),或上下文的改变(如,通过选择不公的应用DF),或设置MANAGESECURITYENVIRONMENT命令,或替换当前SE。在SM中,在CRT中传输的控制引用数据对象应优先于任何其他当前SE中出现的相应的控制引用数据对象。证书持有者的认证:认证过程可使用卡可验证的证书,如,通过使用公开密钥(见GB/T16649.8)的VERIFYCERTIFICATE操作,卡能够解释和检验模板。在这样的证书中,证书持有者的认证(如,角色标识符)可转换为通过tag‘5F4C’引用的行业间数据元。如果这样的数据元在安全条件中使用,以实现访问数据或功能,这时该数据对象(tag‘5F4C’)应出现在用于认证的控制引用模板(AT)中,以描述认证的过程。注:因此6B/T16649不赞成使用tag‘5F4B’。访问控制:卡可在包含行业问sE模板(tag‘7B’)的EF中(见表12中的tag‘8D’)存储用于访问控制的安全环境。行业间SE模板中(tag‘7B’),特定上下文类(第一字节‘80’至‘BF’)为安全环境数据对象保留。如表37列出,每个包含的SE,安全环境模板包含一个SEID字节数据对象(tag‘80’),一个可选的LCS字节对象(tag‘8A’),一个或多个可选加密机制标识符模板(tag‘AC’)和一个或多个CRT(tag‘A4’,‘A6’,‘AA’,‘B4’,‘B6’,‘B8’,作为SMtag)。表37安全环境数据对象如果LCS字节数据对象在SE模板中出现,则它表明该SE在哪个生命周期阶段有效。如果SE用于访问控制,如对文件,则该文件的LCS字节和该SE的LCS字节必须匹配。如果无LCS字节,则该SE在激活的操作状态下有效。在SE模板中,如果CRT携带一些有相同tag的数据对象(如,某个密钥引用指定的数据对象),则至少要有一个数据对象存在(OR条件)。SE检索:当前SE中的CRT可以通过GETDATA命令来检索,该命令的P1一P2设置为‘004D’(扩展的头列表,见8.5.1)、该命令的数据字段由SE模板(tag‘7B’)组成、该SE模板由一对或多对CRTtag+‘80’组成(见8.5.1,扩展头列表中设置为‘80’的长度的使用)。6.3.4响应描述符模板每个命令数据字段可包含一个响应描述符模板。如果出现在命令数据字段中,响应描述符模板应指示响应数据字段中所需的SM数据对象。在响应描述符模板中,安全机制尚未应用;接收实体应使用安全机制来构造响应数据字段。用于处理命令数据字段的安全项(算法、操作模式、密钥和初始的数据)可与处理响应数据字段的安全项不同。依照下面的规则:——卡填充每个空的原始基本SM数据对象。——响应描述符模板中出现的每个CRT应该在响应中的相同位置与相同的用于安全机制、文件和密钥的控制引用数据对象一起出现。·如果响应描述符模板提供辅助的数据,则响应中的相应的数据对象应该为空。36 GB/T16649.4—2010/ISO/IEC7816-4:2006·如果辅助数据的空引用数据对象出现在响应描述符模板中,则应该在响应中填充。——通过相关的安全机制和选择的安全项,卡应该处理所有请求的基本SM数据对象。6.4命令·响应对中SM的效果图6为命令响应对的示例。命令头命令体响应体响应尾图5命令一响应对下面规则应用于保护行业间类(见5.1.1)的命令一响应对,如CLA的bit8、bit7和bit6设置为000时,bit4从0变为1,或者CLA的bit8和bit7设置为01时,bit6从0变为1。记号CLA‘为CLA中指明了安全报文。——安全的命令数据字段是一个SM字段,它有下面的形式:·如果有命令数据字段(Nc>0),则无格式值数据对象(SMtag‘80’,‘81’,‘B2’,‘B3’)或保持秘密性的数据对象(SMtag‘84’,‘85’,‘86’,‘87’)应携带该Nc字节。·可以封装命令头(4字节)用以保护(SMtag‘89’)命令头。·如果存在Le字段,应该出现一个新的Le字段(仅包含一个设置为‘00’的字节)和一个新的Le数据对象(SMtag为‘96’,‘97’)。Le数据对象为零和为空时表示最大值,如根据该新Le字段是短型或扩展的,最大值为256或65536。——安全的响应数据字段也是一个SM字段,它应解释如下:·如果存在,无格式值数据对象(SMtag‘80’,‘81’,‘B2’,‘B3’)或保持秘密性的数据对象(SMtag‘84’,‘85’,‘86’,‘87’)携带该响应数据字节。·如果存在,处理状态数据对象(SMtag‘99’)携带为保护而封装的SWl一SW2。空的处理状态数据对象意为SWl一SW2设置为‘9000’。图6展示了响应安全的命令一响应对。命令头命令体l!!垒:型!!!竺I!塑!!三垦!:!!室竺墨塑!垦!:!!:翌!:塾塑兰!!:!!::!!:垦:竺::!塑!:!塑!!!垦!l响应体响应尾圈6安全的命令一响应对当INS的bit1置1(奇INS码,见5.1.2)时,非安全的数据字段编码为BER—TI。V格式,并且SMtag‘B2’、‘B3’、‘84’和‘857应该用于它们的封装。否则,要保护的数据字段的格式并不总是明确的,推荐使用SMtag‘80’、‘81’、‘86’和‘87’。——安全的命令数据字段是一个SM字段,它们可包含更多的或其他的SM数据对象,如密码校验和(SMtag‘8E’)或最后面的数字签名(SMtag‘9E’)。——新的Ire字段中对安全命令的数据字段的字节数编码。——如果安全响应数据字段中无期望的数据字段,那么应该无新的Le字段;否则新的Le字段只包含设嚣为‘00’的字节。——响应尾指明处理该安全命令后接收实体的状态。下面特定的错误条件可能会出现:·如果SWl—SW2设置为‘6987’,则预期的安全报文数据丢失。·如果SWl—SW2设置为‘6988’,则安全报文数据对象出错。附录B提供了安全报文的示例。 标准分享网www.bzfxw.com免费下载GB/T16649.4—2010/ISO/[EC7816-4:20057交换命令本章规定交换命令,分为以下6组:1)选择;2)数据单元操作;3)记录操作;4)数据对象操作;5)基本安全操作;6)传输操作。并不强制所有的卡都遵循本文档,以支持上述命令或命令的所有选项。当需要交互时,一组与应用无关的卡服务和相关命令由第8章规定。7.1选择除非在历史字节(见8.1.1)中或在初始数据串(见8.1.2)中有不同的规定,在复位应答之后,MF和应用DF可通过基本逻辑通道(见5.1.1.2)隐式地进行选择。7.1.1SELECT命令该命令完成时,将打开由CLA(见5.1.1)中数字所指定的逻辑通道(见5.1.1.2),如果尚未打开,则在该逻辑通道中设置一个当前结构,后续命令可以通过该逻辑通道隐式地引用该当前结构。——选择的DF(MF或应用DF)将成为该逻辑通道中的当前DF。如果存在以前选择的DF,则它不再通过该逻辑通道引用,并变成前一个当前DF。在这种选择之后,可以通过该逻辑通道来引用一个隐含的当前EF。——选择EF时设置了一对当前文件:EF及其父DF文件。除非另外规定,下面的规则将适用于一个DF层次结构中每个打开的逻辑通道:——如果当前EF被改变,或在没有当前EF时,将失去针对前一个当前EF的安全状态。——如果当前DF是前一个当前DF的后代,或相同时,针对前一个当前DF的安全状态将保持不变。——如果当前DF既不是前一个当前DF的后代,也不相同时,针对前一个当前DF的安全状态将丢失。先前的和新的当前DF的所有共同祖先,所共用的安全状态将维持不变。表38SELECT命令-nil应对CLA由5.1.1定义INS‘A4’P1见表39P2见表40Lc当Nc=0时不存在,当Nc>o时存在数据字段不存在或文件标识或路径或DF名称(根据P1)Le当Ne=0时不存在,当Ne>0时存在数据字段不存在或文件控制信息(根据P2)SWlSW2见表5和表6相关定义,比如‘6283’,‘6284,,‘6A80,,‘6A81’,‘6A82’,‘6A86’,‘6A87’当P1一‘00’时,卡会知道选择的文件是否为MF、DF或EF,因为有文件标识的特定编码,或者根据命令执行的上下文。——此时,P2一‘00’时,如果提供了文件标识,则在下列情况下,文件标识应唯一:1)当前DF的直接子文件;2)父DF;3)父DF的直接子文件。38 GB/T16649.4—2010/ISO/IEC7816-4:2005——此时,P2一‘00’时,如果数据字段不存在或等于‘3F00’,则选择MF。当P1=‘04’时,数据字段为DF名称,该名称可能是应用标识符(见8.2.1.2),也可能是应用标识的一部分(将右边截短)。如果支持,则这种带有相同数据字段的连续的命令将选择那些名称与数据字段相匹配的DF,比如数据字段是以命令数据字段开始。如果卡接受了不带有数据字段的SELECT命令,则全部DF或DF的子集能够被连续选择。如果Le字段仅包含‘00’,则将返回对应于选择选项的所有字节,其长度对于短Le字段来说不超过256,而对于扩充Le字段,长度不超过65536。如果没有Le字段,比如不返回任何文件控制信息,则响应数据字段也将不存在。表39P1定义b8b7b6b5b4b3b2bl含义命令数据字段0Oo0X通过文件标识选择o0O0选择MF、DF或EF不存在或文件标识0O01选择子DFDF标识0O010在当前DF下选择EFEF标识0O01选择当前DF的父DF不存在0O1X根据DF名选择0O010通过DF名选择如截短的应用标识01Xx根据路径选择0O10从MF中选择无MF标识的路径0101从当前DF中选择无当前DF标识的路径——任何其他值由ISO/IECJTCl/SCl7保留供将来使用。——当出现在历史字节或EF.ART(见82.1.1)中,第1个软件功能表(见表86)指示卡所支持的选择方法。表40P2定义b8b7b6b5b4b3b2bl含义0X文件出现0首次或唯一出现01最后出现0O10下一次出现0O1前次出现0X文件控制信息(见5.3.3和表11)0O返回FCI模版,可选使用的FCI标签和长度01返回FCP模版,强制使用的FCP标签和长度010返回FMD模版,强制使用的FMD标签和长度01当Le不存在无应答数据,当Le存在返回专有——任何其他值由ISO/IECJTCl/SCl7保留供将来使用。7.1.2MANAGEcHANNEL命令该命令打开或关闭除基本通道外的逻辑通道(见5.1.1.2),即从1到19的通道号(大于19保留将来使用)。打开功能打开一个除基本通道外的新的逻辑通道。卡可以分配或接受该逻辑通道。——如果P1的bit8设置为‘0’(比如P1设置为‘00’,因为其他7位被保留将来使用),则MANAGECHANNEl,将以如下方式打开一个编号从1到19的通道:·如果P2设置为‘Oo’,则Le字段应被设置为‘01’,并且响应数据字段应包含一个由卡分配的从‘01’到‘13’的非0的一个字节的通道号。39 标准分享网www.bzfxw.com免费下载GB/T16649.4--2010/ISO/IEC7816-4:2005·如果P2设置为从‘01’到‘13’,则它编码了外部分配的非0通道号,此时Le字段不存在。——当打开功能从一个基本逻辑通道上执行后(CLA编码为0通道号码时),MF或缺省的应用DF应被隐式地选择为新通道上的当前DF。——当打开功能从一个非基本逻辑通道上执行后(CLA编码为非0通道号码时),CLA指定编号的通道上的当前DF应成为新通道上的当前DF。关闭功能显式地关闭一个除基本通道外的逻辑通道,Le字段应不存在。关闭后,该逻辑通道能够重新使用。——如果P1的bit8设置为‘1’(比如P1设置为‘80’,因为其他7位被保留将来使用),则MANAGECHANNEL将以如下方式关闭一个编号从1到19的通道:·如果P2设置为‘oo’,则CLA中编号(非0的通道号)指定的通道将被关闭。·如果P2设置为‘01’到‘13’,则P2中指定的通道将被关闭。警告:如果CLA指示的既不是基本通道也不是P2指示的通道号,则关闭命令将失效。表41MANAGECHANNEL命令一响应对CLA由5.1.1定义INS‘70’P1一P2‘0000’打开应答数据字段中号码指定的逻辑通道‘0001’到‘0013’打开P2中号码指定的逻辑通道‘8000’关闭CLA指定的逻辑通道(除基本通道外)‘8001’到‘8013’关闭P2中号码指定的逻辑通道其他值保留将来使用Le当No=0时不存在数据字段不存在Le当Ne=0时不存在,当Ne--1时存在数据字段不存在(P1P2设置非0时)或‘01’到‘13’(P1P2设置为‘0000’时)SWl一SW2见表5和表8相关定义,比如‘6200’,‘6881’,‘6A81’7.2数据单元操作7.2.1数据单元在每个支持数据单元的EF内均有一个偏移指向每个数据单元。从0对应EF的第1个数据单元开始,偏移每加1对应其下一个数据单元。偏移数据元是最小字节数的二进制编码。指向不包含在EF中的数据单元将导致错误。卡能够在历史字节(见8.1.1),EF.ATR(见8.2.1.1)以及任何文件的文件控制信息(见表12中的tag‘82’)中提供数据编码字节(见表87)。数据编码字节固定了数据单元的大小。——如果卡在几个地方均提供了数据编码字节,则对给定的EF来说,从MF到该EF路径上离它最近位置的数据编码字节是有效的。——路径中如果缺少指示,则数据单元大小对该EF来说是1字节(默认值)。7.2.2通则该组中的所有命令在被应用到不支持数据单元的EF上时,应被中止。仅当安全状态满足read、write、update、erase或search等功能中定义的安全属性时,这些命令才能在EF上执行。该组中每个命令可以使用短EF标识符或文件标识符。当命令发出时,如果存在一个当前EF,则所有对应位设置为0时,操作可以完成。如果操作完成,则被标识的EF成为当前EF。INSP1P2——该组所有命令应按如下方式使用INS的bit1和Pl的bit8。40 GB/T16649.4—2010/ISO/IEC7816-4:2005——如果INS的bit1为0,P1bit8为1,则Pl的bit6、bit7设置为00(RFU),P1的bit5到bitl为EF短标识符,并且P2(所有8位)编码为0到255的偏移。——如果INS的bit1为o,P1bit8为o,则Pl—P2(15位)编码为。到32767的偏移。——如果INS的bit1为1,则P1P2应标识EF。如果P1一P2的前1l位为O,并且P2的bit5到bit1不相等,并且卡和(或)EF文件支持按短文件标识符选择,则P2的bit5到bit1编码为EF短文件标识符(从1到30的数)。否则,P1一P2为文件标识符。P1P2设置为‘0000’标识当前EF。至少一个带有tag‘54’的数据对象偏移应在命令数据字段中。当出现在命令或应答数据字段中时,数据应被封装进带有tag‘53’或‘73’的自主数据对象中。该组命令中,SWlSW2设置为‘63CX’表示成功改变内存状态,但有一个内部重试次数。‘x>0’表示重试次数。‘X一0’表示1i提供重试。7.2.3READBINARY命令响应数据字段给出了支持数据单元的EF的(部分)内容。如果Le字段仅包含设N为‘oo’的字节,则直到文件结尾的所有字节将被读出,对于短Le字段读出字节数长度不超过256,对于二j.r腱Le字段长度不超过65536。表42READBINARY命令一响应对CLA由511定义INS‘Bo’或‘Bl’P1P2见7.2.2Lc当Nc=¨时不存在,当Nc>o时存在数据字段不存在(】NS一‘130’)或数据对象偏移(INS=‘B1’)Le当Ncx,时存在数据字段读出的数据(INS=‘B0’)或读出封装数据的自定义的数据对象(INS=‘"31’)SWl一SW2见表5和表6相关定义,比如‘6281’,‘6282’,‘6700’,‘6981’,‘6982’,‘6986’,‘6A81’.‘6A82’,‘6800’.‘6CXX’7.2.4WRITEBINARY命令该命令根据文件属性将对EF文件执行下列操作之一:——一次写入命令数据字段中指定的数据位(如果数据单元的字串不是在逻辑擦除状态下,则命令将失效)。——将命令数据字段中数据位和卡中已存在数据进行逻辑OR操作(文件的逻辑擦除状态位为o)。——将命令数据字段中数据位和卡中已存在数据进行逻辑AND操作(文件的逻辑擦除状态位为1)。缺省情况下,比如历史字节(见8.1.1)中,或EF.ATR中(见8.2.1.1)以及从MF到指定的EF路径上的每个文件的控制参数(见表12中tag‘82’)中的数据编码字节(见表87)不存在,则逻辑OR操作将被应用到EF上。表43WRITEBINARY命令一响应对CLA由5.1.1定义INS‘DO’或‘D1’P卜P2见7.2.2Lc当Nc>0时存在数据字段要写入的数据单元字串(INS;‘DO’)或要写入的封装的自定义数据对象偏移(INS=‘D1’)Le当Ne=0时不存在 标准分享网www.bzfxw.com免费下载GB/T16649.4—2010/ISO/IEC7816-4:2005表43(续)数据字段不存在SwlSw2见表5和表6相关定义,比如‘63CX’(见7.22),‘6581’,‘6700’,‘6981’,‘6982’,‘6800’(偏移超过EF大小)7.2.5UPDATEBINARY命令该命令执行用命令数据字段中数据位更新EF文件中已存在数据位的操作。当操作完成后,每个指定的数据单元的每一位将被更新为命令数据字段中的指定值。表44UPDATEBINARY命令一响应对CLA由5.1.1定义INS‘D6’或‘D7’P1P2见7.2.2Lc当Nc>0时存在数据字段要更新的数据单元字串(INS=‘D6’)或要更新的封装的自定义数据对象偏移(INS=‘D7’)Le当Ne=0时不存在数据字段不存在SW卜SW2见表5和表6相关定义,比如‘63CX’(见7.2.2),‘6581’,‘6700’,‘6981’,‘6982’,‘6800’(偏移超过EF大/b)7.2.6SEARCHBINARY命令该命令执行在EF中搜索数据单元的操作,响应数据中返回找到的数据单元的偏移:EF中该偏移处的字节串应同命令数据字段中搜索字节串相同。当Le不存在或没找到匹配串时,应答数据字段不存在。如果搜索字串不存在,则应答数据字段返回逻辑擦除状态的第一个数据单元的偏移。表45SEARCHBINARY命令一响应对CLA由5.1.1定义1NS‘A0’或‘A1’Pl—P2见7.2.2Lc当Nc=0时不存在,当Nc>0时存在数据字段不存在或搜索字节串(INS一‘A0’)或偏移数据对象和封装搜索串的自定义数据对象(INS=‘A1’)Le当Ne一0时不存在,当Ne>o时存在数据字段不存在或匹配的第一个数据单元偏移(INS一‘A0’),或指示匹配搜索串的第一个数据单元的偏移数据对象swl_SW2见表5和表6相关定义,比如‘6281’,‘6982’7.2.7ERASEBINARY命令该命令从一个指定偏移开始顺序设置EF(部分)内容为逻辑擦除状态。——如果INS--‘0E’,则如果存在命令数据字段,则它编码为不被擦除的第1个数据单元的偏移,该偏移值应该比P1P2中的值要高,如果数据字段不存在,则命令擦除整个EF文件。——如果INS--‘OF’,则如果存在命令数据字段,则它应由o、1或2个偏移数据对象组成,如果没有偏移,则命令擦除整个文件中的所有数据单元;如果有1个偏移,则它指向第1个要擦除的数据单元,直到擦除到文件结尾;如果有2个偏移,则它表示一个数据单元序列,第2个偏移应比第一个偏移高,它将擦除两个偏移中间的数据单元。42 GB/T16649.4—2010/ISO/IEC7816-4:2005表46ERASEBINARY命令-响应对CI,A由5.1.1定义INS‘0E’或‘OF’P卜P2见7.2.2I.c当Nc—o时不存在,当Nc>o时存在数据字段不存在或第一个不被擦除的数据单元偏移(INS一‘0E’)不存在或1或2个偏移数据对象(INS=‘OF’)1。e当Ne一0时不存在数据字段不存在SWl一SW2见表5和表6相关定义,比如‘63CX’(见7.2.2),‘6581’,‘6700’,‘6981’,‘6982’,‘6800’(偏移超过EF大小)7.3记录操作7.3.1记录每个支持记录的EF内部,由一个记录号和(或)记录标识符来引用一个记录,引用EF外部的记录被视为错误。由记录号引用:每个记录号是唯一的,并是顺序的——在每个支持线性结构的EF中,当添加和写入时,记录号应该按顺序分配,比如按照创建的顺序。第1个记录(记录号为1)是首先被创建的记录。——在每个支持循环结构的EF中,记录号应该依次按逆序分配,比如第1个记录(记录号为1)是最近被创建的记录。下列附加的规则是为线性结构和循环结构定义的:——O应指向当前记录,比如那个由记录指针指向的记录。由记录标识符引用:每个记录标识由应用提供。多个记录可以有相同的记录标识,这种情况下,则由记录中的数据来区别不同的记录。如果记录的数据字段是一个SIMPI,E—TLV数据对象,则记录标识是数据对象的第一个字节,比如SIMPLE—TI,Vtag。由记录标识引用可以促使对一个记录指针进行管理。一次卡复位,一个SEI,ECT命令或任何使用合法的短EF标识符来访问EF文件的命令均能够影响记录指针。但由记录号引用记录将不影响记录指针。每次通过记录标识符的引用,目标记录的逻辑位置应被指出:第一次或最后一次记录的出现或相对于记录指针的下一次或前一次记录的出现。——在每个支持线性结构的EF中,当添加和写入时,逻辑位置应该按顺序分配,比如按照创建的顺序。首先被创建的记录在第一个逻辑位置。——在每个支持循环结构的EF中,逻辑位置应该依次按逆序分配,比如最近创建的记录是第一个逻辑位置。下列附加的规则是为线性结构和循环结构定义的:——首次出现的是指定标识符在第一个逻辑位置的记录。最后出现的是指定标识符在最后一个逻辑位置的记录。——如果有当前记录,则下一个出现的应是有指定标识符的离该记录最近,并且逻辑位置要大于当前记录的记录。前一个出现的应是有指定标识的离该记录最近,并且逻辑位置要小于当前记录的记录。——如果没有当前记录,则下一个出现的应等于第一个出现的记录,前次出现的应等于最后一个出现的记录。43 标准分享网www.bzfxw.com免费下载GB/T16649.4—2010/ISO/IEC7816-4:2006——o应指向第一个,而最后一个,下一个,前一个记录按数字顺序分配,独立于记录标识符。7.3.2通则该组中的所有命令在被应用到不支持记录的EF上时,应被中止。仅当安全状态满足read、write、append、update、erase或search等功能中定义的安全属性时,这些命令才能在EF上执行。该组中两个命令(read,update)使用奇数INS编码(数据字段编码为BER-TLV)开始对指定记录部分的操作(部分读,部分更新)。然后一个偏移将指向记录中的每个字节:从记录的第一个字节开始,偏移每移动一个字节增加1。指向记录外的字节将导致错误。根据需要,偏移数据是tag为‘54’的二进制编码。当出现在命令或响应数据字段中,数据应被封装进tag为‘53’或‘73’的自定义数据对象中。该组中每个命令都可以使用短EF标识符。当命令处理完后,标识EF成为当前EF,并且记录指针被复位。如果在发起命令时存在一个当前EF,则命令处理时无需指明EF(通过设置相应的第5位为o)。P卜记录号或标识,从1到254的数字,编码为‘01’到‘FE’,0被保留为特殊用途。255(以‘FF’编码)保留供将来使用。P2——8位到4位为短文件标识(见表47),bit3到bit1依赖命令。表47P2定义的短文件标识b8b7b6b5b4b3b2bl含义oO当前EF不全为0短EF标识(从1到30的数字)1保留将来使用该组命令中,SWl一SW2设置为‘63CX’表明内存状态改变成功,但在内部重试之后,‘X>0’表示重试次数。‘X一0’表示不提供重试。7.3.3READRECORDS命令响应数据字段给出EF文件中指定记录的(部分)内容(或一个记录的开始部分)。如果INS--‘B2’并且如果记录是SIMPLE—TLV数据对象(见5.2.1),则表50给出了响应数据字段。Nr和TLV结构的比较,表明唯一的记录(读一个记录)或最后一个记录(读所有记录)是完整的、不完整或填充的。注:如果记录不是数据对象,则读所有记录功能将不按边界接受记录。如果INS=‘B3’,则命令读取由P1指定部分记录,命令数据字段包含一个数据对象的偏移(tag‘54’),指向记录中读取的第一个字节。响应数据字段包含一个自定义数据对象(tag‘53’)封装所读数据。表48READRECORD(S)命令-响应对CLA由5.1.1定义INS‘B2’或‘B3’P1记录号或记录标识(‘00’表示当前记录)P2见表49Lc当Nc=0时不存在,当NC>0时存在数据字段不存在(当INS=‘B2’),或数据对象偏移(当INS=‘OF’)Le当NC>0时存在数据字段读取的数据(INS=‘B2’),或封装所读数据的自主数据对象(INS一‘B3’)SWlSW2见表5和表6相关定义,比如‘6281’,‘6282’,‘6700’,‘6981’,‘6982’,‘6986’,‘6A81’,‘6A82’.‘6A83’.‘6CXX’ 表49P2GB/T16649.4—2010/ISO/IEC7816-4:2005b8b7b6b5b4b3b2b1含义由表47定义的短文件标识oXP1中记录标识0读第一个出现01读最后一个出现010读下一个出现01读前一个出现1XxPl中记录号10读记录P1101读从Pl到最后的所有记录10读从最后到P1的所有记录l1l保留将来使用如果Le字段仅包含‘oo’的字节,则命令完整读取请求的单个记录或记录序列,依赖于P2的bit3、bit2和bit1并且对短Le字段长度限制在256字节,扩展Le字段长度限制在65536字节。表50INS=‘B2’时响应数据字段情形a——单记录的部分读(Le字段不仅包含‘00’字节)~一⋯⋯一⋯⋯⋯⋯Nr字节⋯⋯一情形b~单记录的完整读(Le字段仅包含‘00’字节)Tn(1字节)Ln(1或3字节)Vn的所有字节情形c——多记录的部分读(Le字段不仅包含‘00’字节)一⋯⋯~⋯一⋯⋯⋯一Nr字节⋯⋯⋯⋯一一⋯⋯~⋯⋯⋯一情形d——读多记录直到文件结尾(Le字段仅包含‘00’字节)Tn—Ln-Vn⋯Tn+m—Ln+mVn+m(记录的首字节)7.3.4WRITERECORD命令该命令对EF文件执行下列操作:——按给定的命令数据字段中数据一次写入一个记录(如果记录不处于逻辑可擦除状态则命令中止);——将给定的命令数据字段中数据和卡中已存在的数据按逻辑OR操作;——将给定的命令数据字段中数据和卡中已存在的数据按逻辑AND操作。缺省情况下,比如历史字节(见8.1.1)中,或EF.ATR中(见8.2.1.1)以及从MF到指定的EF路径上的每个文件的控制参数(见表12中tag‘82’)中的数据编码字节不存在,则逻辑OR操作将被应用到EF上。当使用当前记录寻址,命令将设置记录指针到成功写入的记录上。如果应用到支持循环结构的固定大小的记录上,“前一个”操作(P2的3,2,1位设置为011)将按APPENDRECORD操作。如果记录为SIMPLE—TLv数据对象(见5.2.1),则由表53定义命令数据字段。 标准分享网www.bzfxw.com免费下载GB/T16649.4—2010/ISO/IEC7816-4:2005表51WRITERECORD命令一响应对CLA由5.1.1定义INS‘D2’P1记录号(‘oo’表示当前记录)P2见表52Lc当Nc>O时存在数据字段要写入的记录Le当Ne=0时不存在数据字段不存在SWl一SW2见表5和表6相关定义,比如‘63CX’(见7.3.2),‘6581’,‘6700’,‘6981’,‘6982’,‘6986’,‘6A81’,‘6A82’,‘6A83’,‘6A84’,‘6A85’表52P2b8b7b6b5b4b3b2bl含义由表47定义的短文件标识oxP1设置为OO0第一个记录01最后的记录010下一个记录O1前一个记录10P1中记录号——任何其他值由ISO/IECJTCl/SCl7保留供将来使用。表53命令数据字段(一个完整记录)Tn(1字节)|Ln(1或3字节)Vn的所有字节7.3.5uPDATEREcoRD命令该命令根据命令数据字段中给定的字节更新指定的记录。当使用当前记录寻址时,命令应将记录指针指向成功更新的记录——如果应用到支持定长记录线性结构或定长记录循环结构的EF上,则如果记录大小不同于存在的记录大小时,命令将中止。——如果应用到支持变长记录线性结构或变长记录循环结构的EF上,则如果记录大小不同于存在的记录大小时,命令仍有效。——如果应用到支持定长记录循环结构的EF上,则“前一个”选项(P2的3,2,1位设置位011)将按APPENDRECORD操作。表54UPDATERECORD命令一响应对CLA由5.1.1定义INS‘13(2’或‘DD’P1记录号(‘00’表示当前记录)P2见表52(INS=‘DC’)或表55(INS=‘DD’)Lc当Nc>O时存在数据字段更新的记录(INS=‘DC,),或数据对象偏移和封装更新数据的自定义数据对象(INS=‘DD’) GB/T16649.4—2010/ISO/IEC7816-4:2005表54(续)数据字段不存在SWlSW2见表6和表6相关定义,比如‘63Cx’(见7.3.2),‘6581’,‘6700’,‘6981’,‘6982,,‘6986,,‘6A81’,‘6A82’,‘6A83’.‘6A84’,‘6A85’如果INS=‘DC’,并且如果记录是SIMPLETI.V数据对象(见5.2.1),则表53显示数据命令字段。如果INS=‘DD’,则部分更新Pl指定的记录。命令数据字段应包括指明要更新记录的第一个字节的偏移数据对象(tag‘54’),或用于封装更新数据的自定义数据对象(tag‘53’和‘73’)。表55INS=‘DD’时的P2b8b7b6h5b4b3b2b1含义由表47定义的短文件标识lXP1中记录号1o0替换10l逻辑AND10逻辑0R1逻辑XOR——任何其他值由ISO/IECJTCl/SCl7保留供将来使用。7.3.6APPENDRECORD命令该命令在支持线性结构的EF文件结尾写入一个新的记录,或在支持循环结构的EF中写入记录号为1的记录。当使用当前记录寻址时,命令应将记录指针指向成功添加的记录。如果命令应用到记录已满的支持线性结构的EF中时,则命令中止,因为文件中没有足够的空间。如果命令应用到记录已满的支持循环结构的EF中时,则记录号最高的记录被替换,该记录号变为1。如果记录为SIMPLE—TLv数据对象(见5.2.1)时,则表53显示命令数据字段。表56APPENDRECORD命令-响应对CLA由5.1.1定义INS‘E2’P1‘oo’(其他值非法)P2见表47,位3,2,1设置为ooo(其他值保留将来使用)Lc当Nc>0时存在数据字段添加的记录Le当Ne=0时不存在数据字段不存在SWlSW2见表5和表6相关定义,比如‘63CX’(见7.3.2),‘6581’,‘6700’,‘6981’,‘6988’,‘6986’,‘6A8l’,‘6A82’,‘6A83’,‘6A84’,‘6A85’7.3.7SEARCHRECORD命令该命令对EF中的记录进行简单的,增强的或专有搜索。搜索可以限制在具有给定标识的记录或比给定号码大或小的记录上,可以按照记录号增序或降序执行。搜索从记录的第一个字节(简单搜索),或记录中指定的偏移(增强搜索)或记录中给定字节的首次出现(增强搜索)开始。响应数据字段给出了47 标准分享网www.bzfxw.com免费下载GB/T1G649.4—2010/ISO/IEC7816-4:2005与支持记录的EF中搜索条件匹配的记录数目。命令将记录指针指向第一个匹配的记录。在支持变长记录线性结构的EF中,命令不考虑比搜索串长度短的记录。在支持定长记录线性结构或循环结构的EF中,如果搜索串比记录长,则命令中止。表57SEARCHRECORD命令·响应对CLA由5.1.1定义JNS‘A2’P1记录号或记录标识(oo表示当前记录)P2见表58Lc当Nc>O时存在数据字段搜索串(P2的3,2位不设置为11,简单搜索)或搜索标志(2字节)跟搜索串(P2的3,2,1设置为110,增强搜索)或(P2的3,2,1设置为111)专有搜索Le当Ne=0时不存在,当Ne:>0时存在数据字段不存在或记录数目SWl一SW2见表5和表G相关定义,比如‘6282’,‘6982’,‘6CXX’——一响应数据字段不存在因为Le不存在或没有找到匹配。——响应数据字段不提供记录标识因为它们可能不唯一。表58P2b8b7b6b5b4b3b2bl含义由表47定义的短文件标识0x按P1中记录标识简单搜索0从首次出现向前01从最后出现向后010从下次出现向前01从前一次出现向后10X按P1中记录号简单搜索10从P1向前101从Pl向后1O增强搜索(见表59)1专有搜索在增强搜索中(P2的bit3,bit2,bitl设置为110),命令数据字段包含1个2字节的搜索指示,其后紧随搜索串。表59规定了第一个搜索指示字节。根据第1个字节,第2个搜索指示字节或者为偏移或者一个值,比如搜索要么从记录中的偏移(绝对位置)开始,要么从该值的首次出现开始。表59搜索指示的第一个字节b8b7b6b5b4b3b2bl含义o下一个字节为偏移(从该位置开始)o1下一个字节为值(从该值首次出现开始)ox按P1中记录标识0从首次出现向前01从最后出现向后O10从下次出现向前01从前一次出现向后1xX按P1中记录号10从P1向前101从P1向后48 表59(续)GB/T16649.4—2010/ISO/IEC7816-4:2005b8b7b6b5b4b3b2bl含义1o从下一个记录向前1l从前一个记录向后——任何其他值由ISO/IECTCl/SCl7保留供将来使用。7.3.8ERASERECORD(S)命令该命令设置EF中一个或多个记录为逻辑擦除状态,要么是由P1指定的记录,或从P1开始直到文件结尾的连续记录序列。擦除记录并不删除记录,并且仍然可以由WRITERECORD命令或UPDATERECORD命令访问。表60ERASERECORD(S)命令一响应对CLA由5.1.1定义INS‘0C’Pl记录号P2见表61Lc当Nc=0时不存在数据字段不存在Le当Ne=0时不存在数据字段不存在SWl一SW2见表5和表6相关定义,比如‘63CX’(见7.3.2),‘6581’,‘6700’,‘6981’,‘6982’,‘6986’,‘6A81’,‘6A82’,‘6A83’,‘6A84’,‘6A85’表61P2b8b7b6b5b4b3b2bl含义短EF标识符(根据表47)1xP1中记录号10擦除P1记录101擦除从P1记录直到文件结尾——任何其他值由ISO/IECJTCl/SCl7保留供将来使用。7.4数据对象操作7.4.1通则该组命令如果应用到不支持数据对象的结构(DF或EF)时将中止。它只能在安全状态满足应用上下文中功能所定义的安全条件时才能执行。INSP1P2——该组所有命令可使用一个奇INS编码(见5.1.2)。INS的第1位根据表62定义,同P1一P2一同使用。表62P1一P2条件P1一P2的值含义偶INS编码‘0000’用于文件导出(见8.4)或面向卡的字串(见8.6)‘0040’到‘00FF’P2中BERTLVtag(单字节)‘0100’到‘01FF’专有‘0200’到‘02FF’P2中SIMPLE-TLVtag‘4000’到‘FFFF’Pl_P2中BER—TLV(双字节)奇INS编码任何值文件标识或短文件标识(见下面文字描述)——任何其他值由1SO/IECJTCl/SCl7保留供将来使用。 标准分享网www.bzfxw.com免费下载GB/T16649.4—2010/ISO/IEC7816-4:2005一如果INS的bit1设置为0,且P1设置为‘oo’,则P2从‘40’到‘FE’应为一个单字节BERTLVtag。如果BER—TLVtag合法并且表明一个结构化编码,则命令设置相应模板为当前上下文。值‘00FF’用于获取所有上下文中可读的通用BER-TLV数据对象,或者表明命令数据字段为BERTLV编码。——如果INS的bit1设置为0,且P1设置为‘01’,则P2从‘oo’到‘FF’应是一个卡内部测试和专有服务的标识符,它的意义在给定应用上下文中明晰。——如果INS的bit1设置为0,且P1设置为‘02’,则P2从‘01’到‘FE’应是一个sIMPLE—TLVtag,值‘0020’保留供将来使用。值‘02FF’用于获取所有上下文中可读的通用SIMPLE—TLV数据对象,或者表明命令数据字段为SIMPLE—TLV编码。如果INS的bit1设置为0,如果PlP2从‘4000’到‘FFFF’,则它们应该是2字节的BERTLVtag。如果BER-TLVtag合法并且表明一个结构化编码,则命令设置相应模板为当前上下文。那些未生效的2字节BER—TLVtag的值保留供将来使用,比如‘4000’和‘FFFF’。——如果INS的bitl设置为1,则P1一P2标识一个文件。如果P1一P2的前11位设置为0,且P2的bit5至bit1都不相等,并且如果卡和/或文件支持短EF标识符选择,则P2的第5到1位编码为短EF标识符(从1到30),否则,P1一P2是文件标识。P1一P2设置‘3FFF’标识当前DF,P1一P2设置‘0000’标识当前EF,除非命令数据字段提供了文件引用数据对象(tag‘51’,见5.3.1.2)标识一个文件。如果命令完成,则标识的文件成为当前文件。数据字段——该组命令的数据字段定义如下:——如果INS的bit1设置为0,如果在当前上下文(比如特定应用环境或当前DF)中请求或提供数据对象,则数据字段或数据字段的串联应包含数据对象的值字段,比如,在SIMPLETLV数据对象或原始BERTLV数据对象情况时引用的数据元,或者是在结构化BER—TLV数据对象情况下所引用的模板。一对2种INS编码,如果提供了一个数据对象集合或请求EF内容时,则相应的数据字段应包含数据对象。7.4.2GETDATA命令该命令返回支持数据对象的EF文件内容,或在当前上下文中(比如特定应用环境或当前DF)可能是结构化的一个数据对象。注:如果对单个响应数据字段来说信息太长.则卡应返回信息的开头,后面跟着SWl一SW2设置为‘61XX’。然后,接下来的GETRESPONSE命令将提供‘XX’字节的信息。该过程可以重复直到卡返回SWl一SW2为‘9000’。如果INS--‘CB’,则命令数据字段将包含一个tag列表数据对象,或一个头列表数据对象,或一个扩展的头列表数据对象(tag‘5C’,‘5D’,‘4D’,见8.5.1)。如果是tag列表情况,响应数据字段将包含由按照列表中的顺序连接在一起的由tag列表中引用的数据对象(可以缺少一个或多个数据对象),一个空列表将要求所有可用的数据对象。一如果是头列表情况,响应数据字段将包含按头列表中引用顺序连接在一起的表中所引用的截短的数据对象。一如果是扩展头列表情况,响应放据字段包含由扩展头列表得到的连接在一起的数据对象(见8.5.1)。当一个tag多次出现时,这种情况不能定义哪个数据对象被返回,因为它依赖于数据对象的内容、特征或定义。如果物理接口不允许卡复位应答,比如通用串行总线或通过无线射频,则GETDATA命令将根据P1P2设置获得特定信息。下列特定信息的一种将从卡中获取。——INS一‘CA’时·tag‘5F51’,复位应答是一个符合GB/T16649.3的最大32字节的串。50 GB/T16649.4--2010/ISO/IEC7816-4:2005·tag‘5F52’,符合8.1.1的最大15字节的历史字节串。——INs一‘CB’且在命令数据字段中含空tag列表,即‘5C00’时,·文件标识‘2F00’,EF.DIR的内容是符合8.2.1.1的BER—TI。V数据对象集。·文件标识‘2F01’,EF.ATR的内容是符合8.2.1.1的BERTLV数据对象集。注1:(背景信息),根据GB/T16649.3定义的物理接口.卡对任何通过接触的冷复位或热复位操作进行应答。复位应答是异步字符序列。初始字符TS表示编码约定并提供基本时间单元的选择。尽管它可以根据约定解码,TS是一个同步模式,并不是一个字节。根据GB/T16649.3,复位应答是最大32字节的字符串。一个称为强制格式字节的TO,后跟着可选的接口字节,可选历史字节(根据81.1编码最多15个历史字节),和一个条件检查字节TCK。当TCK存在时,所有从TO到TCK字节的异或为零。注2:对于ATR信息,如果Le字段数目少于实际长度,则卡不会返回开始信息并跟着SWlSW2设置为‘6CXX’,而是应该使该命令中止,并仅返回SWl一SW2设置为‘6CYY’,表示实际可返回的数据字节长度。然而,‘6C00’表示256字节或更多。而SWl一SW2设置为‘61XX’表示还有‘XX’字节可获取。如果Le字段仅包含‘oo’字节,则所有要求的信息都将被返回,对于短Le字段来说长度限制为256,对于扩展Le字段来说长度限制为65536。表63GETDATA命令一响应对CLA由5.1.1定义INS‘CA’‘CB’P卜P2见表62Lc当Nc=0时不存在.当Nc>o时存在数据字段不存在(INS--‘CA’),或tag列表数据对象或扩展头列表数据对象(INS一‘CB,)Le当Ne>0时存在数据字段根据P1_P2的数据字节(INS=‘CA’)或BER-TLV数据对象的连接(INS=‘CB’)SWl一SW2见表5和表6相关定义,比如‘61XX’,‘6202’,‘6700’,‘6981’,‘6982’,‘6985’,‘6A81’,‘6A88’(数据对象没找到,比如引用的数据没找到),‘6CXX’7.4.3PUTDATA命令该命令管理支持数据对象的EF文件内容,或在当前上下文中(比如特定应用环境或当前DF)可能是结构化的一个数据对象。比如,它允许发送一个“待执行命令”(tag‘52’)或一个持卡人证书(tag‘7F21’),可能对单个命令太长。如果数据对象对单个命令来说太长,则可以应用命令链(见5.1.1.1)。数据对象的值是命令数据字段的连接。数据对象的内容或自然定义应导致一个管理功能,比如一次写入、更新或添加。SWl一SW2设置为‘63CX’表示成功改变内存状态,但在内部重试之后,‘x>0’表示重试次数。‘X一0’表示不提供重试。表64PuTDATA命令-响应对CLA由5.1.1定义INS‘DA’或‘DB’P1一P2见表62Lc当Nc>0时存在数据字段根据P1P2的数据字节(INS=‘DA’)或BERTLV数据对象的连接(INS=‘DB’)Le当Ne=0时不存在数据字段不存在SWl一SW2见表5和表6相关定义,比如‘63XX’,‘6581’,‘6700’,‘6981’,‘6982’,‘6985’,‘6A80’,‘6A81’.‘6A84’.‘6A85’ 标准分享网www.bzfxw.com免费下载GB/T16649.4—2010/ISO/IEC7816-4:20057.5基本安全操作7.5.1通则该组命令保留P1一P2用于算法引用和一些相关数据引用(比如key)等。如果有当前密钥和当前算法,则命令可以隐式的使用它们。P1——除非特别指定,P1引用一个使用的算法:密码算法或生物识别算法(见ISO/IEC7816—11⋯)。P1设置为‘oo’表示不提供任何信息,比如引用在发出命令前已经事先确定,或由命令数据字段提供。P2——除非特别指定,P2根据表65来规定引用数据。P2设置为‘00’表示不提供任何引用信息。比如在命令发出前已限定引用,或由命令数据字段提供。限定字节可以是口令编号或密钥编号,或一个短文件标识。表65P2b8b7b6b5b4b3b8bl含义0O0不提供任何信息0全局引用数据(比如MF特定口令或密钥)l特定引用数据(比如DF特定口令或密钥)00(其他值保留将来使用)限定词,比如引用数据号或秘密号注:一个安全管理环境命令可以设置引用算法和/或一个引用数据限定词。该组命令中,SWl一SW2设置为‘6300’或‘63CX’表示验证失败。‘x’>‘0’表示重试次数。SWl—SW2设置为‘6A88’表示引用数据没有找到。7.5.2INTERNALAUTHENTICATE命令该命令利用接口设备发来的询问数据和存储在卡中的秘密(比如密钥)计算卡认证数据。——如果相关秘密属于MF,则命令将卡作为整体认证。——如果相关秘密属于DF,则命令将认证该DF。任何认证可能在先前的命令(比如VERIFY,SELECT)或选择(比如相关秘密)执行完毕后才能成功完成。为了限制将来的相关秘密和算法的使用,卡能够记录命令发起的次数。注:响应数据字段可以包含有进一步的安全功能使用的数据(比如随机数)。表66INTERNALAUTHENTICATE命令-响应对CI,A由5.1.1定义INS‘88’P卜P2见7.5.1和表65Lc当Nc>0时存在数据字段认证相关数据(比如询问)Le当Ne『=>0时存在数据字段认证相关数据(比如对询问的应答)SWlSW2见表5和表6相关定义,比如‘6300,(见7.5.1),‘63CX’(见7.5.1),‘6581’,‘6700,,‘6988,,‘6983,,‘6984,,‘6A81,,‘6A82,,‘6A86,,‘6A88’(见7.5.1) GB/T16649.4--2010/iSO/IEC7816—4:20057.5.3GETCHALLENGE命令该命令获取用于安全相关过程(比如EXTERNAI。AuTHENTIcATE命令)的质询信息(比如,一个密码验证的随机数,或用于声波特征生物鉴别的一段提示语句)。质询信息至少在下一个命令是合法的,没有其他特定条件。表67GETCHALLENGE命令一响应对CLA由5.1.1定义INS‘84’P1见7.5.1P2‘00’(其他值保留将来使用)Lc当Nc=0时存在数据字段不存在Le当Ne>0时存在数据字段挑战数据SWl—SW2见表5和表6相关定义,比如‘6300’(见7.5.1),‘63CX’(见7.5.1),‘6581’,‘6700’,‘6982’,‘6983’,‘6984’,‘6A81’,‘6A82’,‘6A86’,‘6A88’(见7.5.1)7.5.4EXTERNALAUTHENTICATE命令该命令根据卡的计算结果(是或否)有条件的更新安全状态,该结果基于先前由卡发出的质询数据(比如GETCHAI。LENGE命令),一个存储在卡中的密钥或秘密,和由接口设备传输的认证数据共同计算得出。任何成功的认证要求最近从卡中获取的质询信息。卡将记录不成功的认证(比如限制引用数据的使用次数等)。命令数据字段不存在可以用于得到重试次数‘X’(SWl一SW2设置为‘63CX’)。或检查是否要求验证(SWl一SW2设置为‘9000’)。表68EXTERNALAUTHENTICATE命令·响应对CLA由5.1.1定义INS‘82’P1一P2见7.5.1和表65Lc当Nc=0时存在,当Nc:>0时存在数据字段不存在或认证相关数据(质询的响应)Le当Ne=0时不存在数据字段不存在SWl一SW2见表5和表6相关定义,比如‘6300’(见7.5.1),‘63CX’(见7.5.1),‘6581’,‘6700’,‘6982’.‘6983’,‘6984’,‘6A81’,‘6A82’,‘6A86’,‘6A88’(见7.5.1)互认证功能——互认证功能等效于INTERNAL和EXTERNAI,AUTHENTICATE两条命令。它基于先前的GETCHALLENGE命令和保存在卡中的密钥或秘密。卡和接口设备共享认证相关数据,包括2个质询数据:一个由卡发出,另一个由接口设备发出。注:命令可以用于实现ISO/IEC9798C81中2、3部分的规定的认证。该操作只有在安全状态满足其安全属性时才能执行。53 标准分享网www.bzfxw.com免费下载GB/T16649.4—2010/ISO/IEC7816-4:2005表69MUTUALAUTHENTICATE功能的命令-响应对CLA由5.1.1定义INS‘82’P1一P2见7.5.1和表65Lc当Nc>0时存在数据字段认证相关数据Le当Ne兰0时不存在数据字段认证相关数据SWl一SW2见表5和表6相关定义,比如‘6300’(见7.5.1),‘63CX’(见7.5.1),‘6581’,‘6700’,‘6982’,‘6983’,‘6984’,‘6A81’,‘8A82’,‘6A86’,‘6A88’(见7.5.1)7.5.5GENERALAUTHENTICATE命令该命令细化EXTERNAL、INTERNAL和MuTuALAUTHENTICATE命令功能,也即一个外部世界的实体认证卡中的实体(INTERNALAUTHENTICATE功能),或者卡中实体认证外部世界实体(EXTERNALAUTHENTICATE功能),或两者都认证(MUTUALAUTHENTICATE功能)。当相应的认证机制涉及到质询一响应时,EXTERNAL和INTERNALAuTHENTIcATE命令将排除涉及证据一质询一响应3元组(见IsO/IEC9798-5[81)的认证机制。3元组交互要求两个或更多的GENERALAUTHENTICATE命令一响应对:该命令一响应对可以链接(见5.1.1.1)。该功能(INTERNAL、EXTERNAL或MUTuALAUTHENTICATE)只能在安全状态满足操作的安全属性才能够实现。任何认证可能在先前的命令(比如VERIFY,SELECT)或选择(比如相关秘密)执行完毕后才能成功完成。卡执行控制的结果(是或否)可以有条件的更新安全状态。卡可以记录功能发起的次数,用于限制相关秘密和算法的使用次数。卡将记录不成功的认证(比如限制引用数据的使用次数)。袭70GENERALAUTHENTICATE命令-响应对CLA由5.1.1定义INS‘86’或‘87’P1P2见7.5.1和表65Lc当Nc>0时存在数据字段认证相关数据Le当Ne=0时不存在,当Ne『=>O时存在数据字段不存在(根据Le不存在,比如最近的EXTERNALAUTHENTICATE命令或操作被取消)或认证相关数据SWl一SW2见表5和表6相关定义,比如‘6300’(见7.5.i),‘63CX’(见7.5.1),‘6581’,‘6700’,‘6982’,‘6983’,‘6984’,‘6A81’,‘6A82’,‘6A86’,‘6A88’(见7.3.1)当数据字段存在时,它应包含由tag‘7C’引用的行业间模板。在动态认证模板中上下文相关类(首字节为‘80’到‘BF’)保留用于表71列出的动态认证数据对象。 GB/T16649.4—2010/ISO/IEC7816-4:2005表71动态认证数据对象Tag值‘7C’按照下列tag设置动态认证数据对象‘80’证据(比如小于所用的公共模块一个或多个正数)‘81’质询(一个或多个数字,可能为0,小于使用的公共指数)‘82’响应(小于所用公共模块的一个或多个正数)‘83’提交的响应(包含一个或多个质询的大髓机数的哈希)‘84’认证编码(一个证据数据对象和一个或多个数据字段哈希)‘85’指数(由密钥协商技术用于建立会话密钥一个正数)‘A0’身份数据模板——在该上下文中,ISO/IECJTCl/SCl7保留任何其他数据对象上下文相关类(首字节为‘80’到‘BF’)。下列规则应用于用于动态验证的行业间模板:——如果模板中数据对象为空,则它将在下一个数据字段的模板中完成。——在第一个命令数据字段中,模板表示动态验证功能如下:·一个证据请求,比如一个空证据,表示一个INTERNALAUTHENTICATE功能。·一个质询请求,比如一个空的质询,表示一个EXTERNALAuTHENTIcATE功能。·如果不存在空数据对象,则表示MUTUALAUTHENTICATE功能。除非卡中止该操作,否则响应数据字段中模板应包含同命令数据字段中模板相同的数据字段。MuTuALAUTHENTICATE功能允许2个实体使用一对由tag‘85’引用的指数数据元协商一个会话密钥(见IsO/IEC117703口”中的密钥协商技术)。动态认证可以在会话期间保护交互的数据字段。2个实体都维护一个当前哈希值,一次由一个命令或响应数据字段更新。通过包含带有tag‘80’的证据数据对象的方式,带有tag‘84’的数据对象传送一个由更新当前编码所产生的认证编码。验证者继续重构一个证据和一个认证编码:如果重构的证据非零并且如果2个编码相同,则认证成功。附录C表明对应执行INTERNAL、EXTERNAL和MUTULAAUTHENTICATE功能以及带有扩展数据字段认证和密钥协商的相应GENERAI。AUTHENTICATE命令一响应对。7.5.6VERIFY命令该命令对卡中存储的引用数据和接口设备发送的验证数据(比如口令)或来自卡上的传感器(比如指纹)进行比较。比较结果将更新安全状态。卡将记录不成功的比较(将限制引用数据的使用次数)。——如果INS--‘20’,命令数据字段通常为验证数据。命令数据字段不存在用于检查要求验证(SWlSW2一‘63CX’其中‘X’表示重试次数),或不要求验证(SWlSW2一‘9000’)。——如果INS=‘21’,命令数据字段应为验证数据对象(比如tag‘5F2E’见ISO/IEC781611”。),通常不为空。一个带有扩展头列表的空的验证数据对象(tag‘4D’见8.5.1)表示验证数据将来自卡上的传感器。表72VERIFY命令一响应对CLA由5.1.1定义INS‘20’或‘2l’P1‘oo’(其他值保留将来使用)P2见表65Lc当Nc>o时存在,当Nc盏0时不存在 标准分享网www.bzfxw.com免费下载GB/T16649.4—2010/ISo/IEC7816—4:2005表72(续)数据字段验证数据或不存在(INS=‘20’)验证数据对象以及有条件的扩展头列表(INS=‘21’)Le当Ne=0时不存在数据字段不存在SWI—SW2见表5和表6相关定义,比如‘6286’‘6300’(见7.5.1),‘63CX,(见7.5.1),‘6581’,‘6700’,‘6982’,‘6983’,‘6984’,‘6A81’,‘6A82’,‘6A86’,‘6A88’(见7.5.1)7.5.7CHANGEREFERENCEDATA命令该命令利用接口设备发送来的新的引用数据替换保存在卡中的引用数据,或将其同接口设备发送的验证数据进行比较并利用接口设备发送的新的引用数据有条件的替换原有数据。只有在安全状态满足该命令的安全属性时才能执行。表73CHANGEREFERENCEDATA命令一响应对CLA由5.1.1定义INS‘24’P1‘oo’或‘01’(其他值保留将来使用)P2见表65Le当Nc>0时存在数据字段验证数据后跟无界符的新引用数据(P1设置为‘00’)或新的引用数据(P1设置为‘01’)Le当Ne=O时不存在数据字段不存在SWlSW2见表5和表6相关定义,比如‘6300’(见7.5.1),‘63CX’(见7.5.1),‘6581’,‘6700’,‘6982’,‘6983’,‘6984’,‘6A81’,‘6A82’,‘6A86’,‘6A88’(见7.5.1)7.5.8ENABLEVERIFICATIONREQUIREMENT命令该命令打开要求比较引用数据和验证数据的开关。只有在安全状态满足该命令的安全属性时才能执行。表74ENABLEVERIFICATIONREQUIREMENT命令一响应对CLA由8.1.1定义INS‘28’P1‘oo’或‘01’(其他值保留将来使用)P2见表65Lc当Nc>0时存在,当Nc—o时不存在数据字段不存在(P1设置为‘01’)验证数据(P1设置为‘00’)Le当Ne=0时不存在数据字段不存在SWl一SW2见表5和表6相关定义,比如‘6300,(见7.5.1),‘63CX’(见7.5.1),‘6581’,‘6700,,‘6982,,‘6983’,‘6984’,‘6A81’.‘6A82’,‘6A86’,‘6A88’(见7.5.1) GB/T16649.4--2010/ISO/IEC7816-4:20057.5.9DISABLEVERIFICATIONREQUIREMENT命令该命令关闭要求比较引用数据和验证数据的开关,并且可能打开要求比较其他引用数据和验证数据的开关。只有在安全状态满足该命令的安全属性时才能执行。表75DISABLEVERIFICATIONREQUIREMENT命令一响应对CLA由5.1.1定义INS‘26’P1‘oo’,‘01’或looXXXXX其中XXXXX是引用数据号(其他值保留将来使用)P2见表65Lc当Nc>0时存在,当Nc一0时不存在数据字段不存在(P1设置为‘01’)验证数据(PI设置为‘oo’或lOXXXXX)‘Le当Ne--0时不存在数据字段不存在SWlSW2见表5和表6相关定义,比如‘6300’(见7.5.1),‘63CX’(见7.5.1),‘6581’,‘6700’,‘6988’,‘6983’,‘6984’,‘6A81’,‘6A82’,‘6A86’,‘6A88’(见7.5.1)7.5.10RESETRETRYCOUNTER命令该命令复位引用数据重试次数为其初始值,或在完成一次复位引用数据重试次数为其初始值中改变引用数据。只有在安全状态满足该命令的安全属性时才能执行。表76RESETRETRYCOUNTER命令一响应对CLA由5.1.1定义INS‘2C’P1‘00’,‘01’,‘02’,‘03’(其他值保留将来使用)P2见表65Lc当Nc>0时存在,当Nc=0时不存在数据字段不存在(P1设置为‘03’)复位代码后跟无界符的新引用数据(P1设置为‘00’)复位代码(P1设置为‘01’)新的引用数据(P1设置为‘02’)Le当Ne--0时不存在数据字段不存在SWlSW2觅表5和表6相关定义,比如‘6300’(觅75.1),‘63cx’(觅7.51).‘6581’,‘6700’,‘6982’,‘6983’,‘6984’,‘6A81’,‘6A82’,‘6A86’,‘6A88’(见7.5.1)7.5.11MANAGESECuRITYENVIROMENT命令该命令准备安全报文(见第6章)和安全命令(即EXTERNAL、INTERNAL、GENERALAu—THENTIcATE,也可见GB/T16649.8中的PERFORMSECURITYOPERATl0N)。命令支持下列功能:——sET,比如设置或替换当前SE的一个组件——sTORE,比如用P2中的SEID字节保存当前SE——REsTORE,比如用保存在卡中的SE替换当前SE,并由P2中的SEID字节标识——ERAsE,比如擦除保存在卡中的SE,并由P2中的SEID字节标识57 标准分享网www.bzfxw.com免费下载GB/T16649.4—2010/ISo/IEC7816-4:2005表77MANAGESECURITYENVIROMENT命令·响应对CLA由5.I.1定义INS‘22’P1见表78P2见表79Lc当Nc>o时存在,当Nc=0时不存在数据字段不存在(STORE,RESTORE和ERASE)或控制引用数据对象的连接(SET)Le当NeE0时不存在数据字段不存在SWlSW2见表5和表6相关定义,比如‘6600’,‘6987’,‘6988’,‘6A88’(见7.5.1)表78P1b8b7b6b5b4b3b2bl含义命令数据字段中的安全消息响应数据字段中的安全消息计算、解密、内部认真和密钥协商验证、加密、外部认证和密钥协商01SET1010STOREl0I1RESTORE1010ERASE——任何其他值由ISO/IECJTCl/SCl7保留供将来使用。表79P2值含义‘XX’STORE、RESTORE和ERASE等情况下的SEID字节(GETSE情况下设置为‘00’)SET或GETCRT情况下命令数据字段中控制引用模板tag‘A4’——认证的控制引用模板(AT)‘A6’~—密钥协商的控制引用模板(KAT)‘AA’~—哈希编码的控制引用模板(HT)‘134,~—密码校验和的控制引用模板(CCT)‘B6’~—数字签名的控制引用模板(DST)‘138’——保密性的控制引用模板(cT)——任何其他值由ISO/IECJTCl/SCl7保留供将来使用。KEYDERIVATION功能(密钥派生功能)——主密钥概念要求由主密钥派生卡中的一个密钥。表80显示了MANAGESECURITYENVIROMENT命令的派生密钥的用法。假定主密钥和算法均已选定(否则,MANAGESECURITYENVIROMENT命令能够额外选择一个密钥和算法)。注:依赖引用的算法,从主密钥派生密钥的数据可以是后继命令的部分输入数据(比如EXTERNALAUTHEN.TICATE)。单MANAGESECURITYENVEROMENT命令中的派生密钥用法不是必需的。 GB/T16649.4—2010/ISO/IEC7816-4:2005表80KEYDERIVATION功能的命令一响应对CLA由5.1.1定义INS‘22’P1‘X1’(SET,见表78)P2CRTtag(比如后跟EXTERNALAUTHENTIcATE则为‘A4’,或一个VERIFYCRYPT()一GRAPHICCHEcKsuM则为‘B4’)Lc当Nc>O时存在数据字段f‘94’一L一派生密钥的数据(强制)};须有SM数据对象Le当Ne--0时不存在数据字段不存在SWl一SW2见表5和表6相关定义,比如‘6600’,‘6987’,‘6988’,‘6A88’(引用数据没找到)7.6传输处理7.6.1GETRESPONSE命令该命令发送(部分)响应APDU,这些响应APDU不能被可用的传输协议发送。见GB/T16649.3中例子。如果Le字段仅包含‘Oo’字节,则所有可用字节应被返回,对于短Le字段长度限制为256,对于长Le字段长度限制为65536。表81GETRESPONSE功能的命令一响应对CI。A由5.1.1定义INS‘CO’P1P2‘0000’(其他值保留将来使用)Lc当Ne=0时存在数据字段不存在Le当Ne>0时存在数据字段任何错误情况下不存在,或根据Ne的部分响应APDUSWl一SW2见表5和表6相关定义,比如‘61XX’(‘XX’表示多少额外的可用字节由后续的GETRESPONSE命令取回),‘6281’,‘6700’,‘6A81’,‘6A82’,‘6A86’,‘6CXX’7.6.2ENVELOPE命令该命令发送(部分)命令APDU或BER—TI。V数据对象,这些命令APDU或BER—TI。V数据对象不能被可用的传输协议发送。见GB/T16649.3中例子。注:附录B显示ENVELOPE命令在安全消息上的用法。表82ENVELOPE命令一响应对CLA由5.1.1定义INS‘C2’.‘C3’P1P2‘0000’(其他值保留将来使用)Lc当Nc>0时存在数据字段部分命令APDU(INS:‘C2’)或(部分)BER-TLV数据对象(INS=‘C3’)Le当Ne:>0时存在,当Ne=0时不存在数据字段(部分)响应APDU(INS=‘C2’)或不存在SWl一SW2见表5和表6相关定义,比如‘6700’ 标准分享网www.bzfxw.com免费下载GB/T16649.4—2010/ISO/IEC7816-4:20058与应用无关的卡服务本章描述了与应用无关的卡服务,其在下面的文本中被称作“卡服务”。本章包含下列内容:1)卡标识;2)应用标识和选择;3)通过路径选择;4)数据检索;5)数据元检索;6)卡发起的字节串。卡服务的目的是提供卡和接口设备之间的交换机制,它们(卡和接口设备)两者除了都遵循本部分标准外,彼此互不了解。卡服务来源于下列内容的任何组合:——历史字节(见8.1.1);——EF.DIR和EF.ATR的内容(见8.2.1.1);——命令序列。除非另外指定,命令APDU均使用CLA一‘00’,即,没有命令链接,没有安全报文和基本逻辑通道。只要一个应用在卡内已经被标识和选择,就没有必要遵循本章。应用可以使用与本部分兼容的其他机制来获得类似的功能。因此,这种解决方法可能不保证交换。8.1卡标识该服务允许接口设备标识并处理卡。历史字节(见8.1.1)为卡标识提供一般的支持。卡通过其逻辑内容直接(例如通过卡服务数据字节,见8.1.1.2.3)和/或间接(例如通过初始的访问数据,见8.1.1.2.4,该数据用来指明对复位应答后直接隐式选择的文件的访问以及可能的协议和参数选择)向外界提供信息。因此,此时获得的数据(即初始数据串,见8.1.2),后来有可能不可检索。8.1.1历史字节8.1.1.1目的和一般结构历史字节描述卡的操作特性。——当卡应答复位时,复位应答信息可能包含历史字节(见GB/T16649.3)。——当物理接口不允许卡复位应答时,例如通用串行总线或通过射频RF访问,GETDATA命令(见7.4.2)可能获取历史字节(tag为‘5F52’)。第1个历史字节称为“分类指示符字节”。表83汇总了分类指示符字节为‘oo’、‘10’或‘8X’时历史字节的格式。分类指示符字节为此外的其他值时说明历史字节为专有格式。表83分类指示符字节值含义‘oo’历史字节的最后3个字节为状态指示符(见8.1.1.3)‘10’引用8.1.1.4‘80’状态指示符可能存在于压缩TLV数据对象中(1个、2个或3个字节,见8.1.1.3)‘81’到‘8F’保留供将来使用——其他值表明为专有的格式。——如果第1个历史字节为‘00’,则其余字节由可选的连续的压缩TLv数据对象和后面紧跟的必备的状态指示符(最后3个字节,不在TLv中)组成。——如果第1个历史字节为‘80’,则其余字节由可选的连续的压缩TLV数据对象组成;最后一个数据对象可能带有一个长度为1个、2个或3个字节的状态指示符。 GB/T16649.4—2010/ISO/IEC7816-4:2005任何行业问BER—TLV数据对象由标志字段‘4X’,长度字段‘0Y’和Y个字节的值字段组成,BER—TLV数据对象可以被转化为压缩TLV数据对象,压缩TI.v数据对象则由一个字节的“压缩首标”(设置为‘XY’)和Y个字节的值字段组成。此后定义的任何行业间数据元都可能出现在EF.ATR中。如果数据元出现在EF.ATR中,则为BER—TLV数据对象的格式,即标志字段‘4X’,长度字段‘0Y’和Y个字节的数据字段。8.1.1.2可选的数据元8.1.1.2.1国家或发行者指示符由压缩首标的‘1Y’、‘2Y’引用,此行业问数据元为国家或发行者指示符(见表9,tag为‘41’和‘42’)。表84对国家或发行者指示符进行说明。表84国家或发行者指示符压缩首标值嚣国家编码(见ISO3166—1Ⅲ)和任选的国家数据发行者标识号(见GB/T156941)和可选的发行者数据——国家指示符由国家编码(3个由‘0’到‘9’组成的4元组,见ISO3166—1口1)和紧跟其后的数据(至少一个4元组)组成,后者由相关的国家标准化组织选定(奇数个4位组)。——发行者指示符由发行者标识号(见GB/T15694.1)和可能的紧跟其后的数据组成,如果后者存在,将由卡发行者选定(例如编码采用主账号PrimaryAccountNumber)。注:GB/T15694.1规定,发行者标识号由奇数个‘0’到‘9’4元组组成,通过将最后字节的b4~bl设置为1111映射成字节串。8.1.1.2.2应用标识符由压缩首标‘FY’引用,此行业间数据元为应用标识符(AID,见8.2.1.2,在表9中tag为‘4F’)。如果出现在历史字节或初始数据串中(见8.1.2),AID代表一个被隐式选择的应用(见8.2.2.1)。8.1.1.2.3卡服务数据由压缩首标‘31’引用,此行业间数据元指示卡内支持本章描述的服务的方法。表85对卡服务数据字节进行说明。表85卡服务数据字节b8b7b6b5b4b3b2bl含义xX应用选择1~——使用全部DF名称1——使用部分DF名称XBER—TLV数据对象存在l——于EF.DIR(见82.1.1)内1——于EF.ATR(见821.t)内访问EFDIR和EF.ATR1O0——通过READBINARY命令访问(透明结构)0——通过READRECORD命令访问(记录结构)O10——通过GETDATA命令访问(TLV结构)其他值保留供将来使用0有MF的卡1没有MF的卡如果卡服务数据字节出现在历史字节或初始数据串(见8.1.2)中,则是用来指示是否存在EF.DIR和EF.ATR(见8.2.1.1)文件及如何访问。如果历史字节或初始数据串中不存在卡服务数据字节,则说明卡只支持隐式应用选择(默认值)。61 标准分享网www.bzfxw.com免费下载GB/T16649.4—2010/ISO/IEC7816-4:20058.1.1.2.4初始访问数据由压缩首标‘4Y’引用,此行业间数据元用来指示在复位应答及可能的协议和参数选择之后的第1条命令APDU。该命令APDU将在8.1.2进行详细说明。8.1.1.2.5卡发行者数据由压缩首标‘5Y’引用,GB/T16649不对此行业间数据元进行定义。卡发行者定义长度、结构和编码。8.1.1.2.6预先发行的数据由压缩首标‘6Y’引用,GB/T16649不对此行业问数据元进行定义。卡制造商定义卡制造商、集成电路名称、集成电路制造商、ROM掩膜版本、操作系统版本等的长度、结构和编码。此行业间数据元可能包含一个集成电路制造商标识符(见GB/T16649.6)。8.1.1.2.7卡能力由压缩首标‘71’、‘72’或‘73’引用,此行业间数据元最多由3个软件功能表组成:即第一个表、前2个表或全部3个表。—~第1个软件功能表指明卡所支持的选择方法。——第2个软件功能表称为“数据编码字节”,该字节还可能出现在文件控制参数(tag为‘82’,见表12)的第2个字节。——第3个软件功能表指示链接命令,处理扩展的Lc和Le、管理逻辑通道的能力。表86第1个软件功能表(选择方法)b8b7b6b5b4b3b2bl含义DF选择(见5.3.1)——通过全部DF名称——通过部分DF名称——通过路径——通过文件标识符隐式DF选择所支持的短EF标识符所支持的记录号1所支持的记录标识符表87第2个软件功能表(数据编码字节)b8b7b6b5b4b3b2bl含义1支持TLV结构的基本文件Xx写功能的行为0——次性写01——专有的0——写‘或’1——写‘和’数据单元的大小,以4元组为单位(从l到32768个4元组,即16384字节)(2的幂,例如0001—2个4元组=l字节,默认值)XBER-TLVtag字段的第一个字节值为‘FF’(见5.2.2.1)O——无效(用于填充,默认值)1——有效(长私有tag,结构化的编码) GB/T16649.4--2010/ISO/IEC7816-4:2005表88第3个软件功能表(命令链接、长度字段及逻辑通道)b8b7b6b5b4b3b2bl含义1命令链接(见5.1.1.1)1扩展的Lc和Le字段(见5.1)xX逻辑通道号分配(见7.1.2)1由卡分配1——由接口设备分配0没有逻辑通道Yzt逻辑通道的最大数目(见5.1.1和5.1.2)当y、z和t不全为1时,值为4y+2z十t+1,即从1到7当y—z—t--1时表示值为8或更多保留供将来使用8.1.1.3状态指示符如果分类指示符字节值为‘oo’,则历史字节的最后3个字节为状态指示符,即卡生命周期状态字节(记为LCS)后面紧跟2个处理状态字节(记为SWl一SW2)。如果分类指示符字节值为‘80’,则压缩首标为‘81’、‘82’或‘83’的行业间数据元可能作为长度为1个、2个或3个字节(其他长度被保留供ISO/IECJTCl/SCl7使用)的状态指示符出现在历史字节尾部。——如果长度为1,则数据元为卡生命周期状态字节LCS。——如果长度为2,则数据元为2个处理状态字节SWlSW2。——如果长度为3,则数据元为LCS后面紧跟着SWl一SW2。LCS的说明见5.3.3.2和表13,其值‘oo’表示状态不被报告。SWlSW2的说明见5.1.3和表5、表6,其值‘0000’表示状态不被报告。8.1.1.4DIR数据引用如果分类指示符为‘10’,则后随字节为DIR数据引用。该字节的编码及含义超出了本部分准的范围。8.1.2初始数据串恢复由历史字节(见8.1.1.2.4)中压缩首标‘4Y’或EF.ATR(见8.2.1.1)中tag‘44’引用,行业间数据元“初始访问数据”表示一条命令APDU。——如果长度为1,则命令APDU为如下READBINARY命令(见7.2.3):CLAINSP1P2设置为‘00Bo00oo’,Le字段设置为初始访问数据的第1个也是唯一的字节。——如果长度为2,则初始访问数据的第1个字节用来表示所读的EF的结构(b8)和短标识符(b51),见表89。·如果第1个字节的b8为1,则命令APDU为如下READBINARY命令(见7.2.3):cLAINS设置为‘00Bo’,P1设置为初始访问数据的第1个字节,P2为‘Oo’,Le字段设置为初始访问数据的第2个字节。·如果第1个字节的b8为0,则命令APDU为如下READRECORD命令(见7.2.3):CLAINSP1设置为‘00B201’,P2的b8—4设置为初始访问数据(短EF标识符)的第1个字节的b5—1,P2的b3—1设置为‘110’,Le字段设置为初始访问数据的第2个字节。 标准分享网www.bzfxw.com免费下载GB/T16649.4—2010/ISO/IEC7816-4:2005表89当长度为2时初始访问数据的第1个字节b8b7b6b4b3b2bl含义XEF结构0——记录结构1——透明结构短EF标识符x00xXXXX(其他值保留供将来使用)——如果长度为5或更大,则命令APDU由Y个字节的初始访问数据组成。命令APDU应该提交给卡。如果过程完成,响应数据字段为每个应用都会用到的一串行业间数据对象“初始数据串”。8.2应用标识和选择该服务允许接口设备知道卡内激活的应用(如果有)以及如何标识和选择卡内的应用。8.2.1应用标识8.2.1.1EF.DIR和EF.ATR基本文件EF.DIR和EF.ATR为应用标识和选择提供一般的支持。它们由一组BERTI.V数据对象组成。在这些文件内,对BER-TLV数据对象的删除和修改可能会引起对数据对象的填充(之前,之间或之后)。EF.DIR——该文件指明卡支持的一系列应用,由一组应用模板和/或应用标识符数据对象以任意顺序组成。该文件指明在选择指定的应用时需要执行哪些命令。MF是EF.DIR下的父文件:路径“3F002F00”指向EF.DIR。在MF级,如果存在,短文件标识符30(二进制为11110)也指向该文件。EF.ATR——该文件指明卡的操作特性。它包含一组行业间数据对象,由于与应用选择无关,或EF.DIR文件不存在,这些数据不能放到EF.DIR文件中。MF是EF.ATR的父文件,路径“3F002F01”指向EF.ATR。8.2.1.2应用标识符由历史字节(见8.1.1)的压缩首标‘FY’或初始数据串(见8.1.2)、EF.DIR、EF.ATR和任何DF管理数据(见5.3.3)的tag‘4F’引用,或此行业间数据元指示一个应用。应用标识符最多由16个字节组成,第1个字节的b8~b5用来指明分类,如表90所示。表90应用标识符的分类值分类含义‘0’到‘9’保留以便与GB/T15694.1(见附录D)向后兼容‘A’国际的应用提供者根据ISO/IEC7816—5E”进行国际注册‘B’.‘C’按照ISO/IECJTCl/SCl7要求保留供将来使用‘D’国家的应用提供者根据GB/T16649.5进行国家注册(ISO31661E”)‘E’标准的对象标识符根据GB/T16263.1对标准进行标识‘F’专有的不注册应用提供者图7为国际AlD的说明。它包含5个字节的注册应用提供者标识符(国际RID)和专有的应用标识符扩展(PIX),后者是任选的,最多11个字节。——国际RID唯一标识应用提供者‘见ISO/IEC78165[41)。·第1个字节的b8~b5设置为1010,即第1个4位组为‘A,。·之后的9个4位组的取值为‘0’到‘9’。64 GB/T16649.4—2010/I$O/1EC7816-4:2005——扩展为自由编码,允许应用提供者标识不同的应用。注册应用提供者标识符专有的应用标识符扩展(国际RID,5个字节,第1十字节为‘AX’)(PIX。最多11个字节)图7国际AID图8为国家AID的说明。它包含5个字节的注册应用提供者标识符(国家RID)和专有的应用标识符扩展(PIX),后者是任选的,最多11个字节。——国家RID唯一标识应用提供者(见GB/T16649.5)。·第1个字节的b8~b5设置为1101,即第1个4位组为‘D’。·之后的3个4位组的(取值为‘o’到‘9’)组成国家代码(见ISO3166—1口3)。·其余的6个4位组的取值建议为‘0’到‘9’。——扩展为自由编码,允许应用提供者标识不同的应用。注册应用提供者标识符专有的应用标识符扩展(国家RID,5个字节,第1十字节为‘DX’)(PIX,最多11个字节)图8国家AID图9为标准AID的说明。它最多包含16个字节。第1个字节设置为11101000,即‘E8’。ISO/IECJTCl/SCl7保留‘E0’到‘E7’和‘E9’到‘EF’供将来使用。其后跟随一个对象标识符(GB/T16263.1)用来说明指定应用的标准(见附录A中的例子,比如ISO/IEC781612“3中通过生物方法进行个人识别,或ISO/IEC7816—15[43中加密信息应用)。最后可能跟随应用标识符扩展(根据识别标准指定)来标识不同的实现。图9标准AID图10为专有AID的说明。它最多包含16个字节。第1个字节的b8~b5设置为1111,即‘F’。在该类别中,由于应用提供者未注册,不同的应用提供者可能使用相同的AID。图10专有AID8.2.1.3应用模板’由tag‘61’引用,此行业间模板可能包含在EF.DIR(见8.2.1.1)、EF.ATR(见8.2.1.1)和任何DF(见5.0.3)管理数据中。——这样的模板仅包含一个应用标识符,如果一个目录有多个有效的应用标识符,则每一个应用标识符将处于不同的应用模板。——这样的模板还可能包含其他的和应用相关的行业间数据对象,表91列出这些数据对象,并在后面的内容里进行定义。表91应用识别与选择使用的行业间数据对象tag值‘4F’应用标识符‘50’应用标签‘51’文件引用‘52’命令APDU 标准分享网www.bzfxw.com免费下载GB/T16649.4—2010/[so/mc7816-4:2005表91(续)tag值‘53’‘73’任意数据、任意模板‘5F50’统一资源定位符(见IETFRFC1738E”3和IETFRFC2396(”1)‘61’应用相关的数据对象集合8.2.1.4其他行业问数据元下列行业间数据元为应用标识和选择提供一般的支持。应用标签——由tag‘50’引用,GB/T16649不定义此行业间数据元。它由应用提供者定义并用于人机界面,例如展示的商标。文件引用——由tag‘51’引用,定义见5.3.1.2。自主数据(或模板)——由tag‘53’(或‘73’)引用,包含应用提供者定义的相关数据元(或嵌人数据对象)。统一资源定位符——由tag‘5F50’引人,定义见IETFRFC1738口”和IETFRFC2396”⋯。它指向接口设备中用来和卡内应用通信的部分软件。8.2.2应用选择卡至少应能支持下列应用选择方法中的一种。1)隐式应用选择;2)使用应用标识符作为DF名称进行应用选择;3)使用EF.DIR和EF.ATR进行应用选择。8.2.2.1隐式应用选择如果某应用被隐式选择,则其应用标识符应出现在历史字节(见8.1.1)或初始数据串(见8.1.2)内,应用标识符这样出现即表示为隐式选择的应用。如果某隐式选择应用的应用标识符没有出现在历史字节和初始数据串内,则其应包含在EF.ATR中(见8.2.1.1)。注:隐式应用选择不推荐用于多应用卡。8.2.2.2使用AID作为DF名称进行应用选择在多应用环境下,卡应该明确响应以应用标识符(AID,见8.2.1.2)作为DF名称的SELECT命令。因此,接口设备可以明确地选择应用而不必事先检查该应用是否存在卡内。卡应能支持cI,AINSP1P2设置为‘00A40400’的、数据字段是给定的完整的应用标识符的SELECT命令(见表39)。通过判断应用是否存在,卡完成或终止命令。如果使用截短的DF名称选择,完整的DF名称作为文件控制参数将出现在响应的数据字段,由tag‘84’引用(见表12)。如果卡支持使用截短的DF名称选择,则第1次选择是与实现相关的,例如,第1次出现在静态列表内或前一会话中最后被激活的应用。如果后面还有选择操作,卡应能支持CLAINSP1P2为‘00A40402’、具有相同命令数据字段的SEI。ECT命令。8.2.2.3使用EF.DIR和EF.ATR进行应用选择对多应用的接口设备,使用EF.DIR或EF.ATR可能比前面的方法更有效。——如果应用标识符数据对象不是应用模板的一部分,并且不和文件引用或待执行命令数据对象同时出现,那么使用AID作为DF名称进行选择。——如果应用标识符数据对象是应用模板的一部分,同时还有文件引用数据对象(见5.3.1.2)出现,且其数据字段包含2个或更多字节,那么将依据8.3要求按路径进行选择。——如果应用标识符数据对象是应用模板的一部分,同时还有一个或多个待执行命令数据对象出现,则应用选择使用指定的命令。如果有多个这样的命令,则按照它们在模板里出现的顺序执行。66 GB/T16649.4—2010/ISO/IEC7816-4:20058.3通过路径选择该服务允许通过路径选择EF或未命名的DF,即文件引用数据元(见5.3.1.2)由3个或更多字节组成。——当长度为偶数时,路径为绝对路径还是相对路径取决于前两个字节的设置是否为‘3F00’。最后两个字节用来区别DF和EF。·对于指向DF的路径,选择通过一条或多条SEI。ECT命令执行,其中CLAINSP1P2Lc设置为‘00A4010002’。·对于指向EF的路径,如果长度为4个字节或更多,选择通过一条或多条SELECT命令执行,其中CLAINSP1P2Lc设置为‘00A4010002’。最后一条(可能是唯一的)选择命令使用路径的最后2个字节(EF标识符),其中cI。AINSP1P2Lc设置为‘00A4020002’。——当长度为奇数时,路径是限定的。它或者由不含‘3F00’的绝对路径组成,或者由不含当前DF标识符的相对路径组成,后面的一个字节用作一条或多条SELECT命令的P1。P1的值决定选择的方式。·如果P1的值为‘08’或‘09’,则卡应支持一条选择命令:限定路径指定P1、Lc和数据字段的值,P2设置为‘oo’。·其他情况下,卡应支持一条或多条SEI。ECT命令,其P1设置为限定路径的最后一个字节,P2与Lc设置为‘0002’。路径上的文件按顺序选择。8.4数据检索该服务允许接口设备读存储在DF和EF中的数据。一旦某个DF被选择,和交换相关的内容将成为GETDATA命令(见7.4.2)的响应数据字段,GETDATA命令的CLAINS设置为‘00CA’,其后的P1P2设置为‘00FF’(对于BERTLV数据对象)或‘02FF’(对于SIMPI.E—TI,V数据对象),接下来的Le仅包含一个字节‘oo’。一旦某个EF被选择,如果文件描述符字节(见表14)出现在EF的控制参数里,和交换相关的内容将成为对READ命令(见7.4.2)响应的数据字段。——READBINARY(见7.2.3)命令的CLAINSP1P2设置为‘ooBoooOo’,其后的Le仅包含一个字节‘00’。——READRECORD(见7.3.3)命令的CLAINSP1P2设置为‘ooB20005’,其后的Le仅包含一个字节‘oo’。——GETDATA(见7.4.2)命令的CLAINSP1P2设置为‘00CA0000’,其后的Le仅包含一个字节‘oo’。如果文件描述符字节没有出现在EF的文件控制参数里,则命令APDU遵守如下规则。——如果第一个软件功能表(见表86)出现在历史字节或EF.ATR中,并且表明支持记录,则命令APDU为READRECORD,如上述说明。——否则,即第一个软件功能表没有出现在历史字节或EF.ATR中或该表未表明支持记录,则命令APDU为READBINARY,如上述说明。8.5数据元检索该服务允许接口设备检索用于交换的行业间数据元。——在选择应用之前,如果行业间数据对象存在,应依次直接或间接从历史字节(见8.1.1),初始数据串(见8.1.2)。EF.ATR和EF.DIR(见8.2.1.1)中检索。这些行业间数据对象按照5.2.4中指定的tag分配方案进行说明。——一旦应用被选择,应直接或间接从应用DF的管理数据(见5.3.3)或当前DF中特定的EF中检索行业间数据对象。67 标准分享网www.bzfxw.com免费下载GB/T16649.4--2010/ISO/IEC7816-4:2005·行业间数据对象可能出现在任何文件的管理数据中(见5.3.3)。·行业间数据元可以在封装模板(wrapper)内引用的文件中检索(见8.5.1)。对未命名的DF或通过路径识别的EF的选择在8.3中定义。从选定的EF或DF中读取数据在8.4中定义。·行业间数据对象可以使用GETDATA命令(见7.4.2)检索。8.5.1数据元的间接引用元列表、tag列表、头列表、扩展头列表和封装模板(wrapper)为间接引用字节串中数据元的行业间数据元,例如支持数据单元的EF的内容,完整的命令APDU的数据字段(见8.4),签名的字节串(见16649.8)。这样的数据元指导卡如何解释命令的数据字段或如何构造响应的数据字段。元列表——由tag‘5F41’引用,此行业间数据元表示需要检索的信息不是以数据对象的方式出现,而是在应用的控制之下。它仅在封装模板内使用。其结构和返回信息不在GB/T16649范围内。tag列表——由tag‘5C’引用,此行业间数据元是tag字段的无定界串联。字节串由数据对象组成,数据对象的顺序与tag列表的顺序相同。头列表——由tag‘5D’引用,此行业间数据元是成对的tag字段和长度字段的无定界串联。字节串由值字段组成,值字段的顺序与头列表的顺序相同。扩展头列表——由tag‘4D’引用,此行业间数据元是成对的tag字段和长度字段的无定界串联。字节串构造方式如下:——如果tag表明为简单编码,则tag字段和长度字段对由tag引用的数据代替。长度为零意味着字节串内包含完整的数据对象/数据元。非零长度表明要检索的字节的最大数,以及可能需要进行删节。——如果tag表明为结构化编码,且长度不为零(‘80’除外),则后面的值字段为扩展头列表。如果tag表明为结构化编码,且长度为零,则可忽略。如果tag表明为结构化编码,且长度为‘80’,则字节串内包含完整的结构化的数据对象/完整的模板。——卡应忽略扩展头列表中和目标结构不匹配的数据元。字节串组成可能为下列情形之一:——原始数据对象的值字段,可能需要根据指定的长度进行删节(情形1);或——原始数据对象,可能需要根据指定的长度进行删节,嵌套在相应的模板内,其长度遵守BER—TLV的规则(情形2);——如果长度设置为‘80’,则其将被实际长度代替。字节串内包含完整的结构化的数据对象/完整的模板。字节串的编码(也就是数据对象或数据元)由适当的INS代码或其他命令参数指示,例如,它或者是适当的数据字段的编码(结构化的用来存放数据对象,简单型用来存放数据元),或者是用于PERFORMSECURITYOPERATION命令(见GB/T16649.8)的tag‘AC’、‘BC’(见表31)。例如,下列扩展头列表引用3种简单数据对象。情形1:字节串为数据元的串连。 GB/T16649.4—2010/ISO/IEC7816—4.2005情形2:字节串为数据对象的串连。封装——由tag‘63’引用,此行业间模板由两个数据对象组成。——第一个数据对象为数据元列表(tag为‘5F41’)、tag列表(tag为‘5C’)、头列表(tag为‘5D’)或扩展头列表(tag为‘4D’)。——第二个数据对象是对EF的引用(tag为‘51’,见5.3.1.2)和/或一条或多条将要执行命令(tag为‘52’)。如果是多条,则命令APDU将按照出现的顺序处理。由tag列表等引用的数据对象或头列表等引用的数据元应包含在被引用的文件内,或者为对最后一条命令APDU的响应的(部分)数据字段。在封装内,仅给出一条间接引用。可能存在不只一个封装。例如,下列封装模板由tag列表和一条可执行命令组成。{’63,_I。一{’5C"-L-(Tagl—Ta92一Ta93))一{’52"-L一命令APDU))8.6卡发起的字节串该服务允许卡发起字节串。为了清晰,本条所讲的查询视为卡发送的字节串(或其中一部分),应答视为外界实体发送的响应(或其中一部分)。例如,一组完整的查询可以构成一条命令APDU,一组完整的应答可以构成一条响应APDU,从而允许从卡到接口设备,或从卡到卡之间的通讯服务,该通讯服务可能通过网络实施。本条说明了下列3个特征:——如何使用swlsw2表示卡想要发送字节串,并希望得到响应。——接口设备如何使用GETDATA命令检索来自卡的查询,如何使用PuTDATA命令向卡传送应答(如果有)。——字节串的格式。8.6.1卡触发SWl一SW2设置为‘62XX’,其中‘XX’的取值‘02’到‘80’,表示卡发出一条长度为‘XX,字节的查询,接口设备将检索该查询,同时卡可能在期待该查询的响应。SWl一SW2设置为‘64XX’,其中‘XX’的取值‘02’到‘80’,表示卡终止了命令的执行。命令的执行是否能完成取决于是否能恢复长度为‘XX’字节的查询,卡可能在期待该查询的响应。如果swl一SW2出现在历史字节内并取上述数值,则其含义如上所述。如果用来传送应答的PuTDATA命令(见7.4.3)执行失败,SWl一SW2设置为‘64XX,,则——‘64XX’取值为‘6402’到‘6480’时,表示卡想要另外发送至少一条长度为‘XX’的查询。——‘64XX’取值为‘6401’时,表示卡正在等待立即响应。8.6.2查询和应答为了从卡内检索长度为‘XX’字节的查询,接口设备将发送P1一P2为‘0000’、Le为‘XX,的GETDATA命令。——swl一SW2设置为‘62XX’,其中‘XX’的取值从‘02’到‘80’,表示在外界处理卡发起的字节串之前,接口设备应再次检索一条长度为‘XX’的查询并将其和已经检索到的查询串联。——swl一SW2设置为‘9000’意味着卡发起的字节串是完整的,它可能在外界进行处理。为了向卡传送应答,接口设备将发送P1一P2为‘0000’的PuTDATA命令。如果响应太长而不能由一条命令完成,则多条PuTDATA命令将被链接在一起(见5.1.1.1)。每条PuTDATA命令传送一条应答,这些应答的串联即构成响应。8.6.3格式卡发起的字节串的首字节的值用来指明以下格式。 标准分享网www.bzfxw.com免费下载GB/T16649.4—2010/xso/iEc7816—4:2005如果首字节的值为‘FF’,则接下来的字节将按照ISO/IECTR9577[51的规定编码为初始的协议标识符,字节串应遵守指定的协议。——否则(即首字节的值不等于‘FF’),卡发起的字节串及其响应将构成命令响应对。除了正确使用GETDATA、PUTDATA命令及状态字节SWl一SW2之外,其他任何情形都和卡指示的传输协议相关。本条不对响应需求和可能存在的响应内容的实体做出假设。 A.1对象标识符GB/T16649.4—2010/ISO/IEC7816—4:2005附录A(资料性附录)对象标识符和标记分配方案示例ISO标准中,对象标识符的第1字节是‘28’,即十进制的40(参见Iso/IEc88251)。其后跟随一个或多个字节序列;如果有多于一个字节,那么字节序列中最后一个字节的bit8置0并且之前的所有字节的bit8置1。字节序列中所有字节的bit7至bitl的拼接是一个号码的编码。每个号码应该通过尽量少的字节编码,也就是说,值‘80’在字节序列中的第1个字节是非法的。第1个数字是标准的编号,如果存在第2个数字,它是一个多部分标准中的部分编号。例子1,{iso(1)standard(0)ic—cards(7816))作为ISO/IEC7816的参考。——7816等于‘1E88’,如0001111010001000,如2个7hit的块:0111101000i000。——在每个字节的bit8插入适当的值后,第1个序列的编码就是1011110100001000,即‘BD08’。数据元‘28BD08’可用于标准分类的AID(见8.2.1.2)AID=‘E828BD080BXX⋯XX’(ISO/IEC781611指定应用标识符扩展‘XX⋯XX’)。AID=‘E828BD08OFXX⋯XX’(ISO/IEC7816-15.指定应用标识符扩展‘xx⋯XX’)。例子2,{iso(1)standard(0)e-auth(9798)part(5))作为ISO97985[83的参考。第1个字节序列如下:——9798等于‘2646’,如0010011001000110,如2个7bit的块:10011001000110。——在每个字节的bit8插入适当的值后,第1个序列的编码就是1100110001000110,即‘CC46’。数据元‘28CC460502’引用了ISO/IEC97985”1中的第2个机制,即GQ2。这样的标识符可以携带在一个数据对象中(标记‘06’,通用类,参见ISO/IEC8825—1)。DO一{‘060528CC460502’}例子3,{iso(1)standard(0)mess(9992)part(2))作为ISO9992—2口”的引用。第1个字节序列如下:——9992等于‘2708’,如0010011100001000,如2个7bit的块:10011100001000。——在每个字节的bit8插入适当的值后,第1个序列的编码就是1i00111000001000,即‘CE08’。数据元是‘28CE0802’(第2个系列是‘02’)。其可在数据对象中携带。DO={‘060428CE0802,)A.2标记分配方案默认的标记分配方案示例D01一{‘59029502’)D02一{‘5F2403970331,}D01(标记‘59’,卡终止日期),编码1995年2月作为卡终止日期(参见ISO/1EC7816—6⋯)。D02(标记‘5F24’,应用终止日期),编码1997年3月31日作为应用终止日期。兼容的标记分配方案示例D01一{‘7806’{‘060428CE0802’}}D02一{‘5F2403970331’)D03一{‘7004’(‘8002XXXX’¨D04一{‘670A’{‘5F2903XXXX’){‘8102XXxx’})71 标准分享网www.bzfxw.com免费下载GB/T16649.4--2010/ISO/IEC7816-4:2005D01(标记‘78’,兼容标记分配授权)指出一个在ISO99922Do]定义的兼容的标记分配方案通过其对象标识符引用,如果D01在初始化数据串(见8.1.2)或EF.ATR(见8.2.1.1)中出现,该标记分配方案在整个卡中有效。如果D01出现在一个DF的管理数据(见5.3.3),该标记分配方案授权在该DF中出现。D02(标记‘5F24’,应用终止日期)编码1997年3月31日为应用终止日期。D03(标记‘70’,符合其包含的标记分配授权的行业间模板)包含数据对象,标记‘80’,在ISO9992—2口”中定义;标记‘70’的含义在ISO9992—2口”也有定义。D04(标记‘67’,认证数据模板)包含交换的配置数据对象,标记‘5F29’,和一个定义在ISO99922E”3中的数据对象,标记‘81’;标记‘67’的含义在ISO/IEC7816—4E43定义。另外一个兼容的标记分配方案示例D02一f‘5F2403970331’}D03一{‘700C’{‘060428CE0802’}{‘8004XXXX’))D04一{‘6706’{‘5F2903XXXX’})D02(标记‘5F24’,应用终止日期)编码1997年3月31目为应用终止日期。D03(标记‘70’,符合其包含的对象标识符定义的行业间模板)包含一个数据对象,标记‘06’,该数据对象指定之后的数据对象,标记‘80’,在ISO9992—2‘”1定义。标记‘70’的含义也在ISO99922“”定义。D04(标记‘67’,行业间认证数据模板)包含交换的配置数据对象,标记‘5F29’。注意,由于这个选择不能传输行业间带标记‘78’的数据对象,它不能包含ISO9992—2口”中定义的数据对象。共存的标记分配方案示例D01一{‘7905’{‘060328XXXX’¨D02一{‘7E06’{‘5F2403970331’)}D03一{‘7006’{‘XXXXXX’)}D01(标记‘79’,共存的标记分配授权)指出一个定义在通过‘28’开头的对象标识符引用的标准(1SO标准)中的共存的标记分配方案。这个方案中,D01必须:——如果该标记分配授权在整个卡中有效,则D01必须出现在初始化数据串(见8.1.2)中或EF.ATR(见8.2.1.1)中,否则——如果该标记分配授权在该DF中有效,则D01必须出现在DF中的管理数据中(见5.3.3)。D02(标记‘7E’)是一个嵌套行业间数据对象的行业间模板。注意行业间数据对象“应用终止日期”(标记‘5F24’)出现,编码1997年3月31日为应用终止日期。D03(标记‘70’,根据在模板‘79’中指出的标记分配授权进行解释的行业间模板)只可根据对象标识符指定的标准解释。 GB/T16649.4—2010/ISO/IEC7816-4:2005附录B(资料性附录)安全报文传输示例B.1密码校验和本章说明了GB/T16649.3中定义的四种情形的命令一响应对中的安全报文传输(见第6章)与密码校验和(见6.2.3.1)的使用方法。在下面的例子中,记法CLA*表示在数据字段中使用安全报文传输:在CLA中(见5.1.1),bit8、bit7、bit6置为000且bit4置1,或者bit8、bit7、bit6置为011。在下面的例子中,记法CLA**表示CLA的bit8、bit7、bit6为000,且bit4、bit3为11,即用于认证的数据元的计算中应该包含命令头。另外,命令头可封装在标记为‘89’的数据对象中,即一个包含在用于认证的数据元计算中的SM数据对象。在下面的例子中,记法T*表示标记字段中最后一个字节的bitl置为1(奇标记数),即该SM数据对象应该包含在用于认证的数据元计算中。——情形1无命令数据,无响应数据非安全的命令一响应对如下所示:命令头命令体响应体响应尾AbsentSWl一SW2——情形1.a一未保护韵状态字节安全的命令APDU如下所示:命令头命令体lCLA*INSP1P2{NewLcfield}一{Newdatafield(一T—L-Cryptographiechecksum))l如果密码校验和的长度为4字节,则新的Lc字段置为‘06’。新数据字段一1个数据对象一{T—L-密码校验和)产生密码校验和的数据(CLA*的bit3置1)一1个分组={CLA**INSP1P2填充)安全的响应APDU如下所示:响应体响应尾——情形1.b一受保护的状态字节安全的命令APDU如下所示:命令头命令体{NewLefield}一{Newdatafield(=T—L-Cryptographicchecksum))_lCLA-K-INSP1P2{NewLefield(=’00’)}新数据字段一1个数据对象一{T—L密码校验和) 标准分享网www.bzfxw.com免费下载GB/T16649.4—2010/]SO/IEC7816-4:200574产生密码校验和的数据(CLA*的bit3置1)一1个分组一{CLA**INSP1P2填充)安全的响应APDU如下所示:响应体响应尾Newdatafield(一{T。L—SWl一SW2j_(T—L—Cryptographicchecksum))SWlSW2新数据字段=2个数据对象一{T*一L-SWl一SW2)-{T—L一密码校验和)产生密码校验和的数据一1个分组一{T*L—SWl一SW2一填充}——情形2一无命令数据,有响应数据非安全的命令一响应对如下所示:命令头命令体cLAINsP1P2Lefield响应体响应尾DatafieldSWl一sw2安全的命令APDU如下所示:命令头命令体|cLA*INSP1P2NewLcrid&Newdatafield{NewLcfield(oneortWObytessetto’00‘))新数据字段一2个数据对象一{T*一L—Le}一{T—L一密码校验和)产生密码校验和的数据一1个分组一{T*一IJ-I,e一填充),如果CI。A*的bit3置02个分组一{CLA**INSP1P2填充卜{T*一L—Le填充),如果CI。A*的bit3置1安全的响应APDU如下所示:响应体响应尾INewdatafield。(T--一L{一Tc。*,。-。L。-。P,l。a。in。i。va。l。u。e。}。-。{。T。”,|L—sVVl一sVV2)一SWlSW2新数据字段一3个数据对象一{T-X"一L无格式值卜{T*一L—SWl一SW2)_{T—L一密码校验和)产生密码校验和的数据一1个或多个分组一{T⋯L无格式值T*LSWlSW2一填充)——情形3一有命令数据,没有响应数据非安全的命令响应对如下所示:命令头命令体CLAINSP1P2|Lcfield—Datafield响应体响应尾Absentswl一sw2——情形3.a未保护的状态字节安全的命令APDU如下所示:命令头命令体CLA*INSP1P2NewLcfield—Newdatafield新数据字段一2个数据对象一{T*一L一无格式值}_{T—I。一密码校验和)产生密码校验和的数据一 GB/T16649.4—2010/ISO/IEC7816-4:20051个或多个分组一{T*一I。一无格式值一填充),如果CLA*的bit3置02个或多个分组一{CLA**INSP1P2填充卜{T*L无格式值填充),如果CLA*的bit3置1安全的响应APDU如下所示:响应体响应尾——情形3.b受保护的状态字节安全的命令APDU如下所示:命令头命令体CLA*INSP1P2NewIxfield-Newdatafield-NewLefield(一700’)}新数据字段一2个数据对象一{T*L无格式值)_{TL密码校验和)产生密码校验和的数据一1个或多个分组一{T*L无格式值填充),如果CLA*的bit3置02个或多个分组一{CLA*g-INSP1P2填充}_{T*L无格式值填充),如果CLA*的bit3置1安全的响应APDU如下所示:响应体响应尾Newdatafield(一{T*一L-SWl一SW2)_{TLCryptographicchecksum))lSWl一SW2新数据字段一2个数据对象一{T*一L-SWl一SW2卜{T—L一密码校验和)产生密码校验和的数据一1个分组一{T*一L—SWl一SW2一填充)——情形4有命令数据,有响应数据非安全的命令一响应对如下所示:命令头命令体响应体响应尾安全的命令APDU如下所示:命令头命令体CLA*INSP1P2NewLefield-Newdatafield-NewLefield(oneortWObytessetto’007)l新数据字段一3个数据对象一{T⋯L无格式值}-{T*一L-Le}一{T—L一密码校验和}产生密码校验和的数据一1个或多个分组一{T*L无格式值一T*一L—I,e填充),如果CLA*的bit3置02个或多个分组一{CLA**INSP1P2填充卜{T*一L一无格式值一T*一L_Le一填充},如果CLA*的hit3置1安全的响应APDU如下所示:响应体响应尾Newdatafield(一{T*一DPIainvalue}{T*LSWlSW2}_SWlSW2{T-L-Cryptographicchecksum}) 标准分享网www.bzfxw.com免费下载GB/T16649.4—2010/ISO/IEC7816-4:2005B.2密文带填充或者不带填充的密文的使用(见6.2.2),出现在命令数据字段和响应数据字段中。与之前示例的无格式值数据对象不同,保持秘密性的数据对象应按如下形式使用:——情形a一未编码为BER—TLV的无格式值数据字段一{T—L一填充一内容指示符字节密文)产生密文的无格式值一1个或多个分组一未编码为BER—TLv的无格式值,可能根据指示符字节填充——情形b一编码为BER-TLV的无格式值数据字段一{T—L-密文)产生密文的无格式值一秘密字节串一BER—TLv数据对象(依据算法及其操作模式的填充)B.3控制引用控制引用(见6.3.1和6.3.2)的使用如下:命令数据字段一{T_L一控制引用模板},其中,控制引用模板一{T—L-文件引用)_{T_L_密钥引用)B.4响应描述符响应描述符(见6.3.3)的使用如下:命令数据字段一{T—I一-响应描述符),其中,响应描述符一{T(无格式值)一‘00’。T(密码校验和)一‘00’)响应数据字段一{TL无格式值)_{T—L一(密码校验和)B.5命令ENVELOPEENVELOPE命令(见7.6.2)的使用如下:命令数据字段一{T-L_填充一内容指示字节密文)产生密文的无格式值一命令APDU(以CLA*INSP1P2开始),根据指示符字节填充响应数据字段一{T—L填充内容指示符字节一密文)产生密文的无格式值一响应APDU,根据指示符字节填充B.6安全报文和安全操作之间的协同本章中应用下列符号和缩写术语。CC密码校验和CG密文CLA**带SM指示的CLA(bit8,7和6置000且bit4和3置11)DS数字签名MSE管理安全环境PCI填充内容指示字节PSO执行安全操作SMC安全模块卡USC用户智能卡下面的示例说明了如何使用安全模块卡(SMC),产生发送给用户卡(USC)的安全的命令APDU和处理从用户卡接受的相对应的安全的响应APDU,即产生和处理SM格式的数据字段。该示例阐述了76 GB/T16649.4--2010/ISO/]EC7816-4:20052种方法之间的协同——通过安全操作实现的原子方法(参见GB/T16649.8)和通过安全报文实现的全局方法(见第6章)。示例中假设USC和SMC已经完成相互之间的认证流程,如基于卡上可以验证的证书。该认证流程包含一个密钥传输或者密钥协商机制,因此在该流程后,USC和SMC中存在2个可用的对称密钥:——1个用于密码校验和计算的对称会话密钥;——2个用于计算密文的对称会话密钥。鉴别的流程在USC和SMC中初始化了一个或多个计数器。该示例中未说明USC和SMC如何维护和使用这些计数器。SMC中所有的命令响应对都是PSO命令,未使用安全报文,但使用SM数据对象(和MSC命令设置的SM密钥)。USC中所有的命令相应对使用安全报文,并且命令头包含在密码校验和的计算中,即CLA转换为CLA**。图B.1为产生一条安全的命令APDU的通常原则。图B.1安全的命令APDU的产生图B.2为处理一条安全的响应APDU的通常原则。[互三至至三三至三三三三丑围。。。Interface图B.2安全的响应APDU的处理下面假设的情景解释了数字签名(Ds)的计算中为什么秘密签名密钥的使用需要正确的口令。分三步执行该情景:步骤1——口令验证 标准分享网www.bzfxw.com免费下载GB/T16649.4—2010/mO/IEC7816-4:200578发送到SMC的命令:MSESET(CT,{‘830‘01’。‘8l’)>——该例子中,用于密码校验和计算的会话密钥的引用为‘81’。SMC响应:OK发送到SMC的命令:MSESET(CCT,{‘83⋯01’一‘82’))——该例子中,用于密码校验和计算的会话密钥的引用为‘81’。SMC响应:oK发送到SMC的命令:PSOENCIPHER(Password)SMC响应:(CG(Password))发送到SMC的命令:PSOCOMPUTECC(CLA**一INS-P1一P2一Padding一{‘87’。L—PCI—CG(Password)卜{‘97,-‘0loLe}-Padding)SMC响应:(CC)——现在接口设备构造安全的VERIFY命令APDU。发送到USC的命令:VERIFY({‘87LL—PCI一‘01’一CG(Password))_{‘97,_‘01’‘Le卜{‘8E,_‘04’。CC))USC响应:({‘99’_‘02’‘SWl一SW2卜{‘8E’一‘04’一CC})1.6发送到SMC的命令:PSOVERIFYCC({‘80,-‘04’。(‘99’。‘02’。SWl—SW2))_{‘8E。‘04LCC})SMC响应:OK步骤2——哈希码的计算2.1发送到SMC的命令:PSOCOMPUTECC(CLA**一INS-P1一P2一Padding一{‘81’‘L一({‘90’。L-IntermediateHash}{‘800L—Lastblock)))_{‘97’。‘01。Le}一Padding)sMc响应:(CC)2.2发送到USC的命令:PSOHASH({‘810L1(一4+L2+L3)一({‘90’。L2一IntermediateHash卜{‘8001.3一Lastblock))卜{‘8E’一‘04’。CC))——usc将该哈希码作为内部结果保存用于后续的数字签名的计算。USC响应:({‘990‘020SWl一SW2卜{‘8E’一‘04’一CC})2.3发送到SMC的命令:PSOVERIFYCC({‘80’一‘04’一({‘99’‘‘020SWl一SW2)))_{‘8E’一‘04’CC)>SMC响应:OK步骤3——数字签名计算3.1发送到SMC的命令:PSOCOMPUTECC(CLA**INSP1一P2一Padding-{‘97’一‘01’一‘00’}>SMC响应:(CC>3.2发送到USC的命令:PSOCOMPUTEDS({‘97’一‘01’一‘00’)-{‘8E’。‘040CC))USC响应:(‘81oL-DS8E’。‘04’一CC>3.3发送到SMC的命令:PSOVERIFYCC({‘80’一L1(一2+L2)(‘81’。L2一DS)卜{‘8E’‘‘04’一CC})SMC响应:0K12345l1l c.1引言GB/T16649.4—2010/ISO/IEC7816-4:2005附录C(资料性附录)GENERALAUTHENTICATE命令产生的AUTHENTICATE功能的示例两个或多个GENERAI。AUTHENTICATE命令响应对实现~个AUTHENTICATE功能。——如果使用了命令链,那么该链中从第1个命令到倒数第2个命令的CLA置0xxlXXXX,最后一个命令的cIA置OxxOXXXX:其他6bit应在链中保持常量(见5.1.1.1)。——INSP1P2置为‘860000’或‘87oooo’。——Lc字段的值由命令数据字段中的数据对象决定。根据是否期望响应数据字段,Le字段设置为‘Oo’或者空缺。本附录示例了GENERALAUTHENTICATE命令的数据字段,它实现了诸如ISO/IEC9798—5口]所列出的机制,即使用零知识技术的机制。——验证者知道某个公开问题,证明者知道该公开问题的秘密答案。——作为零知识协议的结果,验证者确信证明者知道该公开问题的一个答案。但是,该答案仍然是一个秘密。注:ISO/IEC9798—5⋯列出两种GQ技术。——通过提供指数v为素数(如,257—28+1,65537—216+1或2”+2”+1)的RSA密钥,GQl技术允许在不知道RSA签名值的情况下验证该RSA签名。如正在使用的RSA签名标准(如,参见ISO/IEC14888—2“61)所述,格式机制将证明者的标识数据(一个模板)转换为公开数G。相应的秘密数Q就是该标识数的RSA签名。证明者和验证者知道该公开的RSA密钥。GQl协议证明了证明者知道他的标识数据的该RSA的签名。——通过提供模数n,两个素数的乘积,GQ2技术允许在不知他们或提供提供素数但不展现他们的情况下,验证这些素数。该方法使用了一个安全参数k>0,并且前m个素数,即m个基础数据,使得k×m在8至36取值。每个公开的数是某个基础数据的平方:G—92。相应的秘密数Q是G的2“1次方根。如果至少存在一个基本数g,使得g和n的雅可比符号为1且如果n与1模4同余,那么GQ2协议证明了n是合数且证明者知道其因子。该协议代表性的交换了3个数据,即一个证据、一个质询和一个响应。——证明者分两步进行:第1步中,证明者秘密地选择一个新的随机数并根据“证据规则”将它转换为一个证据;第2步中,收到质询后,证明者根据“响应规则”,结合新的随机数和秘密数产生该质询的响应,并删除该新的随机数。——验证者根据“验证规则”从该质询和响应重构证据。根据定义,包含3个数的3元组,即一个证据,一个质询和一个响应检验该“验证规则”。任何实体可以在“公开模式”下由任意质询和响应随机产生3元组。鉴定人或观察者不能区分“公开模式”下(不知道该秘密的实体)产生的随机的3元组,和“秘密模式”下(知道该秘密的实体)产生的随机3元组。本附录示例了3种AUTHENTICATE功能。——INTERNALAUTHENTICATE功能外部的验证者认证卡中的证明者。——ExTERNAI。AUTHENTICATE功能卡中的验证者认证外部的验证者。——MUTUALAUTHENTICATE功能一双方认证。C.2INTERNALAUTHENTICATE功能如果第一个数据字段携带证据请求,即一个空的证据(‘8000’)或一个空的认证码(‘8400’),则该79 标准分享网www.bzfxw.com免费下载GB/T16649.4--2010/ISO/IEC7816-4:2005功能是INTERNALAUTHENTICATE。——基本协议(2个命令响应对)来自卡的证据命令数据字段响应数据字段命令数据字段l{’7C"L1(一4+L2)一{’81’一L2一Challenge}一{782f_t00’”l响应数据-7段}{’7C"-L1(一2+L2)一{782"-L2一Response)}——提交的质询(2个命令一响应对)来自卡的证据命令数据字段l{’7C"-L1(一4+L2)一{’83"L2一CommittedChallenge}一{‘80u00『)}响应数据字段l{’7c7一L1(一2+L2)一{’80"-L2一Witness)}注:该提交的质询确保质询和证据的在选择时都是独立的。来自外界的质询和来自卡的响应命令数据字段响应数据字段{77C"-L1(--2+L2)一{782‘一L2一Response}ifthechallengeiscorrectAbsentifthechallengeisincorrect)——数据字段认证的扩展(2个命令一响应对)卡片已经计算了之前交换的数据字段的哈希值:其结果是当前的哈希码。卡包含其用于获取认证码的证据数据对象并通过标记‘84’传送。来自卡的证据命令数据字段响应数据字段命令数据字段响应数据字段C.3EXTERNALAuTHENTICATE功能如果第1个数据字段携带质询请求,即一个空的质询(‘8100’)或一个空的提交的质询(‘8300,)则该功能是EXTERNALAUTHENTICATE。——基本协议(2个命令一响应对)80 命令数据字段响应数据字段GB/T16649.4--2010/ISO/IEC7816-4:2005来自外界的证据和来自卡09质询来自#b界09Ⅱ向应和来自卡的证明命令数据字段[互三三三三三三三三三三三三三三三三三互二二二二二二二二二二]响应数据字段[至三三二二二二二二二二二二二二二二二二二二二二二二二二二二二]——提交的质询(3个命令一响应对)来自卡的提交的质询响应数据字段命令数据字段1{。7Cf-L1(一2+L2)一{’82。L2一Response})j【.......................................................................................................................................................................................一响应数据字段IAbsent——数据字段认证的扩展(2个命令响应对)证明者已经计算了之前交换的数据字段的哈希值:其结果是当前的哈希码。它包含其用于获取认证码的证据数据对象并通过标记‘84’传送。来自外界的证据和来自卡的质询响应数据字段C.4MUTUALAuTHENTICATE功能如果第1个数据字段携带非空的数据对象,则该功能是MUTUALAUTHENTICATEI夕h部在响应中请求与命令数据字段中相同的数据对象。81 标准分享网www.bzfxw.com免费下载GB/T16649.4—2010/ISO/IEC7816-4:2005——基本协议(3个命令响应对)命令数据字段响应数据字段命令数据字段响应数据字段命令数据字段响应数据字段证据质询响应——提交的质询(4个命令一响应对)命令数据字段响应数据字段命令数据字段响应数据字段命令数据字段提交的质询{‘7C’|I,1(一2+L2){’83’一L2一Committedchallenge¨证据质询响应数据字段l:。7。C。"。-。LIi,(。。2。2。。+。,。L。。2。)。-‘:黑:。L。2。-。C。?8“。“88’’i‘‘“8。“8“8“88i8。。‘。。。‘命令数据字段响应数据字段响应—~密钥协定的扩展(4个命令一响应对)一对指数数据元允许会话密钥的协定(参见ISO/IEC11770—300)。第1个命令一响应对交换嵌入一个“指数”数据元的动态认证模板。在示例中,因为会话中之前没有 GB/T16649.412010/IS0/]EC7816.4:2005消息交换,初始的哈希码为空块。为获取当前的哈希码而包含了命令的数据字段,即第一个动态认证模板;为更新当前的哈希码而包含了响应数据字段,即第2个动态认证模板;当前的哈希码在双方实体中应该保持相同。最后为获取一个认证码(各个实体之间不同),包含了一个证据数据对象(非零,未发送,各个实体问不同)。第2个命令一响应对交换了嵌套认证码的带标记‘84’的动态的认证模板。指数命令数据字段响应数据字段命令数据字段响应数据字段命令数据字段响应数据字段命令数据字段响应数据字段证据质询响应 标准分享网www.bzfxw.com免费下载GB/T16649.4—2010/ISO/IEC7816-4:2005附录D(资料性附录)使用发行者标识号的应用标识符D.1背景信息16649.5中,应用标识符中能够使用发行者标识号。本附录指出该AID的格式。D.2格式在第1个字节的bit8到bit5置为‘0’到‘9’之间的AID中,第1个也可能是唯一的字段应该是某个根据GB/T15694.1的发行者标识号。注:GB/T15694.1中,一个发行者标识号可由奇数个从‘0’到‘9’的4bit组组成。然后,通过设置最后一个字节的bit4到1为1111,它被映射到一个字节串中。如果存在专用应用标识符扩展,那么一个设置为‘FF’的字节用于分离这2个字段。图D.1示例了一个使用发行者标识号的AID:它长达6字节。发行者专装鬻嚣”1)‘FF’专有的应用标识符扩展(PIX)图D.1使用发行者标识号的AID GB/T16649.4—2010/ISO/IEC7816—4:2005参考文献[1]ISO3166—1:1997Codesfortherepresentationofnamesofcountriesandtheirsubdivisions--Part1:Countrycodesr2]ISO/IEC7810:2003Identificationcards--Physicalcharacteristicsr3]ISO/IEC78121:2000Identificationcards--Identificationofissuers_Partl:NumberingsystemE4]ISO/IEC7816(allparts)Identificationcards--Integratedcircuitcards[5]ISO/IECTR9577:1999Informationtechnology--Protocolidentificationinthenetworklayer[6]ISO/1EC9796(allparts)InformationtechnologySecuritytechniquesDigitalsignatureschemesgivingmessagerecovery[7]ISO/IEC9797(allparts)Informationtechnology--Securitytechniques--MessageAuthenticationCodes(MACs)E8]ISO/IEC9798(allparts)InformationtechnologySecuritytechniques--Entityauthenti—cationEg]ISO/IEC9979:1999Informationtechnology--Securitytechniques--Proceduresfortheregistrationoferyptographicalgorithmsr10]ISO9992—2:1998Financialtransactioncards--MessagesbetweentheintegratedcircuitcardandthecardacceptingdevicePart2:Functionsmessages(commandsandresponses)dataelementsandstructures[11]ISO/IEC10116:1997Informationtechnology--Securitytechniques--Modesofoperationforann—bitblockcipher[12]ISO/IEC10118(allparts)Informationtechnology--SecuritytechniquesHash—func—r13]ISO/IEC10536Closeeoupledcards[14]ISO/IEC11770(allparts)IdentificationcardsContaetlessintegratedcircuit(s)cards——(allparts)InformationtechnologySecuritytechniquesKeymanage[15]ISO/IEC14443(allparts)Identificationcards--Contacdessintegratedcircuit(s)cards—Proximitycards[163ISO/IEC14888(allparts)InformationtechnologySecuritytechniques--Digitalsignatureswithappendix[17]ISO/IEC15693(allparts)Identificationcards--Contactlessintegratedcircuit(s)cards—Vicinitycards[18]ISO/IEC18033(allparts)InformationtechnologySecuritytechniques--Encryptional—gorithmsr191IETFRFCi738:1994Uniformresourcelocators(URI.)r20]IETFRFC2396:1998UniformresourceIocators(URL):Generalsyntax'

您可能关注的文档