课程设计(论文)说明书
题 目: CA认证技术的研究与设计
学 院: 计算机科学与技术学院
专 业: 网络工程
姓 名: 全志伟
学 号: 20154360109
指导教师: 刘朝晖
2018年 6月 13 日
目录
目录. II
1. 前言. 1
1.1选题背景. 1
1.2选题目标. 1
2. CA认证技术的简介. 2
2.1 CA认证的概念. 2
2.2 CA认证技术实现的原理基础. 2
2.3 CA认证技术的作用. 2
3. 系统框架描述. 4
3.1 系统总体架构. 4
3.2 主要功能. 4
3.3 电子商务的核心模块. 5
3.4 主要用到的技术. 5
3.4.1网络安全技术. 5
3.4.2 数据加密技术. 6
3.4.3 认证技术. 6
4.详细设计. 7
4.1方案的总体要求与设计思想. 7
4.2 CA的总体结构. 8
4.3 CA系统功能的实现. 9
4.3.1 证书的申请. 9
4.3.2 证书的发放. 9
4.3.3 证书的查询. 10
4.3.4 证书的撤销. 10
4.4 证书管理系统的设计. 10
4.4.1 服务器端证书管理系统. 10
4.4.2 客户端证书管理系统. 11
4.5 系统实现工具简介. 13
4.5.1 JAVA语言. 13
4.5.2 OpenSSL语言. 13
4.5.3具体实现. 14
4.6 系统安全设计. 14
4.6.1物理安全和环境安全. 14
4.6.2网络安全设计. 14
4.6.3 通信安全性设计. 14
5.搭建环境及编译. 16
5.1搭建环境. 16
5.2 搭建步骤及其代码. 16
6.运行结果. 19
7 论文总结. 23
参考文献. 24
随着信息化进程的深入和互联网的迅速,信息安全显得日益重要。国家对此十分重视,1997年国务院信息办立项筹建互联安全产品测评认证中心;1998年10月成立中国国家信息安全测评认证中心;1999年2月该中心及其安全测评实验室分别通过中国产品质量认证机构国家认可委员会和中国实验室国家认可委员会的认可,正式对外开展信息安全测评认证工作。
近十年来,伴随着现代网络技术不断的发展,internet已经潜移默化的深入人们的生活,无论是工作,还是日常化的生活都与网络紧密的结合在一起。而在这发展的过程中,对信息的保护已经成为当今社会的一个很严峻的问题。为了确保在网上交易过程中信息不被泄漏,就必须建立一种可以信任的机制来保证传输数据的认证、完整性、机密性以及不可否认性,数字正式就是应这种要求而出现的。
数字证书是各实体在网上信息交流及商务交易活动中的身份证明,它是实现一个公匙与某一实体之间的相互绑定。为了实现这种绑定关系,需要一组可以信赖的第三方来担保用户之间的身份。第三方实体称为认证中心(Certificate Authority,CA),它提供的功能主要有颁发证书、更新证书、查询证书、归档证书和作废证书。
随着internet的不断发展,电子商务已经受到越来越多的青年人的青睐,与此同时,为人们带来无限商机的同时,世界各地也在面对着一个共同的障碍——电子商务网络支付的安全理由。
CA认证系统是专门为了提高网上交易的安全而出现的。CA认证虽然不直接参加买卖双方之间的交易,但由于它的原理是买卖双方共同信任的机构,在交易的过程中起着不可替代的作用,使之成为整个电子商务中最为关键的组成部分。
现在的网上交易过程中,如何解决交易过程的正当性与交易双方的身份有效性,变得非常重要。CA认证机构(certificate Authority)是整个网上电子交易安全的最为关键环节,它主要负责产生、治理及分配所有在网上交易时需要身份认证的数字证书,为解决用户信任题目,在交易的各个环节中,交易双方都需要检验对方数字证书的有效性,所以,认证机构发放的证书一定要具有权威性、公证性以及不可抵赖性。CA是公钥基础设施的核心,是证书的签发机关,为客户提供签发公钥证书、认证证书、分配证书和治理证书的服务。CA将客户的公钥与客户的名称及其它属性关联起来,并制定政策和识别用户身份,具体步骤来验证、再对用户证书进行签名验证,确保证书持有者的身份和公钥的拥有权。
2. CA认证技术的简介
CA(Certificate Authority)是证书授权的意思,是负责签发认证、签发、管理证书的机关,是合法的、中立的、权威的、公正的第三方电子认证中心。给个人、企事业单位和政府机构签发数字证书,是用来确认电子商务活动中各自的身份,并通过加密解密策略来实现网上安全的信息交换与安全交易。CA(Certificate Authority)是指发放、管理、废除数字证书的机构。CA的作用是检查证书持有者身份的合法性,并签发证书,对证书和密钥进行管理,保证证书不被伪造或篡改。数字证书实际上是存于计算机上的一个记录,是由CA签发的一个声明,证明证书主体与证书中所包含的公钥的惟一对应关系。证书包括证书申请者的名称及相关信息、申请者的公钥、签发证书的CA的数字签名及证书的有效期等内容。数字证书的作用是保证电子商务的安全进行并且对双方网上交易进行互相验证身份。CA是基于非对称加密体系建立的电子商务安全认证机构。
2.2 CA认证技术实现的原理基础
数字证书为发布公钥提供了一种简便的途径, 它则成为公钥的载体以及加密算法,通过建立数字证书,可以构建出一个简单的加密网络应用平台,网络用户的身份凭证由数字证书颁发CA认证机构。只有经过CA签发的证书才具备可认证性,CA并不是一个单纯的防御手段,它集合了多种密码学算法:
消息摘要算法:SHA、MD5(对数字证书进行摘要处理,验证数据完整性服务器)
数字签名算法:DSA、RSA(对数据进行签名或者进行验证操作,保证数据的完整性和不可抵赖性)。
对称性加密算法:RC2、RC4、AES、DES、IDEA、(为了保证数据保密性服务,对数据进行加密或者解密操作)
非对称性加密算法:RSA、DH(为了保证数据保密性服务,对数据进行加密或者解密操作。)
证书的验证过程实际上是对数字证书的公钥做验证签名,证书的签发过程实际上是对申请数字证书的公钥做数字签名,其中还包括了证书有效期,我们通过CA数字证书来对网络上传输的数据进行加密或者解密和签名或者验证等操作,保证数据的机密性、完整性、不可抵赖性、认证性,确保电子商务交易过程中的真实性和网络安全性。
2.3.1维护数据的保密性
借助CA认证机构签发的数字认证证书可以更好的防止非法用户进入系统及合法用户对系统资源的非法使用。运用包含公开密钥加密法、私人密钥加密法、哈希函数加密法及数字信封技术等一系列技术手段,对一些较为机密的数据文件进行加密,保证使发送过程中的加密数据不会被第三方窃取,即使不小心被他人获取文件,也无法破译其中的内容,从而保证交换数据的传递的安全性。
2.3.2验证双方身份的真实性
电子商务毕竟不是面对面的交易,很难辨析交易对象的真实性,因而对交易双方身份的真实性验证显得非常重要。借助于CA认证中心的口令、电子签名技术和公开密钥,经过证书服务系统认证后,取得数字证书是交易用户在互联网上的电子身份证,它能有效鉴别特定用户的登记情况、经营情况和资信情况,建立交易当事人相互之间的信任。
2.3.3保证信息的完整性
为了防止在交易结束后,当事人否认自己所做过的交易,从而给双方造成不必要的损失。通过CA认证Hash函数的电子签名技术和数字证书技术,即可以实现信息的完整性辨析。因为CA机构所签发的数字证书只被所标识的信息的当事人唯一拥有,故利用其数字证书在传送前,对交易信息进行电子签名,便可证明交易信息是最初信息发送人所发送的,发送者无法否认发送过程中该交易信息进行过该项交易活动。保证了信息的完整性。
3. 系统框架描述
3.1 系统总体架构
一个简单的证书机构签发的流程主要由:业务系统、CA数字证书受理系统、数字签名认证系统三大部分组成。
系统的总体架构如下图所示,
(1) 签发自签名的根证书;
(2) 审核和签发其他CA认证系统的交叉认证证书;
(3) 向其他CA系统申请交叉认证证书;
(4) 受理和审核各RA机构的申请;
(5) 为RA机构签发申请;
(6) 接受并处理各RA服务器的证书业务申请;
(7) 管理全系统的用户和证书资料;
(8) 签发业务证书和证书作废表;
(9) 维护全系统的证书作废表;
(10) 维护全系统的查询。
3.3 电子商务的核心模块
电子商务的安全体系由网络服务层、加密技术层、安全认证层、安全协议层、应用系统层共同组成。下层是上层的基础,为上层提供技术支持;上层是下层的扩展与递进。各层次之间相互依赖、相互关联构成从而统一的整体。通过合理应用各层控制技术,并进行有机结合,那么就可实现电子商务系统的安全,从而进一步确保电子商务活动的有效性、保密性、完整性和不可抵赖性。
3.4 主要用到的技术
3.4.1网络安全技术
①防火墙技术
防火墙技术是安全访问控制技术,主要作用是保护网络环境不安全的情况下实现局部网络的安全性。目前的电子商务系统中都普遍采用了防火墙技术,是因为它在外部和内部网络之间构造了一个可靠的保护层,只有在授权合法的情况下才能进行对内部的网络资源进行访问,有效的防止了外部互联网进行的破坏。
②虚拟专用网(VPN)技术
VPN技术可以帮助用户及供应商之间建立可以信赖的安全连接,从而保证了数据的安全传输。通过附加的安全隧道、访问控制和用户认证等技术实现与专用网络的安全性能。
3.4.2 数据加密技术
数据加密的定义是对信息进行重新编码,从而达到信息内容的隐藏,让非法用户不能获取信息真实内容,它是电子商务中采用的主要安全措施。
3.4.3 认证技术
认证技术是防止信息被篡改、删除、重放和伪造的一种有效方法。它使接收
者能够识别和确认消息的来源和真伪,从而保证了信息的真实性。
4.详细设计
伴随着电子商务的信息时代的到来,CA认证中心在确认通信双方身份的真实可靠性起着重要的作用,广泛应用于电子商务交易以及网上证券交易等领域。尤其是在目前网上电子商务上,不再是局限于顾客和销售商之间的商业行为(BtoC),而是企业和企业之间的交易行为(BtoB)逐渐增多,这就使得在企业或行业内部必须设立一个可以彼此信赖的CA认证系统。有了适合自己规模的CA,企业便可灵活地设置CA系统的不同部分以及功能,做出必要的简化和改进,从而去适应现代社会发展的道路。本文对电子商务安全认证技术的基础进行了学习分析;借助公钥基础设施PKI中数字证书和CA功能介绍的相关知识点,在此基础上提出构建一个基于电子商务模型的CA认证系统的实现方案。该设计方案可用于中小型企业内部构建自己的CA,具有普适性且易实现。
4.1方案的总体要求与设计思想
方案的总体要求与设计思想CA系统作为整个电子商务系统安全性的核心,承担着身份审核、证书签发、交易认证等重要服务。为维护CA中心的权威性和公正性,技术上必须采用先进的设计方法。加密技术是数字证书的核心,所采用的加密技术应考虑先进性、业界标准和普遍性,同时,为使数字证书能实现可互操作性,需要与主要的Internet安全协议兼容以支持多应用环境。本系统在严格遵守ITU的X.509标准的基础上,设计一个具有较高安全性的认证中心,该中心在技术上力求达到:
(2)采用当前最流行和最可靠的加密算法和网络安全技术,保证系统具有较高的安全性;
(3)具有数字签名功能,实现发送者对信息的数字签名,提供交易过程的不可否认性和防抵赖性;
(4)完整的证书管理功能,透明地提供证书的有效期管理、安全的密钥管理等功能;
(5)全程证书历史档案管理,支持全程审计功能.对每次交易加密、传输等都保留记录以备审计查询;
(6)提供证书的多种存储方式,保证系统运行的高效与安全;为达到本系统的设计要求,拟从以下几方面对系统进行设计:
(1)采用LDAP服务器作为证书管理和CRL管理服务器。LDAP服务器支持大容量的读请求,并为读密集型的操作进行了专门的优化;同时也提供了复杂的不同层次的ACL(一般都称为ACL或者访问控制列表)来控制对数据读和写的权限,保证了较高的安全性和可靠性;LDAP协议是跨平台的和标准的协议,因此应用程序就不用为LDAP目录放在什么样的服务器上操心了。
(2)为保证系统的可扩展性,支持交叉认证,使之既能满足当前小范围内CA认证需求,又能满足今后大范围多种CA系统间的域间交叉认证的需求;
(3)身份认证、密钥管理以及数据的完整性采用可靠性高的RSA算法,指示加密采用DES算法,采用Hash消息摘要及RSA数字签名算法。加密公钥和私钥长度可为512,1024或更高。
(4)实现公钥/私钥的生成、用户证书申请、证书签发、证书吊销、证书验证、密钥存储等功能。
(5)为用户提供功能完善的客户端管理,方便用户管理和使用证书。支持用户自己证书的申请、下载、查询、更新等,同时能对他人证书进行查询及下载;
(6)提供证书及密钥的多种存储方式;
(7)制定CA中心的安全管理策略和安全规范及措施。
4.2 CA的总体结构
本认证中心主要负责在一个安全域内的有限群体发放证书,同时还负责维护
和发布证书发放列表CRL(Certificate Revocation Iists)。硬件设施包括:安全服务器、CA 服务器、登记中心服务器(RA 服务器)、LDAP服务器、CA 管理服务器。它们的功能如下:
安全服务器:安全服务器面向普通用户,用于提供证书申请、浏览、证书撤
消列表及证书下载等服务。安全服务器与用户的通信采用安全信道方式(如SSL本认证中心主要负责在一个安全域内的有限群体发放证书,同时还负责维护
和发布证书发放列表CRL(Certificate Revocation Iists)。硬件设施包括:安全服务器、CA 服务器、登记中心服务器(RA 服务器)、LDAP服务器、CA 管理服务器。它们的功能如下:安全服务器:安全服务器面向普通用户,用于提供证书申请、浏览、证书撤消列表及证书下载等服务。安全服务器与用户的通信采用安全信道方式(如SSL服务器是证书和证书撤销列表CRL 的存储体;另一个对于应用来讲,LDAP 是用户获取自己和他人的证书以及CA 签发的CRL 这些信息的来源。LDAP 服务器提供目录浏览服务,负责将RA 服务器传来的用户信息及数字证书加入到服务器上,这样其他用户通过访问LDAP 服务器就能得到他人的数字证书。LDAP 将目前网络上的大量对象信息以目录的方式存储在计算机里,在用户看来,整个目录在逻辑上是统一的整体,但实际上目录信息可分布在不同组织管理的计算机上。
4.3 CA系统功能的实现
4.3.1 证书的申请
证书的申请可以采用两种方式:面对面申请和通过WEB 方式在线申请。
(1)面对面申请:用户亲自到RA 中心,填写相关的表格,然后由操作人员录
入用户的信息,提交给RA 中心的服务器,并传给CA 中心。CA 中心生成用户身份识别码,返回给RA 中心,由RA 交给用户。具体的递交方式包括打印密码信封和邮寄两种。
(2)在线申请,步骤如下:
① 用户使用WEB 浏览器访问安全服务器,下载CA 的数字证书,然后与服
务器建立连接并申请数字证书。填写用户信息以方便中心对用户资料的管理。安
全服务器收到用户的申请信息后将之传送给RA 服务器。
② 登记中心管理员利用自己的浏览器与登记中心服务器建立安全连接,在此
过程中要对RA 管理员进行严格的身份认证。
③ 登记中心将用户的申请与管理员的数字签名传给CA 服务器, CA 管理员查
看用户的详细信息并验证RA 管理员的签名后由CA 服务器产生密钥对并生成证书。
④ RA 服务器从CA 服务器处得到新的证书,首先将证书输出到LDAP 服务
器以提供目录浏览服务,最后向用户发出邮件,通知用户证书已发行成功,告诉
用户证书序列号及下载地址。用户还会知道如何使用安全服务器上的LDAP 配置
以便访问LDAP 服务器,获得他人的证书。
至此用户数字证书申请完成。
4.3.2 证书的发放
该方案使用目录服务器发放进行证书的发布,所签发的证书发布到LDAP 目
录服务器上,供用户进行查询和下载。
用户可以通过离线和在线两种方式获得证书:
(1)离线方式:用户通到RA 中心提交自己的授权码和身份识别码,然后将证
书下载到RA 中心,由RA 中心按用户所选择的证书介质,为用户制证,然后发放给用户。
(2)在线方式:用户通过Internet,在自己的计算机上将授权码和身份识别码提
交给CA 中心,即可将证书下载到自己的计算机上。
该方案数字证书支持以手工方式发放证书,同时也支持以网络方式在线发放
证书。用户可以自由选择用软盘、IC 卡或USB 卡等介质来存放自己的证书。无论用户采用哪一种存放方法,该方案均以龟甲安全部门的有关规定为标准,用安全可靠的方式在证书存放介质中存放用户证书。
4.3.3 证书的查询
证书的查询分为两类,其一是证书申请的查询,系统根据用户的查询请求返回当前用户证书申请的处理过程;其二是用户证书的查询,这类查询可以直接在
LDAP 目录服务器上用轻量级目录访问协议(Lightweight Directory AccessProtocol,LDAP)来完成,LDAP 服务器根据用户填写的查询信息,返回相应的结果。
上述流程中,实际上还应该考虑数据传输的验证工作。作为证书管理的一项基本功能,对于证书查询的请求和返回结果都应进行身份验证,这种验证可通过通信双方——用户和CA,对所发送的数据进行数字签名获得。
4.3.4 证书的撤销
证书的撤销有两种情况:第一种是证书有效期已到,或证书在达到它的有效
期之前因为用户和CA 间关系的改变等因素需要被撤销;第二种情况是由于用户的私钥泄露、丢失或是忘记保护私钥的口令等原因,造成用户证书的撤销。此时作废的证书将被放入证书撤销列表CRL 中并发布出去。任何一个使用证书的实体在使用证书前都应检查证书是否在CRL 中。这里仍以在线方式说明撤销的过程:
(1) 用户向RA 服务器发送经加密的邮件声明要撤销证书。
(2) 登记中心管理员对用户资料进行审核,若无误则对请求进行数字签名并提
交给CA 服务器。
(3) CA 管理员查询证书撤销请求列表,选取其中的一个,验证RA 管理员的
数字签名。若正确则同意用户的申请,同时更新CRL 列表,然后将不同格式CRL
返回给RA 服务器。
(4) 登记中心服务器导入CRL,将CRL 公布到安全服务器上供其他用户浏览
或下载CRL。
4.4 证书管理系统的设计
证书管理主要由服务器端证书管理和客户端证书管理两部分组成。
4.4.1 服务器端证书管理系统
服务器端主要负责颁发用户证书,处理用户废弃证书请求,对密钥备份与恢
复,同时也提供CA 的交叉认证。
① 证书服务器
在通讯过程中,用户A 可能需要获取用户B 的证书,其方式有很多种。最理想的方式是使用证书服务器。当发布A 和B 的证书时,除了将证书提供给请求者外,也将证书存于证书服务器中,根据证书管理的存取操作协议,证书服务器可以采用邮件服务器、FTP 服务器、LDAP 服务器、Web 服务器(带数据库)和X.500目录的目录形式。
本系统使用的证书服务器就是分布式LDAP 服务器,它为证书存取提供了丰
富的操作命令和函数。因为基于LDAP 的证书服务是一个分布式结构,当一个服
务器不能存储一棵完整的目录信息树DIT(Directory Information Tree)的情况下,它可以存储DIT 的某一分支的条目。各个服务器间通过指针连接形成一个完整的分布式目录。当该证书服务器没有用户请求的公钥证书entry(条目)时,可搜索其referral 参数所指的其他服务器,并从中获取用户需要的公钥证书。
② CRL 服务器
当证书必须作废时,就需要证书吊销机制,撤换以前发布的但现已无效的证
书,它是影响PKI 服务可靠度的关键因素之一,常用的方法是使用由CA 定期发
布由其签名的CRL,存入CRL 服务器。
本系统的CRL 服务器也是由LDAP 服务器担当的。证书验证者查询CRL 服务器,根据CRL 中是否包含该证书序列号来判断证书的有效性。由于CRL 是定期发布的,而吊销请求的到达是随机的,从吊销请求到下一个CRL 发布之间的时延会带来状态不一致性,这会严重影响CA 提供证书服务的质量;因此本系统采用在线的证书状态OCSP(Online Cerificate Status Protocol)检查机制,来满足那些需要提供及时的证书吊销信息的应用。
4.4.2 客户端证书管理系统
客户端证书管理器目的是帮助用户管理和使用数字证书。本系统客户端证书
管理器主要的功能包括:支持用户自己证书的申请、下载、查询、废除等,同时能对他人证书查询和下载;提供对所有证书或单个证书的导入/导出, 即将证书从证书原介质添加到本地硬盘或从证书管理器中导出存在的用户证书。现详细说明证书的使用过程。假设用户A 向用户B 发送消息。处理流程图如下:
4.5 系统实现工具简介
整个系统可运用Java 和OpenSSL 来实现CA,说明如下:
4.5.1 JAVA语言
Java 2 集成了大量的安全工具,其中的JCE 提供了可以处理加密数据、生成
消息摘要、进行密钥和证书管理等功能的类库,可以方便而快速的开发身份认证、数字签名和验证及数据加密等功能的程序,并且JAVA 程序具有跨平台运行的能力,是用来实现认证中心的的理想选择。但是它对证书的支持尚不完善,只能处理现有的证书,而不能生成新的证书。所以需要借助OpenSSL 来实现生成证书的功能。
4.5.2 OpenSSL语言
OpenSSL 项目是一个开放源代码的工具包,它实现了安全套接层协议(SSL
v2/v3)和传输层安全协议,并带有一个功效完整、具有可通用性的加密技术库
OpenSSL 工具包可分为三个部分:SSL 函数库、Crypto 函数库和命令行工具。SSL函数库实现了安全套接层协议和传输层安全协议;Crypto 函数库可实现大多数Internet 标准的加密算法;命令行工具则提供了一个从操作系统中直接使用以上两个函数库的途径。而且命令行工具还以Crypto 和SSL 函数库为基础实现新的功能,其中就包括生成数字证书和CRL 的功能,我们正是要利用OpenSSL 的这两个功能来构建CA 认证中心。
4.5.3具体实现
整个系统构建在Red Hat Linux8.0 平台上,Java 平台为j2sdk1.4.0,其中已经包括了JCE;保存证书和证书撤销列表的证书库采用MySQL 4.0;为用户提供访问接口的安全服务器采用基于TTTPS 的Web 服务方式;Web 服务页面采用JSP 技术实现。
首先可使用OpenSSL 中的Keytool 工具为CA 服务器生成自签名的根证书,
然后用CA 的自签名证书对注册机构RA 服务器和安全服务器进行证书申请签名。签名后,将证书分别拷贝到RA 服务器和安全服务器,继续处理证书,最终完成服务器端证书的配置工作。
4.6 系统安全设计
CA 系统的设计中,首要考虑的是系统的安全性,这是CA 系统至关重要的部
分。在设计过程中,必须对威胁系统安全的各个因素综合考虑,制定出切实可行
的安全策略和防范手段。本系统安全设计拟从以下几个方面考虑:
CA 系统的物理安全和环境安全是整个系统安全的基础,要把CA 系统的危险
降至最低限度,需要选择适当的设施和位置,同时要充分考虑水灾、火警、干扰
与辐射、犯罪活动等的威胁。
网络安全设计的目标是保证网络安全可靠的运行,从网络拓扑结构、网络安
全区域划分、防火墙的设置、病毒防护与检测等各个方面设计来防范来自Internet
的攻击。
本方案可使用认证系统设计领域内已经制定了标准化的安全API,即
GSS-API(Generic Security Service- Application Programming Interface)公共安全服务应用程序接口,及基于它产生的SPKM 简单公共密钥机制(Simple Public-Key
GSS-API Mechanism)所规范的协议来满足安全通信的需求。
公共安全服务API(GSS-API)以一种统一的模式为使用者提供安全事务,由于
它支持最基本的机制和技术,所以保证不同的应用环境下的可移植性。也就是说,GSS-API 不依赖于某一特定的程序语言或已经实现安全的机制,它只是定义了应用程序中实现该方案的安全服务协议和函数。
SPKM 简单公共密钥机制为基于公共密钥体系的在线分布式应用环境提供认
证、密钥建立、数据完整性验证及数据可靠性保障服务。因为它遵从RFC-1508 规
定的接口,所以能被使用基于GSS-API 调用的安全事务的应用所采用。SPMK 有
以下优点:
1) SPMK 允许在不使用安全时间戳的情况下完成单方或双方的认证。这使那
些不能存取安全时间戳的环境能够进行安全认证。
2) SPKM 使用算法标识去定义通信双方所使用的各种算法。这在运行环境,
未来扩展以及算法选择上保持了最大限度的灵活性
3) SPKM 实现真正的基于非对称算法的数字签名。
4.6.4管理员权限/级别的安全性设计
整个系统的管理员应按层次划分级别,相应的级别有相应的管理权限,这样
才能保障CA 系统运行的安全性。本系统拟将管理员划分三个级别:首席管理员、
超级管理员、普通管理员。
首席管理员负责对系统核心Authority 的管理操作。系统也应要求至少两名或
三名首席管理员登陆才能进行一些诸如备份或数据恢复等敏感操作。首席管理员
同时也是数据库管理员及LDAP 目录服务器管理员。
超级管理员由首席管理员在系统初始化时产生。主要负责对系统中下一级别
管理员的管理工作,包括新建普通管理员、删除/更改普通管理员、设置权限等操作。对于超级管理员的更改只能到Authority 由首席管理员操作完成。
普通管理员可以是RA 管理员、审计管理员或其他自定义的管理员。他们主要负责维护系统正常运作的一些操作,如处理用户证书/撤销证书的申请、对申请进行审核、颁发CA 批准的证书、管理和查询系统日志等日常操作。
5.搭建环境及编译
5.1搭建环境
目前,国外主流的电子商务安全协议在核心密码算法上都有出口限制,如只允许40位或56位的RC4和512位的RSA算法出口等。这样的算法强度引进后无法满足我国电子商务实际应用当中的安全需求。但是,完全自主定义和开发一套安全标准体系不是一蹴而就的事情,需要人、财、物的长期投入。
因此,如何对国外主流的电子商务安全协议的安全模块进行改造,用国内先进的密码算法替换其相应的安全强度不够的算法,变为国产的强安全协议,这样就能较好地提高我国电子商务安全技术水平。
5.2 搭建步骤及其代码
下面就用OpenSSL提供的强大功能在FreeBSD平台下进行手工签署证书的过程。
⑴ 先建立一个 CA 的证书,首先为 CA 创建一个 RSA 私用密钥:
# OpenSSL genrsa -des3 -out ca.key 1024
该指令中genras表示生成RSA私有密钥文件。
-des3表示用DES3加密该文件。
-out ca.key表示生成文件ca.key。
1024是我们的RSA key的长度。
生成server.key的时候会要你输入一个密码,这个密钥用来保护你的ca.key文件,这样即使人家偷走你的ca.key文件,也打不开,拿不到你的私有密钥。
运行该指令后系统提示输入 PEM pass phrase,也就是ca.key文件的加密密码,这里设为12345678。
⑵ 用下列命令查看它的内容:
# OpenSSL rsa -noout -text -in ca.key
该指令中rsa表示对RSA私有密钥的处理。
-noout表示不打印出key的编码版本信息。
-text表示打印出私有密钥的各个组成部分。
-in ca.key 表示对ca.key文件的处理
对RSA算法进行分析可以知道,RSA的私有密钥其实就是三个数字,其中两个是质数prime numbers。产生RSA私有密钥的关键就是产生这两个质数。还有一些其他的参数,引导着整个私有密钥产生的过程。
⑶ 利用 CA 的 RSA 密钥创建一个自签署的 CA 证书
# OpenSSL req -new -x509 -days 365 -key ca.key -out ca.crt
该指令中req用来创建和处理CA证书,它还能够建立自签名证书,做Root CA。
-new 产生一个新的CSR, 它会要输入创建证书请求CSR的一些必须的信息。
-x509 将产生自签名的证书,一般用来做测试用,或者自己做个Root CA用。
-days 365 指定我们自己的CA给人家签证书的有效期为365天。
-key ca.key指明我们的私有密钥文件名为ca.key。
-out ca.crt指出输出的文件名为ca.crt。
执行该指令时系统要求用户输入一些用户的信息,如下所示:(框内为输入的内容)
Using configuration from /etc/ssl/OpenSSL.cnf
Enter PEM pass phrase:12345678
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:CN (两个字母的国家代号)
State or Province Name (full name) [Some-State]:JIANG SU (省份名称)
Locality Name (eg, city) []:ZHANGJIAGANG (城市名称)
Organization Name (eg, company) [Internet Widgits Pty Ltd]:FAMILY NETWORK (公司名称)
Organizational Unit Name (eg, section) []:HOME (部门名称)
Common Name (eg, YOUR name) []:TJL (你的姓名)
Email Address []:[email protected] (Email地址)
⑷ 用下列命令查看生成证书的内容:
# OpenSSL x509 -noout -text -in ca.crt
该指令中x509表示证书处理工具。
-noout表示不打印出key的编码版本信息。
-text 表示以文本方式显示内容。
-in ca.crt 表示对ca.crt文件进行处理
系统显示证书内容为:
Certificate:
Data:
Version: 3 (0x2)
Serial Number: 0 (0x0)
Signature Algorithm: md5WithRSAEncryption
Issuer: C=CN, ST=JIANG SU, L=ZHANGJIAGANG, O=FAMILY NETWORK, OU=HOME, CN=TJL/[email protected]
Validity
Not Before: Feb 24 14:49:27 2003 GMT
Not After : Feb 21 14:49:27 2013 GMT
Subject: C=CN, ST=JIANG SU, L=ZHANGJIAGANG, O=FAMILY NETWORK, OU=HOME, CN=TJL/[email protected]
Subject Public Key Info:
Public Key Algorithm: rsaEncryption
RSA Public Key: (1024 bit)
Modulus (1024 bit):
00:da:20:09:11:19:1f:12:f0:98:0c:fc:91:ac:3e:
……
22:e1:ca:04:0f:dc:e9:bd:9f
Exponent: 65537 (0x10001)
X509v3 extensions:
X509v3 Subject Key Identifier:
03:B0:14:8C:5D:C6:F8:F4:B0:96:A0:CC:7C:8F:9B:00:BB:78:E6:A6
X509v3 Authority Key Identifier:
keyid:03:B0:14:8C:5D:C6:F8:F4:B0:96:A0:CC:7C:8F:9B:00:BB:78:E6:A6
DirName:/C=CN/ST=JIANG SU/L=ZHANGJIAGANG/O=FAMILY NETWORK/OU=HOME/CN=TJL/[email protected]
serial:00
X509v3 Basic Constraints:
CA:TRUE
Signature Algorithm: md5WithRSAEncryption
8d:e8:46:82:40:b4:18:a2:12:9f:7a:66:e5:fc:0c:3f:77:5a:
……
04:13
从上面的输出内容可以看出这个证书基本包含了X.509数字证书的内容,从发行者Issuer和接受者Subject的信息也可以看出是个自签署的证书。
下面创建服务器证书签署请求(使用指令和系统显示信息基本和以上类似):
⑸ 首先为Apache 创建一个 RSA 私用密钥:
# OpenSSL genrsa -des3 -out server.key 1024
这里也要设定口令pass phrase,生成 server.key 文件。
⑹ 用下列命令查看它的内容:
# OpenSSL rsa -noout -text -in server.key
⑺ 用 server.key 生成证书签署请求 CSR:
# OpenSSL req -new -key server.key -out server.csr
这里也要输入一些请求证书的信息,和上面的内容类似。
⑻ 生成证书请求后,下面可以签署证书了,需要用到OpenSSL源代码中的一个脚本 sign.sh,签署后就可以得到数字证书server.crt。
# sign.sh server.csr
⑼ 启动安全Web服务
最后在apache服务器中进行ca认证设置,拷贝server.crt 和server.key到/usr/local/apache/conf
修改httpd.conf 将下面的参数改为:
SSLCertificateFILE /usr/local/apache/conf/server.crt
SSLCertificateKeyFile /usr/local/apache/conf/server.key
可以启动带安全连接的Apache试一下了。
# /usr/local/apache/bin/apachectl startssl
提示输入pass phrase(就是前面为服务器设置的口令)
6.运行结果
进入CA 认证中心主界面,在个人用户业务主界面填写个人CA账号和用户密码,点击“登录”按钮
保存后,在windows资源管理器中找到该文件,右键单击该文件,在快捷菜单中选“安装证书”,出现“证书导入向导”界面,点击“下一步”按钮,
此时,证书已经被导入,可以在IE中检查导入的正常情况。
点击IE菜单栏“工具”下的“Internet选项”,选中“内容”选项卡,点击“证书”按钮,
在“其他人”选项卡中可以见到SECLab证书,
选中“SECLab”,点击“查看”按钮,可以看到该证书的详细情况,
7 论文总结
CA认证技术是网络安全支付的关键,随着CA认证技术的不断发展,数字证书之间的信任模型、使用的加/解密算法、密钥管理的方案等也在不断的变化。网络,特别是Internet网络的安全应用己经离不开CA认证技术的支持。中国作为一个网络发展大国,发展自己的CA认证技术是很有必要而且是非常迫切的。因此,研究和开发我国自主的、完整的CA认证系统,以支持政府、银行和企业安全地使用信息资源和国家信息基础设施已是刻不容缓。
参考文献
[1] 祁明,彭丽芳.电子商务安全保密技术与应用.华南理工大学出版社.2003,9
[2] 李琪.电子商务安全.重庆大学出版社.2004.6
[3] 徐升华.电子商务的安全技术.计算机与现代化.1999(6)
[4] 肖德琴.电子商务安全保密技术与应用.华南理工大学出版社.2003.9
[5] 李丁.电子商务安全技术的应用研究.江汉大学学报.2001.12(6)
[6] Bruce Schneier.吴世忠,祝世雄等译.应用密码学.机械工业出版社.2004.10
[7] M. Gardner.A New Kind of Cipher That Would Take Millions of Years to Break. Scientific
American. v 237. n .8. Aug 1977
[8] R.L.Rivest, A.Shamir, and L.M.Adleman.A Method for Obtaining Digital Signatures and
Public-Key Cryptosystems. Communication of the ACM. v21. n.2. Feb 1978
[9] 李志民.基于密钥的安全认证系统的设计.中原工学院学报.2004.12