基于OpenSSL的小型CA系统的 RA服务器客户端的设计与实现-毕业论文_第1页
基于OpenSSL的小型CA系统的 RA服务器客户端的设计与实现-毕业论文_第2页
基于OpenSSL的小型CA系统的 RA服务器客户端的设计与实现-毕业论文_第3页
基于OpenSSL的小型CA系统的 RA服务器客户端的设计与实现-毕业论文_第4页
基于OpenSSL的小型CA系统的 RA服务器客户端的设计与实现-毕业论文_第5页
已阅读5页,还剩35页未读 继续免费阅读

下载本文档

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

文档简介

厦门大学软件学院毕业论文 1 本科毕业论文本科毕业论文 (科研训练、毕业设计) 题题 目:基于目:基于 OpenSSL 的小型的小型 CA 系统的系统的 RA 服务器服务器/客户端的设计与实现客户端的设计与实现 姓 名: 学 院:软件学院 系:软件工程 专 业:软件工程 年 级: 学 号: 指导教师: 职称: 年 月 厦门大学软件学院毕业论文 I 摘要摘要 近年来,网络的发展越来越迅速,网络信息流量也越来越大,为保证网上数字信息的传 输安全,必须建立一种信任及信任验证机制,这就是数字证书。数字证书是网络上各个实体 在进行信息交流及商务交易活动中所用到的身份证明。该数字证书具有唯一性。它将实体的 公开密钥同实体本身联系在一起,为实现这一目的,必须使数字证书符合 X.509 国际标准, 同时数字证书的来源必须是可靠的。这就意味着应有一个网上各方都信任的机构,专门负责 数字证书的发放和管理,确保网上信息的安全,这个机构就是 CA 认证机构。如果 CA 机构 不安全或发放的数字证书不具有权威性、公正性和可信赖性,电子商务就根本无从谈起。 本文深入研究 PKI/CA 系统的发展现状以其在业界中的影响,其中包括详细介绍其原理、 功能和基本结构,并且对本课题的核心部分OpenSSL 密码函数库的定义,功能和应用 进行综述。利用 OpenSSL 提供的基础设施设计并实现一个小型集中式 CA 系统,此系统由 MiniCA 系统(支持 CA 的基本功能)、RAServer 系统(建立一个 RA 服务器)、RaClient 系统(审核和签发用户数字证书)三部分组成。此外还发布了一个工具 KeyTool,用于将 *.cer/*.crt 格式的公钥、私钥文件合并为符合 P12 标准的*.pfx 证书文件,并从符合 P12 标 准的*.pfx 证书文件中提取出*.cer/*.crt 格式的公钥、私钥文件。 关键词关键词 数字证书 PKI CA OpenSSL Abstract In recent years, The development of networks is more and more rapid, network information flow is also growing, to ensure the on-line transmission of digital information security, we must build up a trust verification mechanism, which is the digital certificate. A 厦门大学软件学院毕业论文 II digital certificate is a Proof of identity of the various entities who exchange information and do business transactions on the Internet. The digital certificates have Uniqueness. It binds a entity an its pub-key one-on-one .To achieve this objective, we must make the digital certificates in line with the X.509 international standards, and the source of digital certificates must be reliable. This means that there must be a online agency trusted by everybody that is responsible for digital certificate issuance and management to keep the security of online information. This agency is the CA certification agency. If the CA agency is unsafe or the digital certificate does not have authority, impartiality and trustworthiness, E-commerce simply be out of the question The thesis studies deep into the development and influence of PKI / CA systems in related field, including a detailed introduction of its principles, function and basic structure. Besides, summarize and review definition, features and application of OpenSSL encryption function library which is the key part of this paper. A concentrative small CA system is designed and then implement using infrastructure provided by OpenSSL. This system consists of a MiniCA System (supporting the basic functions of CA), a RAServer system (establishment of a RA server) and a RaClient System (verify and issue user digital certificates). A tool KeyTool is also introduced, which can be used to combine public key and private key file in *. cer / *. crt format into *. pfx certificate file which meets the P12 standard, while also can Extract public key and private key file in *. cer / *. crt format from *. pfx certificate meetting P12 standard. Keyword digital certificates PKI CA OpenSSL 目录目录 第一章 绪论1 1.1项目的背景和意义 1 1.2信息安全问题的现状.1 1.3主要工作.2 1.4本文结构.2 厦门大学软件学院毕业论文 III 第二章PKI/CA 相关技术简介3 2.1PKI/CA 组成简介3 2.2OpenSSL 简介4 2.3数字证书.7 2.4SSL 简介 9 2.5非对称加密算法原理.11 第三章 小型 CA 系统的架构设计15 3.1 系统构架 15 3.2 模块划分 16 3.3 RAServer/RaClient 的详细设计 .16 3.3.1 证书数据库设计.17 3.3.2 RAServer 的详细设计17 3.3.3 RaClient 的详细设计21 第四章 RAServer/RaClient 系统具体实现 24 4.1 系统运行基本环境24 4.2 RAServer 的具体实现 24 4.3 RaClient 的具体实现27 第五章 总结与展望 .33 5.1 总结.33 5.2 展望.33 致谢.34 参考文献 .35 Contents Chapter 1 Introduction 1 1.1Background and significance .1 1.2The status of information security 1 1.3Major work2 1.4The article structure .2 Chapter 2 Technology related to PKI/CA3 2.1The composition of PKI/CA3 厦门大学软件学院毕业论文 IV 2.2OpenSSL4 2.3Digital certificates.7 2.4SSL 9 2.5Asymmetric encoding algorithm.11 Chapter 3 The Architecture design of the Mini CA System15 3.1 System architecture.15 3.2 Module division16 3.3 The detailed design of the RAServer/RaClient System.16 3.3.1 The design of the Certificate database17 3.3.2 The detailed design of the RAServer System17 3.3.3 The detailed design of the RaClient System .21 Chapter 4 The RAServer/RaClient system Implementation .24 4.1System environment.24 4.2 RAServer.24 4.3 RaClient.27 Chapter 5 conclusion and expectation33 5.1 conclusion33 5.2 expectation 33 Acknowledgements.34 References .35 厦门大学软件学院毕业论文 1 第一章绪论 1.1 项目的背景和意义 近年来 Internet 的迅速发展和应用的普及,远远超过了当初人们的预料。当前人们以各 种方式使用着 Internet,包括进行私人的、保密的业务,如电子邮件、电子商务、网上银行 等等。由于这些私人的、保密的业务是利用互联网资源进行的,因而在交易安全方面与互联 网的安全性密切相关。在这些业务过程中,主要涉及信息的安全传输、在线支付的安全认证 等问题。 (1) 保密性 :如何保证电子邮件、电子商务、网上银行操作中涉及的大量保密信息在 公开网络的传输过程中不被窃取; (2) 完整性 :如何保证电子邮件、电子商务、网上银行操作中所传输的信息不被中途 篡改及通过重复发送进行虚假交易; (3) 身份认证与授权 :在电子邮件、电子商务、网上银行操作的过程中,如何对双方 进行认证,以保证交易双方身份的正确性; (4) 抗抵赖 :在电子邮件、电子商务、网上银行操作的交易完成后,如何保证交易的 任何一方无法否认已发生的操作。 这一系列的安全问题在很大程度上限制了电子商务的发展,因此如何能够保证 Internet 网上 信息的安全传输,已成为发展电子商务的关键。在 Internet 上建立安全的可信的通信基础设 施,通过强认证机制和加密机制来保证安全性,是满足电子商务的安全需要,以实现安全的、 有效的在线交易的一种思路。 1.2 信息安全问题的现状 对此,一个很重要的解决方案就是使用 PKI(Public-Key Infrastructure,公钥基础设施)。 PKI 提供了基于加密和数字证书的一系列技术,为网络安全的实现提供基本保障,是一个用 公钥概念和技术实施和提供安全服务的具有普适性的安全基础设施。它由公钥密码技术、数 字证书、证书发放机构(CA)和关于公钥的安全策略等基本成分共同组成的。PKI 是利用 厦门大学软件学院毕业论文 2 公钥技术实现电子商务安全的一种体系,是一种基础设施,网络通讯、网上交易是利用它来 保证安全的。从某种意义上讲,PKI 包含了安全认证系统,即安全认证系统 CA/RA 系统是 PKI 不可缺的组成部分。 CA 是 PKI 的核心执行机构,是 PKI 的主要组成部分,业界人士通常称它为认证中心。 从广义上讲,认证中心还应该包括证书申请注册机构 RA(Registration Authority),它是 数字证书的申请注册、证书签发和管理机构。 CA 的主要职责包括验证并标识证书申请者的身份、确保 CA 用于签名证书的非对称密 钥的质量和安全性、管理证书信息资料。管理部分包括管理证书序号和 CA 标识,确保证书 主体标识的惟一性,防止证书主体名字的重复,在证书使用中确定并检查证书的有效期,保 证不使用过期或已作废的证书,确保网上交易的安全。 1.3 主要工作 本文通过研究 PKI/CA 系统的发展背景、意义、现状以其在业界中的影响,其中包括详 细介绍其原理、功能和基本结构,并且对本课题的核心部分OpenSSL 密码函数库的定 义、功能和应用进行学习。利用 OpenSSL 提供的密码函数库设计并实现一个小型集中式 CA 系统,实现了 CA 的基本功能,包括根证书的产生和管理,用户证书的产生、颁发、回 收、撤销等功能,并且设计并实现一个客户端软件对 CA 的功能进行演示。 1.4 本文结构 本文第一章即本章介绍了项目开发的背景、意义以及现状,还有本人主要的工作。第二 章简要介绍了与本文紧密相关的一些技术。第三章先简要介绍了小型 CA 系统的架构设计, 然后详细介绍 RAServer 系统和 RaClient 系统的详细设计。第四章演示了 RAServer/RaClient 系统的具体实现过程。五章是总结和展望,总结了这一阶段本人的工作, 同时展望未来的工作。最后是致谢语和相关文献。 厦门大学软件学院毕业论文 3 第二章 PKI/CA 相关技术简介 2.1PKI/CA 组成简介 PKI(Public Key Infrastructure 公钥基础设施),是一种新的安全技术。 PKI 公钥基础设施是提供公钥加密和数字签名服务的系统或平台,目的是为了管理密钥 和证书。一个机构通过采用 PKI 框架管理密钥和证书可以建立一个安全的网络环境。 它由公开密钥密码技术、数字证书,包括 X.509 格式的证书(X.509 V3)和证书废止 列表 CRL(X.509 V2)、证书发放机构(CA)和关于公开密钥的安全策略等基本成分共同 组成的。 数字证书认证中心(Certficate Authority,CA)是整个网上电子交易安全的关键环节。 它主要负责产生、分配并管理所有参与网上交易的实体所需的身份认证数字证书。每一份数 字证书都与上一级的数字签名证书相关联,最终通过安全链追溯到一个已知的并被广泛认为 是安全、权威、足以信赖的机构-根认证中心(根 CA)。 电子交易的各方都必须拥有合法的身份,即由数字证书认证中心机构(CA)签发的数 字证书,在交易的各个环节,交易的各方都需检验对方数字证书的有效性,从而解决了用户 信任问题。CA 涉及到电子交易中各交易方的身份信息、严格的加密技术和认证程序。基于 其牢固的安全机制,CA 应用可扩大到一切有安全要求的网上数据传输服务。 数字证书认证解决了网上交易和结算中的安全问题,其中包括建立电子商务各主体之间 的信任关系,即建立安全认证体系(CA);选择安全标准(如 SET、SSL);采用高强度 的加、解密技术。其中安全认证体系的建立是关键,它决定了网上交易和结算能否安全进行, 因此,数字证书认证中心机构的建立对电子商务的开展具有非常重要的意义。 认证中心(CA),是电子商务体系中的核心环节,是电子交易中信赖的基础。它通过 自身的注册审核体系,检查核实进行证书申请的用户身份和各项相关信息,使网上交易的用 户属性客观真实性与证书的真实性一致。认证中心作为权威的、可信赖的、公正的第三方机 构,专门负责发放并管理所有参与网上交易的实体所需的数字证书。 RA(Registration Authority),数字证书注册审批机构。RA 系统是 CA 的证书发放、 管理的延伸。它负责证书申请者的信息录入、审核以及证书发放等工作;同时,对发放的证 厦门大学软件学院毕业论文 4 书完成相应的管理功能。发放的数字证书可以存放于 IC 卡、硬盘或软盘等介质中。RA 系统 是整个 CA 中心得以正常运营不可缺少的一部分。 2.2OpenSSL 简介 OpenSSL 是一个具有丰富功能并且自包含的开源的安全工具包。它主要提供的功能有: SSL 协议实现(包括 SSLv2、SSLv3 和 TLSv1)、大量软算法(对称/非对称/摘要)、大数运算、 非对称算法密钥生成、ASN.1 编解码库、证书请求(PKCS10)编解码、数字证书编解码、 CRL 编解码、OCSP 协议、数字证书验证、PKCS7 标准实现和 PKCS12 个人数字证书格 式实现等功能。 OpenSSL 以 C 语言作为开发语言,具有优秀的跨平台性能, Linux、UNIX、windows、Mac 等平台。 OpenSSL 整个软件包大概可以分成三个主要的功能部分:密码算法库、SSL 协议库以 及应用程序。 作为一个基于密码学的安全开发包,OpenSSL 提供的功能相当强大和全面,囊括了主 要的密码算法、常用的密钥和证书封装管理功能以及 SSL 协议,并提供了丰富的应用程序 供测试或其它目的使用。 1.对称加密算法 OpenSSL 一共提供了 8 种对称加密算法,其中 7 种是分组加密算法,仅有的一种流加 密算法是 RC4。这 7 种分组加密算法分别是 AES、DES、Blowfish、CAST、IDEA、RC2、RC5,都支持电子密码本模式(ECB) 、加 密分组链接模式(CBC) 、加密反馈模式(CFB)和输出反馈模式(OFB)四种常用的分组 密码加密模式。其中,AES 使用的加密反馈模式(CFB)和输出反馈模式(OFB)分组长 度是 128 位,其它算法使用的则是 64 位。事实上,DES 算法里面不仅仅是常用的 DES 算 法,还支持三个密钥和两个密钥 3DES 算法。 2.非对称加密算法 OpenSSL 一共实现了 4 种非对称加密算法,包括 DH 算法、RSA 算法、DSA 算法和椭 圆曲线算法(EC) 。DH 算法一般用户密钥交换。RSA 算法既可以用于密钥交换,也可以用 于数字签名,当然,如果你能够忍受其缓慢的速度,那么也可以用于数据加密。DSA 算法 厦门大学软件学院毕业论文 5 则一般只用于数字签名。 3.信息摘要算法 OpenSSL 实现了 5 种信息摘要算法,分别是 MD2、MD5、MDC2、SHA(SHA1)和 RIPEMD。SHA 算法事实上包括了 SHA 和 SHA1 两种信息摘要算法,此外,OpenSSL 还 实现了 DSS 标准中规定的两种信息摘要算法 DSS 和 DSS1。 4.密钥和证书管理 密钥和证书管理是 PKI 的一个重要组成部分,OpenSSL 为之提供了丰富的功能,支持 多种标准。 首先,OpenSSL 实现了 ASN.1 的证书和密钥相关标准,提供了对证书、公钥、私钥、 证书请求以及 CRL 等数据对象的 DER、PEM 和 BASE64 的编解码功能。OpenSSL 提供了 产生各种公开密钥对和对称密钥的方法、函数和应用程序,同时提供了对公钥和私钥的 DER 编解码功能。并实现了私钥的 PKCS#12 和 PKCS#8 的编解码功能。OpenSSL 在标 准中提供了对私钥的加密保护功能,使得密钥可以安全地进行存储和分发。 在此基础上,OpenSSL 实现了对证书的 X.509 标准编解码、PKCS#12 格式的编解码以 及 PKCS#7 的编解码功能。并提供了一种文本数据库,支持证书的管理功能,包括证书密 钥产生、请求产生、证书签发、吊销和验证等功能。 事实上,OpenSSL 提供的 CA 应用程序就是一个小型的证书管理中心(CA) ,实现了证 书签发的整个流程和证书管理的大部分机制。 5.SSL 和 TLS 协议 OpenSSL 实现了 SSL 协议的 SSLv2 和 SSLv3,支持了其中绝大部分算法协议。 OpenSSL 也实现了 TLSv1.0,TLS 是 SSLv3 的标准化版,虽然区别不大,但毕竟有很多细 节不尽相同。 虽然已经有众多的软件实现了 OpenSSL 的功能,但是 OpenSSL 里面实现的 SSL 协议 能够让我们对 SSL 协议有一个更加清楚的认识,因为至少存在两点:一是 OpenSSL 实现 的 SSL 协议是开放源代码的,我们可以追究 SSL 协议实现的每一个细节;二是 OpenSSL 实现的 SSL 协议是纯粹的 SSL 协议,没有跟其它协议(如 HTTP)协议结合在一起,澄清 了 SSL 协议的本来面目。 厦门大学软件学院毕业论文 6 6.应用程序 OpenSSL 的应用程序已经成为了 OpenSSL 重要的一个组成部分,其重要性恐怕是 OpenSSL 的开发者开始没有想到的。现在 OpenSSL 的应用中,很多都是基于 OpenSSL 的应用程序而不是其 API 的,如 OpenCA,就是完全使用 OpenSSL 的应用程序实现的。 OpenSSL 的应用程序是基于 OpenSSL 的密码算法库和 SSL 协议库写成的,所以也是一些 非常好的 OpenSSL 的 API 使用范例,读懂所有这些范例,对 OpenSSL 的 API 使用了解就 比较全面了。 OpenSSL 的应用程序提供了相对全面的功能,在相当多的人看来,OpenSSL 已经为自 己做好了一切,不需要再做更多的开发工作了,所以,他们也把这些应用程序成为 OpenSSL 的指令。OpenSSL 的应用程序主要包括密钥生成、证书管理、格式转换、数据 加密和签名、SSL 测试以及其它辅助配置功能。 7.Engine 机制 Engine 机制的出现是在 OpenSSL 的 0.9.6 版的事情,开始的时候是将 普通版本跟支持 Engine 的版本分开的,到了 OpenSSL 的 0.9.7 版,Engine 机制集成到了 OpenSSL 的内核中,成为了 OpenSSL 不可缺少的一部分。 Engine 机制目的是为了使 OpenSSL 能够透明地使用第三方提供的软件加密库或者硬件加密设备进行加密。OpenSSL 的 Engine 机制成功地达到了这个目的,这使得 OpenSSL 已经不仅仅使一个加密库,而是 提供了一个通用地加密接口,能够与绝大部分加密库或者加密设备协调工作。当然,要使特 定加密库或加密设备更 OpenSSL 协调工作,需要写少量的接口代码,但是这样的工作量并 不大,虽然还是需要一点密码学的知识。Engine 机制的功能跟 Windows 提供的 CSP 功能 目标是基本相同的。目前,OpenSSL 的 0.9.7 版本支持的内嵌第三方加密设备有 8 种,包 括:CryptoSwift、nCipher、Atalla、Nuron、UBSEC、Aep、SureWare 以及 IBM 4758 CCA 的硬件加密设备。现在还出现了支持 PKCS#11 接口的 Engine 接口,支持微软 CryptoAPI 的接口也有人进行开发。当然,所有上述 Engine 接口支持不一定很全面,比如, 可能支持其中一两种公开密钥算法。 8.辅助功能 BIO 机制是 OpenSSL 提供的一种高层 IO 接口,该接口封装了几乎所有类型的 IO 接口, 如内存访问、文件访问以及 Socket 等。这使得代码的重用性大幅度提高,OpenSSL 提供 API 的复杂性也降低了很多。 厦门大学软件学院毕业论文 7 OpenSSL 对于随机数的生成和管理也提供了一整套的解决方法和支持 API 函数。随机 数的好坏是决定一个密钥是否安全的重要前提。 OpenSSL 还提供了其它的一些辅助功能,如从口令生成密钥的 API,证书签发和管理 中的配置文件机制等等。 2.3数字证书 数字证书是用于在 INTERNET 上标识个人或者机构身份的一种技术手段,它通过由一 些公认的权威机构所认证,从而可以保证其安全地被应用在各种场合。 一份数字证书包括了公钥、个人、服务器或者其它机构的身份信息(称之为主题,如下 格式所示): Subject: Distinguished Name, Public Key Issuer: Distinguished Name, Signature Period of Validity: Not Before Date, Not After Date Administrative Information: Version, Serial Number Extended Information: Basic Contraints, Netscape Flags, etc. 主题的内容包括标识信息(唯一名称)、公匙,当然也包括签发该证书的证书认证机构 以及证书有效时间,同时也包括另外一些信息,如序列号等. 唯一的名称采用特定格式来标识一个身份,此特定的格式由 X.509 标准所确定,它由几 个字段组成,其格式如下所示: 字段名:Common Name 缩写:CN 内容:需要认证的名称 字段名:Organization or Company 缩写:O 内容:该名称所属的机构 厦门大学软件学院毕业论文 8 字段名:Organizational Unit 缩写:OU 内容:机构的单元 字段名:City/Locality 缩写:L 内容:所居住的城市 字段名:State/Province 缩写:ST 内容:省份或者州 字段名:Country 缩写:C 内容:国家名(ISO 号) 证书权威机构可以定义这些字段中哪些是必需的,哪些是可选的。证书的二进制格式使 用 ASN.1 格式。该格式定义了如何定义信息、编码规则,证书的二进制的编码使用基于 Basic Encoding Rules (BER) 基础上的 Distinguished Encoding(DER),对于某些不能传 送二进制编码的系统,则使用 base64 编码,其版本为 PEM 编码。一个用 PEM 编码方式的 证书如下: -BEGIN CERTIFICATE- MIIC7jCCAlegAwIBAgIBATANBgkqhkiG9w0BAQQFADCBqTELMAkGA1UEBhMCWFkx FTATBgNVBAgTDFNuYWtlIERlc2VydDETMBEGA1UEBxMKU25ha2UgVG93bjEXMBUG A1UEChMOU25ha2UgT2lsLCBMdGQxHjAcBgNVBAsTFUNlcnRpZmljYXRlIEF1dGhv cml0eTEVMBMGA1UEAxMMU25ha2UgT2lsIENBMR4wHAYJKoZIhvcNAQkBFg9jYUBz 厦门大学软件学院毕业论文 9 bmFrZW9pbC5kb20wHhcNOTgxMDIxMDg1ODM2WhcNOTkxMDIxMDg1ODM2WjCBpzE L MAkGA1UEBhMCWFkxFTATBgNVBAgTDFNuYWtlIERlc2VydDETMBEGA1UEBxMKU25 h a2UgVG93bjEXMBUGA1UEChMOU25ha2UgT2lsLCBMdGQxFzAVBgNVBAsTDldlYnNl cnZlciBUZWFtMRkwFwYDVQQDExB3d3cuc25ha2VvaWwuZG9tMR8wHQYJKoZIhvcN AQkBFhB3d3dAc25ha2VvaWwuZG9tMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKB gQDH9Ge/s2zcH+da+rPTx/DPRp3xGjHZ4GG6pCmvADIEtBtKBFAcZ64n+Dy7Np8b vKR+yy5DGQiijsH1D/j8HlGE+q4TZ8OFk7BNBFazHxFbYI4OKMiCxdKzdif1yfaa lWoANFlAzlSdbxeGVHoT0K+gT5w3UxwZKv2DLbCTzLZyPwIDAQABoyYwJDAPBgNV HRMECDAGAQH/AgEAMBEGCWCGSAGG+EIBAQQEAwIAQDANBgkqhkiG9w0BAQQF AAOB gQAZUIHAL4D09oE6Lv2k56Gp38OBDuILvwLg1v1KL8mQR+KFjghCrtpqaztZqcDt 2q2QoyulCgSzHbEGmi0EsdkPfg6mp0penssIFePYNI+/8u9HT4LuKMJX15hxBam7 dUHzICxBVC1lnHyYGjDuAMhe396lYAn8bCld1/L4NMGBCQ= -END CERTIFICATE- 数字认证机构用于确认一个密钥对的私钥的拥有者。数字认证机构也可以为另外一个数 字认证机构颁发证书,这就形成了证书链。 2.4SSL 简介 SSL (Security Socket Layer Protocol , 简称 SSL) 安全套接层协议是一个可以在连接 性的协议(例如 TCP/IP)以及应用层协议(如 HTTP)之间的协议。是 Internet 上进行保 密通信的一个安全协议。SSL 可以通过双方进行认证、数字签名的使用以及加密来保障安全 通信。 安全套接层协议 SSL 是网景公司(Netscape 首先)提出的基于公钥密码机制的网络安全 协议,用于在客户端浏览器软件与 Web 服务器之间建立一条安全通道,实现 Internet 上信 息传送的保密性。它包括服务器认证、客户认证(可选)、SSL 链路上的数据完整性和 SSL 链路上数据保密性。现在国内外一些对保密性要求较高的网上银行、电子商务和电子政 厦门大学软件学院毕业论文 10 务等系统大多数是以 SSL 协议为基础建立的,SSL 协议已成为 Web 安全方面的工业标准。 目前广泛采用的是 SSL v3 版。SSL 提供的面向连接的安全性作用,具有以下三个基本功能: 1.连接是秘密的,在初始握手定义会话密钥后,用对称密码(例如用 DES)加密数据。 2.连接是可认证的,实体的身份能够用公钥密码(例如 RSA、DSS 等)进行认证。 3.连接是可靠的,消息传输包括利用安全 Hash 函数产生的带密钥 MAC(Message Authentication Code :报文鉴别码)。 SSL 协议具体握手过程描述如下(图 2.1 SSL 协议具体握手过程) 图 2.1 SSL 协议具体握手过程 1. 客户 client 端发送 Client Hello 信息给服务器 Server 端,Server 回答 Server Hello。这 个过程建立的安全参数包括协议版本,“佳话”标识,加密算法,压缩方法。另外,还交换 2 个随机数:Client Hello. Random 和 Server Hello. random.用以计算机“会话主密钥”。 2. Hello 消息发送完后,Server 会发送它的证书和密钥交换信息,如果 Server 端被认证, 它就会请求 Client 端的证书,在验证以后,Server 就发送 Hello-done 消息以示达成了握手 协议,即双方握手接通。 厦门大学软件学院毕业论文 11 3. Server 请求 Client 证书时,Client 要返回证书或返回“没有证书的指示,这种情况用于单 向认证,即客户端不装有证书。然后 Client 发送密钥交换消息。 4. Server 此时要回答“握手完成“消息(Finished),以示完整的握手消息交换,已经全部完 成。 5. 握手协议完成后,Client 端即可与 Server 端传输应用加密数据,应用数据加密一般是用 第(2)步密钥协商时确定的对称加/解密密钥。如 DES、3DE 等等,目前商用加密强度为 128 位。非对称密钥一般为 RAS,商用强度 1024 位,用于证书的验证。 2.5非对称加密算法原理 非对称密码术即公钥密码术,其思想是由 WDiffie 和 Hellman 在 1976 年提出的。不 同于以往的加密技术,非对称密码术是建立在数学函数基础上的,而不是建立在位方式的操 作上的。更重要的是,与只使用单一密钥的传统加密技术相比,它在加/解密时,分别使用 了两个不同的密钥:一个可对外界公开,称为“公钥”;一个只有所有者知道,称为“私钥”。 公钥和私钥之间具有紧密联系,用公钥加密的信息只能用相应的私钥解密,反之亦然。同时, 要想由一个密钥推知另一个密钥,在计算上是不可能的。 典型的非对称加密方案如图所示: 在这种情况下: EK1(M)=C DK2(C)=M DK2(EK1(M)=M 所以规定公开的密钥用于加密数据,而私钥用于数字签名。在采用公钥体制的情况下 A 向 B 传输数据的过程如下: 1) A 查找 B 的公钥。因为公钥的公开不会影响到通信的保密性,B 可以将自己的公钥 公布在公共数据库,由其它人取用,或以普通电子邮件等方式通过非安全信道发送给 A。 2) A 采用公钥加密算法以 B 的公钥作为加密密钥对原始信息进行加密。 3) A 通过非安全信道将密文发送给 B。 4) B 收到密文后,使用自己持有的私钥对其解密,还原出明文。 厦门大学软件学院毕业论文 12 从以上的介绍中可以看出,与对称密码技术相比较,利用非对称密码技术 进行安全通信,有以下优点: 1)通信双方事先不需要通过保密信道交换密钥。 2)密钥持有量太太减少。在 n 个用户的团体中进行通信,每一用户只需要持有自己的 私钥,而公钥可放置在公共数据库上,供其它用户取用。这样,整个团体仅需拥有 n 对密 钥,就可以满足相互之间进行安全通信的需求。(实际中,因安全方面的考虑,每一用户可 能持有多个密钥,分别用于数字签名、加密等用途。此种情况下,整个团体拥有的密钥对数 为 n 的倍数。但即使如此,与使用对称密码技术时需要 n2/2 个不同的密钥相比,需要管理 的密钥数量仍显著减少。) 3)非对称密码技术还提供了对称密码技术无法或很难提供的服务:如与哈希函数联合 运用可组成数字签名,可证明的安全伪随机数发生器的构造,零知识证明等。 使用非对称密码技术的主要缺点是:加解密速度慢、耗用资源大。一般来说,实用的 加解密方案都综合运用了对称密码技术和非对称密码技术。 非对称密码技术中比较典型的就由 RSA 密码算法。 RSA 密码算法由美国斯坦福大学几位学者发明的,以他们的名字 (Rivest、Shamir、Adelman)命名为 RSA 密码算法。它与传统 EFT 中所采用的 DES、MAC 保密算法,对数据保密防篡改不同,RSA 可以做到对 发送过的信息,具有抗抵赖性(不可否 认性),用于数字签名、数字信对等技术。 RSA 算法要求是一对数字,一个叫公开密钥(Public Key),一个叫私人密钥(Private Key), 其中私钥由个人所有,保密;公钥可以公开。要传送信息时,可用对方的公钥对信息加密上 网,对方收到这个信息要靠他的私钥解 密;或者发送方用自己的私钥加密,接收方用发送方 的公钥解密,两个数字吻合为一。 RSA 的演算方法是: 1)用户选择 2 个够大的保密质数 q、p(一般为 100 位以上十进数) 2)令 npq,n 是公开的,从 n 分解除 qp 是极其困难的 n 的欧拉函数:(n)(p-1)(q-1) (n)小于等于 n,并与 n 互质 厦门大学软件学院毕业论文 13 3)选择一个相对大的整数 e 作为加密指数,使 e 与 (n)互质, 4)解同等方程: ed1mod(n) 求出解密指数 d 5)设 M、C 分别为要加密的明文和被加密的密文(M、C 小于 n) 则:加密运算为:CMemod n 解密运算为:MCdmod n 6)每个用户都有一组密钥(e、d、n) (e,n)为 PK可以公开在手册上的公钥,e 为加密指数, (d,n)为 SK(或 PV)是用户保密的私钥 将 p.q 销毁 7)要求明文 Xn 举例: 1) 选两个质数: p47 q71 2)计算: npq3337 (n)(47-1)(71-1)3220 3) e 必须与 (n)互质,选 e79 4) 计算:ed=1mod(n)1mod(3220) d1019 将 e、n 公布,d 保密,p.q 消毁 如有一明文 M6882326879666683 要加密,则先将 M 分割成多块: m1688,m2232,m3687,m4966,m5668,m63 将第 1 块 M1加密后得密文 C1: C1m1e(mod3337)68879(mod3337)1570 厦门大学软件学院毕业论文 14 依次对各区块加密后得密文 C: C15702756271422762423158 对 C1 解密得 m1 M1C1d(mod3337)15701019(mod3337)=688 依次解密得原文 M。 第三章 小型 CA 系统的架构设计 本次毕业设计的最初目标:1.利用 OpenSSL 提供的函数库设计并实现一个小型集中式 CA,能够支持 CA 的基本功能,包括根证书的产生和管理,用户证书的产生、颁发、回收、 撤销等功能。2.设计并实现一个客户端软件对 CA 的功能进行演示。 最终实现此系统由 MiniCA 系统(支持 CA 的基本功能)、RAServer 系统(建立一个 RA 服务器)、RaClient 系统(审核和签发用户数字证书)三部分组成。另编写了一个工具 KeyTool,用于将*.cer/*.crt 格式的公钥、私钥文件合并为符合 P12 标准的*.pfx 证书文件, 并从符合 P12 标准的*.pfx 证书文件中提取出*.cer/*.crt 格式的公钥、私钥文件。 3.1 系统构架 系统包括 PKI 安全策略、软硬件系统、权威认证机构(CA) 、注册机构(RA) 、数字 证书库、密钥库。其中证书认证机构 CA 是系统的核心,用于签发证书和撤销证书以及密钥 的产生、备份和恢复;证书注册机构 RA 作为独立的部分,其功能包括个证书申请、信息审 核、证书信息管理、CRL 管理和证书的发布及下载;证书数据库用于存储用户证书的信息 及其状态,并提供查询功能。 (图 3.1) 厦门大学软件学院毕业论文 15 图 3.1 3.2 模块划分 程序总体分为 3 大部分。 1MiniCA 负责实现 CA 的基本功能,包括产生根证书,用户证书的产生、颁发。 2RAServer 用于建立一个 RA 服务器,建立一个 SSL 会话环境。 3RaClient 与 RA 服务器建立 SSL 连接,接受用户证书的申请,并对其进行审核,对 审核通过的申请颁发证书,并对颁发的证书进行管理,可对证书进行吊销操作。 以上 3 部分组成了一个简易的 CA/RA 系统 4KeyTool,用于将*.cer/*.crt 格式的公钥私钥文件合并为符合 P12 标准的*.pfx 证书文 件,并能从符合 P12 标准的*.pfx 证书文件中提取出*.cer/*.crt 格式的公钥私钥文件 本人负责 RAServer 和 RaClient 部分的设计和实现。 3.3 RAServer/RaClient 的详细设计 厦门大学软件学院毕业论文 16 图 3.2 图 3.2 为数据库-RAServer-RaClient 之间的数据交互图。RaClient 通过 RAServer 对证书数 据库进行访问和操作,期间使用 SSL 连接,保证了信息传递的安全。 3.3.1 证书数据库设计 字段名称数据类型说明 ID自动编号证书序列号 USERINFOOLE 对象申请者信息,密钥用途,扩展密钥用途-2 进制数据 USERCERT备注公钥证书 USERKEY备注私钥证书 CERTSTATE数字证书状态 0-已经申请 1-已经审核 2-已经制作 -1 已经作废 INPUTTIME日期/时间录入时间 AUDITIME日期/时间审核时间 MADETIME日期/时间制作时间 REVOKETIME数字作废时间 3.3.2 RAServer 的详细设计 RAServer 主要实现功能: (1) 获得本地计算机名称和本地 IP 厦门大学软件学院毕业论文 17 (2) 连接数据库 ra.mdb (3) 建立 SSL 会话环境,监听对本地指定端口进行的 SSL 连接 (4) 当有客户端接入时通过验证其客户端证书 ClientCert.pem、ClientPriKey.pem 判断其 连接合法性 (5) 对连接到的客户端的查询(查询待审核证书、查询已审核待制作证书、查询有效证书、 查询作废证书)请求、访问数据库做出反应 (6) 接收客户端的操作、数据(审核证书、制作证书、查询有效证书、作废证书) ,并对 数据库进行操作。 主要用到的数据结构有: (1)数字证书的信息主体的数据结构 typedef struct x509_cinf_st ASN1_INTEGER *version; /* 版本 */ ASN1_INTEGER *serialNumber; /* 序列号 */ X509_ALGOR *signature; /* 签名算法*/ X509_NAME *issuer; /* 颁发者 */ X509_VAL *validity; /* 有效时间*/ X509_NAME *subject; /* 持有者 */ X509_PUBKEY *key; /* 公钥*/ ASN1_BIT_STRING *issuerUID; /* 颁发者唯一标识 / ASN1_BIT_STRING *subjectUID; /* 持有者唯一标识 */ STACK_OF(X509_EXTENSION) *extensions; /* 扩展项 */ X509_CINF; (2)完整的数字证书的数据结构 struct x509_st X509_CINF *cert_info; /* 证书主体信息 */ X509_ALGOR *sig_alg; /* 签名算法 */ 厦门大学软件学院毕业论文 18 ASN1_BIT_STRING *signature; /* 签名值,存放 CA 对该证书采用 sig_alg 算法签名的结果*/ int valid; /* 是否是合法证书,1 为合法,0

温馨提示

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

评论

0/150

提交评论