(高清版)GB∕T 29271.4-2019 识别卡 集成电路卡编程接口 第4部分:应用编程接口(API)管理_第1页
(高清版)GB∕T 29271.4-2019 识别卡 集成电路卡编程接口 第4部分:应用编程接口(API)管理_第2页
(高清版)GB∕T 29271.4-2019 识别卡 集成电路卡编程接口 第4部分:应用编程接口(API)管理_第3页
(高清版)GB∕T 29271.4-2019 识别卡 集成电路卡编程接口 第4部分:应用编程接口(API)管理_第4页
(高清版)GB∕T 29271.4-2019 识别卡 集成电路卡编程接口 第4部分:应用编程接口(API)管理_第5页
已阅读5页,还剩197页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

识别卡集成电路卡编程接口国家市场监督管理总局中国国家标准化管理委员会IGB/T29271.4—2019 V V 1 1 24缩略语 3 35.1概述 3 65.3忠诚栈 85.4不透明ICC栈 8 95.6ICC本地栈 5.7远程ICC栈 5.8服务访问层扩展 6安全体系结构 6.1路径保护政策 6.3安全报文传输 6.4可信信道密钥管理 7连接组件 7.1概述 7.2操作请求和响应语义 7.4可信信道接口(TC_AP 23 8.1概述 8.3SALAPI操作映射到GB/T16649.15属性 8.4特定卡APDU映射到GB/T16649.15属性 附录A(规范性附录)路径保护机制 附录B(资料性附录)IFD-API:Web服务绑定 附录C(资料性附录)IFD-Callback-API-Web服务绑定 Ⅱ附录D(资料性附录)GB/T29271.4-IFDAPI模块 附录E(资料性附录)GB/T29271.4-TCAPI模块 附录F(资料性附录)程序元素的增强使用 附录G(资料性附录)用于GB/T16649.15数据结构处理的API 附录H(资料性附录)轻量级服务访问层(SALAPILITE) 附录I(资料性附录)密码信息应用示例 附录J(资料性附录)转换ASN.1模块 附录K(资料性附录)可互操作访问存储库 附录L(资料性附录)CryptoAPI(CAPI)通过程序元素访问 图1GB/T29271体系结构 4图2GB/T29271栈的通用元素 5图3后续数据的图例 6图4卡端应用和客户端应用之间的网络连接 7 8图6不透明ICC栈 9图7远程忠诚栈 图8ICC本地栈 图9远程ICC栈配置 图10网络栈 图11委托-代理机制 图12发现鉴别协议值 43 图A.1带安全报文传输和不带安全报文传输的通信 图A.2命令头转换 图A.5创建包含Le字段的DO 图A.6MAC运算 图F.1程序元素功能 图F.2完整互操作网络栈 图F.3当前全网络栈 图F.4建议配置 图F.5当前忠诚栈 图F.6建议忠诚栈 图F.7当前不透明ICC栈 图F.8建议不透明ICC栈 图F.9当前远程忠诚栈 ⅢGB/T29271.4—2019图F.10建议远程忠诚栈 图F.11当前远程ICC栈 图F.12建议远程ICC栈 图I.1基于UML的eService计算模型(基于GB/T29271对象) 46表10SALAPI操作映射到GB/T16649.15属性 表11DataContainerObject的属性(GB/T16649.15DO) 表12EF或DO识别 表13EF文件内容示例 表1.1基于对象的"myservice"数据集 V本部分为GB/T29271的第4部分。7.5和第8章);●用等同采用国际标准的GB/T29271.2代替了ISO/IEC24727-2(见第5章、第6章、第8●用修改采用国际标准的GB/T29271.3代替了ISO/IEC24727-3(见第5章、第6章、第7●将参考文献ISO/IEC19784-1:2006移至规范性引用文件,并用等同采用国际标准的●增加引用了ISO/IEC24727-2:2008/Amd1:2014(见5.8);●将国际标准中出现的ISO/IEC24727-5移至规范性引用文件(见5.1和图——附录D的第一句“ISO24727-4-IFDAPI{iso(1)standard(0)iso24727(24727V“GB/T29271-COMMON{006.29271}”;“revMajGBT29271-4-IFDAPI”“revMinGBT29271-4-IFDAPI”;——附录E的第一句“ISO24727-4-TCAPI{iso(1)standard(0)iso24727(24727)part4(“GB/T29271-COMMON{006.29271}”;——附录I的I.的倒数第7行“iso(1)standard(0)iso247——附录J的第4行“ISO/IEC24727-4-PE{iso(1)standard(0)iso24727(24727)part4(4)clause“GB/T29271.4-COMMON{006.29271}”;M样的协议栈:通过它可以利用命令来交换卡片间的信息和事务。传送这些命令的报文结构在——GB/T16649.8—2002识别卡带触点的集成电路卡第8部分:与安全相关的行业间命令 1识别卡集成电路卡编程接口GB/T15852.1—2008信息技术安全技术消息鉴别码第1部分:采用分组密码的机制GB/T16649.15识别卡集成电路卡第15部分:密码信息应用(GB/T16649.15—2010,ISO/GB/T29271.2识别卡集成电路卡编程接口第2部分:通用卡接口(GB/T29271.2—2012,ISO/IEC24727-2:2008,IDT)IEC24727-3:2008,MGB/T30267.1—2013信息技术生物特征识别ISO/IEC7816-15:2004/Amd2:2008识别卡集成电路卡第15部分:密码信息应用修改单2:2008(ISO/IEC7816-15:2004Identificationcards—Integrinformationapplication/Amd2:2008)ISO/IEC24727-2:2008/Amd1:2014识别卡集成电路卡编程接口第2部分:通用卡接口修改单1:2014(ISO/IEC24727-2:2008Identificationcards—Integratedcircuitcardprog2ISO/IEC24727-5识别卡集成电路卡编程接口第5部分:测试规程(Identificationcards—Inte-gratedcircuitcardprogrammingIETFRFC2246TLS协议V1.0(GB/T29271协议栈GB/T29271protocolstack在一个单独忠诚平台上实现的GB/T29271栈,全栈包括从客户端使用GB/T29271将客户端应用连接到卡端应用的所有平台和信道的安全特性规范。3DO:数据对象(DataObject)Enc:加密(Encipher)4应用4应用4应用2应用3124727-5测试理理通过ISO/IECGCI层实现1212ICC栈是GB/T29271.2实例化应与其所能支持的卡端应用紧密耦合的配置;紧密耦合意味着5SAL-API委托信道22、3和4。从5.2到5.7,指定了6类不同的栈配置。这些构成了符合GB/T29271栈的集合。符合6委托委托代理委托-代理模式栈元素卡端应用和客户端应用的通用互联允许栈的每个组件通过网络连接连接到其相邻组件,如图4GB/T29271的全网络栈配置需要将GB/T29271栈分割成可互操作的组成部分。尽管在例行操作设置中不太可能使用这种栈配置,但通过测试此配置的一致性,可以确定组件互操作性的细粒度全网络栈的实现应通过各种组件的静态网络配置实现。GB/T29271不要求组件的动态过程调用。建立端到端安全特性应通过GB/T29271.3API所传递的参数来实现。栈实例化和操作随后可能需要给GB/T29271.2接口传递带外数据(out-of-band,OOB)参数,特别是建立合适的密钥,以在相应的栈建立和连接(以及会话)安全特性的建立应按第5章中规定的所有其他栈配置的实例来7API分组信道。如果客户端应用调用的路径保护策略指定增强的安全等级,这种对信道8如图5所示,忠诚栈是完整的GB/T29271栈在忠诚平台上的实现,因此除了通过接口设备连接5.4不透明ICC栈不透明ICC栈将GB/T29271.2层实现和接口设备层实现整合形成一个单独个过程中它的可信信道层将作为可信信道协商的服务组件(见IE9客户端应用IFD代理影响GB/T29271.2层实例化与卡端应用之间实现安全报文传输的密钥可以在GB/T29271.2中描述的GB/T29271.2层引导操作中被程序元素获得。远程忠诚栈将忠诚栈分为两个不同部分,允许客户端应用从它支持的用于通信的GB信信道的委托通信如图7所示。API分组SALAPI代理5.6ICC本地栈ICC本地栈在卡端应用中提供完整的GB/T29271栈实现。唯一的卡外组件是SAL-API委托和种不同的路径将分组的API传送给客户端应用。通过由GB/T29271.3中定义的CardApplicationPathAPI分组图8ICC本地栈在客户端应用通过操作实例化GB/T29271协议栈时,卡端应用的可信信道层实例化应作为静态不是由GB/T16649定义的。SALAPI的分组元素可以通过GB/T16649.4—2010中定义的ENVE-5.7远程ICC栈图9描述了一个远程ICC栈。在此配置中,全GB/T29271栈在与客户端应用相同的平台上实现。——CardApplicationConnect(——CardApplicationList(——CardApplicationServiceListCardApplicationServi——DataSetList();——DSIList();——DSIRead();——DIDList();——DIDGet();SALAPILite实现应在引导程序中启动基于GB/T16649.15的注册表处理的。此外,在ICC本地栈中,用于互操可选SALAPILite实现可以依赖于静将GB/T29271.3API函数的形式语言表示直接转换为卡特定APDU。唯一需要的GB/T29271.2GCIAPDU指令是ENVELOPEAPDU。ENVELOAPI分组b)API调用被分组成XML或者DER-TLV,TC被发送到SALAPILite组件。c)SALAPILite将所请求的数据结构(即Data过SALAPI发送一个DataSetSelect调用)。k)API调用被分组成XML或者DER-TLV格式并通过TC层发送到SALAPILite组件。和每个DSI相关联的卡上属性。或者SALAPILite可以发送SELECTAPDU指令给卡片,DF或ADF中的DF实例。为了将卡上属性映射到DSI属性,GB/T29271.3中的DSILis- n)客户端应用发送DIDAuthenticate(根据上面的步骤i)]以完成控制DSI内容读取的访问客户端应用IFD委托IFD代理卡端应用 注:(*)APDUC-RP=APDU命令响应对,即GETDATA或READBINARY。符合GB/T29271栈将通过中间栈组件影响客户端应用和卡端应用之间点应是客户端应用和卡端应用。路径保护策略的规范应通过GB/T29271.3API作为连接服务的卡端应用鉴别和源鉴别路径保护策略类别应通过GB/T29271.3由于各种栈配置的组成,并不是所有的路径保护策略类都可以在所有配置上使用。表2给出了在第5章中定义的各种栈配置上可以实现的最严格的类。保护ICC本地栈作为CardApplicationPath请求返回的可用路径的一个元素,执行CardAppli和卡端应用的连接。然后可以通过使用指定的所需鉴别协议执行CardApplicationStartSession来建立由访问控制列表定义的所有访问规则应由任何符合GB/T29271.3层实现的方式执行。预计这种执行将通过使用由GB/T29271.2层实现的机制在卡端应用内建立访问规则来实现。这并不排除这些AR执行机制被可用的ICC或PICC机制所增强。引用安全报文传输的任何路径保护策略都应使用附录A的机制。安全报文传输应使用安全报文传输信道每个终端的公共密钥,以便计算附录A机制所需卡端应用的通信已减少到符合GB/T16649.4—2010的APDU。这点在GB/T29271.3层实现或GB/T29271.2层实现。为了实现安全报文传输,公共密钥在这点以及在卡端应用中可用。用于在GB/T29271.2层实例化过程中实现安全报文传输的密钥可以是层内部或由GB/T29271.2中定义的启动引导操作过程中的过程元素派生。用于在GB/T29271.3层实例中实现安全报文传输的密钥应由当一个APDU受到安全报文传输的保护时,它可以按GB/T29271.2的规定在GCI上传输,或作为IFD-API上的REQUEST或CONFIRMATION的参数传输。分组&解组分组&解组道分组&解组分组&解组b)将GB/T29271.3API编组成ASN.1数据流;该函数启动握手,通过该握手在信道两端的客户端和服务器建该函数通过可信信道将消息传递到可信信道的另一端终点该函数接收来自可信信道的消息该函数获取可信信道的当前状态,包括可信信remoteAddress,channelParams,channelHandle无API_OK无API_OK无API_OKAPI_WARNING_BUFFER_LENGTH_EXAPI_UNKNOWN_HANDLE未知句柄未知错误TC_API_Write请求将消息结构体放入可无API_OK未知错误未知句柄无API_OK无API_OK未知句柄7.5接口设备API(IFDAPI)接口设备API包含以下槽终端相关请求:——EstablishContext——ReleaseContext——ListIFDs ——ControlIFD接口设备API包含以下槽相关请求:—Connect ——BeginTransaction——Transmit接口设备API包含以下用户相关请求:——VerifyUser——ModifyVerificationDa—Output更改验证数据;本章中定义的接口设备API,只能通过SAL层或者GCI层访问。任何操作请求的返回代码,如果ChannelHandle可选参数,可用于向远程系统指向已建立的信道。该参数通过调用GB/T29271.4中定义的函数TC_API_OpenIFD_INVALID_CHANNEL_HANDLE提供的ContextHanIFD_UNKNOWN_ERRORIFD_OK请求成功IFD_TIMEOUT_ERRORIFD_INVALID_CHANNEL_HANDLE提供的ContextHandle不可用GetIFDCapabilities请求返回特定IFD及相关功能单元的信息。包含给定IFD及其功能单元的信息。它是IFDCapabilitiesType类型,其结{{{{positiveInteger{BiometricType:生物传感器的类型,在GB/T30267.1—2013的7.8中IFD_OK请求成功IFD_TIMEOUT_ERROR请求在完成之前超时IFD_INVALID_CHANNEL_HANDLE提供的ContextHandle不可用IFD_UNKNOWN_IFD提供的IFDName未知IFD_UNKNOWN_ERROR未知错误GetStatus请求返回一个接口设备及其相关功能IFDNameOPTIONAL,IFDStatus表示特定的IFD或所有IFD,并包含了它们的当前状态。它是IFDStatusType{StringBooleanTypeConnectedOPTIONAL,BooleanTypeActiveAntennaOPTIONAL,SimpleFUStatusTypeBioSen{BooleanTypeCardAvai{提供的IFDName未知GB/T29271.4—2019INpositiveIntegerSessionIdentifierCallbackChannel一个回调函数,当预设事件触发时,允许从等待函数进行异步回调IFDStatus对每个IFD都存在,应对其进行监测并包含当前IFD的假定状态。它是FD-提供的ContextHandle不可用提供的IFDName未知Cancel请求尝试在给定的IFD上终止当前处理的命令。IFD_INVALID_CHANNEL_HANDLE提供的ContextHanIFD_UNKNOWN_ERRORIFD_INVALID_CHANNELIFD_UNKNOWN_ERRORIFD_INVALID_CHANNEL_HANDLE提供的IFD_UNKNOWN_IFD提供的IFDIFD_UNKNOWN_ERRORAltVUMessagesOPTIOpositiveIntegerTimeoutUntilFirstKeyOPTIONpositiveInteger{PinInput用于使用PIN(包括密码)执行用户验证的情况。该参数为{PasswordAttributesTypePasswo{PasswordFlagsTypepwdFlagsType,nonNegativeIntegerminLnonNegativeIntegermaxLengthOPTIONAL,PadCharTypepadCharDateTimeTypelastPasswordChangeOPTIONAL在GB/T16649.15中定义了通过PasswordAttribu{BiometricSubType:指定在ISO/IECFDIS19784-1:2006的7.14中定码),并在验证过程中显示。该参数为AltVUMessageType类型,定义如下:{stringAuthenticationRequestMessastringSuccessMessagestringAuthenticationFailedMessagestringRequestConfirmationMessageOstringCancelMes可以使用不同的参数明确指定在验证过程中要显示的内容。如果某些参数被省略,则将使用适当的(一组)默认消息可选参数,它指定第一个键按下前的超时时间(毫秒)可选参数,它指定第一个键按下后的超时时间(毫秒)验证数据模板,其中验证数据由IFD在发送给卡之前插入卡响应IFD_UNKNOWN_BIOMETRIC请求成功请求在完成前超时提供的SlotHandle无效指定的输入单元未知用户取消操作未知错误指定PIN格式未知指定生物识别格式未知7.5.16ModifyVerModifyVerificationData请求启动对验证数据(PIN或者生物识别模板)的修改。该函数也可用于通过提供个人解锁密钥(PUK)来解锁PIN。positiveIntegerpositiveIntegerTimeoutAfterFirstKeyINOCTETSTR改验证数据过程中显示。参数的类型是AltMVDMessageType,定义{stringAuthenticatiostringSuccessMessagstringAuthenticatstringEnterNewAuthenticationDataMessstringRepeatInputMesstringComparisstringRequestCGB/T16649.4—2010中定义的CHANGEIFD_UNKNOWN_BIOMETRI指定PIN格式未知{positiveInteger用Cancel请求为了实现各种服务访问层之间的互操作性,需要记录用于在GB/T29271.3的API函数和 说明ACL条目X“DATA-SET”作为表示目标类型的前级,与DataSet实际名称连接authld指加密信息应用(DF.CIA)内的CIO表4(续)说明ACL条目空GB/T16649DO容器,用于DataSet中的DSI《未使用〉DSI的accessRules由Data《未使用〉DSI的accessRules由DataSecessRules控制7816-15:2004/Amd2:2008的要如果该操作由DIDs逻辑组合控制,则几个连续的securityCondition值可以提供不同SALAPI操作的相同访问模式。组合DIDs的逻辑操作是AND或OR依赖于securityCondition的ASN.1编码。保护DataSet的访问规则引用的DID可以是鉴别信息对象、私有对象或保密密钥。保密密钥和私表5显示了CardApplication到DataContainerObjectChoice的映射,并描述了如何从中派生说明ACL.条目X“CARD-APPLICATION”作为表SALAPI操作SAL操作应符合表12和表10中的值authld指加密信息应用(DF.CIA)表5(续)说明ACL条目applicationName或者有DataSet的卡端应用的应用OID都不应是空(DataSet名称、DID名的对象名称7816-15:2004/Amd2:2008的要如果操作由DID的逻辑组合控制,则几个连续的securityCondition值可能会提供不示SALAPI操作的相同访问模式。组合DID的逻辑操作是AND或OR依赖于securityCondition的ASN.1表6给出了将Service映射到一个DataContainerObjectChoice的可选方法,但是由于一个命名服表6Service映射到ACL说明ACL条目XService名称应包括采用ASCII编ACLLIST可以评估为ALWAYS。authld是对保护当前CIO的鉴别对象的交叉引用应为空值。它给出了在卡端应用中实现命名服务的可执行代码的空iso7816DO容器用于服务内的操作名规则。如果存在,它将清除共享相同AccessMode字节值的SALauthld。这是保护当前CIO的鉴别对象的交叉引用应为空值。它给出了在卡端应用中实现命名服务的可执行代码的位置。ObjectAttributes.iD(例如:SIGN操作的PrK)中包含由上面的ClassAttribu“此ACL用于适用于所有卡端应用服务的鉴别服务。在GB/T29271.3的上下文中,使用差异特征描述用于鉴别和加密使用的对象。因此,鉴别协议值的发现机制如图12所示。该机制通过解析AuthenticationObjectChoice开始。开始应用中应使用CIAInfo结构中相应的AlgorithmInfo来检索objld。如果此objld的等效非DID,authProtocol:=PINCompare(A.9)BiometricAttributes说明DID条目AuthenticationOb-表示authObject目的的名称(ASCII编码)algRef值选择性地(不建议),控制SALAPI操作的访问规则可在差异特征服务从任何CIO到这个DID的交叉引用。应匹配实CommonAuthentication-或dataContainerObjects别协议的加密对象的密钥引用标识符和鉴别协议所属物识别模板CIO),它表示对象是局部还是全局范围应包括限定符(例如:如果存在,应为限定符的限定符一旦鉴别协议的OID由内容应符合GB/T29271.3附录A中提供的定义说明DID条目表示secretKey目的的名称(ASCI编码)交叉引用用来保护密钥的鉴别对象样,它应匹配CIAInfo.supportedAlgorithms中的AlgorithmInfo.algRef钥的鉴别对象的交叉引用选择性地(不建议),控制SALAPI操作的访问规则可在差异特征服务ACL中找到值应与authld值匹配必选属性,但没有用于唯一的引用在CRT(在安全环境内)中使用的引用,或者加密命令在卡端应用中引用的密钥。编码为INTEGER最好替代CommonObjectAttributes.authld使用。该属性为可选,但应用于限定符用,则应在DID限定符内该值应是一个文件路径,包含密钥或者是密钥的表9给出了RSA私钥映射到差异特征。说明DID条目表示PrivateKey目的的名称(ASCI编码)别对象的交叉引用协议)这样,它应匹配CIAInfo.supportedAlgorithms中的AlgorithmInfo.algRef作为用来保护此私钥的鉴别对象的交叉引用此DID可执行控制GB/T29271.3操作的访问规则ACL中找到值应与authld值匹配必选属性,但没有用于唯一的引用编码为INTEGER通过引用来自CIAInfo的supportedAlgorithm值来标识可以与密钥一起使用的算法协议)最好替代CommonObjectAttributes.authld使用。该属性为可选,但应用于如果使用,应为限定符的限定符用,则应在DID限定符内表10给出了所有SALAPI操作在GB/T16649.15accessMode属性方面的映射。提供了可以提(见表10中的注释)。表10SALAPI操作映射到GB/T16649.15属性出SAL-API操作的5.3中卡端应用服务访问1111CardApplica-1CardApplica-111CardApplica-11(1):在DataContainerOb-jectChoice中,应用于tyCondition属性可以通过标识符authld引用加的AuthenticationObjectSAL-API操作的5.3中11CardApplica-1111111(3):目标可以是DataSet。制规则(如果有)将覆盖1111表10(续)古SAL-API操作的5.3中111111111(2):其他CIO(PrivateKey-CertificateChoice,Secret-KeyChoice)可以从DataCon-CIO附加到DataContainer-ObjectChoice(例如:将PrvateKey附加到签名操作)111表10(续)SAL-API操作的5.3中1111111111Choice("Connection","CardApplication",ization")中11ization")中8.4特定卡APDU映射到GB/T16649.15属性程序元素可以按照基于CIA注册表说明生成特定卡APDU。该转换要求基于GB/T16649.15的互操作性的方法,并将固定标签分配给SALAPI操作。符合GB/T16649.15专用的DataContainerObject应在卡上的EF.DCOD内进行个性化设置,以提供包括(完整或部分)特定卡APDU命令头列表的容器(EF或DO)的引用,如GB/T16649.4—2010中所定义的用于访问模式DO扩展格式。如表11和表12所示。表11DataContainerObject的属与采用特定卡APDU的SALAPI操作匹配的述性字符串(见表12)除非发行者另有决定,否则应ALWAYS可读任意标识符(OCTETSTRING)15:2004/Amd2:2008的规定),其中SALAPI的列表可用。相应的文件标识符值或数据对象标签值取决于发行者“TranslationCode”建立ASCII编码标签“TranslationCode”和与容器匹配SALAPI8.4.2用于"TranslationCode"内容的ASN.1定义translationCodeTranslationCode::=SEQUENCActionName::=CHOICE{-acc.GB/T29271.3COR1:2010APIAccessEntryPointCardApplicationServicNamedDataServiceActionNamdifferentialldentityS}CryptographicServicDifferentialldentityServiceAcAuthorizationServiceActi}本示例将SALAPI“DSIList”与特定卡APDU命令SELECT表13EF文件内容示例040400A5F002TranslationCodeCmdHeaderSEactionName"DSIList"VisaccessModeDOTagOCTECLA='00′INS='A5′P1='FO′P2='02'm使用DIR功能的SELECTDATA,并选择第一模板(符合GB/T16649.4—2010的要求)SELECTDATA的数据字段可以使通用参考模板指向实际的DF、EF、ADF按GB/T29271.2的规定,卡端应用的CardApplicationServiceDescription数据对象可以装入嵌套在卡端应用ACD中。从ACD,DataSet和Service的映射可以参考在ACD内或在卡上存在的DF.CIA应用的相关EF内编码为适当信息对象的差异特征。例如,来自命名服务的访问规则的authld用程序相关联的EF.SKD内的保密密钥的CommonKeyAttributes.iD。在CardApplicationServiceDescription中编码的每个CIOChoice可以编码为路径或对象。图13显示了数据结构和信息对象之间的关系和间接关系。CardApplicationServiceDescriptionGB/T29271.3互操作性数据结构:由SAL实现生成。这些结构代表GB/T29271.3DataContai“targets”(参考GB/T29271.3—2014中5.3)DER-TLV编码CardApplicationACL图13GB/T16649.15信息对象和GB/T29271.3数据结构之间的关系假定两个组件A和B按ISO/IEC7816-3:2006中12.1.1的规定通过信道C交换命令响应对。如不带安全报文传输不带安全报文传输带安全报文传输AB●在组件Asm中保护命令APDU,接收方需执行逆变换以获得原始命令APDU;●在组件Bsm中保护响应APDU,接收方需执行逆变换以获得原始响应APDU。这里列出的转换规则是GB/T16649.4—2010中定义的规则的子集,它们仅适用于按ISO/IECc)通过加密传输数据保证CmdAPDU.1和RspAPDU.1d)使用MAC算法保证CmdAPDU.1和RspAPDU.1的完整性;填充应按GB/T15852.1—2008中6.1.2的规定(填充方法2)进行。命令头CH包含CLA,INS,P1和P2字节。在转换期间,CLA中的位b4和b3应被设置。命令命令头本附录假定CLA字节符合GB/T16649.4—2010的5.1.1中表2的CLA首要行业间值。因此,在CLA中指示的逻辑信道号应在0~3的范围内。此限制应符合GB/T29271.2的要求。如果这一系列显示了如何加密命令APDU的数据字段以确保机密性,如图A.3所示。在A.1.2.7中应规定如何明文密文短格式明文产生DOcA.1.2.4计算MAC的DO创建包含密码校验和的DO的流程如图A.4所示。MAC计算图A.4创建包含密码校验和的DO本条规定了Le字段如何封装在DO中,流程如图A.5所示。图A.5创建包含Le字段的DOA.1.2.6MAC运算本条描述如何从下面的输入中计算鉴别码,MAC运算流程如图A.6所示:a)IVmac是一个包含SendSequenceCounter的8字节字符串;b)InputData是任意长度的任意8字节字符串;c)Kmac是用于密码算法中使用的密钥。按GB/T15852.1—2008第5章的规定,应使用以下内容:——使用AES为分组密码算法;——使用GB/T15852.1—2008的6.1.2中规定的填充方法2;——使用GB/T15852.1—2008的7.1中规定的MAC算法1,将IVmac和InputData的连接用作数据串D:D=IVmacllInputData;——MAC长度m是128位。图A.6MAC运算本条描述如何按照下面的输入计算密文:a)IVenc是一个包含SendSequenceCounter的8字节字符串;b)InputData是任意长度的任意8字节字符串;c)Kenc是用于密码算法中使用的密钥。——使用AES为分组密码算法; 使用GB/T15852.1—2008的6.1.2中规定的填充方法2来计算P=InputDatallPadding-——使用初始值为IVenc的CBC模式(密码块链接)计算明文P的密文。A.1.2.8状态字短格式短格式产生DOswA.1.3保护命令APDU首先将SendSequenceCounter加1,SendSequenceCounter的新值应在第2步和第4步使用,然后a)原始命令APDUCmdAPDU.1封装在标签为Tcmd的DO中。该DO被封装在ENVELOPEb)命令头的转换如A.1.2.2所示,命令数据字段被封装示,并且Le字段被封装在具有标签TLe的DO中,如A.1.2.5所示。d)步骤c)的结果是MAC计算的输入。e)安全命令APDU具有以下元素:1)转换命令头CH’;2)安全命令APDU的数据字段包含DOcg,DOL和DOcc;3)一个命名为“NewLe”的Le字段。原始APDU命令b)TandLendCmCHCH'PB1NewLcDOcGDOLeDOccN图A.8保护CASE4命令APDUA.1.4保护响应APDU首先将SendSequenceCounter加1。SendSequenceCounter的新值应在第二步和第四步中使用。然后执行以下步骤,示意图见图A.9:a)原始响应APDURspAPDU.1被封装在具有标签Trp的DO中。该DO作为响应APDU的响应数据字段。b)此响应APDU的数据被加密并封装在标签Tcc的DO中,如A.1.2.3所示,状态字节封装在标d)步骤c)的结果是MAC计算的输入。e)安全响应APDU包括以下元素:1)数据字段是DOcg,DOsw和DOcc串联;2)尾部包含状态字“SW1-SW2”。b)产生DOα产生DOcT图A.9保护带数据字段的响应APDU安全报文传输各字段值见表A.1。表A.1安全报文传输中各字段使用的值值CLAINSP1P2=‘00C30000’*0000’*85’*8E’*99’符合GB/T29271的中间件栈应在可信信道实现中提供TLS协议,用于连接各种栈组件,但与ICC的连接除外。附加协议可按IETFRFC2246规定提供。与ICC连接时可使用GB/T16649.4—传输层协议遵循IETFRFC2246。<?xmlversion="1.0"encoding<schemaxmlns="/2001/XMLSchema"targetNamespace="urn:iso:std:iso-iec:24727:texmlns:iso="urn:iso:std:iso-iec:24727:tecxmlns:dss="urn:oasis:names:tc:dss:1.0:cor<importnamespace="urn:oasis:names:tc:dss:1.0:core:schema"schemaLocation="oasis-dss-core-schema-v1.0-<elementname="COMMONSchem<complexTypeattributename="schemaVersion"type="decimal"<!--DefinitionofBasicTypes--)<simpleTypename="SlotHandleType"><complexTypename="ChannelH<elementname="ProtocolTerminationPoint"type="anyURI"maxOccurs="1"<elementname="Sessionldentifier"type="string"maxOccurs="1"<elementname="Binding"type="anyURI"maminOccurs="0"default="/soap/http"><simpleTypename="ContextH<restrictionbase="hexBinary"><complexTypename="Req(restrictionbase="dss:RequestBaseType"><complexTypename="Resp(restrictionbase="dss:ResponseBase<?xmlversion="1.0"encoding(schemaxmlns="/2001/XMLSchema"targetNamespace="urn:iso:std:iso-iec:24727:texmlns:iso="urn:iso:std:iso-iec:24727:tec<!--DefinitionofBasicTypes--><includeschemaLocation="ISOC〈!--Cardtermin<extensionbase="iso:Reque<elementname="Channtype="iso:ChannelHandleType"maxOccurs="1"minOccu<elementname="EstablishContextR<extensionbase="iso:Respon<elementname="Contetype="iso:ContextHandleType"maxOccurs="1"minOcc<elementname="Release<extensionbase="iso:Requetype="iso:ContextHandleType"maxOccurs="1"minOccu<elementname="ReleaseContextResponse"type="iso:ResponseType"><extensionbase="iso:RequestType"><elementname="Contetype="iso:ContextHandleminOccurs="0"type="str<elementname="GetIFDCapabilities"><extensionbase="iso:RequestType">(elementname="ContextHandle"type="iso:ContextHandle<elementname="IFDName"type="string"/><elementname="GetIFDCapabiliti<extensionbase="iso:ResponseType"><sequencemaxOccurs="1"minOccurs="0"><elementname="IFDCapabilities"maxOccurs="1"minOccurs="1"type="iso:IFDCapabilitie<complexTypename="IFDCapabil<elementname="SlotCapability"type="iso:SlotCapabilityType"maxOccurs="unbounded"minOccurs<elementname="DisplayCapability"type="iso:DisplayCapabilityType"max-Occurs="unbounded"min<elementname="KeyPadCapability"type="iso:KeyPadCapabilityType"maxOccurs="unbounded"minOccurs="0"></e<elementname="BioSensorCapability"type="iso:BioSensorCapabilityType"maxOccurs="unbounded"minOccurs="0"></e<elementname="OpticalSignalUnit"type="boolean"></element><elementname="AcousticSignalUnit"type="boolean"name="Index"type="nonNegativeInteger"maxOccname="ContactBased"type="boolean"></<complexTypename="DisplayCapab<elementname="Index"type="nonNegativeInteger"maxOccurs="1"minOccurs<elementminOccurs="1"maxOccurs="1"name="Lines"type="nonNegativeInte<elementname="Columns"type="nonNegativeInteger"/><elementname="VirtualLines"type="nonNegativeInteger"maxOccurs="1"minOccurs(elementname="VirtualColumns"type="nonNegativmaxOccurs="1"minOccurs(complexTypename="KeyPadCa<elementname="Index"type="nonNegativeInteger"maxOccurs="1"minOccurs<elementminOccurs="1"maxOccurs="1"(complexTypename="BioSensor<elementname="Index"type="nonNegatmaxOccurs="1"minOccurs<elementminOccurs="1"maxOccurs="1"name="BiometricType"type="nonNegativeIntemaxOccurs="1"minOccurs<elementname="GetStatus<extensionbase="iso:ResponseType"><sequencemaxOccurs="1"minOccurs="1"><elementname="IFDStatus"maxOccurs="unbounded"minOccurs="0"type="iso:IFDStatusname="SlotStatus"type="iso:SlotStatu<documentation>Indexoftheslot.<<elementname="ActiveAntenna"type="boolean"maxOccurs="1"<elementminOccurs="0"maxOccurs="unbounded"name="DisplayStatutype="iso:SimpleFUStatu<documentation>Indexofthedisplay.</documentation><elementminOccurs="O"maxOccurs="unbounded"name="KeyPad-<documentation>Indexofthekeypad.</documentation>(elementminOccurs="O"maxOccurs="unbounded"name="BioSensorStatus"type="iso:SimpleFUStatu〈complexTypename="SlotSt<elementname="Index"type="nonNegativeInteger"maxOccurs="1"minOccurs<elementminOccurs="1"maxOccurs="1"name="CardAvailable"<elementname="ATRorATS"type="hexBinary"ma〉name="Index"type="nonNegativeIntname="Available"type="boolmaxOccurs="1"minOccurs<elementname="Callback"type="iso:ChannelHandleType"maxOccurs="1"minOc<elementname="WaitR<extensionbase="iso:ResponseType"><sequencemaxOccurs="1"minOccurs=<elementname="IFDEvent"type="iso:IFDStatusType"maxOccurs="unbounded"minOccurs="O"></e<elementname="Sessionldentifier"type="string"maxOctype="iso:ContextHandleType"maxOccurs="1"minOcc<elementname="Sessionldentifier"type="string"m<elementname="CancelRespons<extensionbase="iso:Reque(elementname="ContextHandle"type="iso:ContextHandleType"maxOccurs="1"minOccu<elementname="IFDName"type=<elementname="Command"type="hexBinary"/><elementname="ControlIFDRe<extensionbase="iso:Respon(elementname="Response"type<extensionbase="iso:Requetype="iso:ContextHandleType"maxOccurs="1"minOccu<elementname="IFDName"type="string"/><elementname="Slot"type="nonNegative<elementname="Exclusive"type="boolean"maxOccurs="1"minOccurs=<elementname="ConnectResponse"><extensionbase="iso:ResponseType"><elementname="SlotHandle"type="iso:SlotHandle<extensionbase="iso:RequestType"><elementname="SlotHandle"type="iso:SlotHandleT(elementname="Action"type="iso:ActimaxOccurs="1"minOccurs(elementname="DisconnectResponse"type="iso:ResponseTyp(simpleTypename="ActionType"><restrictionbase="string"><elementname="BeginTra<extensionbase="iso:Requestype="iso:SlotHandleT<elementname="BeginTransactionResponse"type="iso:ResponseType"/><elementname="EndTra(extensionbase="iso:RequestType"》<elementname="SlotHandltype="iso:SlotHandleT<elementname="EndTransactionResponse"type="iso:ResponseType"/>(elementname="Trans(extensionbase="iso:RequestType"》type="iso:SlotHandle<elementname="InputAPDU"type="he<elementname="TransmitResponse(extensionbase="iso:ResponseType"><elementname="OutputAPDU"type="hexBinary"></element><!--Userrelatedfunctions<!--VerifyUser(elementname="SlotHandle"type="iso:SlotHandleType"/>(elementname="InputUnit"type="iso:Inputype="nonNegativeInteger"maxOccurs="1"minOcctype="iso:AltVUMessagesType"maxOccurs="1"minOcc(e

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论