XML加密技术的研究进展

来源 :硅谷 | 被引量 : 0次 | 上传用户:chjl0620
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  [摘要]XML作为传输和交换的数据格式标准,保证它在传输和交换过程中的安全性是非常重要的。W3C已提出许多安全相关的规格书,包含有XML数字签名、XML加密和XML密钥管理。针对上述两种方法的特性,从安全性和效率两方面上做比较以及探讨。
  [关键词]XML 加密 XSLT
  中图分类号:TP3 文献标识码:A 文章编号:1671-7597(2008)0820073-01
  
  一、W3C的XML加密方法
  
  W3C所提出的加密方法除了对整份XML文件加密外,还可以针对XML文件中的元素(element)来加密,或是部分的XML文件来加密(包含有子元素的元素),甚至对元素内容(element content)加密。加密过后的XML文件还是以XML的格式呈现。
  在加密XML文件时,第一步会先将XML文件转换成DOM对象,第二步是利用对称式加密算法取得加密XML的共享密钥,第三步是利用非对称式加密算法取得公私密钥对中的公钥来加密那把共享密钥,第四步是利用XPath定义并指出需要加密的元素,第五步完成加密产生新的XML文件。
  而在解密XML文件时,第一步先把加密过的XML文件转换成DOM对象,第二步利用加密时产生的公私密钥对中的公钥取得私钥,第三步利用XPath指定被加密过的元素,第四步取得加密时的那把共享密钥,第五步完成解密恢复成原先未加密前的XML文件。
  
  二、使用XSLT加密的方法
  
  XSLT(XSL Transformations)是由XSL(Extensible Stylesheet Language)发展而来的一种基于XML的语言,用于将一种XML文档转换成另一种XML文档。这个转换的特性让人联想到可以应用在XML文件加解密上面。以R.G.Bartlett和M.W.Cook所提出的方法为例,它利用XLST以及XSLT的增设功能编写加密以及解密的Stylesheet来达到针对XML文件的部分内容或是单一元素加解密。
  加密时,第一步是先读入XML文件以及用来加密的XSL文件。第二步是XSLT处理器读取到用来加密的XSL文件中增设功能所呼叫的Java加密程序时,把欲加密的元素或部分XML文件交给所呼叫的Java加密程序执行产生密文传回。第三步再利用用来加密的XSL文件把传回的密文写入到欲加密的XML文件中。解密的过程则是把上面加密过后的XML文件以及用来解密的XSL文件读进XSLT处理器中,步骤和加密的步骤一样。
  
  三、两种加密方法的比较
  
  (一)两种加密方法的相同点
  W3C的方法以及使用XSLT的方法两者相同之处很多:
  就对XML文件加密的细致程度来说,两种方法都可以加密整份XML文件、部分XML文件、XML元素、XML元素内容,而加密过后的XML文件都是以XML格式输出。而对选取加解密算法上来说,两种方法都可以使用传统密码学上的加解密演算法来达成针对XML文件加密。
  在该如何定位以及指明XML文件加密部分这个问题上,两种方法都是使用到XPath的语法来指定加密的部分。而最吸引人注意的一点就是这两种方法针对一份XML文件加密,都可以针对文件中多个部分加密,并且每个部分可以使用不同的加密算法。
  (二)两种加密方法的不同点
  W3C的方法以及使用XSLT的方法两者不同之处非常明显:
  先以加密过后的XML文件内容来看,W3C的方法是以
  元素来取代欲加密的XML文件元素,改变了原先XML文件的形式,而使用XSLT的方法是把密文写进欲加密的XML文件元素,并没有改变原先XML文件的形式。
  再来我们来看针对XML文件加密过程中的不同点,W3C的方法一次只能做到针对XML文件的一个区块做加密,而使用XSLT的方法则是利用了XSLT的递归功能可以一次做到针对文件中同样元素名称但是分散在XML文件内不同位置的多个元素加密,且若要针对不同的元素加密只需要修改撰写Stylesheet文件即可。当然最重要的一点,站在程序开发的角度来看W3C的方法只是单纯的程序语言写作,而使用XSLT的方法则是需要先针对加解密Stylesheet下手再利用程序语言来撰写实作,对于提倡属于XML机制的加解密方法来说,XML的使用者更容易去撰写一份加解密Stylesheet文件。
  在实现复杂度上的考虑来说,W3C的方法是比较好的,因为在程序开发时使用XSLT的方法需要使用到XSLT的增设功能,虽然使用Stylesheet是很方便的而且在XSLT标准规格里有增设功能这个章节,不过并不是每个XSLT处理器都能够完整的支持增设功能。
  (三)两种加密方法的优缺点
  在安全性上的考虑来说,W3C的方法是比较好的,电子商务应用中的XML文件每个元素的名称都能够让接收者很清楚地知道到底元素里面的内容为何,例如元素纪录着信用卡号、元素纪录着物品价格等等。使用W3C的方法这些元素都会被元素所取代,就算在传送方传送给收取方途中被扮演中继的第三者所获得,第三者也无法清楚的得知加密内容到底为何;而使用XSLT的方法并不会去取代欲加密的元素,中继第三者可以很清楚的得知这份文件的内容,只是针对元素内容加密,对于安全性来说是比W3C要来的差的。
  在效率上的考虑来说,使用XSLT的方法是比较好的,虽然两种方法都能够针对部分XML文件加密,但是如果一份文件中有多个部分需要加密,使用XSLT的方法只要针对加解密Stylesheet文件下手,很轻松就能够达到一次就完成针对多个部分加密。而如果今天一份很大的XML文件有非常多个部分需要加密,甚至有许多空元素也需要加密,使用XSLT的方法,加密过后的XML文件内的元素数量只会少或是持平不会变多,但是如果是使用W3C的方法,则可能加密过后的XML文件可能会产生数量非常庞大甚至比原先还要多的元素出现,造成XML文件变得更加庞大。
  虽然目前看起来还是W3C的方法比较容易实现且安全性上来说比较好,不过对于一份有多个部分需要个别加密的XML文件来说,使用XSLT的方法在效率上来说却是远超越W3C的方法。如果针对小份的XML文件,且需要加密的部分不多,推荐使用W3C的方法。但是如果是一份很大的XML文件且有多个部分需要加密,则推荐使用利用XSLT来加密的方法。
  
  参考文献:
  [1]耿建勇.XML安全技术的应用研究[D].中国科学院研究生院(计算技术研究所),2005.
  [2]R.G.Bartlett,M.W.Cook.XML Security Using XSLT[C].Published in 36thAnnual Hawaii International Conference on System Sciences(HICSS'03),2003.
  [3]W3C.XSL Transformations(XSLT) Version 2.0 [C]http://www.w3.org/TR/2005/WD-xslt20-20050211/.W3C,2005-2-11.
其他文献
[摘要]随着ERP系统和自动化系统建设的逐步完善,企业对于生产现场的组织管理提出了需求,各企业开始实施MES系统的建设。介绍烟草企业在易地技改新厂区的MES系统建设情况。MES系统实施实现了生产过程的信息化管理,使得从定单到成品入库全过程实现自动化。  [关键词]SOA .netWonderware  中图分类号:C94 文献标识码:A 文章编号:1671-7597(2008)0820061-01
期刊
[摘要]随着J2EE技术平台的逐渐成熟和完善,基于J2EE的Web应用开发也日益增加,表现层作为Web应用开发架构中的重要一层,好的表现层框架对加快开发周期以及简化开发繁简度有着很重要的影响,就是在这样的背景下,详细的对两种表现层框架Struts和Jsf进行对比分析,以方便开发者在实际项目应用中的选用。  [关键词]表现层 Struts JSF 对比  中图分类号:TP3 文献标识码:A 文章编号
期刊
[摘要]在开发基于Browser/Server模式的网络应用程序中,数据库的连接是首要考虑的问题,本文通过对数据库的连接、数据库中数据的读取及显示、数据库中数据的添加、更新、删除五个方面详细阐述对WEB数据库中数据访问的实现,总结出如何充分利用ASP.NET的控件来实现对数据库中数据的访问。  [关键词]ASP.NET Web数据库 控件  中图分类号:TP3 文献标识码:A 文章编号:1671-
期刊
[摘要]设学生管理数据库中有两个表:班级简况,学生情况。在Authorware中可以把班级简况表中的班级名称字段的值做树型树目录中的一级目录,把学生情况表的学生姓名做成二级目录。且用这个树型目录来操作数据库的中的记录非常方便,如果只有二级目录,设计详细页时只有两个页面,班级一个页面,学生一个页面,如果页面上的信息要详细,查询语句多一点内容罢了,与页面设计没有多大关系,且在详细页面还可以增加你所要的
期刊
[摘要]端粒是保护真核细胞染色体末端的“帽子”,当端粒长度因细胞复制而缩短到极限时,细胞就会走向衰老甚至死亡,而端粒酶的存在能补充已缩短的端粒从而延长细胞寿命甚至使其得到永生。端粒-端粒酶系统与人类的衰老和肿瘤的形成与发展无疑有着某些密切的联系,透彻分析其关系对抗衰老以及肿瘤的诊断和治疗有着极其重要的意义。  [关键词]端粒 端粒酶 细胞衰老 肿瘤  中图分类号:Q93 文献标识码:A 文章编号:
期刊
[摘要]Notes是当今唯一综合了三大核心技术的实用群件产品,它将电子邮件系统(NoteSMail)、功能强大的文档数据库和丰富的应用开发环境三部分紧密地集成在一起。  [关键词]Notes 开发环境 办公自动化系统   中图分类号:C94 文献标识码:A 文章编号:1671-7597(2008)0820066-01    LotusNotes是美国LotuS公司(现为IBM子公司)推出的群组工作
期刊
[摘要]数字滤波是数字信号处理领域中的关键技术之一,FIR数字滤波器是实现数字滤波的主要途径。基于综合EDA技术,设计特定性能指标的FIR数字滤波器的整体电路,并基于Quartus II等软件平台对设计结果进行了交互式的仿真验证。仿真结果表明,所设计的FIR数字滤波器达到了指标要求,这种基于综合EDA技术的设计方法也使得数字信号滤波系统的开发更为可靠、便捷。  [关键词]FIR滤波器 综合EDA技
期刊
[摘要]对110kV变电站的综合自动化系统的各项具体功能进行剖析,在熟悉综合自动化系统各项功能原理的基础上分析110kV无人值班变电站的电气二次设计,提出变电站电气二次设计有效的思考方法。  [关键词]变电站综合自动化 保护 测控 电气二次设计  中图分类号:TM7 文献标识码:A 文章编号:1671-7597(2008)0820037-02    一、引言    变电站是输变电系统中的重要环节,
期刊
[摘要]随着无线网络技术的发展,人们希望能够在任何时间,任何地点,以任意的方式高速地使用网络资源。对WIMAX网络进行概述,并介绍和研究WIMAX的系统内和系统间切换管理技术,最后,针对如何提高网络切换管理性能,提出新的切换策略。   [关键词]WIMAX 切换 改进  中图分类号:TP3 文献标识码:A 文章编号:1671-7597(2008)0820060-01    一、引言    随着IE
期刊
[摘要]MVC架构是将应用程序对象的模型与显示它的GUI元素相分离,在Java 编程中应用很广。  [关键词]MVC Java GUI  中图分类号:TP3 文献标识码:A 文章编号:1671-7597(2008)0820064-01    一、MVC模式介绍    模型-视图-控制器(MVC)是XeroxPARC在八十年代为编程语言Smalltalk-80发明的一种软件设计模式,它强制性的使应用
期刊