GB T 25061-2010 信息安全技术 公钥基础设施 XML数字签名语法与处理规范.pdf
《GB T 25061-2010 信息安全技术 公钥基础设施 XML数字签名语法与处理规范.pdf》由会员分享,可在线阅读,更多相关《GB T 25061-2010 信息安全技术 公钥基础设施 XML数字签名语法与处理规范.pdf(48页珍藏版)》请在麦多课文档分享上搜索。
1、ICS 35.040 L 80 道B中华人民=lI工和国国家标准G/T 25061-2010 信息安全技术公钥基础设施XML数字签名语法与处理规范Information security technology-Public Key Infrastructure一X岛ILdigital signature syntax and processing specification 2010-09-02发布2011-02-01实施极轨防伪中华人民共和国国家质量监督检验检夜总局中国国家标准化管理委员会发布GB/T 25061-2010 目次前言.皿引言.N 1 范围.2 规范性引用文件3 术语、定义和缩
2、略语14 XML签名概述. 2 5 处理规则.3 6 核心签名语法.4 7 附加签名语法u附录A(规范性附录)XML数字签名文档类型定义17附录B(规范性附录)XML数字签名模式定义.25 附录c(资料性附录)算法30附录D(资料性附录)XML数字签名实例35参考文献. . 40 I 前言本标准的附录A和附录B是规范性附录,附录C和附录D是资料性附录。本标准主要参照Internet工程任务组(lETF)的RFC3275文件制定。本标准由全国信息安全标准化技术委员会CSAC/TC260)提出并归口。本标准起草单位:北京信安世纪科技有限公司、中国电子技术标准化研究所。本标准起草人:汪宗斌、张萌、黄
3、勇、周鹏、王延鸣。GB/T 25061-2010 而且GB/T 25061-2010 引XML是一种信息描述的置标语言,用于数据对象交换。它已经广泛地应用在电子商务、电子政务等应用之中,成为数据交换当中数据描述的基础格式,并且仍在不断发展当中。基于XML格式的数字签名是XML在安全领域的一种新的应用,与传统的PKCS#7数字签名相比,能够更好地与XML应用全主子. -。本标准凡涉及密码算法相关内容,标准文本中引用的RSA和SHA-l等密码算法为举例性说明,具体使用时均须采用国家密码管理局批准的相应算法。N GB/T 25061-2010 1 范围信息安全技术公钥基础设施XML数字签名语法与处理
4、规范本标准规定了创建和表示XML数字签名的语法和处理规则。XML数字签名为任何类型的数据提供了完整性、消息鉴别和签名者鉴别服务。本标准适用于制作和处理XML数字签名的应用程序、系统或服务。2 规范性引用文件下列文件中的条款通过本标准的引用而成为本标准的条款。凡是注日期的引用文件,其随后所有的修改单(不包括勘误的内容)或修订版均不适用于本标准,然而,鼓励根据本标准达成协议的各方研究是否可使用这些文件的最新版本。凡是不注日期的引用文件,其最新版本适用于本标准。GB/T 1988 信息技术信息交换用七位编码字符集(GB/T1988-1998 , eqv ISO/IEC 646-1991) GB 13
5、000. 1 信息技术通用多八位编码字符集(UCS)第一部分:体系结构和基本多文种平面(GB 13000.1-1993,idt ISO/IEC10646-1 :1 993) GB/T 16264. 8 信息技术开放系统互连目录第8部分:公钥和属性证书框架(GB/T 16264. 8-2005 ,ISO/IEC 9594-8:2001,IDT) GB/T 18793-2002 信息技术可扩展置标语言(XML)1. 0 (W3C RFC-xml :1 998 , NEQ) RFC 2253 轻型目录访问协议(v3):盟别名的UTF-8字符串表示RFC2396 统一资源标识符(URl):通用语法RF
6、C2732 URL中IPv6地址文字格式3 术语、定义和缩略语3. 1 术语和定义下列术语和定义适用于本标准。3. 1. 1 分离签名detached signature 签名于Signature元素以外的内容上,通过URI或者变换来进行标识,和它所签署的内容是分开的。即签名和数据对象位于不同XML文档中。适用于签名与数据分离的情形(即不同的XML文档), 或者相同的XML文件包括了签名和数据对象,但签名和数据对象是兄弟元素的情形。3. 1.2 封内签名enveloping signature 签名于Signature元素中的Object元素之上,以Signature为父元素,将原始文档包含在
7、Signature中的XML签名文档的组织形式。即通过对封装了的对象的签名进行封装。3. 1.3 封皮签名enveloped signature 签名于整个XML内容之上,然后将Signature作为子元素插入到原始文档中,组织成XML签名文档格式。即将签名封装到XML对象中,封皮签名在计算SignatureValue时不包含其自身。1 GB/T 25061-2010 3. 1. 4 引用确认reference validation 确认由Reference所指定的元素经变换后的摘要值是否与DigestV al ue指定的匹配。3. 1. 5 签名Signature 签名是由一个应用程序通过密
8、码算法用私钥运算所产生的值,具有完整性,消息鉴别和/或签名者鉴别的特性。签名有三种非独占的描述方式:分离签名、封内签名和封皮签名。3. 1.6 签名应用signature application 指实现了本标准要求的必备部分,且Signature元素类型的结构及其子结构符合本标准的要求的应用程序。3.1.7 签名确认signature vali由tion指核心确认中以Canoni沁cali泣zation巾岛M巳t由ho叫d指定的规范化方法和S缸ignatur陀eMethod指定的签名方法处理S缸19ne巳edlnf巾fo的结果是否与S缸19n川u盯reVa剖lu时E中的值匹配。3.1.8 签名
9、者鉴别signer authentication 用来声明标识签名者属性,签名应指明谁签署了一个文挡、消息或记录,他人没有授权很难产生。签名者鉴别由应用实现,本标准支持签名者鉴别,但具体如何鉴别由相关的鉴别标准规定。3. 1.9 变换transfotm 把一个数据从原始状态转化成导出状态的处理。典型的变换包括XML规范化,XPath和XSLT。3.2 缩略语下列缩略语适用于本标准:CRL 证书撤销员j表(Certification Revocation Lst) DN M瓦别名(DistinguishedName) URI 统一资源标识符(UniversalResource Identifie
10、r) XML 可扩展置标语言(ExtensibleMarkup Language) XSL 可扩展样式表语言(ExtensibleStylesheet Language) XSLT XSL变换(ExtensibleStylesheet Language Transformations) 4 XML签名概述4. 1 概述本章描述了XML数字签名结构,第5章给出处理规则、第6章核心签名语法和第7章附加元素签名语法。XML签名可以通过间接方式作用于任意数据对象,处理的步骤是先对数据对象进行摘要,处理后的结果放置在一个元素中,再把得到的元素再进行摘要处理并且通过密码学方法进行签名。XML数字签名使用S
11、ignature元素来表示,其结构如下(?代表出现0次或1次;+代表出现1次或多次川代表0次、1次或多次): 2 (Signature工D?(Signedlnfo (CanonicalizationMethodj (SignatureMethodj ( Reference URI? GB/T 25061-2010 (Transforms)? (DigestMethod) (DigestValue) (/Reference) + (/SignedInfo) (SignatureValue) ( KeyInfo) )? (Qbject工D?)祷( /Signature) 签名是通过URI关联数据对
12、象的。XML文档内部,签名是通过XML片段标识符关联本地的数据的,本地数据可以包含在封内签名中,也可以包含在封皮签名中。分离签名作用于外部网络资源或者作用于以兄弟元素形式出现的同一个XML文档中的本地数据对象,因此这种签名既不是封内签名也不是封皮签名。一个XML文档中签名元素(以及它的ID和属性值和名字)可以与其他元素同时存在,也可以和其他元素结合在一起,命名时应注意避免违反XML标识唯一性。本标准附录D列举了各种签名的实例,供实现本标准时参考。4.2 特别说明本标准有两个规范性附录,附录AXML数字签名文档类型定义,附录BXML数字签名模式定义。在应用本标准时,应将附录A和附录B的文件存放到
13、应用可以访问的位置,例如本标准中假定存放在http:/127. O. O. 1/2001/XMLSchema. dtd和http:/127.O. O. 1/2000/09/xmldsig中,可根据实际情况调整存放位置。5 处理规则本章规定签名生成和核心确认中所用到的操作。5. 1 核心生成5. 1. 1 概述规定核心部分生成的步骤,包括Reference元素的生成和Signedlnfo元素中的签名值的生成。5. 1.2 Reference生成对于每个要签名的数据对象,Reference元素生成的步骤如下:a) 根据应用程序的要求,对数据对象进行变换;b) 计算变换后的数据对象的摘要值;c) 创
14、建一个Reference元素,包括一个可选的数据对象的标识,可选的变换元素,摘要算法和摘要值。5. 1. 3 Signature生成Signature元素生成的步骤如下:a) 以SignatureMethod指定的签名算法、CanonicalizationMethod指定的规范化算法和引用生成的Reference为内容,创建Signedlnfo元素;b) 用Singedlnfo中指定的规范化算法来规范化,并用Signedlnfo指定的签名算法来计算Signedlnfo的签名值;c) 构建包括Signedlnfo、Object、Keylnfo和SignatureValue的Signature元素
15、。5.2 核心确认5.2. 1 概述核心确认应包括:a) 引用确认,验证Signedlnfo中每个Reference包含的摘要;b) 签名确认,使用密码方法对计算Signedlnfo得到的签名进行签名确认。3 GB/T 25061一20105.2.2 引用确认引用确认的步骤如下:a) 根据Signedlnfo中CanonicalizationMethod指定的规范化方法来规范化Signedlnfo元素;b) 对于Signedlnfo中的每个Reference:1) 获得进行摘要处理的数据对象;2) 使用Reference中指定的摘要算法对结果数据对象计算出摘要值;3) 比较上一步生成的摘要值和
16、Signedlnfo中的DigestV al ue元素的内容,如果有不同,那么确认失败。注:Signedlnfo在第一步里面进行了规范化,应用程序应确保CanonicalizationMethod不会产生错误。5.2.3 签名确认签名确认的步骤如下:a) 从Keylnfo或者其他方式获得密钥信息;b) 使用Ca盯n1旧On1丑lC臼a址liz臼zationMethod来获得S缸19n川u盯r巳M巳创tho旧od的规范化形式,然后用得出的结果和上面得到的密钥信息来与Signedlnfo元素上的签名值比较。6 核心签名语法6. 1 概述本章规定核心签名元素的详细语法,若无特别声明,应支持本章所涉及
17、到的元素。签名语法通过文档类型定义和XML模式定义来定义,所有的文档类型定义和XML模式定义使用下面的XML前同步码、声明和内部实体。模式定义:(?皿1version = 1.0 enc口ding=GB 13000?) 注:上一行为XML声明,该行中的(?xml是一个整体,表示是XML文件的开始,而本标准4.1中定义的?表示的是元素的个数,请注意区分。( ! DOCTYPE sche皿aPUBLIC -/ /旧C/DTD皿Schema200102/四飞ttp:/127.0.0.1/2001/XMLSch四.dtd( ! AITL工STschema 皿lns:dsAT且#FlXED http:/
18、127 . O. O. 1/2000/09/xmldsig# ) (! ENT工TYdsig http:/127 . O. 0.1/2000/09/xmldsig# ) (! ENTITY屯p) (! ENTITY屯s) J) (schema xmlns =飞ttp:/127.0.0.1/2001/XMLSch四axmlns :ds = http:/127 . O. 0.1/2000/09/皿ldsig# targetNamespace = http:/127 . O. O. 1/2000/09/xmldsig# version = 0.1 elementFormDefault = quali
19、fied) 文档类型定义:( ! ENTITY % Object. ANY) (! ENTITY屯Method.ANY ) (! ENT工TY% (Transform). ANY ) ( ! ENTITY % SignatureProperty. ANY ) (! ENT工TY屯Key工nfo.ANY ) (! ENT工TY屯KeyValue.ANY ) (! ENTITY屯X509Data.且NY) 6. 1. 1 ds: CryptoBinary简单类型本标准定义了ds: CryptoBinary简单类型,把XML中的任意长度的整数当作宇节字符串。具体方4 GB/T 25061-2010
20、法是先把整数值转化成高位在前格式的位串,在位串前面补0使得位的个数是8的整数倍,去掉开头为零宇节(连续8个0的位串),然后对这个字节串进行base64编码。base64Binary与CryptoBinary类型相同,定义一个新的类型主要是兼容不同的使用习惯。模式定义:(simpleType na皿e= CryptoBinary) (restriction base = base64Binary) (/ restriction) (/ simpleType) 6.2 Signature元素Signature元素是XML签名的根元素,Signature元素的组织应遵循下面说明的模式。模式定义z(e
21、l四entna皿e= Signature type= ds:SignatureType/) (complexType n缸ne= SignatureType) (sequence) (element ref =飞s:SignedInfo/)(element ref =飞s:SignatureValue/)(element ref = ds:KeyInfo minOccurs = 0/) (element ref = ds:Object minOccurs = 0 maxOccurs = 田由ounded/)(/s呵uence)(attribute name = 工dtype = ID use
22、= optional /) (/compl四Type)文档类型定义:(! ELE皿NTSignature CSignedInfo, SignatureValue, KeyInfo? , Object祷) ( !且.TTL工STSignature xmlns且TA# FIXED http:/127 .0.0. 1/2000/09/xmldsig # Id ID # IMPLIED ) 6.3 SignatureValue元素Signature Value元素包含了数字签名的具体值,通常使用base64对它进行编码。当给出两个SignatureMethod算法时,一个是应实现的,另一个是可选实现的
23、,用户可以使用自己定义的算法。模式定义:(el阻四tname = SignatureValue type = ds: SignatureValueType /) (complexType n皿e= SignatureValueType) (simpleContent) (extension base = base64Binary) (attribute name= Id type= ID use= optional/) (/ext四sion)(/simpleContent) (/complex可pe)文档类型定义:(! ELE阻NTSignatureValue C # pATA) ) ( !且
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
5000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- GB 25061 2010 信息 安全技术 基础设施 XML 数字签名 语法 处理 规范
