当前位置:首页 > 芯闻号 > 充电吧
[导读]本文比较全面地介绍了XML签名,但并未深入探究。本人水平有限,错误难免,欢迎指正,共同探讨。  简介  XML签名是一种基于XML格式的签名规范。它是W3C最早的XML安全方面的推荐标准规范。设计的X

本文比较全面地介绍了XML签名,但并未深入探究。本人水平有限,错误难免,欢迎指正,共同探讨。

  简介

  XML签名是一种基于XML格式的签名规范。它是W3C最早的XML安全方面的推荐标准规范。设计的XML签名带有多个目标,可提供“对任何数据类型的完整性、消息认证、和/或签名者认证服务, 无论是在包括该签名的 XML 内部还是在别处(这对因特网的发展意义重大)。”

  XML实质上是定义了一些XML标签,通过这些标签来达到对XML文档或其他数据进行签名的目的。

  本文首先说明XML签名解决的问题,然后再从数字签名原理、XML签名语法、应用等各方面讲述XML签名。

  为什么需要XML签名

  互联网在快速发展的同时,带来了许多安全方面的挑战。数据传输的机密性、完整性,消息认证,数据不可抵赖性等,都是在应用时需要高度重视的。正如简介中所说,XML签名能够解决完整性、消息认证和不可抵赖性(即签名者认证服务)。

  完整性:即保证数据在传输过程中不被篡改。

  消息认证:使数据接收者能够确定消息来源的一项服务。

  不可抵赖性:使数据发送者不能对自己已经发送数据的行为进行否认的一项服务。

  同时,XML签名是完全基于XML的,这使得它的应用将十分方便。还有一点很重要,它是W3C的推荐标准(要知道因特网上的应用,标准是十分重要的)。

  数字签名

  数字签名是密码学中非常重要的一个领域,应用十分广泛。

  密码学主要分为对称和非对称两大类,其区别在于加解密密钥是否相同。非对称密码学又称公私钥密码学,是近代密码学一个非常重大的突破。非对称加密的加解密密钥不同,一般称其中一个为私钥,另一个为公钥。私钥为用户私有,公钥通过某种机制公布,并且两者无关联(并非完全没有联系,是指从一个无法推的得另一个)。由于它使用两种不同的密钥,因而称为非对称,并且因此可以用于消息认证和防抵赖。

  在应用数字签名时,一般都会配合使用消息摘要算法(因为如果直接对原数据进行加密签名的话,会使签名十分冗长。所以先计算其摘要,再对摘要进行签名)。消息摘要算法也是密码学中很重要的一个方面。它是一种单向函数,对原数据进行变换并获得摘要值(一般512位)。它的特点是攻击者无法针对一个摘要逆向生成产生此摘要的原数据,由此可知它是提供完整性服务的关键。

  下面是一个简单的应用模式:

  注:XML签名规范是包括摘要部分的XML签名语法,首先看个例子:

[来源于“XML-Signature Syntax and Processing”]

  [s01]

   [s02]  

   [s03]  

   [s04]  <SignatureMethod

 Algorithm="http://www.w3.org/2000/09/xmldsig#dsa-sha1"/>

   [s05]  <Reference

 URI="http://www.w3.org/TR/2000/REC-xhtml1-20000126/">

   [s06]    

   [s07]      

   [s08]    

   [s09]    

   [s10]    

   [s11]  

   [s12]

   [s13]  

   [s14]  

   [s15a]   

   [s15b]     

   [s15c]       

...

   [s15d]     

   [s15e]   

   [s16]  

   [s17]

  开始为一个Signature标签,表示这是一个XML签名。

  2-12行为SignedInfo,其中Reference中指明签名的对象,以及原数据的摘要。

  13行为签名值。

  14-16行为KeyInfo标签,指明签名使用的公钥信息。

  例子中出现的标签,以及为出现的标签,将在下面简要介绍。

  [更加具体的说明以及相关的XML Schema或DTD可以参考“XML-Signature Syntax and Processing”]

  1、  名称空间

xmlns:ds="http://www.w3.org/2000/09/xmldsig#"为XML签名使用的名称空间。

  2、  Signature标签

  标识了特定环境下的一个完整XML签名。包括子元素

  3、  SignedInfo标签

  最复杂的一个标签,指明了规范化方法、数据源、签名算法、摘要算法、摘要值以及签名变换等。包括

  3.1、

  空标签。属性Algorithm用URI方式指定规范化的算法。

  3.2、< SignatureMethod >标签

       空标签。属性Algorithm用URI方式指定签名的算法。

  3.3、

  < DigestMethod>和< DigestValue>标签分别指定摘要的算法和值。属性Id为标识,URI指定数据源。< Transforms>指定签名变换,由零至多个

  4、 

  (可选。因为在实际应用中,上下文可能已经隐含了这个信息,或者双方通过其他约定来传递这个信息)

  包含

  4.1、

  密钥名称的简单文本标识符。

  4.2、

       RSA或DSA公钥。

  4.3、

  允许远程访问密钥信息。

  4.4、

       X.509证书数据。

  4.5、

       PGP相关数据。

  4.6、

       SPKI相关数据。

  4.7、

       密钥共识参数(如Diffie-Hellman参数等)

  5、 

  用于附加信息。

  再次强调,这里只是简要介绍,更加详细的说明参考“XML-Signature Syntax and Processing”。

  应用

  XML签名可以作为其他标准框架的一部分使用,当然也可以独立适用,自己定义一个框架,自己生成和解析XML签名。XML签名已经广泛应用于WS-Security中,具体可参阅WS-S的内容。

  实现

  现在已经出现了很多XML签名开发包。主要有IBM的XML Security Suite和apache的XML Security。其中实现了XML签名生成和校验的API(Java)。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭
关闭