文档库 最新最全的文档下载
当前位置:文档库 › 基于VMware的云计算服务门户的配置

基于VMware的云计算服务门户的配置

基于安全XML的信息查询系统

摘要:随着Internet迅速的发展,传统的HTML数据交换方式已经不能满足日益增长的数据交换的需求,XML具有自描述、开放、易扩展等突出的特性,已成为Web数据组织和交换的标准。在XML成为Web 应用中广泛使用的编码方式时,许多针对XML安全性的研究工作也开展了起来,目前W3C负责XML安全标准的开发。XML安全标准为XML文件的加密与签名提供了粒度控制能力,使得加密与签名有了新的形式。本文在基于B/S的三层体系结构上,开发基于XML的信息查询系统。并采用安全XML技术代替传统的HTML技术实现表示层和逻辑层之间的数据传输。安全、方便、通用是本系统区别于普通信息查询系统所不具有的显著特点。

关键字:信息安全,XML,XML加密,XML查询系统,PHP

Information Query System Based on Security XML

Author: Ma Jianhao

Instruct of teacher: Yu Shuhao

Abstract: With the vigorous development of Internet, the traditional data-exchanging manner of HTML can not meet the need of increasing data. Being a very promising data-exchanging manner on Internet, which has some important properties such as self-describe, opening, expansibility; etc,will become virtual exchange standard on Web. When the XML comes to be a widespread data encoding format of Web application, many research about the security of XML are developed. Nowthe W3C manage the standards of XML security specification.The XML secutity specification proved the ability of element-control, it's make a new style of encryption and sign. The XML-based information the main body of a book is developed on B/S-based three layers of system structure, inquires about system. And adopt the safe XML technology to replace the tradition HTML technology to realize the presentation layer and the logic data transmission between the tier. Safe , going to the lavatory , being applied or used universally is that the system difference inquires about notable characteristic not had by system in average information.

Keywords: Information Security, XML, XML Encryption, XML Query System, PHP

目录

第1章绪论 (1)

1.1 研究背景 (1)

1.2 研究现状 (2)

1.3 研究的理论和实际意义 (2)

1.4 本文主要研究内容 (2)

第2章XML与Web技术研究 (4)

2.1 XML 基础知识 (4)

2.1.1 XML简介 (4)

2.1.2 DTD (4)

2.1.3 本节小结 (7)

2.2 XML加密简介 (8)

2.2.1 对称密钥算法 (8)

2.2.2 公开密钥算法 (9)

2.2.3 选择加密算法 (10)

2.2.4 XML文档加密实现 (10)

2.2.5 本节小结 (12)

2.3. Web服务技术 (13)

2.3.1 Web服务概述 (13)

2.3.2 Web服务的工作原理 (13)

2.3.3 Web编程语言PHP简介 (14)

2.3.4 本节小结 (14)

第3章系统分析与设计 (15)

3.1 系统介绍 (15)

3.1.1 功能介绍 (15)

3.1.2 开发环境 (15)

3.1.3 系统优点 (15)

3.2 需求分析 (15)

3.2.1 功能需求 (15)

3.2.2 系统流程图 (16)

3.2.3 系统功能模块图 (17)

3.2.4 面向对象分析 (18)

第4章系统实现与演示 (20)

4.1 系统UI演示 (20)

4.2 XML结构设计 (22)

4.3 系统程序设计 (23)

第5章总结与展望 (27)

5.1 总结 (27)

5.2 展望 (27)

参考文献 (28)

致谢 (29)

第1章绪论

1.1研究背景

随着Web的广泛应用,HTML(HyperText Markup Language)成为一种极为流行的标记语言,随着时间的推移,HTML的标记越来越多,使其变为一种极为复杂的标记语言,HTML 主要用来表示内容的格式化,而不是内容的结构。为了克服HTML的缺点,1998年2月,W3C(World Wide Web Consortium)推出了可扩展的标记语言XML(eXtensible Markup Language)[1]。XML是一种数据描述语言,是标准通用标记语言SGML(Standard Generalized Markup Language)的一个子集,XML使得在Web上能以超文本标记语言HTML的使用方式提供、接收和处理SGML。XML的设计既考虑了实现的方便性,同时也考虑了与SGML和HTML的互操作性。

在XML驱动下的Web体系结构中,客户端将一个XML文档作为请求发送给服务器。同传统的Web应用程序一样,它包含了指定参数,但是,与传统的客户端不同,请求的结构会根据在运行时从服务器上得到的标准化机制来正式指定,这一机制会保证服务器所期望的结构,并允许客户端在传输前验证请求的正确性。服务器也能够在接收时执行有效性验证,一旦请求到达,服务器可能继续传统Web应用程序的处理流程,也可能做出某些改动。由于XML是层次结构的,所以它很容易就可以对非关系型的数据源进行编码。由于大多数服务器上维护的数据是关系型的,因此人们对关系型数据与XML数据匹配进行了大量研究,使XML 成为在服务器与服务器应用程序之间交换数据的最佳媒介。

采用XML来进行数据交换时,编程人员可以很快地得到或编制组件和实用程序以便操作数据。采用XML驱动的Web体系结构具有如下的优点。第一,不再局限于基于浏览器的客户端。XML本身就是数据,而且可以由程序任意地控制。同样的数据,既可以设定其样式化以便在浏览器中显示,也可以交给一个代理进行后台处理。第二,XML文档无需假设数据的最终用途。如果得知客户端需要HTML,由数据驱动的转换过程就会使用XML文档生成HTML页面,而生成XML的底层应用程序不需要任何修改。第三,服务器端的应用程序与客户端的耦合程度要松散的多。

越来越多的公司、企业等机构通过网络用XML来传输结构化的数据,XML已发展为不同平台、不同应用系统、不同语言之间数据交换的标准,成为新一代Web语言,XML文档的安全问题也越来越重要。XML安全技术比较复杂,进行数据传送时,应该通过数据的完整性(数据在传送中未被改动)、可认证性(文档确实来自所声明的发送方)和不可否认性(发送方不能否认是他们发送的,也不能否认数据的内容)来保证XML文档的安全。目前在这方面的技术主要有XML加密、XML签名、XKMS(XML Key Management Specification)等。相对于

传统的安全技术,XML加密和XML签名可以对XML文档部分数据进行签名和加密,并且XML加密和签名可对任何数据内容进行操作,包括整篇XML文档、XML元素、XML元素的内容以及外部文件。采用XML进行数据发布时,对于保存在本地或服务器端的数据,数据所有者应该保证只有经过授权的用户能够访问指定的数据信息,同时又要防止用户根据发布的信息推断出一些数据源中的敏感信息,目前在这方面的技术主要是各种访问控制技术。

1.2研究现状

随着Internet的迅速发展,企业间处于不同地域的不同部门的计算机系统之间,电子数据交换日益频繁,采用何种数据格式简化处理和与后台系统的集成成为日益突出的问题。XML 所具备的新特性将有助于大幅度地改善人们在网络世界里的交流方式。由于XML具有包括简洁性、可扩充性和跨平台性等特点,现已成为系统间进行数据交换的标准。

XML使用Unicode字符集以及树型结构,能够表示不同语言和领域的复杂数据类型,同时它通过,ASCII标签来标识数据的语义,人们可以很容易地编辑其数据内容。这些特点已使XML成为实现数据规范化最佳的语言和电子交换的标准平台。以数据为中心的XML信息管理系统和以文档为中心的XML信息检索系统已被广泛的应用各种系统中。

在开放环境下进行XML数据交换,没有可靠的安全控制体系,重要文档和敏感信息的明文存储和传输都是非常危险。基于Web的数据信息服务中的安全问题却有待进一步解决,XML数据的安全问题现已成为当今各类应用的瓶颈之一[8]。

1.3研究的理论和实际意义

本课题在表示层、应用层、数据层的三层体系结构上,开发一整套基于B/S的结构通用的信息查询系统,并用安全XML技术代替传统的HTML技术实现表示层和逻辑层之间的数据传输。采用功能强大、安全、易学、流行的编程语言PHP(Hypertext Preprocessor)。考虑到,数据信息通常被编辑和存储为Microsoft Excel表格(.xls)的形式,所以系统应能读取预定格式的Excel表中的数据,并将Excel表中数据转化生成为加密了的XML文档。用户通过查询界面输入关键词查询时,系统将根据关键词在加密的XML文件中搜索比对所需信息,如果找到,则输出所要查询的信息,否则给出出错信息。系统数据源通过智能后台管理系统导入和设置。安全、方便、通用是本系统区别于普通信息查询系统所不具有的显著特点。1.4本文主要研究内容

根据上面所阐述的研究背景和研究现状,本文对安全XML的信息查询系统问题进行了研究。

本文的主要研究工作如下:

(1)介绍与XML 相关的基础知识,包括XML 简介、文档类型定义DTD。

(2)介绍XML加密和数字签名基础知识,包括对称密钥算法、公开密钥算法、加密算法

的选择、XML文档加密选择与实现。

(3)介绍Web编程语言PHP。

(4)基于安全XML信息查询系统设计与实现。

(5)论文总结:分析系统不足,提出完善系统的工作。

第2章XML与Web技术研究

2.1XML 基础知识

2.1.1XML简介

XML 是标准通用标记语言SGML 的一种变体,从SGML 中经过精心修剪而来的,XML 既保持了SGML 的功能,又减少了SGML 的复杂性。开发人员可以创建描述数据的标记以及文档类型定义的规则集合。

XML作为一种扩展标记语言,它主要有以下一些特点。

(1)自描述性,XML 是面向内容的标记语言,在XML 中的语义标识一方面限定了元素

的层次结构,另一方面说明了元素的含义。在XML 文档中由标记就可以知道内容的含义,这使得标记更有意义。

(2)独立性,由于XML是自描述的,所以XML 可以脱离具体应用来描述保存在异构环

境中的各种数据,其他应用系统能直接对这些自描述的XML 文件中的数据进行操作。由于XML 的语义与数据独立性,它也成为跨平台数据交换和操作的标准模式。

(3)结构性,XML 的文件结构可以嵌套到任意程度,能用来表示面向对象的等级层次。

(4)可扩展性,通过XML文件中命名空间的声明,XML可以通过互联网被其他组织或

个人使用,这样可以使用一种统一的数据查询和操作模式,而不必关心数据所在的具体系统和应用环境。另一方面,XML 可以在不破坏现有结构和系统的情况下增加新的数据字段,利用XML对所有数据建模,而不需要更改现有的对象。

(5)显示的多样性,XML 把数据的显示格式与数据的表示分离。在XML 中,可以用格

式文件XSL来定义XML 数据的显示格式,分离数据的表示和内容。这种分离可以实现不同数据源数据的无缝连接。各种数据可以在中间件上转换成XML 格式,使得数据可以很容易地进行在线交易和传输。

(6)灵活性,XML 提供了一种结构化的数据表现方式,从而使用户界面与结构化数据相

分离。这样用户既可以只关心数据的逻辑结构,也可以通过样式表来格式化数据的表现,甚至可以定义自己的个人样式表来显示各种不同的XML 数据。

(7)丰富的链接定义,对应于HTML单一的单向单通道链接,XML 提供了各种不同的链

接,如一对多、多对一和双向链接。

2.1.2DTD

DTD(Document Type Definition,文档类型定义)通常用来定义XML文档的结构,使用DTD可以使XML文档的格式统一化和标准化。DTD可以分为内部DTD和外部DTD两类,一个内部DTD是在XML文件的开头处声明的,外部DTD单独存在于一个文件中,该文件

中包含XML文档组织结构的所有规则,文件以扩展名dtd存储。

表2-1 显示了与DTD 中的四种标记声明相关的关键字及其含义

表2-1 DTD中的关键字及其含义

DTD 关键字含义

ELEMENT XML 元素类型声明

ATTLIST 元素类型可设置的属性及属性的允许值声明

ENTITY 可重用的内容声明

NOTATION 不需要解析的外部内容的格式声明

(1)DTD中的元素声明

DTD中的元素类型是通过ELEMENT标记声明的。XML元素可以是空元素,用关键字EMPTY 来表示,可以有属性。XML元素可以具有任意的内容,用关键字ANY来表示。XML 元素可以是纯文本,也可以包含若干个子元素。

XML元素声明的语法格式如下。

元素定义由元素内容模型来描述,元素内容模型是圆括号包含的若干子元素名称、运算符和#PCDATA关键字的组合。运算符如表2-2 所示。

表2-2 运算符及其含义

符号含义

, 表示严格顺序

| 表示选择

? 表示可选,不出现或出现一次

* 表示零个或多个

+ 表示一个或多个

(2)DTD中的属性声明

DTD中属性是对元素的补充和修饰,它能够将一些简单的特性与元素相关联。通过属性,可以给元素绑定大量信息。属性在XML DTD中使用ATTLIST 标记声明。对于含属性的元素,至少要通过一个ATTLIST 标记声明其属性列表。ATTLIST 声明由以下部分构成:ATTLIST关键字、属性修饰的元素名称以及零个或多个属性定义。

XML属性声明的语法格式如下。

元素名是属性所属的元素的名字,属性类型则用来指定该属性是属于哪种类型,缺省值说明在XML文件中,如果没有特别说明属性的取值,语法分析器默认它具有的取值。ATTLIST

是一个属性的列表,它可以包含很多属性。

属性的缺省值有三种,其中#REQUIRED表示元素的每个实例必须包含该属性,#IMPLIED 表示元素可以选择是否包含该属性,#FIXED 加上缺省值表示属性的值永远固定为缺省值。

属性的类型如表2-3 所示。

表2-3 属性的类型及其含义

属性类型含义

CDATA 字符数据(字符串)

ID 特定文档中唯一的名称

IDREF 对具有ID属性的元素的引用

IDREFS 若干以空格分隔的IDREF

ENTITY 已定义的外部实体的名称

ENTITIES 若干以空格分隔的

NMTOKEN 名称

NMTOKENS 若干以空格分隔的NMTOKEN

NOTATION 接受DTD中声明的用于指示表示类型的名称

Enumerated 接受用户显式定义的属性可选值中的一个值

(3)DTD中的实体声明

XML 文档由声明和根元素组成,根元素包含其他所有子元素。实际应

用中,XML 文档的真实数据可以来自多个文件。包含XML 文档,文档的DTD 以及其他引用的各种文件都称为实体。

XML 中有很多实体类型,可以根据三个标准进行分类:常规实体和参数实体、内部实体和外部实体、已解析实体和未解析实体。

常规实体能够声明与某个名称相关联的可解析的文本块,可以通过该名称引用相应的文本。这类实体声明包含关键字ENTITY、实体名称和替换值。实体引用是一种合法的XML 名字,前面带有一个符号&,后面跟着一个分号(;)。有五个实体被定义为XML 的固有部分,它们通常用作XML标记分隔符号的转义序列。

内部实体的值是在DTD 中给出的,是实体定义的一部分。外部实体可以采用关键在SYSTEM 或者PUBLIC 关键字来定义,通过外部实体可以使用多个独立的文件建立单个XML 文档。

已解析的实体(parsed entity)是由XML 标记所组成的实体。外部常规实体中可以含有非XML 的内容,例如图片、声音、视频等,均被称为未解析实体。

各种实体如表2-4 所示。

表2-4 实体及其用途

实体用途

& 通常用来替换字符&

< 通常用来替换字符小于号(<)

> 可用来替换字符大于号(>)

&apos 可用来替换字符串中的单引号(’)

" 可用来替换字符串中的双引号(”)

除了上述五个实体,所有实体都必须在文档使用前予以定义。参数实体只能出现在DTD 中,通过参数实体能够简便地引用或修改DTD中常用的结构,参数实体声明和常规实体类似,但要在名字前加上百分号(%)。参数实体声明由以下几部分组成:ENTITY关键字、百分号、名称和替换值。在DTD 中,所有参数实体必须在引用之前进行声明。引用参数实体时,需要在实体名称之前增加百分号(%),在其后增加分号(;)。

2.1.3本节小结

本节主要介绍了XML的主要特点,文档类型定义DTD中的元素声明、属性声明和实体声明。为本课题以后的XML信息查询研究奠定理论基础。

2.2XML加密简介

2.2.1对称密钥算法

(1)对称密钥算法概述

对称密码算法(Symmetric Algorithm),又称传统密码算法,就是加密密钥能够从解密密钥中推算出来,反过来也成立。在大多数对称算法中,加/解密密钥是相同的。这些算法也叫秘密密钥算法或单密钥算法,它要求发送者和接收者在安全通信之前,商定一个密钥。系统的安全依赖于密钥,泄露密钥就意味着任何人都能对消息进行加/解密。只要通信需要保密,密钥就必须保密。对称密码算法的加密和解密表示为:

Ek(M)=C;

Dk(C)=M;

(2)DES算法

DES(Data Encryption Standard,数据加密标准)算法是应用广泛的对称密码算法之一,经受了20多年的考验,目前仍然是安全的。DES是一个分组算法,它以64位分组对数据加密。64位一组的明文从算法的一端输入,64位的密文从算法的另一端输出。

DES算法原理如下:

图2-1一轮DES的实现

DES对64位的明文分组进行操作。通过一个初始置换,将明文分组成左半部分和右半部分,各32位长。然后进行16轮完全相同的运算,这些运算被称为函数F,在运算过程中数据与密钥结合。经过16轮后,左、右半部分合在一起经过一个末置换。

在每一轮中,密钥位移位,然后再从密钥的56位中选出48位。通过一个扩展置换将数

据的右半部分扩展成48位,并通过一个异或操作与48位密钥结合,通过8个S盒将这48位替代成新的32位数据,再将其置换一次。这四步运算构成了函数F。然后,通过另一个异或运算,函数F的输出与左半部分结合,其结果即成为新的右半部分,原来的右半部分成为新的左半部分。将该操作重复16次,便实现了DES的16轮运算。

2.2.2公开密钥算法

(1)公开密钥算法概述

公开密钥算法(Public-Key algorithm ),也叫非对称算法算法,它是密码学历史上一次重大的发明。在公开密钥密码学提出之前,几乎所有的密码编码系统都建立在替代和置换工具的基础上。公开密钥密码学则与以往的所有方法截然不同:一方面公开密钥算法基于数学函数而不是替代和置换;更重要的是,公开密钥密码算法是非对称的,它用到两个不同的密钥,而对称的常规加密只使用一个密钥。

公钥加密体制都是建立在数学中已知的NP问题之上的,利用NP问题来构造一个陷门单向函数,用陷门单向函数和密钥来实现加、解密。加密过程是一个单向的过程,只知道明文和公钥是无法计算密文的;同样,解密过程也是很复杂的,只有当给定某些辅助信息即私钥时,计算密文才会变得很容易。现有的公钥加密算法都是基于以下NP困难问题的。

[1]背包问题:n个整数的集合A={a1,a2,...,an}和整数s,找出A的一个子集,其中元素

之和等于S。

[2]整数分解问题:正整数n,是否存在整数n1,n2,,1

[3]离散对数:如果p是素数,g和M是整数,找出x满足g x≡M mod p。

[4]丢番图方程:三个正整数a,b,c,丢番图方程ax2+by=c是否存在整数解。

[5]矩阵覆盖问题:也称二次背包问题。一个整数环上的n阶矩阵A, s∈Z,是否存在

(X1,X2,...,X n)∈{0,1 }n,使得(X 1,X2, . . . ,X n)A(X 1,X2, . . . ,X n)T=S。一次背包问题可看

成矩阵覆盖问题的特例。

公开密钥密码学解决了两大难题:

[1]密钥分配问题:常规加密的密钥分配要求通信双方要么已经共享一个密钥,要么要用

到一个密钥分配中心。公开密钥加密的发现者之一的WhitifieldDiffi。认为,第二个

要求从根本上违背了密码学的本意,即使自己的通信完全保密的能力。

[2]数字签名问题:如果密码学要获得广泛的应用,在用于商业或私人目的时,电子报文

和文件就需要一种与书面材料中使用的签名等效的认证手段。也就是说,应该设计一

种方法可以让参与各方都信服地确认个数字报文是某个人发送的。

公开密钥算法的密钥是成对产生的,一个密钥进行加密,另一个用来解密。公开密钥算

法有以下重要特征:

[1]仅仅知道密码算法和加密密钥而要确定解密密钥,在计算上是不可能的;

[2]两个相关密钥中任何一个都可以用作加密而另外一个用作解密。

2.2.3选择加密算法

除了需采用EncryPtedData元素建立XML文档的加密结构,还需选择合适的加密算法。加密算法主要分为两大类:对称密码术(也称作密钥密码术)和非对称密码术(也称作公钥密

码术)。其中,对称密码术己经被人们使用了数千年,拥有简单或复杂的多种构造方式,但其算法的核心都是要求信息的发送者和接受者持有同一个密钥,且加密和解密过程是对称的;而非对称密码术使用在数学上相关的两个密钥,用其中一个密钥加密的明文只能用另一个密钥进行解密。两个密钥分别称为私钥和公钥,其中私钥由个人秘密持有,而公钥却无需保密,可根据需要让尽可能多的人知道。使用非对称密码术对数据进行加密和解密的过程为:信息的发送者使用接受者的公钥对信息进行加密,只有接受者使用自己的私钥才能将其解密,这便确保了数据传输的安全性闭。

由于算法复杂度的区别,采用对称密码术进行加密和解密的速度通常比采用非对称密码术的速度快得多,考虑到电子商务的安全性及加密效率的需求,对XML中的数据的加密可以采用对称密码术(也称作密钥密码术)来进行。常用的对称密码包括分组密码和序列密码两类,本文倾向采用分组密码中的较为成熟的算法—数据加密标准(Data Encryption Standard,DES)来实现XML加密。

DES使用一个56位的密钥以及附加的8位奇偶校验位,产生最大64位的分组大小。这是一个迭代的分组密码,使用Feistel的技术将加密的文本块分成两半,使用子密钥对其中一半应用循环加密,然后将输出与另一半进行“异或”运算;接着交换这两半,这一过程会继续下去,但最后一个循环不交换。DES使用16个循环[4]。

与其它加密方法一样,随着计算机系统能力的不断发展,DES的安全性也不断受到挑战。攻击DES的主要形式被称为蛮力搜索的或彻底密钥搜索,即重复尝试各种密钥直到有一个符合为止。如果DES使用56位的密钥,则可能的密钥数量是2的56次方个,蛮力搜索的计算量非常大,所以在一般的安全级别应用中,DES是足以胜任的。另外,我们也可采用DES的变体算法,比如三重DES等,以增加安全性。

除了算法成熟外,选择DES的另外一个原因是:IBM 曾对DES拥有几年的专利权,但是在1983年己到期,并且处在公有状态中,这可以有效地降低电子商务中数据加密的成本。

2.2.4XML文档加密实现

使用对称加密算法DES对XML文件进行加密首先要使用XML的DOM编程接口技术

选择需要加密的内容,然后使用加密算法对其进行加密。

加密实例如下:

清单 1. 显示学生Ma Jianhao的基本信息

Ma Jianhao

Male

0402

Coputer Science and Technology

West Anhui University

138********

sailwe@https://www.wendangku.net/doc/c613743479.html,

清单 2. 上述基本信息全部被加密的XML文档如下

asyncKey

V/RP5z8Gd22T8JWFVgd0nUe3vDSVaEEl3NeCXFZOmBBkgC3KwUveVf7hpW1nRpu Kte+ftAM3WnQQIBU4l+jFMOfcdVwnaq1i7ixg1Do8El17cuyktdb78LVzRLQGPeu9zr0eEYqIKfQ je+J43+xmisdfzlAxlEQ5nB+L4TWR2Is=

PgiXY5QSF6NTrsS6HG9nHt+jeHlkIu1a+DgqMAzjxqOH7DlHm972xaCfSRRpSqX pJcpeEdmca4swl3QsOBdzFHrSf2q/++grgWu6So2Mk3Hh1Aat8bdB+ctpPuR2ll9CKJL+7DA7eSs RT12KqPhiBtheA4+i6h0rwsnx9rXSUwimxfwsIdc6NdIatGuyjHeRvPvBhKiPd9HhyhLzfjXNawG shsqF6YJZrocZo1Q7p8fv/xNdb0DCV8JOdGEfQQzqb8UfK+B7TbwuOGwl90l+RP/bFZ7DtW2/14n PlKAwK8F7R9BTXvKXDmLZYgqyA84K

说明:

[1]EncryptedData元素

该元素被包含在“https://www.wendangku.net/doc/c613743479.html,/2001/04/xmlenc#”命名空间中。它是被加密数据的根元素。

[2]EncryptionMethod元素

该元素指定加密数据的对称方法。做这件事需要使用一个包含了w3 url的算法属性- “https://www.wendangku.net/doc/c613743479.html,/2001/04/xmlenc#aes256-cbc”,它指出数据是用AES(Rijndael)以256k的密钥加密的。

[3]KeyInfo元素

该元素来自xml数字签名,它保存着对称密钥的信息,除此之外该元素还能保存更多的

信息。KeyInfo元素下的EncryptedKey元素及其子元素包含着关于被保存的密钥的信息。KeyInfo下的EncryptionMethod元素包含的非对称加密方法用来加密对称密钥。做这件事需要把一个算法属性设置给w3 url。例如:“https://www.wendangku.net/doc/c613743479.html,/2001/04/xmlenc#rsa-1_5”说明使用了RSA非对称算法来加密对称密钥。

[4]KeyName元素

该元素是一个标识符,用来发现密钥。

[5]CipherData元素和CipherValue元素

CipherData元素和CipherValue元素出现在EncryptedKey元素和EncryptedData元素下,它们包含着密码数据。事实上密码数据保存在CipherValue元素下的。

非对称xml加密步骤

xml加密的过程可以概括为以下五步:

[1]选择xml文档中的一个元素(选择根元素的话将加密整个文档)使用一个对称密钥加

密元素

[2]使用非对称加密来加密上面那个对称密钥(使用公开密钥)

[3]创建一个EncryptedData元素,该元素下将包含被加密的数据和被加密的密钥

[4]用加密后的元素替换掉初始元素。

非对称xml解密步骤

xml解密的过程可以概括为以下四步:

[1]在xml文档中选择一个EncryptedData元素

[2]使用一个非对称密钥来解密密钥(使用私有密钥)

[3]使用未加密的密钥来解密数据

[4]把EncryptedData元素替换成未加密的元素

总结

xml加密(XML Encryption)是w3c加密xml的标准。加密后的文档仍然是xml格式。我们使用非对称和对称算法来加密xml,对称算法用于加密数据,非对称算法用于加密对称算法中的密钥,加密后的数据被保存在EncryptedData元素下。EncryptedData元素包含着一些列用于描述算法的子元素,同时也包含着密钥信息。

2.2.5本节小结

本节介绍了XML加密和数字签名基础知识,包括对称密钥算法、公开密钥算法、数字签名、加密算法的选择、XML文档加密选择与实现。为编写系统加密算法提供了理论依据。

2.3. Web 服务技术

2.3.1 Web 服务概述

Web 服务是指为一些功能提供接口,让它可以被Web 上的其它程序访问的一种技术。这里所说的功能可能是从数据库获取数据,执行一个数学运算,或者更复杂的任务。所谈的Web 服务进行通信需要一套具体的标准和协议。这些标准和协议使我们能够创建可以被任何接入Internet 的用户使用的Web 服务,虽然在访问服务时可能要求相应的授权,也可能使我们使用第三方创建的任何数量的Web 服务。这些标准指定了下面的内容:一种独立于平台的数据交换格式,一种描述数据结构的方法,打包数据的标准方法,可能用于跨工nternet 的传输,Web 服务描述自身、它们能进行的操作和客户程序所需要数据结构的一种方法,通过Web 服务的功能或描述以编程方式定位Web 服务的一个框架。

2.3.2 Web 服务的工作原理

现在己经大致描述了使用Web 服务的动机和Web 服务在企业中的应用,下面该来认真了解一下Web 服务的标准了。支持Web 服务的是Internet 通信使用的主要协议:超文本传输协议。在大多数情况下,HTTP 将用作Web 服务通信的传输协议。基本的情况如下图5-1所示。

图2-2 Web 服务工作原理

此图显示的是客户端以请求一响应的模式通过HTTP 与Web 服务进行通信。实际情况并不局限于此——Web 服务通信也可以单向的,客户端发出请求但不等待回应。Web 服务也可以启动对话,这种对话可以是单向的,也可以是双向的。

访问Web 服务和访问Internet 上的其它内容是非常相像的,它也要求一个URL 。在Web 上冲浪时,使用一个浏览器,在“地址”栏中输入URL 地址,系统把一个HTTP 请求发送到和该URL 关联的Web 服务器,然后得到一个包含要显示的HTML 的HTTP 响应。Web 服务和相关的协议规范只是告诉在HTTP 请求中应该放置什么信息,以及能够检索到什么内容。

如上所述,Web 服务并不强制使用HTTP 。但是,使用HTTP 确实有道理。首先,HTTP Web 服务器很容易获得,使Web 服务的部署不成问题。另外,HTTP 还有一个近亲,即

HTTPS 发送HTTP 请求

HTTP 响应,返回处理结果

发送HTTP 请求

它可帮助您实现安全的数据传输。使用HTTP作为主要传输机制的系统转换为使用HTTPS并不困难,因为这两个协议的非安全特性是完全相同的。对于使用HTTP通信的Web服务也是如此,所以可以有一个选择,为Web服务提供安全性,同时又不必做任何额外的工作。

2.3.3Web编程语言PHP简介

众所周知,PHP 作为全球最热门的开发语言之一,以其独特的优势,自1994 年诞生至今,已被超过2000 万个网站所应用,更有数以百万计的专业工程师支持着PHP 的发展和成长。

PHP创始人是Rasmus Lerdorf。1995年发布了第一个公开版本Personal Home Page Tools,这个版本的功能非常简单,包含了一个极其简单的分析引擎,只能理解一些主页后台的常见功能(如:留言本、计数器等)和一些指定的宏。1995年Rasmus Lerdorf重写了这个引擎并命名为PHP/FI2.0版本。此后,PHP/FI便以惊人的速度传播开来。其后越来越多的人们注意到了这种语言并对其扩展提出了各种建议。在许多程序员和电脑爱好者的无私奉献下以及这种语言本身的源代码自由性质,现在它已成为一种特点丰富的语言,而且现在还在成长中。

引用PHP(Hypertext Preprocessor)的官方站点https://www.wendangku.net/doc/c613743479.html,的定义来说,PHP是一种服务器端、跨平台、HTML嵌入式的脚本语言。其实,它和大家所熟知的ASP一样,是一门常用于Web编程的语言。

PHP是一种免费软件,它能运行在包括Windows、Linux等在内的绝大多数操作系统环境中,常与免费Web服务软件Apache和免费数据库MySQL配合使用于Linux平台上,具有最高的性能价格比,号称“黄金组合”。

PHP最强大和最重要的特征是它的数据库支持,目前其支持范围覆盖了包括Oracle、Sybase、MySQL、ODBC等在内的大多数常见数据库。使用它编写一个含有数据库功能的网页程序变得十分简单。

2.3.4本节小结

本节简单介绍了Web服务的工作原理和用于编写系统脚本的Web编程语言—PHP。

第3章系统分析与设计

3.1系统介绍

3.1.1功能介绍

本系统是基于PHP和XML技术的通用安全信息查询系统,系统能读取预定格式的Excel 表中的数据,并将Excel表中数据转化生成为加密了的XML文档。系统数据源通过智能后台管理系统导入和设置。用户通过系统动态生成的查询界面输入关键词进行信息查询,系统将根据关键词在加密的XML文件中搜索比对所需信息,最后输出所要查询的信息。

3.1.2开发环境

(1)运行环境:

服务器操作系统:Microsoft Windows XP Professional 2002 Service Pack 2

服务器端软件:Apache 2.0、PHP5.2

数据库系统:MySQL 4.1

(2)开发环境

操作系统:Microsoft Windows XP Professional 2002 Service Pack 2

编程工具:Nodepad++ 4.8.2

界面设计:Macromedia Dreamwear 8,Macromedia Fireworks 8

3.1.3系统优点

基于B/S架构,能够以更快的速度、更低的费用创建安全的信息查询系统,便于系统的维护和升级,无需数据库支持,安全、方便、通用是本系统的显著特点。

3.2需求分析

3.2.1功能需求

本系统功能分为两大部分:前台用户信息查询、后台系统管理。

(1)前台用户信息查询

①用户输入查询关键字,点击提交按钮进行查询;

②对用户输入关键字合法性进行检验;

③若检验通过,则查询模块将XML格式数据源进行解密,将查询关键字与已解密数据

源中对应关键字进行匹配。若匹配成功,则输出该条记录,否则输出出错信息。若检验未通过,则系统输出提示信息。

(2)后台系统管理

①管理员输入用户名和密码,点击提交按钮,若用户名和密码正确,则登录成功。否则

给出出错信息。

②进行数据导入与配置。对导入的数据进行加密;

③修改系统配置信息;

④修改管理员用户名和密码。

3.2.2系统流程图

(1)系统用户流程图

图3-1系统用户流程图

(2)系统管理流程图

图3-2管理流程图流程图

3.2.3 系统功能模块图

(1) 系统用户功能模块图

图3-3 系统用户功能模块图

(2)系统管理功能模块图

图3-4 系统管理功能模块图3.2.4面向对象分析

(1)系统类图

(2)系统用例图

相关文档