犐犆犛犔中华人民共和国国家标准犌犅代替犜信息安全技术犡犕犔数字签名语法与处理规范犐狀犳狅狉犿犪狋犻狅狀狊犲犮狌狉犻狋狔狋犲犮犺狀狅犾狅犵狔犡犕犔犱犻犵犻狋犪犾狊犻犵狀犪狋狌狉犲狊狔狀狋犪狓犪狀犱狆狉狅犮犲狊狊犻狀犵狊狆犲犮犻犳犻犮犪狋犻狅狀发布实施国家市场监督管理总局国家标准化管理委员会发布犌犅犜目次前言范围规范性引用文件术语定义和缩略语术语和定义符号和缩略语签名概述概述定义文件用法说明处理规则生成确认签名语法概述元素元素元素元素元素附加的签名语法概述元素元素元素中的处理指令元素中的注释证实方法附录资料性附录数字签名实例附录规范性附录数字签名文档类型定义附录规范性附录数字签名模式定义附录资料性附录算法标识符参考文献犌犅犜前言本标准按照给出的规则起草本标准代替信息安全技术公钥基础设施数字签名语法与处理规范与相比主要技术变化如下增加了新的引用文件见第章在中增加了类型定义表示椭圆曲线密码算法密钥值见在元素中增加了和子元素并给出模式定义见和增加了和的定义见附录中和增加了密码杂凑算法消息鉴别算法签名算法的定义见附录中和增加了规范化算法和独占规范化算法见附录中和请注意本文件的某些内容可能涉及专利本文件的发布机构不承担识别这些专利的责任本标准由全国信息安全标准化技术委员会提出并归口本标准起草单位北京信安世纪科技股份有限公司格尔软件股份有限公司数安时代科技股份有限公司国家密码管理局商用密码检测中心本标准主要起草人汪宗斌刘婷郑强张永强吕春梅焦靖伟史晓峰本标准所代替标准的历次版本发布情况为犌犅犜信息安全技术犡犕犔数字签名语法与处理规范范围本标准规定了创建和表示数字签名的处理规则签名语法附加的签名语法和证实方法本标准适用于制作和处理数字签名的应用程序系统或服务规范性引用文件下列文件对于本文件的应用是必不可少的凡是注日期的引用文件仅注日期的版本适用于本文件凡是不注日期的引用文件其最新版本包括所有的修改单适用于本文件信息技术信息交换用七位编码字符集信息技术通用多八位编码字符集信息技术开放系统互连目录第部分公钥和属性证书框架信息技术可扩展置标语言信息安全技术公钥基础设施数字证书格式信息安全技术密码算法使用规范基于多用途互联网邮件扩展第部分互联网消息体格式互联网公钥基础设施的算法和标识符证书和证书撤销列表轮廓统一资源标识符通用语法轻型目录访问协议甄别名的字符串表示椭圆曲线密码主体公钥信息术语定义和缩略语术语和定义界定的以及下列术语和定义适用于本文件分离签名犱犲狋犪犮犺犲犱狊犻犵狀犪狋狌狉犲签名于元素以外的内容上签名和数据对象位于不同文档中的签名文档的组织形式犌犅犜封内签名犲狀狏犲犾狅狆犻狀犵狊犻犵狀犪狋狌狉犲签名于元素中的元素之上以为父元素将原始文档包含在中的签名文档的组织形式封皮签名犲狀狏犲犾狅狆犲犱狊犻犵狀犪狋狌狉犲签名于整个内容之上然后将作为子元素插入到原始文档中的签名文档组织形式签名犛犻犵狀犪狋狌狉犲签名者使用私钥对待签名数据的杂凑值做密码运算得到的结果注签名有三种描述方式分离签名封内签名和封皮签名签名应用程序狊犻犵狀犪狋狌狉犲犪狆狆犾犻犮犪狋犻狅狀实现了元素类型的结构及其子结构的应用程序变换狋狉犪狀狊犳狅狉犿把一个数据从原始状态转化成导出状态的处理示例规范化和变换等符号和缩略语下列符号和缩略语适用于本文件前一符号出现次或次前一符号出现次或多次前一符号出现次次或多次证书认证机构证书撤销列表超文本传输协议基于多用途互联网邮件扩展对象标识符公钥基础设施统一资源标识符可扩展置标语言路径可扩展样式表语言变换犡犕犔签名概述概述本章描述了数字签名的结构第章给出了处理规则第章签名语法和第章附加的签名犌犅犜语法格式要求见签名可通过间接方式作用于任意数据对象处理的步骤是先对数据对象进行杂凑处理处理后的结果放置在一个元素中再对得到的元素进行杂凑处理并且通过密码学方法进行签名数字签名使用元素来表示其结构如下签名是通过关联数据对象的在文档内部签名通过片段标识符关联本地的数据对象本地数据可包含在封内签名中也可包含在封皮签名中分离签名作用于外部网络资源或者作用于以兄弟元素形式出现的同一个文档的本地数据对象因此这种签名既不是封内签名也不是封皮签名一个文档中签名元素以及它的和属性值和名字可与其他元素同时存在也可和其他元素结合在一起命名时应注意避免违反标识的唯一性本标准凡涉及密码算法相关内容按照国家有关法规实施签名实例参见附录定义文件用法说明本标准附录为数字签名文档类型定义附录为数字签名模式定义在应用本标准时应将附录和附录的文件存放到应用可访问的位置例如假定存放在地址为的服务器上各个文件的路径为应用可根据实际情况调整存放位置可使用附录中定义的方法来集合这些定义本标准提及的上述地址仅是为了明确一个特定空间实际应用中可视情况调整处理规则生成犚犲犳犲狉犲狀犮犲生成对于每个要签名的数据对象元素生成的步骤如下根据应用程序的要求对数据对象进行变换犌犅犜计算变换后的数据对象的杂凑值创建一个元素包括一个可选的数据对象的标识可选的变换元素密码杂凑算法和杂凑值犛犻犵狀犪狋狌狉犲生成元素生成的步骤如下以指定的签名算法指定的规范化算法和引用生成的为内容创建元素用中指定的规范化算法进行处理并用指定的签名算法来计算的签名值构建包括和的元素元素中各个子元素的含义和具体构造方法见第章确认概述确认应包括引用确认验证中每个包含的杂凑值签名确认使用密码方法对计算得到的签名进行签名确认犚犲犳犲狉犲狀犮犲确认引用确认的步骤如下根据中指定的规范化方法来处理元素对于中的每个获得进行杂凑处理的数据对象使用中指定的密码杂凑算法对结果数据对象计算出杂凑值将上一步生成的杂凑值和中的元素的值进行比较如果有不同那么确认失败注在步骤进行了规范化应用程序宜确保不会产生错误犛犻犵狀犪狋狌狉犲确认确认应比较以指定的规范化方法和指定的签名方法处理的结果是否与中的值是否匹配确认的步骤如下从或者外部源获得密钥信息使用来获得的规范化形式然后用得出的结果和上面得到的密钥信息对元素进行签名值验证签名语法概述模式定义签名语法通过模式定义来定义所有的模式定义使用下面的前导说明部分文犌犅犜件类型声明和内部实体模式定义注上一行为声明该行中的是一个整体表示是文件的开始而本标准中定义的则表示元素的个数请注意区分文档类型定义扩展标记使用名字空间新的模式定义如下犱狊犆狉狔狆狋狅犅犻狀犪狉狔简单类型定义简单类型把中任意长度的整数表示成字节字符串具体方法是先把整数值转化成高位在前格式的位串在位串前面补使得位数是的整数倍去掉开头为零字节连续个的位串然后对这个字节串进行编码编码遵循注与类型相同定义一个新的类型主要是兼容不同的使用习惯模式定义犌犅犜犛犻犵狀犪狋狌狉犲元素元素是签名的根元素元素的组织应遵循下面说明的模式模式定义文档类型定义犛犻犵狀犪狋狌狉犲犞犪犾狌犲元素元素包含了数字签名的具体值通常使用进行编码当给出两个算法时一个是应实现的另一个是可选实现的用户可使用自己定义的算法注封皮签名在计算时不包含其自身模式定义文档类型定义犌犅犜犛犻犵狀犲犱犐狀犳狅元素概述的结构包括规范化算法签名算法和一个或者多个引用元素可包含一个可选的属性供其他签名或者对象引用不包括显式的签名或杂凑属性例如处理时间加密设备序列号等如果应用程序需要将属性与签名或杂凑相关联则可在元素内的元素中包含此类信息模式定义文档类型定义犆犪狀狅狀犻犮犪犾犻狕犪狋犻狅狀犕犲狋犺狅犱元素是元素中用于指定规范化算法的必要元素指明签名处理之前进行规范化处理的算法元素使用算法标识符和实现需求中给出的算法应用实现应支持必要的规范化算法可选用需要的规范化算法若不明确指定缺省的规范化算法是对元素的呈现与规范化算法本身有关下面的步骤适用于处理节点的算法基于的规范化实现实现带有一个节点集合节点集合源于包含元素的文档并指明当前的后代属性名字空间节点和它的后代元素模式定义文档类型定义犌犅犜犛犻犵狀犪狋狌狉犲犕犲狋犺狅犱元素是用来指定进行签名生成和验证算法的必要元素表明签名操作中用到的密码函数如密码杂凑算法公钥算法填充方式等这个元素使用算法标识符算法标识符实例可参考附录模式定义文档类型定义犚犲犳犲狉犲狀犮犲元素概述元素可出现一次或者多次用来指明密码杂凑算法杂凑值签名对象的标识符签名对象的类型和进行杂凑处理前的一个变换列表标识和变换描述了如何对内容进行杂凑处理属性指明如何处理引用的数据可选的属性允许引用其他的内容模式定义犌犅犜文档类型定义犝犚犐属性属性使用引用来标识一个数据对象和均使用定义的字符集但引用中禁止使用除外中列出的所有非字符和保留字等特定字符禁止使用的字符应通过下面的方法进行转义每个禁止字符按照一个或多个字节转化成编码任何与一个禁止字符相应的字节序列使用的转义方法进行转义用生成的字符序列代替原始的字符签名的应用程序应能解析语法并能够依据标准来解析引用理解协议的参数和状态信息处理的状态码一个资源有多个标识时应使用最具体的标识应用程序预先知道对象的标识时可不提供属性的属性包含被签名对象的类型信息表示成属性是可选的例如或属性应指向具体的对象而不是其内容属性是辅助性的不要求验证的有效性犚犲犳犲狉犲狀犮犲处理模型签名应用程序不必为了符合本标准而与规范一致但对于那些希望充分利用特性将签名生成作为应用程序的一部分来处理的应用程序则应使用数据模型定义和语法采用的目的是为那些希望使用这些特征而又符合规范的应用提供一种可选途径应用可对一个节点集合进行充分的功能替换并且仅实现本标准需要的那些表达式行为为了简单起见本标准通常使用术语而不在每个地方都注明对于节点集合需求可实现一个包含节点集合功能相同的应用程序应用程序应对文档采用与处理等效的方式处理文档解析或者一系列的变换结果的数据类型是一个八位位组流或者是一个的节点集合本标准中所涉及的变换是根据输入定义的签名应用程序的正常行为应为如果数据对象是八位位组流且下一个变换要求一个节点集合签名应用程序应对字节流进行分析通过标准处理过程来得出必需的节点集合如果数据对象是一个节点集合而下一个变换需要八位位组签名应用程序必须使用规范的来把节点集合转化成八位位组流在需要不同输入的变换中进行变换时用户可指定替代的变换来覆盖这些缺省的变换最终的八位位组流包含了受保护的数据用指定的密码杂凑算法对这些数据对象进行处理得出的结果放在中犌犅犜若引用为非同文档引用解析引用的结果应为一个八位位组流标识的文档指向同文档引用或应用不要求变换时签名应用程序不必解析它若片段出现在一个绝对或者相对的前面那么片段的含义由资源的类型定义对于文档也可通过一个代理来完成签名程序对的解析包括对片段的处理如果片段处理不是标准化处理的引用确认可能会失败本标准建议属性不包括片段标识符而将这种处理过程当作附加的变换来进行说明当片段没有出现在前面时签名程序应支持空和无名若应用程序还要支持任何保存注释的规范化操作那么建议对同文档的提供支持由于应用程序可能无法控制片段的生成因此所有其
GB-T 25061-2020 信息安全技术 XML数字签名语法与处理规范
文档预览
中文文档
62 页
50 下载
1000 浏览
0 评论
0 收藏
3.0分
温馨提示:本文档共62页,可预览 3 页,如浏览全部内容或当前文档出现乱码,可开通会员下载原始文档
本文档由 路人甲 于 2022-05-26 10:00:13上传分享