admin 管理员组

文章数量: 1086019


2024年4月20日发(作者:微信没有小程序怎么添加)

Information Security・信息安全・信息加密 

基于XML元素加密的 

Web服务安全策略 

张佳 董向明 许建国 

(1.长江大学工程技术学院信息系 湖北荆州434020;2.国电长源荆州热电有限公司 湖北荆州434001) 

【摘要】Web服务使开发人员能够建立一种面向服务的、平台无关的、分布式的应用程序架构,另一方面Web服 

务使用XML在网络中进行数据交换,如何提高Web服务的安全性则成为需要解决的关键问题。本文论述了基于对 

XML文件中的元素进行加密的策略,从而保证了Web服务安全性。 

【关键词】Web服务;加密;XML 

Web Services Security Strategy Based on Xml Elements Encrypted 

ZhangJia DongXiang-ming XuJian-guo 

(’.Yangtze UniversityCollege ofEngineeringand Technology HubeiJingzhou 434020, 

2.Guodian Changyuan Jingzhou Therma|PowerCo.Ltd HubeiJ/n'gzhou 4340o1) 

【Abstract】Web services enable developers to build a serviec.oriented,platform-independent distributed,application architecture.On hte other hand, 

Web serviecs use XML for data exchange in hte network.How to improve the security of Web serviecs has become the key issues need to be addressed. 

This article discusses the strategy based on the encrypted elements in hte XML ifle,thus ensuring the Web Serviecs Security. 

【Keywords】web serviecs;encrypt;XML 

1前言 

是W3C制定的标准。加密后,不会破坏原有的XML文 

档格式,只是相关内容会被密文替换。 

某省交管部门的中心数据库存储着省内各个城市 

的交通违章记录数据,交管部门通过公布Web服务,供 

XML加密主要有三种:加密XML文件、加密对 

其下属城市进行访问,进一步构建各类应用程序。出于 

XML元素以及加密XML内容。本文将主要讨论对 

对Web服务调用过程中数据安全性的考虑,需要对 

XML的元素进行加密的方式来实现web服务的安 

Web服务的安全性进行研究。 

全性。 

3.1对XML的元素进行加密 

2 web服务 

3.1.1 EncryptedData元素 

Web服务本质上就是一个应用程序,它向外界暴露 

对XML元素实现加密是借助EncryptedData元素 

出一个能够通过Web进行调用的API,使得开发人员能 

完成的。该元素的层次结构如图1所示。 

够实现应用程序的互操作,并且是跨编程语言和操作平 

图中EncryptedData元素是被加密对象的根元素。 

台的。在开发和调用Web服务时,主要涉及到几个关键 

其子元素EncryptionMethod中描述具体点加密方法。子 

的协议和技术:XML、SOAP、WSDL、UDDI。 

元素Keylnfo中存放对称密钥,Keylnfo元素的子元素 

3 xML加密 

EncryptedKey存放被保存的密钥的信息。要加密的数据 

本系统所使用的XML加密(XML Encryption)方式 

包含在CipherData元素的子元素CipherValue中。 

22.2013年8月・信息安全与技术 

信息加密・信息安全・Informat ion Securi ty 

姆翻口r’舯 no哪 

嘲I鱼 _1 

甜 伽m 种舯・啉 

辩协御 1 

豳黼踌 l白僵尊| 日 睹) 

景螂 懒 厦 -T哪t啊 ∞ 

瓣壤r- 梯 对'嘲 苣I审m 嚏 ) 

国.。自呻 幡艇 慌r眦哟 

糖 鼬 酗m自隹皓f岫nt嘲 I) 

cl 曩蚀 曩m嘲r 哪 

躲 a叫啊nI.k量蓝jI. 憎nt ,d ) 

C■■r油帼I.1啊憾ncI ) 

图1 EncryptedData元素结构 

图2×ML元素加密流程 

3.1。2对XML元素进行加密 

对XML元素进行加密的步骤。 

1)从原文档中使用xpath找到要加密的元素。 

2)对该元素的内容使用keyinfo中的对称密钥和 

EncryptionMethod中的加密方法进行加密。 

3)对上一步中的对称密钥使用公开密钥进行加密。 

4)将加密后的数据以及加密后的对称密钥保存在 

EncryptedData元素中。 

5)将要加密的元素替换为EncryptedData元素。 

具体加密流程如图2所示。 

3.1.3对XML元素进行解密 

对XML元素进行加密的步骤。 

1)在加密后的XML文档中找到元素 

EncryptedData。 

2)通过公开密钥解密对称密钥。 

3)通过解密后的对称密钥对数据进行解密。 

4)将解密后的元素替换掉EncryptedData元素。 

4具体实现 

4.1实现思路 

以下为请求一个Web服务操作后返回的XML文 

本内容: 

<surveil id=”0”> 

< e>100</fkje> 

<dsr>徐国锐</dsr> 

<hphm>京A88888</hphm> 

</surveil> 

其中 e表示罚款金额,dsr表示违法人,hphm表 

示号牌号码。 

如果想要将XML文件中的<hphm>元素进行加 

密.就需要用<EcryptedData>元素取代<hphm>元素, 

加密后的信息以Base64格式编码后存放在 

<CipherData>的<CipherValue>元素中。加密后的文件 

内容如下代码所示: 

<surveil id=”0”> 

<埘e>lOO</tkje> 

<dsr>徐国锐</dsr> 

<EncryptedData Type ”http://www.w3. 

org/2008/02Xmlenc#Element’’Xmlns ”http://www.w3. 

org/2008/02/Xmlenc#”> 

<Cil ̄)herData> 

<CipherValue>ilTLGiFLo4Hu3wYV ・・‘ 

</CipherValue> 

</CipherData> 

</EncryptedData> 

</surveil> 

4.2核心代码 

4-2.1加密 

1) ̄II载要加密的surveil.xnl文档,并选择要加密的 

hphm元素: 

XmlDocument xmlEncryptDoc new XmlDocument 

(); 

xmlEncryptDoc.LoadXml(”surveil.xml”); 

XmlElement xmlElemt =(XmlElement) 

xmlEncryptDoc.Se1ectsingleNode(@”/surveil/hphm”); 

21设置秘钥名称以及与rsa算法的映射关系: 

信息安全与技术・2013年8月・23・ 


本文标签: 加密 元素 进行 服务