GB/T25061-2020
信息安全技术XML数字签名语法与处理规范
Informationsecuritytechnology—XMLdigitalsignaturesyntaxandprocessingspecification
![本文分享国家标准信息安全技术XML数字签名语法与处理规范的全文阅读和高清PDF的下载,信息安全技术XML数字签名语法与处理规范的编号:GB/T25061-2020。信息安全技术XML数字签名语法与处理规范共有62页,发布于2021-06-01](/image/data/9712_1.gif)
- 中国标准分类号(CCS)L80
- 国际标准分类号(ICS)35.040
- 实施日期2021-06-01
- 文件格式PDF
- 文本页数62页
- 文件大小2.89M
以图片形式预览信息安全技术XML数字签名语法与处理规范
信息安全技术XML数字签名语法与处理规范
随着互联网技术的不断发展,信息安全已经成为了互联网应用中不可避免的问题。而XML数字签名技术可以有效提升信息安全领域的安全性能。在这方面,GB/T25061-2020在XML数字签名的语法和处理规范方面进行了详细的规范。
XML数字签名是一种基于公钥加密技术的数字签名方法,它可以对XML文档或其他数据进行数字签名处理,从而确保文件的完整性、不可否认性和真实性。GB/T25061-2020标准明确了XML数字签名的相关概念及其使用方法,并规定了XML数字签名中所涉及到的算法和证书格式等细节。
此外,标准还指出了XML数字签名过程中需要注意的事项,如何进行数字签名的验证以及如何处理数字签名过程中可能出现的异常情况。这些规范的制定,可以有效地保障XML数字签名技术在信息安全领域的应用和实践。
总之,GB/T25061-2020标准的出台,为保障信息安全提供了重要的工具和指导,有助于信息安全领域的规范化、专业化、标准化和国际化的进程。同时,该标准也能够帮助从业者更好地理解和应用XML数字签名技术,提高信息安全领域的整体水平。
国家标准 GB/T25061一2020 代替GB/T250612010 信息安全技术 XM数字签名语法与处理规范 Informationseeuritytechnology一 XMLdigitalsignaturesyntaxandproeessimgspeeifieation 2020-11-19发布 2021-06-01实施 国家市场监督管理总局 发布 国家标涯花警理委员会国家标准
GB/T25061一2020 目 次 前言 范围 2 规范性引用文件 术语、定义和缩略语 3.1术语和定义 3.2符号和缩略语 XMI签名概述 4.1概述 4.2定义文件用法说明 处理规则 5.1 生成 确认 签名语法 概述 Signature元素 6.3SignatureValue元素 6.4SignedInfo元素 6.5Keylnfo元素 6.6Object元素 附加的签名语法 19 7.1概述 19 7.2Manifest元素 19 7.3SignatureProperties元素 20 Signature元素中的处理指令 21 7.5Signature元素中的注释 21 证实方法 21 附录A资料性附录XMM数字签名实例 22 附录B规范性附录XML数字签名文档类型定义 29 39 附录c规范性附录XML数字签名模式定义 49 附录D资料性附录算法标识符 57 参考文献
GB/T25061一2020 前 言 本标准按照GB/T1.1一2009给出的规则起草
本标准代替GB/T25061一2010信息安全技术公钥基础设施XML数字签名语法与处理规范》 与GB/T25061一2010相比,主要技术变化如下 -增加了新的引用文件(见第2章); 在Keylnfo中,增加了sSM2KeyValue类型定义表示SM2椭圆曲线密码算法密钥值 见6.5.3.3); 在Keylnfo元素中,增加了DEREncodedKeyValue和KeylnfoRefe 子元素,并给出模式 rence 定义(见6.5.6和6.5.7); 增加了xmldsigllschema.xsd和xmldsigl-schema.xsd的定义(见附录C中C.2和C.3); 增加了密码杂凑算法SM3,消息鉴别算法HMACSM3,签名算法SM2-SM3的定义(见附录D 中D.3.2、D.4.3和D.5.3); 增加了xML规范化1.1算法和独占xMn规范化1.0算法(见附录D中D.6.3和D.6.4). 请注意本文件的某些内容可能涉及专利
本文件的发布机构不承担识别这些专利的责任
本标准由全国信息安全标准化技术委员会(SsAc/TC260)提出并归口 本标准起草单位;北京信安世纪科技股份有限公司、格尔软件股份有限公司、数安时代科技股份有 限公司、,国家密码管理局商用密码检测中心
本标准主要起草人:汪宗斌、刘婷、郑强、张永强、吕春梅、焦靖伟、史晓峰
本标准所代替标准的历次版本发布情况为 GB/T25061一2010o
GB/T25061一2020 信息安全技术 XML数字签名语法与处理规范 范围 本标准规定了创建和表示XM数字签名的处理规则、签名语法、附加的签名语法和证实方法
本标准适用于制作和处理XMI数字签名的应用程序、系统或服务
规范性引用文件 下列文件对于本文件的应用是必不可少的
凡是注日期的引用文件,仅注日期的版本适用于本文 件
凡是不注日期的引用文件,其最新版本(包括所有的修改单)适用于本文件
GB/T1988信息技术信息交换用七位编码字符集 GB/T13000信息技术通用多八位编码字符集(UCS) GB/T16264.8一2005信息技术开放系统互连目录第8部分;公钥和属性证书框架 信息技术可扩展置标语言(ML.)10 GB/T187932002 GB/T205182018信息安全技术公钥基础设施数字证书格式 GB/T35276一2017信息安全技术SM2密码算法使用规范 RFC2045基于多用途互联网邮件扩展第1部分:互联网消息体格式(MultipurposeInternet MailExtensions(MIMEPartOne:FormatoflnternetMessageBodies) RFC3279互联网X.509公钥基础设施的算法和标识符证书和证书撤销列表轮廓[Algorithms andldentifiersfortheInternetX.509PublicKeylnfrastructureCertificateandCertificateRevocation List(CRL)Profile] RFC3986统一资源标识符(URI);通用语法[UniformResoureeIdentifier(URI);GeneriecSyn- tax RFC4514轻型目录访问协议(LDAP);甄别名的字符串表示[LightweightDirectoryAccessPro tocolLDAP):StringRepresentationofDistinguishedNames RFC5480椭圆曲线密码主体公钥信息(EllipticCurveCr ryptographySubjectPublicKeyInfor matlon 术语定义和缩略语 3.1术语和定义 GB/T18793一2002界定的以及下列术语和定义适用于本文件
3.1.1 分离签名 detachedsigature 签名于Signature元素以外的内容上,签名和数据对象位于不同XMI文档中的XML签名文档的 组织形式
GB/T25061一2020 3.1.2 封内签名 envelopingsignature 签名于Signature元素中的Object元素之上,以Signature为父元素,将原始文档包含在Signature 中的XML签名文档的组织形式
3.1.3 封皮签名 evelopedsignature 签名于整个xML内容之上,然后将Signature作为子元素插人到原始文档中的xMI签名文档组 织形式
3.1.4 签名 Signature 签名者使用私钥对待签名数据的杂凑值做密码运算得到的结果
注:XML签名有三种描述方式:;分离签名、封内签名和封皮签名
3.1.5 签名应用程序 signatureapplication 实现了Sigature元素类型的结构及其子结构的应用程序
3.1.6 变换 transform 把一个数据从原始状态转化成导出状态的处理
示例xML规范化.xPath和xsL.T变换等 3.2符号和缩略语 下列符号和缩略语适用于本文件
?;前一符号出现0次或1次 十;前一符号出现1次或多次 *;前一符号出现0次、1次或多次 CA:证书认证机构(CertificateAuthority CRL.证书撤销列表(CerifieateReocationListD) HTTP;超文本传输协议(HypertextTransferProtocol MIME;基于多用途互联网邮件扩展(MultipurposeInternetMailExtensions) OID:对象标识符(Objectldentifier) PKI:公钥基础设施(PublicKeyInfrastructure) URI统一资源标识符(UniversalResourceIdentifier) XML;可扩展置标语言(ExtensibleMarkupLanguage) XPath.XML路径(XMIPath) XSL;可扩展样式表语言(ExtensiblestylesheetLanguage XSLT:XSL变换(ExtensibletylesheetLanguageTransformations) XML签名概述 4.1概述 本章描述了XML数字签名的结构,第5章给出了处理规则第6章签名语法和第7章附加的签名
GB/T25061一2020 语法,XML格式要求见GB/T18793一2002
XM1签名可通过间接方式作用于任意数据对象,处理的步骤是先对数据对象进行杂凑处理,处理 后的结果放置在一个元素中,再对得到的元素进行杂凑处理并且通过密码学方法进行签名
XML数 字签名使用siegatue冗素来表示,其结构如下 signatureID? Signedlnfo anonicalizationMethod/ SignatureMethod ReferenceURI? Transforms>)? DigestMethod>
GB/T25061一2020 b 计算变换后的数据对象的杂凑值; c 创建一个Reference元素,包括一个可选的数据对象的标识,可选的变换元素,密码杂凑算法 和杂凑值
5.1.2Signature生成 Signature元素生成的步骤如下: 以signatureMethod指定的签名算法、CanonicalizationMethod指定的规范化算法和引用生成 a 的Reference为内容,创建Signedlnfo元素
b用Singednfo中指定的规范化算法进行处理,并用signednfo指定的签名算法来计算Signed- nfo的签名值
构建包括Signedlnfo,Objeet,Keylnfo和SignatureValue的Signature元素
Signature元素 中各个子元素的含义和具体构造方法见第6章
5.2确认 5.2.1概述 确认应包括 引用确认,验证SignedInfo中每个Reference包含的杂凑值 a b)签名确认,使用密码方法对计算SignedInfo得到的签名进行签名确认
5.2.2Reference确认 引用确认的步骤如下 根据Signednfo中CanonicalizationMethod指定的规范化方法来处理Signedlnfo元素; a b) 对于Signedlnfo中的每个Reference: 获得进行杂凑处理的数据对象; 1) 2) 使用Reference中指定的密码杂凑算法对结果数据对象计算出杂凑值; 3)将上一步生成的杂凑值和Signednfo中的DigestValue元素的值进行比较,如果有不同 那么确认失败
注:Signedlnfo在步骤a)进行了规范化,应用程序宜确保CanoniealizationMethod不会产生错误
5.2.3Signatue确认 Si 确认应比较以CanoniealizationMethod指定的规范化方法和signatureMethod指定的签 gnature 名方法处理SignedInfo的结果是否与Sig rreValue中的值是否匹配
gnatu Signature确认的步骤如下 从Keylnfo或者外部源获得密钥信息 a b)使用CanonicalizationMethod来获得signatureMethod的规范化形式.然后用得出的结果和上 面得到的密钥信息对Signedlnfo元素进行签名值验证
签名语法 6 6.1概述 6.1.1模式定义 签名语法通过XML模式定义来定义,所有的XML模式定义使用下面的XML前导说明部分、文
GB/T25061一2020 件类型声明和内部实体
模式定义 xmlversion="1.0”encoding="UTF-8"?> 注上一行为xML声明,该行中的”xml是一个整体,表示是xMLl.文件的开始,而本标准3.2中定义的“?"则表 示元素的个数,请注意区分
DOCTYPEschema PUBLIC"-//W3C//DTDXMSchema200102//EN" /127.0.0.1/2001/XMLSchemma.dtd" "hup xmlns="http:/127.0.0.1/2001/XMI.schemar schema xmlns:ds="http://127.0.0.1/2000/09/xmldsig井" targetNamespace= -"htp //127.0.0.1/2000/09/xmldsig井" ersion="o.1"dlemenmuFormDetaul="qualfiel" 文档类型定义 ENTITY % Objeet.ANY ENTITY%Method.ANY> ENTITY%<一Transform>.ANY y.ANY'> ENTITY %SigeatuePopuert ENTITY%Keylnfo.ANY ENTITY%KeyValue.ANY ENTITY%X509Data.ANY'' 扩展标记使用dsigl1;名字空间
新的模式定义如下 ??xmlversion="1.0”encoding="utf-8"? schemaxmlns= -"htp tp;//127.0.0.1/2001/XMISchema" xmlns;ds="http://127.0.0.1/200/09/xmldsig" xmlhne;dsig1-"htp:/127.001/209/smldsigl# " argetNamespace="http://127.0.0.1/2009/xmldsigl1l# version="o.1"elementFormDefault一"qualifed" 6.1.2ds;CryptoBinary简单类型 定义ds:CryptoBinary简单类型,把XMI中任意长度的整数表示成字节字符串
具体方法是先把 整数值转化成高位在前格式的位串,在位串前面补0使得位数是8的整数倍,去掉开头为零字节(连续 8个0的位串),然后对这个字节串进行base64编码,base64编码遵循RFC2045
注base64Bbinary与CryptoBinary类型相同,定义一个新的类型主要是兼容不同的使用习惯 模式定义
GB/T25061一2020 !ELEMENTCanoniealizationMethod#PCDATA%Method.ANY;关> 6.4.3SignatureMethod元素 SignatureMethod是用来指定进行签名生成和验证算法的必要元素,表明签名操作中用到的密吗 函数(如密码杂凑算法,公钥算法,MAC,填充方式等)
这个元素使用算法标识符(算法标识符实例可 参考附录D). 模式定义
GB/T25061一2020 若UR1引用为非同文档引用,解析UR1引用的结果应为一个八位位组流
URI标识的XML文档 指向同文档引用或应用不要求变换时,签名应用程序不必解析它
若片段出现在一个绝对或者相对URI的前面,那么片段的含义由资源的MME类型定义
对于 XML.文档,也可通过一个代理来完成签名程序对URI的解析包括对片段的处理)
如果片段处理不 是标准化处理的引用确认可能会失败
本标准建议URI属性不包括片段标识符,而将这种处理过程当 作附加的XPath变换来进行说明
当片段没有出现在URI前面时.xML签名程序应支持空URI和无名xpointer;若应用程序还要 支持任何保存注释的规范化操作,那么建议对同文档的Xpointer提供支持
由于应用程序可能无法控 制片段的生成,因此所有其他对Xpointer的支持都是可选的,所有对无名和外部引用的Xpointer的支 持也是可选的
6.4.4.4同文档URI引用 解析同文档引用应产生一个适合规范化XML使用的Xpath节点集合
特别是,解析一个空URl 应产生一个Xpath节点集合,该集合包含拥有URI属性的XML文档的每个非注释节点
片段URI中 #号后面的字符应符合Xpointer语法,处理Xpointer的时候,应用程序应使用包含URI属性的XM 文档的根节点来初始化Xpointer处理文档
若Xpointer处理后的结果是一个节点集合时,应用程序应 通过下面的方法获得 丢弃点节点; a) b)名字空间子资源中包括完整或者部分内容的XPath节点 用子节点替换根节点(假设它在节点集合里面); c 把所有元素节点E替换为E和E的后代节点(文本、注释、PI或者元素)以及所有的E和它的 d 后代元素的名字空间和属性节点; 如果URI不是一个完整的XPointer,那么删除所有的注释节点
解析时应执行步骤d)的替换
XPointer是使用子树的根节点元素来指明一个XMI文档的语法分 析树的子树,而规范化的XML把一个节点集合当作节点的集合在这种情况下,缺少后代节点就会导 致在规范形式的内容的不足
步骤e)用来处理空UR1,裸名指针和子序列XPointers
当传递一个节点集合时,需要按照有注释 和没注释对节点集合进行处理,处理成字节流时会调用Xpath表达式缺省的或者没有注释的),因此 为了在传递节点集合的时候保留脱模注释的缺省的行为,应去除非完整的XPointer的URI
若要在通 过标识符ID选择元素的时候保留注释,应使用这样的全XNPointer:URI='井xpointer(id('ID')';若 要在选择整个文档的时候保留注释,应使用这样的全XPointer:URI='井xpointer()',XPointer包含 了一个含有根节点的简单的Xpath表达式,步骤d会将该根节点替换为语法分析树的所有节点所有 的后代、所有的属性和所有节点的名字空间
6.4.4.5Iransforms元素 可选的Transforms元索包括一个有序的Transform元素列表,这些元素描述签名者如何获得将 要进行杂凑处理的数据对象,每个Transform的输出都要作为下一个Transform的输人,第一个 ransform的输人是解析Reference元素的URI属性所得到的结果,最后一个Transform的结果是D: gestMethod算法的输人
使用Transform后,签名者处理的已经不是原始的文档,而是Transform处 理后的文档
每个Transform元素由一个算法属性和与这个算法配套的内容参数构成(如果有参数的话),算法 10
GB/T25061一2020 属性值指定要进行处理的算法的名字,Transform内容提供附加的数据来控制算法处理Tr 输 ransform 人的过程
Transform使用xPath节点集合为输人,而其他一 些需要 在Reference处理模型中曾经提到,一些 -个字节流
若实际的输人符号Transform的需求,则Transform在操作的时候不会更改输人
若 Transform的输人要求和实际输人的格式不同,则实际的输人需要进行一些变换
Transform可能需 要显式的MIME类型、字符集或者是它们从前面的Transform或源数据收到的数据的相关信息,应以 Transform算法参数的形式提供这种数据的特征,通过参数的形式把这些数据特征提供给Transorm 算法,且应在算法的规范中描述出来
Transform例子包括但不仅限于base64解码.XML规范化,XPath过滤和XSLT
模式定义: elemmentname="Transforms type="ds:TransformmsType"/ 1s" "TransformsType" complexITypename sequence elementref="ds:Transform”max(Occurs="unbounded"/ Sequence /complexIype elementname="Transform' type="ds:TransformType"/> "true" complexTypename ransformType”mixed= choiceminOccurs= mmaxOccurs="unbounded" 井井other”processContents="lax"/ anynameSpace= elementsfrom(0,unbounded namespaces CDATA 井REQUIRED> Algorithm EIEMENTXPath井PCDATA 6.4.4.6DigestMethod元素 . DDigestMethod是指定签名对象的密码杂凑算法的必要元素,使用通用结构来描述算法标识符和实 现算法(可参考附录D)
如果URI解析的结果和变换处理的结果是一个XPath节点集合,则结果应按Reference处理模型 中规定的方法进行变换;如果URI解析和变换处理结果是字节流,则不需要进行变换,直接对得出的字 节流数据进行密码杂凑算法处理
模式定义 elementname="DigestMethod" type-"ds;DigestMethodType"/> 1
GB/T25061一2020 Iypename="DigestMethodType”mixed="rue">
GB/T25061一2020 http;//127.0.0.1/2009/xmldsigl1井DEREncodedKeyValue 除了上面用XML结构定义的这些类型,本标准定义了一个类型来表示二进制的数字证书又称 X509证书),具体定义见GB/T16264.82005的第7章
http:/127.0,.0.1/2000,/09/xmldig井rawX50Cerifceatce 模式定义 -"ds:KeyhndoTye"> elementname="Keylnfo”type= esylnfoType”nmixed="rue" complexTypename unbounded" chO1cemaXOcCurS 'ds:KeyName" ds;KeyValue" ds;RetrievalMethod"/> 'ds:X509Data" lnTn elementref="dsigl1;DEREncodedKeyValue"/> DEREncodedKeyValue(XMLDsig1.l)willusetheanyelement elementref-"dsigll;KeylnfoReference"/> KeyhnfoRderence(XMIDigl.1)willusetheanyedlement 心 anyprocessContents="lax”namespace="井井other"7 l,lelementsfrom0,unboundednamespaces /choice attributename="Id" "ID"uuse= -"optional"> type= /complexType> 文档类型定义 ELEMENTKeylnfo井PCDATAKeyNamelKeyValuelRetrievalMethodX509Data%Key Info.ANY;关 文档类型定义: !ELEMENTKeyName井PCDATA 6.5.3KeyYalue元素 6.5.3.1概述 KeyValuee应包含唯一有效确认签名的公钥
KeyValue元素可包括在外部定义的公钥值.它们以 PCDATA或外部名字空间的元素类型来表示
在附录A中给出了SM2公开密钥的结构化格式的 实例
13
GB/T25061一2020 模式定义
GB/T25061一2020 6.5.4RetrievalMetho元素 Keylnfo中的RetrievalMethod元素用于传递存储在另一个位置的Keylnfo信息的引用
例如,一 个文档内的几个签名使用一个内部或者外部的X509证书链来验证签名,每个签名的Keylnfo都可用 个RetrievalMethod元素来引用证书链,而无须每次都使用X509Certifieate元素的完整证书链
除了没有DigestMethod或DigestValue子元素,RetrievalMethod使用与Reference的URI属性和 Reference处理模型同样的语法和解析引用的行为,且应包含URI
Type是表示要检索的数据类型的可选标识符
本标准定义了具有相应xMn结构的KeyInfo类 型,解析一个RetrievalMethod的Reference 的结果是一个XML元素或者是以此元素为根的文档
Keylnfo的rawX509Certificate类型(不包含XML结构)返回一个二进制X509证书
模式定义 ype">
GB/T25061一2020 转义所有的后续的空格,用“\20”代替“\” 因XM文档逻辑上包含字符,而不是字节,故应根据产生该XM1文档的物理表示所使用的字符 编码方法来对结果GB/T13000字符串进行编码 引人dsigl1:X509Digest元素后,可弃用X509IssuerSerial元素
6.5.6DEREneodedkeyVaue元素 标识符: Type="http://127.0.0.1/2009/xmldsigll#DEREncodedKeyVaue" 可在RetrievalMethod或Referenee元素中使用,来识别指示对象的类型 X.509证书的主体公钥信息字段中公钥算法和值,编码的要求见GB/T20518一2018中5,2.3.7,编 码后再进行base64简单编码
对于本标准中支持的密钥类型,下面的标准文件标识了密钥/算法类型的主体公钥信息格式和相关 OID值: SM2:见GB/T352762017中7.1 RSA:见RFC3279 EC;见RFC5480.
自定义扩展密钥类型可见下面的方式
模式定义 argetNamespace="http://127.0.0.1/2009/xmldsigl1l井”-> "DEREncodedKeyValue"type="dsig11;DEREncodedKeyValueType"/> elementname "DEREncodedKeyValueType" .complexT ypename= S1mpleContent extensionbase="base64Bin nary"
GB/T25061一2020 attribute -"Id" "ID"uuse= "optional"> name= type= /complexType 6.6objeet元素 标识符 Type=http://127.0.0.1/2000/09/xtmldsig#Objeet可用在Reference元素中表示类型
Object是可包含任何数据的可选元素,可出现一次或多次
Objeet元素可包括可选的MIME类 型、,ID和编码属性
Object的编码属性可用UR1方式标识object所用编码例如一个二进制文件)
MimeType可选属性是描述.obget中数据编码的字符串值,具体的类型定义见RFc230t5,此属性 纯粹是辅助性的,本标准不要求对MimeType信息进行验证,应用程序应处理标准类型编码和签名确 认编码的变换
例如,如果对象中包括base64编码的PNG,那么Encoding可指定为base64并且Mim CType指定为“image/png” signedlnfo或Manifes通过Refer 来引用Objeet的ld,Objeet元素常用于封内签名,被签名 rence 的对象将成为签名元素的一部分
对整个Object元素计算杂凑值,包括开始和结束标签
模式定义
GB/T25061一2020 "ID"use=
GB/T25061一2020 括两个必备的处理过程;在Singedlnfo上的Signature确认和在Singedlnfo中的每个引用杂凑的确认 要注意的是,计算SignatureValue使用的算法在SignatureValue元素处于Signednfo范围外时,也被 包括在要签名的信息中
[s03]把Signedlnfo元素当作签名操作的一部分进行杂凑处理之前,先使用规范化算法对它进行 规范化
要注意,这个例子以及本附录的所有的例子都不是规范化的形式
s04]使用SigatureMethod算法把规范化的Signednfo转换成SignatureValue,它是一个密码杂 读算法和一个依赖于密钥的算法,还可能和其他算法(如RSAsHA1的填充算法)的结合,将算法名字 进行签名,以抵御那种替换成算法复杂度较弱的算法的攻击
为了提高应用互操作性,尽管是否使用这 些算法完全取决于签名的创建者,本附录仍列举了一系列的签名算法,本附录推荐了一些,也允许用户 声明自己的算法
[s05-l1]每个Referenee元素包括密码杂凑算法和对标识出的数据对象进行处理后的杂凑结果 也可包括产生杂凑处理输人的变换,通过计算数据对象的杂凑值并且对该值进行签名,从而为该数据对 象加上签名,随后可通过引用确认和签名确认来检验签名结果
[sl416]Kesylnfo指示用来确认签名的公钥
标识的可能形式包括证书,密钥名称和密钥交换算 法和信息
Keylnfo是可选的有两个原因,第一;签名者可能不愿意把公钥信息展现给文档处理的各 方;第二;公钥信息可能在应用的上下文中就能够得到,不用显式的表示出来
由于Keylnfo在Singed ln的外部,如果签名者想把公钥信息也加人签名信息中使用Relerence可很容易来标识它并把Key nfo加人签名中
A.1.2更多Referenee的内容 [[s057 ReferenceURI-"http;//127.0.0.1/TR/2000/RECxhtml1-20000126/"> [s06 Transforms> orithm= s07 Aeon Iransform "http:/127.00.1/20/12/xmlel4nl1"> K [[s08 Transforms. [s09 DigestMethodAlgorithm="http://127.0.0.1/2001/04/xmldisg-more井sm3"/ [sl0
GB/T25061一2020 检查它的正确性
[pl3]Objeet是一个可选的元素,用于在Signature元素或者其他地方引人数据对象
可选择对 Object进行编码
[pl4s21]签名属性,例如签名时间,可选地通过在Refe 里面指明它们而对它们进行签名
rence A.3objeet和anifest扩展实例 本附录使用Manifest元素来展示如何满足附加的一些需求
下面是两个需求以及Manifes是如 何满足它们的 尽管签名操作本身是开销很大的公开密钥签名,应用程序仍然经常需要高效地对多个数据对 a 象进行签名操作
这个需要可通过在Singednfo里面包含多个Reference元素来实现,因为 加人的每个杂凑都保证了进行杂凑处理的数据的安全
然而,一些应用也许不需要这种方法 伴随而来的确认行为,因为它需要Singedlnfo中的每个Reference 都经过引用确认过程的处 理,这些应用可能希望为它们保留引用确认决策逻辑
例如,一个应用可能收到一个包含三个 Reference元素的signature的合法的singednfo元素
如果其中一个Reference操作失败 ,签名就会在确认过程中失败
然而,应用程序可能就想把两个有效的Reference元素当作 有效来处理,或者就想根据不同的失败原因采取不同的对策,为了实现这一点,Singednfo要 参考包含一个或多个Reference元素的Manifest元素
然后,Manifest的引用确认就处于应 用程序的控制中了
b 考虑这样一种应用,对大量的文档进行了许多签名操作(使用不同的密钥)
一个效率不太高 的解决方案是使用一个分离的签名反复地应用到大量的Singedlnfo元素中(使用很多Refer ence);这种方法很浪费而且很冗余
一个高效的方法是在一个Manifest元素中加人多个 Reference,然后在多个Signatun re元素中引用这个Manifest 下面的例子包括了一个Reference,它签署了一个在Objeect元素中的Manifest
m01] 信息安全技术XML数字签名语法与处理规范
信息安全技术XML数字签名语法与处理规范的相关资料
和信息安全技术XML数字签名语法与处理规范类似的标准