文档库 最新最全的文档下载
当前位置:文档库 › XML及相关安全技术的研究

XML及相关安全技术的研究

本文由tyliuhewei贡献
pdf文档可能在WAP端浏览体验不佳。建议您优先选择TXT,或下载源文件到本机查看。
西安电子科技大学 硕士学位论文 XML及相关安全技术的研究 姓名:傅海英 申请学位级别:硕士 专业:通信与信息系统 指导教师:李晖 20030101


XML和Web服务的应用越来越广泛,相关的安全问题引起了人们的重视。本
文主要对基于XML的各种安全技术进行了研究,重点讨论了基于XML的密钥管
理技术和访问控制技术。最后,对基于XML的安全邮件系统提出了设计方案。
本文得到的主要成果如下:
1.
对XML和相关的技术做了明确的表述,对基于Ⅺ讧L的Web服务及
其安全性进行了讨论。
2.
对基于XML的各种安全技术以及它们之间的关系进行了详尽的讨
论,可以看出XKMS是XML加密和XML签名的基础。 详细讨论了基于XML的访问控制技术,给出了临时授权模型的概念,
3.
在此基础上,给出了基于XML的访问控制的方案。
4.
提出了基于XML的安全电子邮件系统的设计方案。该方案的特点是 邮件是XML格式的,它的安全机制也是基于XML的。 提出了基于Web的邮件系统的设计方案。
5.
关键词:可扩展标记语言,Web服务, 公钥基础设旌,XML密钥管理,XML签 名,XML加密,XML访问控制语言, 电子邮件
ABSTRACT
XML and web service
widely used in many people are more
are
areos,so
and more
concerned wim the related security problems.In this paper,the XML related security techniques
are
mainly discussed,and XML key management and XML
secure
access
control
technologies
is proposed.
are the emphasis.Finally,a scheme of
email system based
on
XML
nle main research resulIs are 1isted
as
follows.
(1)XML and related technologies are presented thoro

ughly.The web service
and security problems based
on
XML are discussed.
(2)The various security technologies of XML and the relation of each other

are
discussed.The
conclusion iS恤at X日MS iS the basis of XML
encryption and
XML signature.
access
(3)The provisional authorization model of
Based
on
control of XML is given.
this
model,an example of access control scheme is presented.
on
(4)

secure
email system based
XML is proposed,the characteristics of
which are that the format of email is XML
and
its security mechanism is
based
on
XML.
on
(5)
A secure email system scheme based
web is proposed.
Keywords:XML,Web service,PKI,XML
Signature,XML Encryption,XML Access
Key Manage
Specification,XML
Control Language,email
独创性(或创新性)声明
本人声明所呈交的论文是我个人在导师指导下进行的研究工作及取得的研究
成果。尽我所知,除了文中特别加以标注和致谢中所罗列的内容以外,论文中不
含有其他人已经发表或撰写的研究成果;也不包含为获得西安电子科技大学或其 它教育机构的学位或证书而使用过的材料。与我一同工作的同志对本研究所做的
任何贡献均已在论文中作了明确的说明并表示了谢意。 申请学位论文与资料若有不实之处,本人承担一切相关责任。
本人签名:盛I越
日期
型i:!:12
关于论文使用授权的说明
本人完全了解西安电子科技大学有关保留和使用学位论文的规定,即:研究 生在校攻读

学位期间论文工作的只是产权单位属西安电子科技大学。本人保证毕 业离校后,发表论文或使用论文工作成果时署名单位仍然为西安电子科技大学。 学校有权保留送交论文的复印件,允许查阅和借阅论文:学校可以公布论文的全 部或部分内容,可以允许采用影印、缩印或其它复制手段保存论文。(保密的论文 在解密后遵守此规定) 本学位论文属于保密,在 年解密后使用本授权书。
本人签名:!盛!缝
翮签乱窭熨/
日期
日期t!兰:!:竺
第一章绪论
第一章绪论
1.1引言
从来没有任何事物像互联网那样,对人类的生活产生如此深刻的影响。标记
语言在互联网的发展过程中起到了巨大的作用。
网络的发展大约是从80年代开始,第~代网络标记语言是1985年开发出的
HTML语言,正是它使因特网迅速走出实验室,成为人人皆可使用的工具,以至 于Web几乎成了因特网的全部内涵。 在因特网发展早期,HTML是一门应用广泛的语言。随着因特网的日趋成熟, 新的需求已经形成:需要一种语言能满足更复杂和更大规模的用途,如满足企业 的功能运转等。HTML不能满足这种需求,因而被淘汰。
为了弥补HTML的缺点,万维网联盟(W3C,World Wide Web Consortium) 于1996年开始开发一种新的标记语言,这种新语言比SGML更易于使用,比HTML
的结构更严谨,并把它命名为可扩展标记语言()ML)。
1.2标记语言的发展
早在印刷出版技术出现时,当时的作者们就曾经在草稿上作出各种说明,指
导印刷工人如何处理版面安排以及其他制作问题,这些说明被称作标记。而协调 一致用来定义整套语法和文法的标记集合则被称作语言。这可以说是最早的标记
语言。
SGML是国际化标准组织(ISO)于1986年采纳的一项国际性的数据存储和
交换的标准。但它的根基在通用标记语言领域可追溯到较长的历史,它设计用来 提供一种方法,来生成平台无关和应用程序无关的文档,保留格式、索引和链接 信息。用类似于文法的机制,用户可阱通过创建定制的标记来定义自己的文档格 式。要使用SGML描述一个特定的文档,必须创造一个恰当的元素集和文档结构。
它使用文档类型定义(DTD)来定义文件结构。但是SGML非常复杂,难以使用。
sGML是一种元语言,可以用来创建其他的语言。HTML和XML都可看作是 sGML的应用。HTML纯粹是~门语言,不能进行扩

展或创建子集。与其相反, xML是SGML的一个子集,并且真正可用来创建其他的语言。也就是说XML也
是一种元语言。正如它的名字所预示的,XML是可扩展的。我们可以用XML来 创建描述内容的结构,而不用关心这些内容如何被显示。相反,HTML描述文档
如何被显示,但不涉及文档的内容。 HTML使因特网迅速走出实验室,成为人人皆可使用的工具,以至于Web几
XML及相关安全技术的研究
乎成了因特网的全部内涵。因特网发展早期.HTML是--17应用广泛的语言。随
着因特网的日趋成熟,新的需求已经形成:需要一种语言能满足更复杂和更大规 模的用途,如满足企业的功能运转等。HTML不能满足这种需求,因而被淘汰。
我们需要这样的替代语言:当我们把数据写成一个结构化的格式时,它能自
动检查语法的有效性和内容结构的有效性。最理想的情况是,文件的作者能同时 定义文件的格式和数据的正确结构。下面我们将会看到这正是XML和DTD所能
完成的事情。 万维网联盟(w3c,World Wide Web Consortium)于1996年开始开发一种新的
标记语言,这种新语言比SGML更易于使用,比HTML的结构更严谨,并把它命 名为可扩展标记语言(XML)。1998年2月XML 1.0版正式发布。 XML正式规范1.0中阐述了XML的十个设计目标: 1.XML应该可以直接用于Intemet 2.XML应该支持广泛的、多样化的应用程序
3.XML应该与SGML兼容
4.XML文档的处理程序应该容易编写 5.XML中的可选项应尽可能少,理想状况下应为零 6.XML文档应该清晰明了,可读性强
7.XML应易于设计
8.XML的设计应该正式而且简洁 9.XML文档应该易于创建
10.XML标记的简洁性应以保证前面所有目标要求的前提下予以重视 可以看出XML是一种更简单、更轻便的标记语言。它很灵活,易于使用,并 可用于国际化文件。XML适宜做数据存储,消息发送,同时根据DTD或者模式, XML文件能够被进行有效性检查。 可扩展的标记语言(XML)是Web服务(Web service)平台中表示数据的基本 格式。除了易于建立和易于分析外,XML主要的优点在于它既是平台无关的,又
是厂商无关的。
1.3安全问题
随着Intemet的爆炸性的发展,其安全问题日益受到人们的关注。在利用像 Internet这样的

公开性网络进行通信或商业活动时,一个非常重要的和现实的问题 是如何保证信息在系统通信中的保密性、完整性和认证性。确保这一点是Intemet
实用化的关键。
第一章绪论
XML提供了一种与标准和平台无关的方式来描述和管理所有数据类型。因为 它是纯文本的,所以能通过几乎所有网络类型,穿过防火墙,也能用于任何平台 上的操作系统。XML和HTML的共同点是:能够通过防火墙而不用重新配置。所 以可以使用既有的安全系统,因为它们有着相同的Web服务器、防火墙和一些传
输和处理协议。
HTML着重点在于如何对内容进行格式化,而并不管内容是什么、是否敏感。 更明确的说,HTML没有考虑安全问题,无法标记一个元素的安全特性,因此, 无法满足基于内容安全的应用需求。 而XML的数据内容和显示格式是分开的,我们就可以对ⅪvIL文档中的元素 和元素的内容进行加密和签名等操作,以满足基于内容安全的应用需求。 随着越来越多的公司通过网络用XML来传输结构化的数据,文档的安全问题 也越来越重要。XML的优势来自于它的语义和结构的灵活性和可扩展性。但是正 是这些优点引入了一些重要的安全问题。W3C(theWorldWideWebConsortium)、
IETF(the Intemet Engineering Task Force)和其他几个团体参与了XML安全标准的 开发工作。
1.4论文的内容安排和主要成果
本论文主要针对XML和Web服务相关的几个热点安全问题进行了研究,并给 出了相关的研究结果。在此基础之上,我们对基于XML的安全邮件系统提出了设
计方案。主要内容和安排如下:
第一章对课题的背景和研究内容进行简略的描述。
第二章主要介绍XML和Web服务以及相关的知识。首先介绍了XML的基础
知识,然后引进了相关的一些重要技术,如XSL,DOM,SAX,模式和名称空间,
这些基础知识和相关技术是后面工作的基础。其次我们介绍了在XML基础上发展
起来的w曲服务,它是一种崭新的分布式计算模型,使得XML语言在Web上得
到更加广泛的应用。
第三章讨论如何构建可信的Web服务以及相关的基于Ⅺ“L的安全技术。首 先简单介绍了公钥基础设施PIG,其次对基于XML的各种安全技术以及它们之间 的关系做了详细的讨论。再次重点讨论了XML访问控制技术XACL(eXtensible
Access Co

ntrol
Lallguage),给出了访问控制的授权模型和基于XML的访问控制策
略和访问决定。
第四章在前面讨论的基于XML的安全机制的基础上,提出了基于XML的安 全邮件系统的设计方案,该方案的特点是邮件是xML格式的,它的安全机制也是
基于XML的。同时提出了基于Web的安全邮件系统的设计方案。

XML及相关安全技术的研究
本文得到的主要成果如下:
1.
对XML和相关的技术做了明确的表述.对基于XML的Web服务及
其安全性进行了讨论。
2.
对基于XML的各种安全技术以及它们之间的关系进行了详尽的讨
论,可以看出XKMS是XML加密和XML签名的基础。
3.
给出了基于XML的访问控制技术中的临时授权模型的概念,在此基
础上,给出了基于)m也的访问控制策略文档。
4.
提出了基于XML的安全电子邮件系统的设计方案。该方案的特点是 邮件是XML格式的,它的安全机制也是基于XML的。
5.
提出了基于w曲的邮件系统的设计方案。
第二章XML及Web服务
第二章XML及Webl]m务
HTML在因特网的诞生时期非常适合它的发展,但是随着因特网成为商业中
心、信息中心、商务运作中心,HTML不再能够满足因特网的需求。下列因素使
人们在未来很难选择HTML:符合HTML标准的因特网浏览器的失败,确认HTML
文件的困难,链接系统的不灵活,以及缺少国际化的支持。将来在文档化处理复 杂系统时,SGML是一个优秀的、强有力的工具,但不幸的是,SGML对现在因 特网的需求过于复杂。为了适应网络的发展,需要开发一种新的语言来满足需求。
万维网联盟(w3c,World Wide Web Consortium)于1996年开始开发一种新的标记
语言,这种新语言比SGML更易于使用,比HTML的结构更严谨,并把它命名为
可扩展标记语言(Ⅺ帆)。1998年2月XML 1.0版正式发布。
2.1基础知识
图2一l,我们表示简单的XML文档的例子。XML文档是由xML元素组成, 元素包含开始标签和结束标签。标签之间的信息称之为元素的内容。XML文档中 的标签表示数据的含义而不是数据的显示形式。
元素
一个XML元素可以包含子元素。在例1中,<book>是<books>的子元素.
<author>,<title>,<price>是

<book>的子元素。每个XML文档都包含一个根元素一
包含了文档所有内容的文档最外层元素。
‰出>,'re也rence"<bo k
category=reference—孑匝


/I::兰
published=',19/04,1998,’>,
‘斗<dfie>Sayings the Century</tifle>
、(Drice>8.95</price>
,—,<autho纠qigel Rees</author>
图2—1
XML文档例子(books.xral)
XML及相关安全技术的研究
XML元素还包含由属性描述的信息。元素的属性内嵌于元素的开始标签里,
由名称和属性值组成。元素<book>包含属性category。
属性:臣堕亟堕至匦]
2.2文档类型定义(DTD)和模式
XML和它的祖先SGML--样,都支持文档类型定义(DTD)的使用。DTD 将带来一些优越性。首先,通过创建DTD,能够正式而精确地定义词汇表,所有 词汇表规则都包含在DTD中。凡是未在DTD中出现的规则都不属于词汇表的一部 分。许多解析器可以利用DTD验证文档实例的有效性,只要在文档实例中写入一 条简单的声明语句,解析器就能够获取DTD,并将其中的内容与文档实例进行比 较。另外,XML编辑工具也可以通过类似的方式使用DTD。一旦选择了DTD,编
辑工具就能够实施DTD中的规则,它根据DTD中说明的结构,仅允许用户在文档
中添加DTD允许的元素或属性。 XML使用元素类型集来定义文档的类型,这就是所谓的文档类型定义DTD
(Document Type
Definitions)。DTD规定了文档的文法结构,让XML解析器去理解
和解释文档的内容。DTD包含可以在XML文档里出现的标签的列表,规定标签是 什么类型,有什么属性。DTD包含了~组规则来控制XML文档的结构,例如,元 素应该如何表示以及元素之间的关系。每天在不同的领域都会涌现出大量的XML DTD:在金融领域(Financial
products
Markup Languages—rpML),元数据
(metadata)交换应用领域(XML Metadata Interchange--XMI),科学研究应用领
域(Mathematical Markup Language--MathML),等等。

DTD可以作为一个单独的文件,从XML主文档中分离出来一外部DTD,或者 被包含在XML文档内部一内部DTD。图2—2表示了图2—1中XlVlL文档的外部DTD
医翮

<!ENTITY%Attdec'fr‘'CDATA#REQUIRED"> <!ELEMENT books(book+)>
<!ELEMENT book(author,title,pricep
<!ELEMENT author(ffPCDATA》.一 <]ELEMENT title 删PCDATAp <!ELEMENT price(#PCDATA_)> <!Arn.1ST book category %Attdeel● ’published%Altdecl>
元素声明
_●__●___-__-_-____——




....I........一 实体引用

圈2—2
DTD的例子books.dtd
第二章XML及Web服务
的例子。在图2—1中的<!DOCTYPE>声明将XML文档和相应的DTD(books.dtd) 联系起来。 XML文档如果有相应的DTD,并且文档中的每个元素符合DTD中定义的规 则,称之为有效的文档。一个XML文档如果符合XML语法,称为良构(well.formed) 的文档。图2一l中的文档既是有效的又是良构的文档。 XML允许用实体来生成可在文档中包含若干次的信息。实体就是基于声明的
可在文档中进行替换的存储单元。实体可以是文本字符串,也可以是整个文件。 实体必须在内部或外部DTD中进行声明,但可以在DTD和XML文档中调用。图2.2 表示了一个实体声明Attdecl,来代替内容_CDATA#REQUIRED”。 这里不得不提一下模式。DTD存在若干致命的缺点:第一,它是用不同于XML 的语言写成的,需要不同的分析器技术:第二,它不支持名称空间;第三,没有
数据类型的概念;第四,它主要被设计来用于文档标记,雨不是数据交换,它是
一种封闭的结构。 在认识到DTcl存在的一些缺陷后,W3C着手收集各种意见,开始开发模式
(XML Schema),于2001年3月正式发布XML Schema 1.1推荐标准。类似于DTD,
模式也用于描述XML数据文档的内容和结构。同样地,模式也被用于确定XML文 档的有效性。模式按标准Ⅺ订L规则书写,其数据类型丰富,而且支持名称

空间。
由于模式所具有的突出优点,Ⅺm旗式将成为未来的主导方向。
在使用模式的时候,常使用两个文档模型,即实例文档和模式文档。模式描 述一个XML文档类,数据文档是该类的一个实例。
2.3相关技术
XML不是一项独立的技术,它包含了一些相关技术,例如XLink,XPointer,
XPath,XSL,XML-QL,DOM,SAX,XML模式(Schema)和名称空间(N弧espace)。
我们对几项关键技术进行讨论。
2.3.1 XSL
可扩展样式单语言XSL(Extensible
Stylesheet
Language)本身便是XML的应
用,它直接架构在XML语法之上,共分为两部分:第一部分转换语言(XSL
Transformation
Language,XSLT)负责将XML文档转换为另一种格式,第二部分格
式化对象(Formatting Object,XSL-FO)提供大量的格式化命令,可用来配合屏幕
显示或进行打印控制,精确地设定外观样式(如字的大小,摆放的位置等)。利用
XSL.一个XML文档可以根据不同的表示要求有不同的表示形式。
XML及相关安全技术的研究
图2—3
XSL样式单处理器
如图2—3所示,XSL样式单处理器读取一个XIvlL文档和一个XSL文档,并输 出符台样式单的XML文档的表示形式。这一过程分为两个子过程:树转换(tree transformation)和格式化(formatting)。树转换包括将一个XML文档(源树)转换 成另一个XML文档(结果树),结果树是用XSLT语言表示的。 用XSLT表示的转换包含一组模板规则。~个模板规则分为两部分:第一部 分是模式(pattern),指定模板规则所适用的XML源文档树形结构,第二部分是模 板(teraplate),用来在与此模式匹配时,将结果树的一部分进行输出。XSLT用XPath 语言来选择源树中要进行处理的节点,指定处理该节点的不同方式的条件,产生
插入到结果树中的文本。
格式化的过程包括将XSL转换的结果变为可读的形式,它规定了怎样显示一 棵树,例如,将描述变为格式化显示。该显示是按照格式化对象(formatting object)
和格式化属性(formatting property)描述的。XSL格式对象还很不完善,处于试验阶
段。
2.3

.2文档对象模型0aOM)和SAX
文档对象模型(DOM)是基于树结构的程序访问和维护H,rML和Ⅺ“L文档的 应用程序接n(API)。它以要求的方式处理XlVIL文档信息,使应用程序或编程语言
可以通过节点树访问文档的内容。DOM定义了mM】友档和XML文档的逻辑结构,
给出了访问和处理文档的方法。在DOM中,XML文档具有类似于树的逻辑结构, 其中的树的节点表示的是对象而不是数据结构。利用DOM,程序开发人员可以动 态地创建文档,遍历文档结构,增加,修改或删除元素和文档内容,改变文档的 显示方式等等。 DOM定义了表示和处理一个文档的接口和对象,这些接口和对象的语义,以 及这些接口和对象之间的关系。 DOM包含两个标准。Level 1包括访问和处理文档结构和内容的方法,包括 XML的接口.DTD接口和HTML接口。Level 2包括联合样式单和文档的接口。设 计事件系统的接口,遍历文档子树的接口和访问文档部分内容的接口。
另一个处理XML数据的应用程序接口是SAX(Simple
APIs for
XML),由
第二章X/vlL及Web服务
Ⅺ“L—.DEV邮件列表的成员开发,是事实上的工业标准。
使用SAX,解析器通过向应用程序报告解析事件流来告知应用程序文档的内 容。SAX是基于事件的API,一旦事情开始发生,你不需要调用解析器,而是解析 器调用程序。 那么什么时候使用DOM,什么时候选择SAX呢? 当我们的应用只需遍历文档一次、只需查找很少的几项、不太关心你所查找 的元素的上下文的文档结构、不需要太多内存时,我们选用SAX。当我们需要多 次遍历文档、需要对很多元素或属性进行操作、文档的结构和元素的上下文关系 对我们来说很重要、占用内存多少无所谓时,我们选用DOM。
2.3.3名称空间
几乎所有的编程语言都有一些约定,将一系列名称限定到一个闭合的名称空 间(或称命名空间,Namespace)中,这样相同的名称可以在不同的名称空间中和 平共处,不至于发生冲突。 与编程语言类似,为解决XML中的命名冲突,XML也引入了名称空间的概 念。这对于XMLj}常重要,如果没有它,XML的应用范围将会大大受限制。 根据W3C发布的关于命名空间的规范要求,名称空间应该是一个合法的URI。 一个XML文档可能包含来自多个资源(文档)的元素和属性,在应用中可能会发 生名称冲突。在这种情况下,有

必要对其它文档部分进行识别,避免元素含义的 混乱,避免元素和属性名称的重复。XLink和XSLT都有对应的名称空间。 例如,一个Ilq<title>的标记在被使用于一个人和被使用于一本书时,有不同 的含义。如果两个实体(pemon和book)要在同一个文档里定义(例如在图书馆目 录的条目里,把书和作者联系起来),我们需要某个机制来区分他们,以此对文档 里用到的<title>标记使用正确的语义描述。命名空间提供了这种机制,使XML文档 包含的信息能跟许多软件模块相联系。举个例子:
<?xml version=’1.0’?’ <library-entry xmlns:authr="authors.dtd”xmlns:bk='’books.dtff'> <bk:book>
<bk:title>XML
Sample</bk:title>
<bk:pages>210</bk:pagcs> <bk:isbn>1.868640-34.2</bk:isbn> <authr:author> <authr:firsmame>Joe</authr:firsmame>
<authr:lasmame>Black</authr:lasmame>
<authr:title>Professor</authr:title> </authr:author> </bk:book> </library-entry>
我们可以看到,<title>标记被用到两次,而且是在不同的上下文里,一次是
XML及相关安全技术的研究
在<author>元素里,另一次是在<book>元素里。但是应用了名称空间这种机制就很 容易把它们区别开来。
2.4web服务
随着SOAP等技术的发展与普及.以及电子商务的迅速崛起,一种新的开发 基于Web的应用模式(更确切的说,应该是思想)正在迅速发展,这就是Web服 务(Web Service)。Web服务基于一些正在发展中的一些技术,比如SOAP、UDDI、 WSDL,提供了以往任何一种技术都不可能提供的不同平台之间的互操作性。 Web服务是一个崭新的分布式计算模型,尽管其思想早就存在.但其得到迅
速发展却是最近的事情,而电子商务的发展更促进了这种发展。Web服务是一系
列标准的综合,这些标准包括XML、SOAP、UDDI、WSDL和WSFL等;这些标 准中许多还不成熟,还处于发展中。W

eb服务利用这些标准提供了一个松散耦合 的分布式计算环境;在Web服务的模型中,厂商将其服务封装成一个个相对独立 的Web服务,每个服务提供某类功能;客户(或是其他厂商)可以通过绑定到}r几T 的SOAP来访问这些服务。
2.4.1
Web服务架构
Oriented
Web服务使用SOA(面向服务的架构,Service
Architecture)架构。
该架构由三个参与者和三个基本操作构成。三个参与者分别是服务提供者(Service Provider)、服务请求者(Service Requester)和服务代理(Service Broker),而三个 基本操作分别是发布(Publish)、查找(Find)和绑定(Bind)。服务提供者将他的
图2—4Web服务组件
服务发布到服务代理的一个目录上;而服务请求者需要调用该服务时,他首先到 服务代理提供的目录上去搜索该服务,得到如何调用该服务的信息,然后根据这 些信息去调用服务提供者发布的服务。在Web服务体系中,使用WSDL来描述服 务,UDDI来发布、查找服务,而SOAP用来执行服务调用。正在定义中的WSFL
第二章XML及Web服务
则将分散的、功能单一的Web服务组织成一个复杂的有机应用,如图2—4所示。
2.4.2
Web服务堆栈
2001年4月份,w3c的Web服务专题研讨会上提出了Web服务堆栈(Web
Service
Stack),这定义了Web服务使用哪些技术(标准),以及将会如何发展,如
图2.5所示。 从图可以看到,Web服务追求得第一目标是简单性。 首先这些协议本身是简单的,无论是HTTP、SMTP等传统TCP/IP系统的网 络协议,还是SOAP、WSDL、UDDI、WSFL等基于XML的协议,他们设计原则 中的一个最重要点是力求简单性。
圈2—5
Web服务堆栈
其次,一个可以使用的Web服务应当按照需要选用若干层次的功能,而无需 所有的特性。比如在目前状况下,一个简单应用可能只要使用WSDL/SOAP就可 以架构一个符合规范的Web服务了。 最后,所有的机制完全是基于现有的技术,并没有创造一个完全的新体系。 无论是坤v4、H丁rP、FTP这些现有的网络协议,还是SOAP、WSDL等这些基于 XML而定义的协议都遵循着一个原则:继承原有的被广泛接受的技术,这样才能 使得Web服务被广

泛接受。 从图中还可看出,Web Service的实现要依赖于以下三个方面:
QoS。由WSDL描述的使用协议被延伸到Web Service的聚合、跨Web 的事务、工作流等,需要服务质量(QoS)的保障。
Service
安全规范。松散耦合的对象环境下,需要运用规范的方法来描述、传输和交换 诸如授权认证、数据完整性(比如签名机制)、消息源认证以及事务的不可否认 性等。
管理机制。所有层次的处理都是可管理的。
XML及相关安全技术的研究
2.4.3简单对象访问协议
简单对象访问协议(SOAP,Simple Object
Access
Protoc01)是在分散或分布
式的环境中,通过XML交换信息的一种简单协议。 当前有多种创建应用程序的平台。但每种平台都习惯于使用自身的协议(本 质上通常是二进制代码)来实现机器间的集成。因此,跨平台的应用程序在数据 共享方面的能力相当有限。认识到这些限制后,人们一直在致力于建立有关数据 格式和数据交换方面的标准,藉此实现“不论服务采用何种软件,使用何种硬件, 都能够跨越这一传统的界限,以Web的形式无缝的将它们集成在一起”这一远景 目标。目前,这一目标己迅速发展成为一种新的计算范例。 该目标的核心是互操作性概念,即不同系统能够无缝的进行通信和共享数据。 这也是Web服务追求的目标。Web服务是一种可以用标准Internet协议来访问的 可编程应用逻辑:从另一个角度来说。Web服务是有关机器间和应用程序间透明 通信的、借助于Web的标准的具体实现。而SOAP,正是实现Web服务的核心协
议之一。
SOAP为在一个松散的、分布的环境中使用XML对等的交换结构化的和类型
化的信息提供了一个简单的轻量级机制。SOAP本身并不定义任何应用语义,如编
程模型或特定语义实现,它只是定义了一种简单的机制,通过一个模块化的包装 模型和对模块中特定格式编码的数据重编码机制来表示应用语义。SOAP的这项能 力使得它可被很多类型的系统用于从消息系统到RPC(Remote
Procedure
Call)的
延伸。SOAP也没有定义任何底层的传输协议,尽管在大部分情况下,SOAP被“默 认”绑定到H1_rP协议;但也可以用H'ITP、FTP、SM’rP甚至是JMS,或是您自
己定义的某种P2P协议,来传输SOAP消息。 从某种意义上说,SOAP可以简

单理解为:HTTP+X/vlL+RPC..采用HrrP
作为底层通信协议,RPC作为一致性的调用途径,XML作为数据传送的格式,允 许服务提供者和服务客户经过防火墙在Intemet进行通信交互。SOAP被设计的一 个主要目的,就是为了实现基于XML的RPC(Remote Procedure Call,远程过程 调用)。尽管HTTP不是有效率的通信协议,而且XML还需要额外的文件解析, 两者使得交易的速度可能大大低于其他方案;但是XML是一个独立于编程语言 的、开放、健全、有语义的信息机制,而HrrP是一个广泛又能避免许多关于防 火墙的问题,从而使SOAP得到了广泛的应用。 SOAP的两个主要设计目标是简单性和可扩展性。这就意味着有一些传统消息 系统或分布式对象系统中的某些性质将不是SOAP规范的一部分。比如:分布式
垃圾收集(Distributed
garbage
coUeetion)、成批传送消息(Boxcarring Or batching
of
messages)、对象引用[Objects—by-reference(which
requires distributed garbage
第二童XML及Web服务
collection)]、对象激活[Activation(which requires objects.by-reference)]。
SOAP消息由一个强制的SOAP Envelope、一个可选的SOAP Header和一个强
制的SOAPBody组成的XML文档。SOAP消息应当包含如下部分: ●一个SOAP Envelope。Envelope是表示该消息的XML文档的顶级元素。
●一个s0AP Header。Header是为了支持在松散环境下在通信方(可能是SOAP
发送者、SOAP接收者或是一个或多个SOAP的传输中食)之间尚未预先达成

一致的情况下为SOAP消息增加特性的通用机制,这通常应用在认证、事务管 理以及支付等应用中。SOAP定义了很少的一些属性用来指明谁可以处理该特
性以及它是可选的还是强制的。
●一个SOAP
Body。Body为该消息的最终接收者所想要得到的那些强制信息提
供了一个容器,即它包含了SOAP消息的实际内容。此外,SOAP定义了Body
的一个子元素FaMt用于报告错误。
通常,刚接触SOAP的用户提出

的第一个问题就是SOAP如何解决安全性
问题。在其早期开发阶段,SOAP被看作是基于HTTP的协议,所以认为mTP
的安全性对于SOAP已经足够了。毕竟目前有数以千计的Web应用程序都在使
用HTTP安全性,所以这对于SOAP确实已经足够。因此,当前的SOAP标准
假定安全性属于传输问题,而并不作为安全性问题处理。 当SOAP扩展至更为通用的协议,并运行于众多传输之上时,安全性问题就 变得突出了。例如,HTTP提供若干种方法对进行SOAP调用的用户进行身份验
证,但是当消息从HTlT路由到sMTP传输时,怎样传播该身份标识呢?SOAP 是作为构造块协议进行设计的,所以幸运的是,已经有了相应的规范以基于SOAP
为w曲服务提供额外的安全保护功能。WS.Security规范定义了一套完整的加密
系统,而WS—License规范定义了相应的技术,以保证调用者的身份标识,并确 保只有授权用户才可以使用w曲服务。
2.5本章小结
本章主要介绍XML和Web服务以及相关的技术。第一节介绍了XML的基础 知识,给出了XML文档的一个典型实例。第二节简单介绍了文档类型定义(DTD) 和模式,它们主要是定义XML数据文档的内容和结构,并用于确定XML文档的 有效性。第三节主要讨论XML相关的几项重要技术,它们用于XML文档的显示 和处理等应用。第四节主要讨论Web服务,给出了Web服务堆栈,它定义了Web
服务使用哪些技术(标准),以及将会如何发展,最后讨论了SOAP,因为它是在
分散或分布式的环境中,通过XML交换信息的~种简单协议。 为了更好地研究Web服务的安全性,需要进一步研究基于XML的各种安全
XML及相关安全技术的研究
技术,当然这需要付出更多的努力。我们希望理解各种XML安全技术之间的关系, 有助于我们构建实际的基于XML的安全系统。
第三章XML相关的安全技术研究
第三章XML相关的安全技术研究
随着Web服务(Web Service)的逐渐普及和升温,人们在享受Web服务带来 的便利的同时,不得不考虑它的安全性如何,值得信赖吗?目前,Web服务存在
两点缺陷:
没有提供可信任与授权的完整的安全构架,以确保基于Web Service技
术的政务系统和电子商务的安全运作: ?与Web Service相关的现有的标准和规范中,不包括对消息的保护的部 分,

即不能保证不被第三方截取或窜改。
下面我们来讨论如何来构建可信的Web服务。 可信来源于信任管理(trust management),基本思想是承认开放系统中安全信 息的不完整性,系统的安全决策需要依靠可信任第三方提供附加的安全信息,其 意义在于直接揭示了信任与安全之间的关系,并以此提出了一个适合Web应用系
统开放、分布和动态特性的安全决策框架。 可信Web Service技术在安全方面实
现的主要功能就是数据的安全性、身份认证和权限管理,访问控制等。 PIG和PMI是可信性的基本基础保障。PKI(Public
Key
Infrastructure)提供与
数字证书相关的管理服务,即提供数字证书的颁发、使用、撤销、归档以及在线
证书查询服务等。PMI(Privilege Management Infrastructure)是建立在PIG之上的,
PKI提供的是认证服务,PMI是通过认证服务,提供权限校验和访问控制。 XKMS提供一些基于XML的密钥管理机制。XML加密为XML文件提供了 元素级的加密机制。XML签名将提供在XML中建立一个安全签名的表示机制的 方法。SAML是基于XML的安全标准,用来交换认证和授权信息。XACL为XML
文档提供了精细的访问控制机制。
3.1互联网络的安全要求以及存在的安全威胁
总的来说,网络安全的五个基本的安全要求: 1.机密性(Confidentiality):保证没有经过授权的用户,实体或进程无法窃取 信息。在一个开放的网络环境里,维护信息机密是全面推广应用的重要保障。因 此,要预防非法的信息存取和信息在传输过程中被非法窃取。 2.授权(Authorization):授权是确定允许用户傲什么的过程。可将不同的特权
给予不同类型的用户。 3。数据完整性(Data integrity):保证没有经过授权的用户不能改变或者删除信
息,从而信息在传送的过程中不会被偶然或故意破坏,保持信息的完整、统一。 因此,要预防对信息的随意生成、修改和删除,同时要防止数据传送过程中信息
XML及相关安全技术的研究
的丢失和重复。
4原始性证明(ProofofOrigm):对信息或数据的发送者的进行标识。保证信
息被经过标识的发送者所传送,从而避免以前的数据包被重复发送。 5.防止抵赖(Non;epudiafion):保证信息的发送者不能抵赖

或否认对信息的发 送,当然信息发送前需要对发送者进行安全认证。要在信息的传输过程中为参与
交易的个人、企业或国家提供可靠的标识。
最后的三个安全要求是彼此相关的,数据完整性与原始性证明的区别在于数 据是完整的,并不能保证信息不被重复发送。换句话说,数据完整性不能防止反 复攻击。哈希散列算法如HMAC,认证时使用一个经过加密的密钥对于原始性证 明来说是合适的,但并不适用于“防止抵赖”。 相应的,目前网络存在的威胁主要表现在以下几个方面: 1.非授权访问:没有预先经过同意,就使用网络或计算机资源被看作非授权访 问。它主要有以下几种形式:假冒、身份攻击、非法用户进入网络系统进行违法 操作、合法用户以未授权方式进行操作等。 2.信息遗漏丢失:指敏感数据在有意或无意中被泄漏出去或丢失。 3.破坏数据完整性:以非法手段窃得对数据的使用权,删除、修改、插入或重 发某些重要信息,以取得有益于攻击者的响应;恶意添加,修改数据,以干扰用
户的正常使用。
4.拒绝服务攻击:是一种比较简单,但又日益流行的攻击和禁用企业信息资源 的方法。在拒绝服务攻击中,作恶者发送大量的信息流量,使Web服务器、主机、 路由器和其它网络设备负担过重。通过这种方式发送的信息流量非常之大,致使 企业的用户、客户和合作伙伴都在好长一段时间内无法访问网络。 基于以上的安全威胁以及网络安全的迫切要求,仅仅依靠SSL的安全机制不能
解决所有的问题。
虽然XML和HTML都能够通过防火墙而不用重新配置,可以使用既有的安 全系统,因为它们有着相同的Web服务器、防火墙和一些传输和处理协议。但是 XML有其自己的特点,有必要开发一些适合XML文档的安全机制。 越来越多的公司通过网络用XML来传输结构化的数据.文档的安全问题也越 来越重要。XML的优势来自于它的语义和结构的灵活性和可扩展性。但是正是这 些优点引入了一些重要的安全问题。W3C(the World Wide Web Consortium)、IElrF
(theInteractEngineeringTask
Force)和其他几个团体参与了ⅪⅥL安全标准的开发工
作,相关的几个重要标准有XML Encryption、XML Signature、XKMS(XML Key
Management Specification)、XACL(eXtensibleAccess Control Lan

guage)和SAML
(SecurityAssertion Markup
Language)等。XML加密保证了XML文档的内容保密
性.xML签名保证了xML文档的数据完整性和不可否认,SAML和XACL共同来
第三章XML相关的安全技术研究
完成对合法用户进行授权并进行访问控制。
3.2公钥基础设施PKI
PKI是一种遵循标准的密钥管理平台,它能够为所有网络应用透明地提供采用 加密和数字签名等密码服务所必需的密钥和证书管理。CA是证书的签发机构,它 是PKI的核心。众所周知,构建密码服务系统的核心内容是如何实现密钥管理, 公钥体制涉及到一对密钥,即私钥和公钥,私钥只由持有者秘密掌握,无须在网
上传送,而公钥是公开的,需要在网上传送,故公钥体制的密钥管理主要是公钥
的管理问题,目前较好的解决方案是引进证书(certificate)机制。 在CA认证体系中,数字证书是一个经证书认证中心(cA)数字签名的包含 公开密钥拥有者信息以及公开密钥的文件。认证中心(CA)作为权威的、可信赖 的、公正的第三方机构,专门负责为各种认证需求提供数字证书服务。认证中心 颁发的数字证书均遵循rru的X.509V3标准。基于X.509证书的认证技术适用于
开放式网络环境下的身份认证,该技术已被广泛接受,许多网络安全程序都可以
使用X.509证书(如:IPSec、SSL、SET、S0dD伍等)。一个标准的X.509数字 证书包含以下一些内容: ?证书的版本信息; -证书的序列号,每个用户都有一个唯一的证书序列号;
一证书所使用的签名算法;
证书的发行机构名称,命名规则一般采用X.500格式: ?证书的有效期,现在通用的证书一般采用UTC时间格式,它的计时范围为
1950-+2049;
证书所有人的名称,命名规则一般采用x.500格式; ?证书所有人的公开密钥(关于公开密钥的信息详见非对称密码算法的有关内容);
证书发行者对证书的签名。
此外,X.509证书格式还预留了扩展,用户可以根据自己的需要进行扩展。 基于X.509证书的认证实际上是将人与人之间的信任转化为个人对组织机构
的信任,因此这种认证系统需要有CA的支持。
当用户向某一服务器提出访问请求时,服务器要求用户提交数字证书。收到 用户的证书后,服务器利用CA的公开密钥对CA的签名进行解密,获得信息的散 列码。然后服务

器用与CA相同的散列算法对证书的信息部分进行处理,得到一个
散列码,将此散列码与对签名解密所得到的散列码进行比较,若相等则表明此证
书确实是CA签发的,而且是完整的未被篡改的证书。这样,用户便通过了身份认
证。服务器从证书的信息部分取出用户的公钥,以后向用户传送数据时,便以此
XML及相关安全技术的研究
公钥加密,对该信息只有用户可以进行解密。
由于这种认证技术中采用了非对称密码体制,CA和用户的私钥都不会在网络 上传输,避免了基于口令的认证中传输口令所带来的问题。攻击者即使截获了用
户的证书,但由于无法获得用户的私钥,也就无法解读服务器传给用户的信息。
因此有效地保证了通信双方身份的真实性和不可抵赖性。 其中,CA的数字签名保证了证书(实质是持有者的公钥)的合法性和权威性。 主体(用户)的公钥可有两种产生方式:
用户自己生成密钥对,然后将公钥
以安全的方式传送给CA,该过程必须保证用户公钥的可验证性和完整性:CA替用 户生成密钥对,然后将其以安全的方式传送给用户,该过程必须确保密钥对的机 密性、完整性和可验证性。该方式下由于用户的私钥为CA所知,故对CA的可信
性有更高的要求。
用户A可通过两种方式获取用户B的证书和公钥,一种是由B将证书随同发 送的正文信息一起传送给A,另一种是所有的证书集中存放于一个证书库中,用
户A可从该地点取得B的证书。
CA的公钥可以存放在所有节点处,方便用户使用。 公钥必须按规定的用途来使用。一般地,公钥有两大类用途:用于验证数字签 名,消息接收者使用发送者的公钥对消息的数字签名进行验证;用于加密信息, 消息发送者使用接收者的公钥加密用于加密消息的密钥,进行数据加密密钥的传 递。这两对密钥的密钥管理要求存在互相冲突的地方,因此,系统必须针对不同 的用途使用不同的密钥对,尽管有的公钥体制算法,如目前使用广泛的RSA,既
可以用于加密、又可以用于签名,在使用中仍然必须为用户配置两对密钥、两张 证书,其一用于数字签名,另一用于加密。
作为网络环境的一种基础设施,PKI必须具有良好的性能,一般地,对PKI
的性能有如下要求:
透明性和易用性。这是对PKI的最基本要求,PKI必须尽可
能地向上层应用屏蔽密码服务的实现细节,向用户屏蔽复杂的安全解决方案,使 密码服务对用户而言简单易用,同时便于单位、企业完全控制其信息资源。

.3XML密钥管理规范
当XML成为电子商务中信息交换的首选格式之后,需要有标准的机制来对 XML元素进行数字签名和加密。当文档中包含敏感信息或财政约定,例如合同、 价格表单、报价单或支付交易表单等,这些机制就显得尤为重要。因为数字签名 和加密都涉及到秘钥,并且要考虑到该秘钥的可信性,我们立刻想到了在XML应
用中的信任管理问题。
第三章XML相关的安全技术研究
19
3.3.1
XKMS
为了简化PKI和数字证书与XML应用程序的集成,W3C制定了一项新标准
XKMS(XML
Key Management
Specification)。它定义了分发和注册XML签名所
使用的公钥的方法,有待于与XML加密联合使用。XKMS包含两部分:XML密钥 信息服务规范()[.KISS,XML
Key Information Service Service
Specification)和XML密钥 Specification)。X-KRSS是用
注册服务规范O(?KRSS,XML Key Registration
于注册公共密钥的,而X.KISS是用在为XML签名提供密钥信息服务方面。 ?XML密钥信息服务规范(X-KISS):X.KISS定义了信任服务的协议,它 支持应用程序把对与XML Signature,XML Encryption或其他公钥关联的 密钥信息的处理任务委托给一个信任服务。它的功能包括定位请求的公钥 和绑定该密钥和标识符信息。它解决了在XML Signature@<Keylnfo>元 素包含的公钥信息的问题。 ●XML密钥注册服务规范(X—KRSS):该协议支持密钥对持有者向信任服 务系统注册密钥对,也就是公钥信息,从而该密钥对随后可以与XML
Key
Information Service Specification或更高层的信任断言服务,例如XTASS (XML Trust Assertion Service Specification)联合使用。
这两个协议都定义了信任服务的简单的请求和应答的交换协议,都使用了 SOAP,消息之间的关系用WSDL来定义。 XKMS的主要目标是,当一个用户用公钥来验证一个数字签名或加密数据时, 他可以定位请求的秘钥,并将名字和属性信息同相应的私钥持有者联系起来。
X-KISS帮助XML开发者获取与签名或加密的XML文档相关的秘

相关文档