admin 管理员组文章数量: 1184232
2024年4月19日发(作者:冒泡排序注意事项)
第
29
卷第
3
期
2008
年
6
月
华 北 水 利 水 电 学 院 学 报
JournalofNorthChinaInstituteofWaterConservancyandHydroelectricPower
Vol
1
29No.3
Jun.2008
文章编号
:1002-5634
(
2008
)
03-0050-03
XML
文档的加密
李 军
(
华北水利水电学院
,
河南郑州
450011)
摘 要
:
分析了
XML
文档加密的重要性
,
给出了对
XML
文档加密的功能要求、系统设计和实现方法
,
并结合
实例程序说明了
XML
文档加密的处理过程
.
关键词
:XML;
文档加密
;DOM
中图分类号
:TP309.7
文献标识码
:A
目前,越来越多的企事业单位使用XML在
WEB上传输结构化的数据.由于Internet是一个开
放性的网络,在电子数据交换、B2B电子商务等领
域,信息的安全传输很重要,如果不采取保护措施,
信息在传输的过程中一旦遭受攻击,就可能遭受巨
大损失
[1]
.
在当前的安全技术中,SSL/TSL是一个非常安
全、可靠的协议,能提供端到端的安全会话,可实现
对整个文档加密,但不能实现对部分数据加密的数
据交换.而XML加密技术既能实现对整个XML文
档进行加密,也能实现加密信息和非加密信息在同
一文档中进行传输,保证了信息在WEB上的安全
传输.因此,研究XML文档加密等安全技术,对于今
后开发自主的XML安全产品,保证我国WEB信息
的安全,推动商务、政务、金融、保险等行业网络业务
的开展具有现实意义.
据应用的需求:XML文档加密功能从机密性方面来
说,不仅能实现对整个文档的加密,而且可对文档中
的任意元素和任意元素的内容进行加密;要保持格
式良好的加密文档
[2]
,加密应独立于加密算法,尤
其是必须支持对称和非对称的密钥加密;灵活的密
钥传递机制,可以灵活地适应于不同密钥的交换方
式,特别对基于证书的密钥交换和离线密钥交换都
应被支持;要确保与上下文的独立性,一个已加密内
容的解密不应依赖于上下文;可实现多重加密,从而
进一步实现基于加、解密的多级访问控制.
1.2 技术分析
由于绝大部分的加密算法对输入的处理都是以
字节序列进行的,因此,在对XML文档加密前必须
先将待加密内容转换成一个字节序列.目前有多种
转换方法,在加、解密的过程中必须具体情况具体分
析,加密时不要丢失非重要信息,解密时尽量保证不
依赖于上下文的环境.目前有2种方法可实现在序
列化操作时保证XML文档信息独立于上下文环境:
一种是使用CanonicalXML,另一种是使用Java
对象序列化直接匹配DOM树
[2]
,并将要加密元素
放进一个字节的数组中.使用CanonicalXML的效
率较低,是由于标准化后的XML文档已变长,但它
独立于所使用的语言工具.一旦将要加密的元素转
换成了一个字节数组,加密就可以用通常的方法来
实现.
由于已加密的内容是二进制数,因此当把它插
[3]
1
XML
加密设计
1.1 XML加密需满足的要求
在某些特定的应用中,可以使用通常的文档保
护技术对整个XML文档进行保护,然而多数情况下
无需对整个文档加密,只对敏感信息加密即可,因
此,从加密的粒度来说需实现3种类型的数据加密:
加密整个XML文档;加密XML文档中的元素;加密
XML文档中元素的内容.
XML文档描述的是一种层状结构化的数据,根
收稿日期
:2008-02-06
作者简介
:
李 军
(
1963
—
)
,
男
,
吉林省吉林市人
,
讲师
,
硕士
,
主要从事计算机网络方面的研究
.
第
29
卷第
3
期李 军
:
XML
文档的加密
51
入到XML文档中时必须使用文本编码的方法对元
素进行编码,必须包含额外的信息以便解密.在加密
设计中使用了现有标准的加密消息格式,在S/
MIME中,加密的实现是在单个MIME实体中封装
加密的文本和相关信息,这一实体的类型是applica2
tion/pkcs7-mime.
1.3 XML文档加密系统的实现
1.将XML文档转换成为一个DOM树.这是一
个解析的过程,由应用程序根据DOM标准对XML
文档格式化的过程.
2.标记要加密的内容并记录其位置.这是为了
在还原时能够得出和原文完全一样的内容.
3.确定要加密的内容.根据需要确定要加密的
内容,可以是整个文档,也可以是某个元素或某个元
素的内容等.
4.对需加密的内容加密.在加密之前首先对
XML文档进行串行化处理,可使用JavaObjectSeri2
alization直接把一个DOM树描绘成一个字符数组.
加密是通过将密文和其他相关信息封装在一个单独
的MINE实体中实现的,对已变成了二进制数的加
密内容,要将它插入XML文档中必须给予文档编
码,再根据加密的内容类型及其对应的加密密钥或
加密算法进行加密.每一个要加密的内容都要使用
其对应的加密信息进行加密.
5.对已加密的内容打包.将已加密的内容包含
到XML文档中,如果加密内容是只发给一个收件人
的文档,那么只需将已加密的内容简单地封装在一
个元素中就可.一个简单的加密过程如图1所示.
图
1
加密过程
2
密钥交换协议
要实现通信双方信息的安全交换,需协商建立
一条安全的传输通道.由于建立安全通道的时间和
代价都很高,所以可采用事先建立、多次复用的策
略.安全通道的建立过程需要完成以下工作:发送方
和接收方的互相认证;发送方和接收方协商加密算
法和工作密钥.工作密钥有生命周期,一般设为一个
固定时段,也可以是一定的消息数.
在通信双方
A,B
之间建立一条安全通道.首
先,发方
A
通过向收方
B
发送Open消息请求与
B
建立安全通道,Open消息中带有
A
能够接受的加密
算法和一个随机数
r
,并用
A
的证书进行数字签名.
其次,
B
收到
A
的Open消息后,通过验证消息中的
数字签名完成对
A
的认证.通过后,
B
从
A
能接受的
算法中选择一种,同时产生工作密钥Kb(如果采用
非对称算法,产生一对密钥,Kb是其中用于解密的
公钥).然后用
A
的Open消息中的
r
加密Kb,得到
Er(Eb),接着用
A
的公钥加密Er(Eb)和
r
得到
Epa
(
Er
(
Eb
)
,
r
)
,形成ACK消息,
B
用自己的证书
数字签名ACK消息,并发给
A
之后,通过验证消息
中的数字签名完成对
B
的认证.在验证通过后,
A
用
自己的密钥解密得到
B
的工作密钥Kb.然后A向
B
发出
A
CK消息,如果采用的是非对称加密算法,
A
还要产生工作密钥
Ea,
并将
Epb
(
Er
(
Ea
)
,r
)
放在
ACK消息中.消息发出后,
A
认为安全通道建立.
B
在收到
A
的消息后,成功验证消息的完整性后,认
为与A的安全通道建立.
3
实 例
结合具体的2个企业之间的信息交换来实现
XML加密:一个是书销售商,另一个是书出版商.当
书销售商想买书时,它提供给书出版商一个订单,书
出版商的销售部门接到订单并进行处理,最后送往
会计部门.由于2个企业是以XML文档形式交换信
息,其中的一些信息是需要安全保护的.因此,XML
加密是一种比较合适的方法
.
根据书销售商的安全
策略:支付信息仅在会计部门可见,销售部门仅能获
52
华 北 水 利 水 电 学 院 学 报
2008
年
6
月
得书名、书的ID和订购书的数量这些非敏感信息.
这样,在传送订单前需要使用交换的密钥对支付信
息加密.
在实现书销售商与出版商之间进行安全的数据
交换的过程中,创建了一个应用程序类demoXmlEn2
cApp,这个类使用XML加密工具XmlEncryption类,
可实现3种不同类型的数据加密
(
按加密的粒度
分
)
过程,应用程序对对象的创建和各方法的调用
过程如图3所示.
象,并根据命令行传递的参数调用不同的XML加密
方法.
4
结 语
XML文档加密的研究还处于初级阶段,XML加
密系统还存在一些潜在的脆弱性,如通过DTD可得
知加密前的文档结构、加密消息格式的使用等
(
因
为DTD定义了文档的整体结构以及文档语法,从中
可得知文档使用了哪些标记,它们应按什么次序出
现,哪些标记可以出现于其他标记中,哪些标记有属
性等,这给攻击者提供了文档信息
)
;在进行加密的
设计时应尽可能的使用现有标准的加密消息格式.
参 考 文 献
[1]SimsonGarfinkel,
安全与电子商务
[M].
刘祥亚
,
何健辉
,
译
.
北京
:
中国电力出版社
,2001.
[2]
陈晓欧
,
董欣
.XML
实用进阶教程
/XML
中国论坛
[M].
北京
:
清华大学出版社
,2001.
[3]W3C
�
.XMLEncryptionWG[EB/OL].[2008-01-10].
/Encryption/2001.
[4]urity[M].McGraw-Hill:Os
2
borneMedia,2005.
[5]
尹少平
,
董冈
.Diffie-Hellman
密钥交换协议设计与实
图
2
对象创建和各种方法的调用过程
现
[J].
电力学报
,2006,21(1):9-12.
[6]IBM
公司
.developerWorksXML
技术专区
[EB/OL].
[2008-01-10].:com/devel
2
operworks/cny.
当运行应用程序时,demoXmlEncApp类的sim2
ulateBookSellersEnd方法创建XmlEncryption类的对
EncryptionofXMLDocument
LIJun
(NorthChinaInstituteofWaterConservancyandHydroelectricPower,Zhengzhou450011,China)
Abstract:AfteranalyzingtherequirementsandsignificancesofXMLdocumentencryption,functionrequirements,systemdesignand
realizationmethodsofXMLdocumentencryptionareintroduced,andtheprocessingprocedureofXML
2
document
2
encryptionisshownby
aninstance.
Keywords:XML;documentencryption;DOM
版权声明:本文标题:XML文档的加密 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.roclinux.cn/p/1713476370a636564.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论