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


本文标签: 加密 文档 信息 密钥 使用