- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
探讨XML签名应用中容易被忽视的规范化过程、变换过程以及基于Java的XML数字签名的具体实现.doc
探讨XML签名应用中容易被忽视的规范化过程、变换过程以及基于Java的XML数字签名的具体实现
--Abstract: L signature procedure plementation of XML signature based on Java.
Key ent Specification)、SAML ( Security Assertion MarkupLanguage)等一系列规范的基础。
本文首先比较了XML签名的与传统的数字签名技术的不同点,接着讨论了XML数字签名规范中的基本元素,重点探讨了XML签名应用中容易被忽视或错误理解的规范化(Canonicalization)过程和参考对象的变换(Tranform)过程,然后阐述了XML数字签名的生成和校验的基本方法,最后给出了一个利用IBM的XML Security Suite库实现XML数字签名的Java实例。将XML语言引入数字签名技术后,打破了传统数字签名技术的局限性,给数字签名应用程序增加了灵活性和可扩展性。
2XML数字签名与传统数字签名比较
XML数字签名与传统的数字签名技术相比,并没有技术上的飞跃或本质上的不同。与传统的数字签名技术一样,XML数字签名技术同样基于目前被广泛使用的公共密钥体系(Public Key Infrastructure,PKI)。用户利用标准的非对称加密算法例如RSA、DSA,用自己的私钥对要签署的数据签名,然后对方用签名者的公钥对签名进行校验。如果他人仿冒签名者的身份对数据签名(除非他获得了签名者的私钥),或者已签名的数据在传输过程中被篡改,那么签名的校验将会失败。并且由于用户私钥的私密性,因此一旦对方获得了签名者的签名,其签名行为是不可抵赖的(Non-repudiation)。
传统数字签名技术的局限性在于,其签名粒度过粗,签名对象是要签署的文档整体。以电子政务中常见的电子公文签名为例,传统的数字签名技术可以采用整体式签名、基于OLE的对象链接嵌入式签名和基于S/MIME的数字签名[2]。但这些技术很难支持电子公文的批复和多重签名,也不支持对公文的部分签名,对应用程序较为依赖,因此通用性不好。
而XML数字签名技术较好地解决了上述问题。XML签名的灵活性和扩展性在于,XML数字签名的处理规范充分利用了XML语言本身及其伙伴标准例如XPath、XPointer、XSLT强大的表达能力和扩展能力,不仅可以像传统的数字签名技术一样对整个文档签名,还可以实现XML数字签名的特有功能,即在较细的粒度上如对文档的特定部分进行签名,而且支持多重签名。在XML签名的元素中,其URI属性不仅可以指定本地或网络上的文本或二进制数据,还可以指定XML文档内部的某个元素。如果想对多个数据签名,可以采用多个Reference元素分别指向不同的签名对象。XML签名方式是极其灵活的,根据签名元素和被签名对象之间的关系,XML有如下三种签名方式:
1)封装式签名(Enveloping Signature) 被签名数据被封装在XML签名元素的内部,Signature元素类似于一个信封,将签名的数据封在里面。
2)嵌入式签名(Enveloped Signature)Signature元素本身被嵌入到被签名数据中,被签名的数据充当了包含签名的“信封”。
3)分离式签名(Detached Signature)Signature元素和被签名数据是彼此分离的,两者之间不存在包含和被包含的关系。被签名的数据可以是独立的外部文档,也可以是跟Signature元素位于同一XML文档内的并列的兄弟元素(Sibling Element)。
3 XML数字签名基本组件
在XML数字签名规范中,XML签名包括四个基本元素:元素、元素、元素和元素,如以下程序所示:
(
()?
)+
()?
()*
其中,元素和元素是必须的,元素和元素是可选的。图中的“?”表示该元素可以出现0次或1次,图中的“+”表示该元素至少出现1次,图中的“*”表示该元素可以出现0次或多次。元素是整个XML签名中数据最丰富的核心元素,它包含了XML签名中最重要的信息,例如指定了被签署数据的位置、被签署数据的变换算法、摘要算法、元素的规范化算法以及最后的签名算法。由以上程序可以看出,元素包括三个子元素,分别是、和--rence。即签名算法指的是对整个元素应用规范化方法后,采用的单向散列函数及签名的算法,常见的有RSA、DSA与MD5、SHA-1的组合。和都是针对其父元素即整个元素而言的。由于参考对象(Reference)的变换算法和元素的规范化问题往往容易被忽视,从而导致XML签名校验的失败,因此我们重点讨论元素的规范化和参考对象(Reference)的变换算法问题:
1)元素的规范化问题
规范化的目的,是
您可能关注的文档
最近下载
- 迈富时 上市招股说明书.pdf VIP
- 年产3500吨对羟基苯甲酸乙酯(食品添加剂)项目可行性研究报告.docx VIP
- HMMT_-_哈佛-MIT数学竞赛题.pdf
- 资金平衡表.doc VIP
- 小学生四年级上册暑假练字电子字帖生字写字表提前学习练习楷书字帖pdf可打印文件.pdf VIP
- 氢氟酸安全标签.doc VIP
- 2025年全国统一高考生物试卷(江西卷)含答案 .pdf VIP
- 《义务教育数学课程标准(2022年版)》【试题】题库及答案汇总.docx VIP
- 八年级上册历史《中华民族的抗日战争》单元作业设计 (优质案例50页) .pdf VIP
- 商务日语函电第2课 支払い遅延の依頼と回答.ppt VIP
文档评论(0)