软件工程硕士论文-基于XKMS系统的XML密钥管理系统的研究和实现.doc_第1页
软件工程硕士论文-基于XKMS系统的XML密钥管理系统的研究和实现.doc_第2页
软件工程硕士论文-基于XKMS系统的XML密钥管理系统的研究和实现.doc_第3页
软件工程硕士论文-基于XKMS系统的XML密钥管理系统的研究和实现.doc_第4页
软件工程硕士论文-基于XKMS系统的XML密钥管理系统的研究和实现.doc_第5页
已阅读5页,还剩60页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于xkms系统的xml密钥管理系统的研究和实现院 系:软件学院专 业:工程硕士(软件)研究方向: 摘要在过去几年里,扩展性标记语言xml(extensible makeup language)已经成为一种用于因特网上交换数据的有价值机制,成为企业间电子数据交换的标准。xml创建出可以供任何人从任何地方访问和使用的功能强大的应用程序,它极大地扩展了应用程序功能,并实现了软件的不间断传输。这一切是通过将紧密耦合的高效的n层计算技术与面向消息松散耦合web概念相结合实现的。由于任何企业或个人都能够通过互联网调用web服务,因此身份验证和信息的安全传输就显得尤为重要。由于web服务本身就是使用xml作为其通用的数据交换语言,因此使用xml对web服务提供安全保障就非常自然了。pki技术已经是一项比较成熟的技术,然而pki的复杂性使得很多人对pki的部署望而却步。本文所讨论的xkms能够消除使用pki时的复杂性,使web服务在它们的应用程序中结合安全机制变的更容易。应用程序能简单地将所有pki处理任务委托给某个第三方信任服务,而不是有自己来对复杂的pki函数进行编码,这样就可以将精力集中在它们的业务逻辑上。向第三方服务进行委托后应用程序的大小将被缩减,使得应用程序可以在那些内存有限的设备上使用。由于使用xml词汇来表示pki并且支持wsdl和soap的消息,使得xkms对于平台、供应商和传送协议都是中立的。xkms能很平稳地适应web服务的开发环境。本学位论文讨论了xkms有关的基础知识原理,并在此基础上实现了xmks密钥管理系统。完成的主要工作包括:l 分析数字安全基础、xml技术以及其安全性l 讨论分析pki技术和xkms技术模型l 根据w3c的规范开发了xkrss密钥注册系统和xkiss密钥信息管理系统。关键词:web服务,数字安全,pki,xkmsabstractin the past few years,the extension makeup language(xml) has been a valuable mechanism to exchange data in internet.it also becomes a strandard which enterpise use to exchange data.xml can create powerful program which people can use or visite anywhere ,it expend programs function and enable softwares uninterrupted transmission.all these improve should thanks to tight coupling and high efficiency of computer technology which combined with facing message relax web concept.due to any enterprise or person can use web service via internet, identity authentication and safety transfers security become more important.because web service use xml as its current data exchange language,its nature to safeguard web service s security by means of xml.pki has been a mature technology,but its complexity prevent people using it easily.xkms can reduce complexity when people use pki,so it makes web service easier to combine security mechanism,then application program can assign all pki process task to third- part trust service.using xml language to represent xkms and supporting wsdl and soap message,it help xkms can be used no matter what platform, provider and transfer protocol.xkms is suit for web service environment.this paper discuss basic knowledge and principle of xkms and carry out the xkms system on the basis of these knowledge.the major work including:l analysing digital security,xml technology and xmls securityl studying pki technology and xkms modell developing xkiss and xkrss according to w3c strandardkey words:web service ,digital security,pki,xkms第一章:序言71 论文研究背景71.1 web服务的广泛运用71.2 xml技术的发展背景71.3 pki及xkms技术的产生的背景82 论文研究内容82.1 研究内容82.2 实际工作83 论文的组织形式9第二章:数字安全基础101 密码学基本理论102 对称与非对称密钥算法103 数字签名与认证123.1 认证123.2 数字签名13第三章:xml技术及其安全性141 xml 概念142 xml安全的介绍153 xml加密163.1 xml加密概述163.2 基本xml加密结构163.3 xml加 密语法173.4 加密处理过程184 xml签名194.1 xml签名概述194.2 xml签名结构194.3 xml签名语法204.4 xml签名处理过程22第四章 pki和web服务231 pki技术介绍231.1 pki概念简介231.2 pki的组成241.3 pki的基本工作过程242 web服务技术252.1 web服务概述252.2 soap简单对象访问协议263 pki和web服务的联系27第五章 xkms技术模型291xkms概述291.1 xkms服务301.2 xkms的命名空间和优点302 xml密钥信息规范312.1 xkiss定位服务313 xml密钥注册规范343.1 xml密钥注册规范服务343.2 密钥注册343.3 重发密钥393.4 取消密钥393.5 密钥恢复394 xkms服务示例40第六章 基于xkms的密钥信息管理系统的实现411 密钥信息管理系统的结构和设计411.1 系统的总体结构411.2 系统构架平台的分析452 密钥管理系统的安全性分析492.1 共享密钥的安全存储492.2 重放攻击492.3 密钥吊销与密钥恢复时的身份认证492.4 密钥吊销的身份认证492.5 密钥吊销的身份认证50第七章 xkms系统的实现和应用511 xkrss模块的实现511.1 密钥注册511.2 取消密钥521.3 密钥恢复531.4 密钥的更新服务541.5 密钥的重发542 xkiss模块的实现552.1 定位服务552.2 验证服务563 应用实例的分析57第八章 结论59第一章:序言1 论文研究背景1.1 web服务的广泛运用简而言之,web服务就是通过web提供的服务,另一方面web服务也是一种软件应用程序,它在基于internet的协议前提下利用基于xml的消息与其他应用程序进行交互。xml、rpc、soap、wsdl、pki、xkms是一些常用的web服务标准技术之一。当今的it领域,web服务技术受到了普遍的关注。所以一种理念已经出现,既通过网络将各种服务链接在一起,合并业务应用程序,最终达到占领市场和提高竞争力的目的。但是那些快速发展的公司已经遭遇了互操作性、体系结构、特别是安全性等方面的难题。普遍调查显示,web服务的安全性已经成为绝大多数公司的最大关注点。黑客、病毒制造者、以及其他业界敌人造成了安全方面的挑战的随之增加。人们正在研究诸如证书、加密、传输层安全保障等各种方法解决安全性方面的难题。1.2 xml技术的发展背景1.2.1 xml技术的需求发展 xml的前身是70年代发展起来的标准统一置标语言(standard generalized makeup language).sgml虽然功能强大,但是过于复杂,不利于传输和处理。因此ietf在sgml的基础上删繁就简,在1989年提出了简洁的超文本标志语言(hyper text makeup language即html)。并很快在web应用中取得了巨大的成功。然而在web应用的深入发展的大环境下,html也逐渐暴露出数据显示描述能力不强、无法描述数据内容、可扩展性差等缺点,对于日益复杂的web应用显得力不从心。于是w3c成立了工作组,通过对于sgml的进一步改进,在1998年2月推出xml。xml具有以下的优点:l 可扩展性:xml允许客户根据应用的需要,自行定义元素和需要。l 结构化:xml文档呈树型结构,通过元素的嵌套,可以描述任意层次的文档结构。l 平台无关:xml文档是一种完全的文本文档,不依赖于任何操作平台。1.2.2 xml技术的安全性问题 xml技术发展至今面临着一系列诸如数据的完整性、可靠性、和不可否认性等问题。w3c-ietf xml工作组发布了xml 签名和xml加密的规范来解决部分xml的数据安全性问题。本文将在以后的篇章中做具体介绍。1.3 pki及xkms技术的产生的背景在xml加密和签名过程中我们都需要使用到密钥来完成相应的功能。计算机安全这一主题有了很大的发展,他已经超出了我们的常识,比如不要在钱包中保存信用卡的密码和在所有需要密码的地方使用相同的密码等。意识到密码的良好习惯并不足以在当前的计算机环境中提供充分的安全后,我们必须借助于某种分布式的技术来构建一个结构,这个结构至少能够建立起一个用于安全计算的构架。这就是公钥体系结构(public key infrastuactue 简写pki)。为了方便pki和数字证书与xml应用程序以及使用这些程序的web服务的集成。microsoft、verisign、webmethods共同开发了一个开放规范,既xml key management specifiaction(xml 密钥管理规范,xkms)。2 论文研究内容2.1 研究内容由于xml的优点及越来越多的应用都转到xml上来,所以迫切需要解决xml应用的安全问题。目前许多专门提供认证服务的企业已经投入了大量的人力和物力来构建基于pki 的ca ,并且发放管理着大量的证书。为了方便pki数字证书和xml应用程序以及使用这些程序的web服务进行集成,w3c提议并由microsoft、versign webmethods三家公司共同发起,制定了xkms密钥管理系统。xkms能消除使用pki的复杂性,使web服务在它们各自的应用程序中结合安全机制变得更加容易。本文将讨论xkms的有关于注册、发布和处理公钥的协议,使xkms为xml加密和xml签名提供直接的支持。2.2 实际工作首先我们分析数字安全基础、xml技术以及其安全性,进而讨论分析pki技术和xkms技术模型。随后我们根据w3c的规范开发xkrss密钥注册系统和xkiss密钥信息管理系统。我们首先设计系统框架模型和具体的系统设计,在系统设计的基础上实现了该系统。最后开发了一个应用来验证该系统工作的重点是如何利用xkms技术结合xml签名规范和xml加密规范结合使用为xml应用提供安全认证服务。3 论文的组织形式本文共分六章除第一章绪论外大致内容如下第二章 介绍数字安全技术及其安全性着重介绍密钥的基础知识和数字签名的常识。第三章 深入分xml技术及其安全性第四章 分析xkms 技术模型是本课题的主要的研究内容第五章 结合xkms 和xml技术的解决方案的系统设计该部分是本课题的重点第六章 在系统设计的基础上实现该系统并开发一个应用实例来验证该系统最后给出本课题的总结第二章:数字安全基础1 密码学基本理论现代通讯系统的数据安全是建立在密码学理论和技术基础上面的。其中密码算法是所有密码技术的基础。将密码算法的合理运用与组合构成了使用目的不同的安全技术,诸如数据加密、签名、身份认证、密钥管理和数字证书等等。等安全技术的实施涉及到网络上多个实体时,就需要以安全协议的方式让各方进行有序的协同工作,从而发挥出各种密码算法与安全技术的特点,来保障安全的通讯过程。基本概念:l 密码学:密码学是对信息进行编码,实现信息隐藏的一门学科。l 明文(painttext):采用密码方法可以隐藏和保护需要保密的信息,使未授权者不能提取信息。被隐藏的消息叫做明文。l 密文(ciphertext):加密后的结果称为密文。l 加密(encryption):用某种方法伪装消息以隐藏其内容的过程称为加密l 解密(decryption):把密文转变为明文的过程叫做解密。l 加密算法(encryption algorithm):在加密时使用的一组规则,叫做加密算法。l 解密算法(decryption algorithm):解密时使用的规则叫做解密算法。加密操作和解密操作通常都是在一组密钥(key)的控制下进行的。用于加密和解密的数学函数称为密码算法,其安全性都是基于密钥的安全性,而不是依赖于对算法设计细节的保密性。2 对称与非对称密钥算法根据密码算法使用的密钥,可以将其分为两大类:对称密钥算法(symmetric algorithm)和公开密钥算法既非对称密钥算法(public-key algorithm)。1.1.1 对称密钥算法 对称算法又称为传统的密钥算法。它的加密密钥和解密密钥可以互相推导得出(这两个密钥在大多数算法中是相同的),由通讯双方通过预共享方式获得。对称密钥算法的安全完全依赖于密钥的安全,泄露密钥意味着泄露信息。对称密钥又分为两类:l 序列算法(stream algorithm):将明文中的单个位(有时对字节)加密运 算的算法称为序列算法。l 分组算法(block algorithm):将明文消息分组,逐组进行加密运算的密码算法称为分组算法。现代计算机密码算法的典型分组长度为64位。对称密钥算法不仅可以用于数据加密,也可以用于消息的认证。目前常见的对称密钥加密算法有des、3des、idea、rcs等。以对称密钥算法为基础的密钥体制称为对称密码体制。对称密钥的体制的优点是效率高、速度快、系统开销少、适合加密大量的数据。但是随着网络用户的增加,数据加密所需的密钥数量会以几何级数的增长,众多密钥的分发、共享和管理将会成为一个非常复杂和困难的问题,并容易带来安全隐患。1.1.2 非对称密钥算法非对称密钥算法的加密密钥不同于解密密钥。在这种加密方式下,加密密钥也被称为公钥(public key),解密密钥也被称为私钥(private key).通常私钥不能在合理的时间长内根据公钥推导而出。当使用私钥加密而使用公钥解密的时候,由于私钥的保密性,解密的一方就能明确消息的传递来源,判断对方的身份,并验证消息的篡改。非对称加密的这一特性是对称加密所不具备的,它被运用到数字签名技术之中。以非对称密码算法为基础的密码体制称为公钥密码体制。公钥密码体制是密码学上划时代的事件,它为解决计算机信息网中的安全问题提供了新的理论和技术基础。它弥补了对称密码体制的缺点,密钥管理简单,基本解决了抗否认性问题。但是非对称密钥算法处理速度慢,使用效率低。因此,通常把对称密钥算法和公开密钥算法结合起来使用。既用非对称密钥技术在通讯双方之间加密传递对称密钥,而使用对称密钥算法对实际传送的数据进行解密处理。目前比较常见的公开密钥算法有rsa、dsa等,本论文就是使用rsa算法对xkms消息以及消息中的元素进行加密。1.1.3 hash函数hash函数又被称为杂凑函数、哈希函数、单向散列函数。它是把任意长度的输入串m(称为预映射)转换为固定长度(通常是更短)输出串(称为散列值或消息摘要)的函数。当预映射发生变换的时候,散列值也发生相应的变换。hash函数具有单向性,所谓的单向性就是根据预映射的值计算散列值很容易,但是相反的要找到散列值等于特定值的预运算是不可行的。单向散列函数的安全性就在于他的单向性。好的单向散列函数还是无冲突的,既他们难以产生两个预映射的值。还有一类带有秘密密钥的单向散列函数,被称为消息鉴别码(message authentication code简称mac)其散列值是预映射的值和密钥的函数。由于与密钥有关,只有持有次密钥的人才能计算出相应的散列值,因此消息鉴别码具有身份验证的功能。单向散列函数通常比加密和数字签名的算法快,散列值也比原文档小,因此一般通过对消息进行单向散列运算来实现完整性检查和数字签名。目前常用的单向散列函数有md5、和sha等,其中md5产生128位的散列值。3 数字签名与认证3.1 认证认证又被称为鉴别,是防止入侵者对系统进行主动攻击的重要技术。认证是最主要的安全技术之一,甚至可以说,其他的安全技术都要建立在认证的基础上,认证的主要目的有两个:l 实体认证:验证信息发送者的真实性,防止伪装和假冒。包括信源、信宿等的认证与识别。l 消息认证:验证信息的完整性,检查数据在传送或存储过程中是否被篡改、重放或迟延。 由g.j.simmons发展的认证系统信息理论,是研究认证问题的理论基础,上节介绍的hash函数是认证算法的基本组成部分,而在这之上的数字签名技术则是实现认证的重要工具和手段。3.2 数字签名简单地说,所谓数字签名就是附加在数据单元上的一些数据,或是对数据单元所作的密码变换。这种数据或变换允许数据单元的接收者用以确认数据单元的来源和数据单元的完整性并保护数据,防止被人(例如接收者)进行伪造。它是对电子形式的消息进行签名的一种方法,一个签名消息能在一个通信网络中传输。数字签名在身份认证 、数据完整性、抗否认性等方面有着重要的应用。他必须满足以下要求:l 接受者能够核实发送者对报文的签名l 发送者事后不能抵赖对报文的签名l 接受者不能伪造对报文的签名基于公钥密码体制和私钥密码体制都可以获得数字签名,目前主要是基于公钥密码体制的数字签名。包括普通数字签名和特殊数字签名。普通数字签名算法有rsa、elgamal、fiat-shamir、guillou- quisquarter、schnorr、ong-schnorr-shamir数字签名算法、des/dsa,椭圆曲线数字签名算法和有限自动机数字签名算法等。特殊数字签名有盲签名、代理签名、群签名、不可否认签名、公平盲签名、门限签名、具有消息恢复功能的签名等,它与具体应 用环境密切相关。显然,数字签名的应用涉及到法律问题,美国联邦政府基于有限域上的离散 对数问题制定了自己的数字签名标准(dss)。一些国家如法国和德国已经制定了数字签名法。 以下我们使用了一个示例来阐明数字签名的具体过程:为了使用公钥加密对消息进行数字签名,甲方首先将哈希算法应用于该消息以创建消息摘要。该消息摘要是数据的紧凑且唯一的表示形式。然后,甲方用她的私钥加密该消息摘要以创建她的个人签名。在收到该消息和签名时,乙方使用甲方的公钥解密签名以恢复该消息摘要,并使用与甲方所使用的相同的哈希算法来散列该消息。如果乙方计算的消息摘要与从甲方那里收到的消息摘要完全一致,乙方就可以确定该消息来自私钥的持有人,并且数据未被修改过。如果乙方相信甲方是私钥的持有人,则他知道该消息来自甲方。第三章:xml技术及其安全性1 xml 概念xml的全名是extensible markup language(可扩展的标记语言) 。它的语法类似html ,都是用标签来描述数据。html 的标签是固定的我们只能使用不能修改, xml 则不同它没有预先定义好的标签可以使用,而是依据设计上的需要自行定义标签、是可扩展的。xml 的设计思想是用来描述数据, xml可以自我描述、 xml用文档类型定义的方式来正式的定义约束xml 文档。xml 是一个元语言,根据不同的行业和语义由它可以派生出许许多多的协议和规范 。比如文档格式化标准、文档显示模式定义、文档查询标准、文档解析标准和文档链接标准等等。而且基于xml 这个低层的规范还有很多高层的应用协议,比如开放贸易协议soap biztalk 等等.2 xml安全的介绍xml日益成为在internet上交换数据的有价值形式,从而实现互操作性。因此要保证web services的安全性,必须先保证xml的安全性。在web services中,服务的请求和响应主要是利用xml消息。为了更好适应web services这种环境,为xml消息制定了一个特有的协议。这种基于xml的协议称为soap(simpleobject access protocol)协议。soap是用于数据交换的轻量级的以xml为基础的协议。它促进了由远程过程调用和响应产生的数据传送。它设计成用于分布式和远程应用程序中,并且它是web services的主要组件。因为soap是基于xml的,所以用于xml安全的规范和方法也能用于soap.目前,加密整个xml文档、测试其完整性和确认其发送方的可靠性是一个简单的过程.使用公开密钥基础设施和数字证书等技术就可以达到目的。但是,由于web services这种新型分布式应用的特点,越来越有必要对文档的某些部分也使用这些功能,以便以任意顺序加密和认证以及涉及不同用户或发起方。因为web services的soap消息可能必须经过多方传输,但在发送方到接收方的整个过程中要保证端到端的安全性。如果将整条xml消息或soap消息进行加密的话,那么中转方将不能获得对其中转行为有帮助的信息,其必须在中转之前对消息进行解密,获得下一目的地的信息才能继续发送。在这一过程中,就有可能泄漏了消息的某些重要信息。因此在web services环境中,不能对整条消息进行加密,只能根据需要对某些元素或属性进行加密。另外web services环境中的多个通讯方对某一条具体的消息可能有不同的权限,也就是说,不同人对于同一条消息的不同部分可获得的权限都不同。例如,在电子交易中,销售人员和技术人员看到的同一条消息可能不同。销售人员看到的是关于交易金额等信息的部份,其他部分对于销售人员是不可见的。同样,技术人员看到的只是技术实现的部分。而管理者可能可以看到整条消息的各个部分。这种现实情况要求必须对xml消息或soap消息实现更细粒度的安全性。xml加密与xml签名正是为了适应此要求而提出的。soap提供了包含消息及其处理信息的信封。由于这个信封内容很机密,所以安全性就是必须解决的问题。xml加密对此问题提供了无缝的解决方案。3 xml加密3.1 xml加密概述web services请求和应答的结果都是xml文档。而在电子商务中,在不同情况下,对一份文档的加密要求是不相同的。如一份电子订单。有可能是将整个文档加密,也有可能只将其中的若干个元素进行加密,再将各自的密钥发给不同的用户以控制用户对数据的获取。为满足这样的耍求,w3c于2002年12月正式公布了对文档加密的标准(xml encryptionsyntax and processing)。在这一标准中w3c定义了加密语法,处理过程和算法,并给出了相应示例。3.2 基本xml加密结构 和是xml加密的核心元素。这两个元素的基本结构完全相同,只是添加了几个可选元素。它们的结构显示如下。其中的“*”表示0次或者多次出现,“|“表示一个选择。 encrypteddata()*()*(|)()|encryptedkey()*()*(|)()|()(|)(/)3.3 xml加 密语法在2002年10月发布的推荐规范中,所有的xml加密元素都在/2001/04/xmlenc#命名空间中进行定义。xml加密规范使用了xml签名的/2000/09/xmldsig#命名空间和方案定义。以下是xml加密语法最主要的四个元素。3.3.1 encrypteddata:表3-1中按出现顺序列举了允许的元素。子元素是否必须最多出现次数encryptionmethod否1ds:keyinfo否1cipherdata是1encryptionproperties否1表3-1以下是的属性列表属性名称类型是否必须idxsd:id否typexsd:anyuri否mimetypexsd:string否encodingxsd:anyuri否 表3-23.3.2 encryptedkey元素:内容模型与相类似,只是 包含两个额外的子元素和一个额外的属性。表3-3列举了的两个额外的元素。子元素是否必须最多出现次数referencelist否1carriedkeyname否1 表3-3表3-4中显示了元素额外的属性属性名称类型是否必须recipientxsd:sring否 表3-43.3.3 cipherreference元素:如果加密后的数据在一个外部位置,则将使用元素。其位置可以在同一个文档中,也可以是一个远程的位置。元素包含一个uri属性,它指向加密数据所在的位置。除了这些属性外,元素还可以包含一个可选的元素,用它来枚举解密应用程序在获取密码值时需要执行的步骤。3.3.4 encryptionproperties元素:encryptionproperties元素用于保存那些和或者元素的生成有关的附加信息。例如,可以用它来保存加密的日期和时间之类的信息,或者是加密时所用硬件的信息,再或其他任何有关加密并且想要记录的信息表3-5中显示的属性表属性名称类型是否必须targetxsd:anyuri否idxsd:id否anyattributeany否 表3-53.4 加密处理过程处理过程定义了加密、解密的过程以及实现时需要进行的串行化处理。加密器应进行的动作如下:选择加密的算法生成密钥,构造“ds:keylnfo加密数据构造encrypteddata或encryptedkey结构用encrypteddata结构替换被加密的元素解密过程,实现的解密器对encryptedtype的子元素进行解密操作,动作如下确定加密的算法,和密钥信息根据ds:keylnfo内容获取全部密钥,如密钥经过加密,则进行解密对cipherdata元素内的数据进行解密对经过串行化的数据进行处理并用解密后的数据替换encrypteddata元素如原数据不是一个元素或一个元素的内容,则进行额外的处理4 xml签名4.1 xml签名概述xml签名和xml加密紧密相关。和安全认证签名相似,xml也是用于确保xml文件内容没有被篡改的。为了适应各种文件系统和处理器在版式上的不同,xml签名采用了“标准化canonicalization ”。 这就使得xml签名可以适应xml文件可能遇到的各种环境。当对内容进行签名时,canonicalization 使用文件里的数据和标识产生一个独一无二的签名,忽略了一些诸如段落结束或者制表符之类的次要信息。收到一个文件后,客户系统就开始进行“xml签名解密转换” 。它通过辨认信息是在标识前还是标识后来区分内容和签名:内容在标识后,而签名在标识前。通过比较运算结果和文件中的签名,可以确认数据的完整性。xml签名和xml加密结合在一起可以确保数据发送和接收的一致性。4.2 xml签名结构元素的结构使人们能够随同摘要值携带其他的信息。验证签名所需要的密钥也可以作为元素的一部分来传输。以下显示的元素的基本结构(?表示0个或者1个匹配项,*表示0个或者多个匹配项,+则表示一个或者多个匹配项) ( ()? )+()?()*元素包含关于实际被签署的数据对象的信息。包含数字签名值,它是元素的加密摘要。指定用来规范化元素的算法,指定在将规范化的转换为时所用的加密算法。 元素通过uri属性标识数据对象,并且还携带数据对象的摘要值。元素是元素的子元素,它例举了在对数据对象进行摘要计算之前应用的处理步骤。转换操作可以包括规范化、解码/编码、xslt、xpath、xml模式验证、xinclude等。指定应用到数据对象的摘要算法,此后将会生成包含在元素中的摘要值算法在之后运用。尽管元素的uri属性是可选的,但只有当一个元素有多个元素时,它才可以被省略。这是为了确保数据对象的明确匹配。请注意,签名验证需要访问原始的数据对象,如果它没有通过元素的uri来指定,则接受方必须通过其他方法随同数据对象一起提供。可选的元素指明用来验证签名的密钥。之所以是可选的,是因为签名者有可能不想让所有各方都知道消息密钥。此外,还有可能让密钥信息在应用程序的上下文中是可知的,并且不需要显示地来表示。元素也是可选的,它可以出现任意次,并且可以包含应用程序希望包含的任何数据。4.3 xml签名语法在2002年2月所发布的规范中,所有xml签名的元素都在目标命名空间/2000/09/xmldsig#下定义。为了能够提供简洁并且可读的示例,我们将使用前缀ds,它将映射到以下的命名空间。本文将主要介绍核心区域的xml签名语法。4.3.1 元素元素是xml签名的核心元素。在示例中可以看出,xml签名是由元素表示的。它可以作为一个单独的文档而存在,可以封装它所签署的数据对象,也可以封装在数据对象之内。表3-6按出现顺序例举了元素的子元素子元素是否必须最多出现次数ds:signedinfo是1ds:signaturevalue是1ds:keyinfo是1ds:object是无限制 表3-6表3-7是元素的一个属性表属性名称类型是否必须idxsd:id否 表3-74.3.2 元素包含了数字签名的实际值。签名始终都是用base64编码的。 元素xml方案中所定义的base64binary类型的一个简单的扩充,并且没有任何子元素。以下是它的属性表属性名称类型是否必须idxsd:id否 表3-84.3.3 元素元素包含有原始数据对象的引用,并且还包括规范化和签名算法。规范化的元素的加密摘要代表了xml签名的值。表3-9例举了的子元素子元素是否必须最多出现次数ds:canonicalizationmethod是1ds:signaturemethod是1ds:reference是无限制 表3-9与元素相类似,它也有一个id属性。利用它可以从其他的签名引用元素表3-10属性名称类型是否必须idxsd:id否 表3-104.3.4 元素元素是一个可选的元素,它使我们可以连同xml签名封装密钥信息。元素可以包含密钥、密钥名称、证书以及其他公钥管理信息。下表例出了的所有子元素,表3-11子元素名称是否必需出现次数目的ds:keyname否1携带一个直接或间接的字符串引用,用来标识密钥ds:keyvalue否1携带密钥的真正公钥值ds:retrievalmethod否1携带指向所用密钥的位置信息ds:x509data否1携带x509证书或者某些x509标识符密钥ds:pgpdata否1携带有关pgp公钥对的信息ds:spkidata否1携带spki证书、spki公钥对或者某些spki数据ds:mgmt否1携带区内密钥协议数据。不推荐用作xml加密来定义更好的机制element from any namespace否1携带应用程序想要的任何密钥信息表3-114.4 xml签名处理过程处理过程包括签名的生成过程和验证过程。xml的数字签名的工作顺序是先对原数据计算信息摘录,将计算结果和相关信息一起包装在一个元素之中。再对这个元素计算信息摘录并进行数字签名。签名的生成过程分为参照元素的生成和数字签名的生成。参照元素的生成,为应用需要,首先进行数据转换:l 计算被签名数据的信息摘录;l 生成参照元素。数字签名的过程:l 根据选定的signaturemethod, canonicalizationmethod,以及参照元素,生成signedinfo元素。l 根据选定的算法进行数据的标准化并计算数字签名。l 构成signature元素。验证签名同样包括两个部分:参照元素的验证和签名的验证。参照元素的验证:l 根据canonicalizationmethod的内容将signedinfo元素标准化。l 根据每一项reference元素的内容,取得指定的数据,计算其信息摘录值,并与l digestvalue元素的内容进行比较。如相吻合,则验证通过,否则,验证不通过。签名的验证:l 根据keyinfo的内容获取密钥,也可以由其它途径获得。l 根据canonicalizationmethod的内容得到标准化的signature,并计算数字签名的值,与signaturevalue的内容进行比较。第四章 pki和web服务1 pki技术介绍1.1 pki概念简介 pki这两个术语由两部分组成:公钥和体系结构。首先将对它们进行单独解释,然后再将两者链接起来。 公钥指的是算法类,用来扰乱数据,从而使那些窥探数据和业务通讯的第三方无法得逞。从技术角度来看,体系结构可以指那些用来构造某些重要的公司资源的基本元素,如电话通讯、无线寻呼、或者是普通的网络。pki 是通过使用公开密钥技术和数字证书来确保系统信息安全并负责验证数字证书持有者身份的一种体系。pki 让个人或企业安全地从事其商业行为。pki 采用各参与方都信任一个同一(ca)认证中心,由该ca 来核对和验证各参与方身份的这种信任机制。通过公钥基础设施(pki),交易双方共同信任签发其数字证书的认证中心。基础设施的目的就是:只要遵循必要的原则,不同的实体就可以方便地使用基础设施提供的服务。pki 公开密钥基础设施就是为整个组织(组织适可以被定义的)提供安全的基本框架,可以被组织中任何需要安全的应用和对象使用。安全设施的接入点是统一的,便于使用。pki 这个具有普遍适应性的安全基础设施适用于多种环境的框架。这个框架避免了零碎的、点对点的,特别是没有互操作性的解决方案。引入了可管理的机制以及跨越多个应用和计算平台的一致安全性。pki 公开密钥基础设施设施可以实现应用支撑的功能,是指需要安全服务而使用安全基础设施的模块,例如web浏览器、电子邮件客户端程序、ipsec 支撑的设备等。pki 公开密钥基础设施能够让应用程序增强自己的数据和资源的安全,以及与其他数据和资源交换中的安全。具有以下优点:易用的重所周知的界面、基础设施提供的服务是可预测的且一致有效的、应用设施无需要了解基础设施是如何提供服务的。遵循pki 基础设施的方法来获得安全的好处有很多,单个应用程序随时可以从基础设施得到安全服务。增强并简化了登录过程,对终端用户透明,在整个环境中提供全面的安全。实施pki 公开密钥基础设施的商业驱动包括了节省费用、互操作性、简化管理、真正安全的可能性。pki 的核心的技术基础是给予公钥密码学的加密和签名技术。通过解密和签名技术的结合使用就可解决网络的如下问题l 信息传输存储的完整性l 身份认证l 信息传输存储的机密性l 操作的不可否认性1.2 pki的组成终端实体(end entity):指证书的所有者以及证书的使用者。它是整个pki体系的最终用户,它具备证书申请、密钥对生成、私钥以及ca证书的外带安装/存储、证书吊销申请、证书检索、证书状态查询、自身证书发布等功能。认证中心(certification authority,简称ca):主要完成证书的管理。包括证书签发,密钥恢复和备份、证书吊销以及证书吊销列表(certificate revocation list,简称crl)的发布等。对于两个不同域之间的ca还要进行交叉认证(既两个互相信任的ca相互签发证书)。在创建一个新的

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论