打造自己的认中心EJBCA.docx
《打造自己的认中心EJBCA.docx》由会员分享,可在线阅读,更多相关《打造自己的认中心EJBCA.docx(17页珍藏版)》请在冰豆网上搜索。
打造自己的认中心EJBCA
EJBCA:
打造独立的"网络公安局"
为了将高强度的加密产品推广到现实生活中,计算机专家们想了许多办法,公钥基础设施(PublicKeyInfrastructure,PKI)就是目前应用十分广泛的一种加密系统。
其最大优点在于使用了公钥加密技术,并且引入了具有公信力的第三方。
这里所介绍的EJBCA就是这样一个功能齐全、易于安装的证书认证系统。
它是一个源代码开放的、功能齐全并易于安装配置证书的认证系统,可以从下载。
通过EJBCA软件的安装使用,普通用户也能轻松领略加解密世界的奥妙!
EJBCA由5部分组成:
认证中心、注册机构、证书库、证书申请者和证书信任方。
其中,认证中心、注册机构和证书库3部分是PKI的基本部分,证书申请者和证书信任方是参加网上交易的主体。
由此可见,PKI就是一个现实生活中公安局的网络再现。
6.3.1 EJBCA系统的安装
(1)需要的软件如表所示。
表 需要的软件
软件名称及版本
下载地址
JDK1.6.0_9
4.2.2
1.7.0
设置环境变量。
在Windows中,使用鼠标右键单击"我的电脑",在菜单中选择"属性"命令,打开"高级"选项卡,然后点击"环境变量"按钮,弹出环境变量对话框。
在"系统变量"栏中,单击"新建"按钮,在"变量名"后填入"JAVA_HOME",填入变量值"D:
\java\jdk1.6.0"。
如图所示。
采用类似的方法,设置如表所示的环境变量。
其中,变量值中的"%"是通配符。
(3)修改加密包。
为了解决美国出口限制,还需要下载强加密包。
首先将jce高强度加密包解压缩,并覆盖到%JAVA_HOME%/jre/lib/security。
图 设置环境变量
表 环境变量
变量名
变量值
JAVA_HOME
D:
\java\jdk1.6.0
EJBCA_HOME
D:
\ejbca
JBOSS_HOME
D:
\ejbca\jboss-4.2.2
ANT_HOME
D:
\ejbca\apache-ant-1.7.0
PATH
PATH;%JAVA_HOME%\BIN;%
JBOSS_HOME%\BIN;%ANT_HOME%\bin;
CLASSPATH
.;%JAVA_HOME%\lib\;%JAVA_
HOME%\lib\;%JAVA_HOME%\lib;
(4)初步生成部署文件。
在%EJBCA_HOME%目录下,运行antbootstrap。
安装过程中,由于内存处理任务较繁重,为了防止内存溢出错误,需要设置ANT_OPTS变量。
可以设置环境变量:
ANT_OPTS=-Xmx512m。
(5)启动JBoss并初始化CA系统。
运行%JBOSS_HOME%/文件。
同时,在%EJBCA_HOME%/下,运行以下命令:
antinstall,安装管理CA并初始化EJBCA系统。
安装完毕,停止JBoss。
如图所示。
图 启动JBoss并初始化CA系统
(6)重新部署整个系统。
在%EJBCA_HOME%目录下,运行命令:
antdeploy。
将重新部署整个系统,并用密钥库配置Sevlet容器。
(7)将%EJBCA_HOME%/p12/证书导入浏览器,默认密码是ejbca。
选择证书文件,并单击右键,在弹出的对话框中选择"安装PFX",就会打开导入证书的对话框。
如图所示。
图 证书导入向导
(8)重新启动JBoss。
登录,说明安装成功。
管理地址为"系统配置"、"个人选项",在右侧的管理员首选项中,设置Web界面默认语言为"ZH"(中文)。
设置完毕,界面如图所示。
图 EJBCA管理界面
6.3.2 PKI技术的产品实现--数字证书
数字证书类似于日常生活中的身份证,它包含了许多个人的重要信息,如用户身份、公开密钥、有效期、授权信息等,它实现了身份识别、完整性、真实性及不可否认性等安全要素。
证书格式及证书内容通常遵循标准,目前使用较多的是1997年提出的V3版本。
从证书的一般用途来看,数字证书可分为签名证书和加密证书。
签名证书主要用于对用户信息进行签名,以保证信息的不可否认性;加密证书主要用于对用户传送信息进行加密,以保证信息的真实性和完整性。
在上面的安装过程中,即产生了一个数字证书。
在打开的网页中,选择浏览器中的"工具"→"Internet选项"菜单命令,在弹出的对话框中单击"内容"选项卡,选择其中的"证书"按钮,即可看到相关证书。
6.3.3 数字证书的管理流程
由于CA中心是一个权威性的第三方认证机构,因此,数字证书的申请也必须经过严格的申请流程,这样才能体现CA中心的权威性、公正性。
这里,设置EJBCA的申请流程如下。
(1)用户资料审核。
注册机构对用户资料进行审核,并根据证书级别不同,审核用户相关的资料与证书请求信息的一致性。
(2)产生、验证和分发密钥。
一般情况下,用户需要到RA(注册中心)去进行证书申请。
在这里,RA是一个十分重要的代理审核机构,类似于下属单位的代理办事处。
RA完成对用户的身份认证后,以签名数据的方式向CA提供用户的公钥和相关信息。
然后,CA完成对公钥的测试并产生证书。
(3)证书的发放。
用户资料审核通过后,CA对用户信息和公钥进行签名,生成证书发布到服务器上,以供用户下载。
用户提交申请表之后,利用受理点给的ID号与密码,获取自己的证书后,即表示用户接受证书,证书开始生效。
(4)证书验证。
在网络世界里,证书的持有人可以是个人用户、企事业单位、商家、银行用户,也可以是网络上的服务器、路由器等设备。
归纳起来,这些证书持有者在开展某项具体业务时,可以进行数据加解密、数据签名和签名验证等操作。
在下面的申请流程及证书使用流程中,将会严格按照上述操作规范进行。
6.3.4 EJBCA数字证书的申请及应用
鉴于CA中心的严格管理流程,因此,申请数字证书时,用户必须首先到终端提交个人的相关信息。
1.个人数字证书的申请
(1)提交申请资料。
现在,进入,单击左侧"RA功能"下面"添加终端实体"。
如图所示。
在出现的表单中,有用户名、密码、Email、通用名、组织部门、城市、省、国家等信息。
按照系统规定的格式提示,输入相关数据即可。
填写相关信息时,一定要牢记该用户的用户名和密码。
(点击查看大图)图 添加终端实体
(2)登录证书下载页面。
打开浏览器访问,进入EJBCA的主页,这里显示了EJBCA的主要功能选择。
包括证书申请注册(Enroll)、证书撤消列表(Retrieve)、证书查看及管理(Administration)。
如图所示。
(点击查看大图)图 登录证书下载页面
(3)下载数字证书。
现在,假设添加UserB已经成功,进入证书申请页面。
选择其中的浏览器证书注册链接CreateBrowserCertificate(创建浏览器证书),进入申请页面。
在这个界面中,会提示用户输入用户名和密码。
输入UserB及其密码,即可进入数字证书下载页面,按照图中的列表选择浏览器提供的不同密钥机制即可,如图所示。
(4)安装并查看数字证书。
选择某种加密算法后,单击OK按钮。
安装过程中,系统会提示是否安装根证书。
选择安装此证书,按照提示即可生成个人浏览器证书。
在打开的网页中,选择浏览器中的"工具",选择菜单中的"Internet选项"命令,在弹出的对话框中单击"内容"选项卡,单击其中的"证书"按钮,即可看到颁发成功的浏览器证书。
图 下载数字证书
2.利用个人数字证书发送安全电子邮件
使用安全电子邮件证书,用户可以收发加密和数字签名邮件,保证电子邮件传输中的机密性、完整性和不可否认性,确保电子邮件通信各方身份的真实性。
安全电子邮件利用公钥算法保证签名邮件不会被篡改,而加密邮件除了邮件接收者以外,任何人无法阅读其中的内容。
需要注意的是,证书中的邮件地址必须同绑定的邮件账号一致。
这样就可以对自己的邮件签名和加密了。
下面,通过一个存储在硬盘中的数字证书进行相关操作的演示。
(1)在OutlookExpress中设定邮件。
①打开OutlookExpress,选择"工具"→"账户"菜单命令,在弹出的"Internet账户"对话框中,单击右边的"添加"按钮,选择"邮件"选项。
②在向导中,输入用户的邮件显示姓名,单击"下一步"按钮,输入电子邮件地址,系统会提示分别输入接收邮件服务器和发送邮件服务器的域名或IP地址,如:
,。
继续单击"下一步"按钮,系统会提示用户输入邮箱的账号和密码,如果是TOM账户,建议勾选"使用安全密码验证"。
设置成功的新账户如图所示。
图 在OutlookExpress中设置服务器参数
(2)在OutlookExpress中设置邮箱与数字证书的绑定。
①在OutlookExpress中,选择"工具"→"账号"菜单命令,在弹出的对话框中选取"邮件"选项卡中的用于发送安全电子邮件的邮件账号。
然后单击"属性",选择上面的"安全"标签,可以看到"签署证书"和"加密首选项"两栏。
在"签名证书"项后,点击"选择"按钮,即可看到相应的签名证书。
②选择加密数字证书,单击"确定"按钮完成邮箱与证书的绑定。
如图所示。
图 在OutlookExpress中设置安全参数
③确定之后,完成OutlookExpress的安全数字证书配置工作,现在就可以准备发送签名或加密的电子邮件了。
(3)发送签名和加密的电子邮件。
发送签名或加密邮件前,必须先获得接收方的数字标识,可以首先让接收方给发一份签名邮件,以便获取对方的数字标识。
启动OutlookExpress,点击"新邮件",撰写新邮件。
同时选中右上方的"签名"或者"加密"选项。
单击"发送"按钮,签名邮件发送成功。
当收件人收到并打开有数字签名的邮件时,将看到数字签名邮件的提示信息,单击"继续"按钮后,才可阅读到该邮件的内容。
发送加密邮件的方法与发送签名邮件的方法类似。
6.3.5 利用数字证书提高服务器安全
服务器证书是数字证书的一种形式,类似于驾驶证、护照和营业执照的电子副本,用于在网络通讯中标识和验证服务器的身份。
在网络应用系统中,服务器软件利用证书机制保证与其他服务器或客户端通信的安全性。
这个身份证书可以存贮在软盘、硬盘、IC卡中。
服务器证书通过在客户端浏览器和Web服务器之间建立一条SSL安全通道保证了双方传递信息的安全性,而且用户可以通过服务器证书验证他所访问的网站是否为真实可靠的。
简单地说,默认情况下,我们所使用的HTTP协议是没有任何加密措施的,所有的消息全部都是以明文形式在网络上传送的,恶意的攻击者可以通过安装监听程序来获得我们与服务器之间的通讯内容。
这种危害在一些企业内部网络中尤其比较大,对于使用Hub的企业内网来说简直就是没有任何安全可讲,因为任何人都可以在一台电脑上看到其他人在网络中的活动,对于使用交换机来组网的网络来说,虽然安全威胁性要小很多,但很多时候还是会有安全突破口,比如没有更改交换机的默认用户和口令,被人上去把自己的网络接口设置为侦听口,依然可以监视整个网络的所有活动。
1.SSL的相关知识
SSL(加密套接字协议层)位于HTTP层和TCP层之间,建立用户与服务器之间的加密通信,确保所传递信息的安全性。
SSL是工作在公共密钥和私人密钥基础上的,任何用户都可以获得公共密钥来加密数据,但解密数据必须要通过相应的私人密钥。
使用SSL安全机制时,首先客户端与服务器建立连接,服务器把它的数字证书与公共密钥一并发送给客户端,客户端随机生成会话密钥,用从服务器得到的公共密钥对会话密钥进行加密,并把会话密钥在网络上传递给服务器,而会话密钥只有在服务器端用私人密钥才能解密,这样,客户端和服务器端就建立了一个唯一的安全通道。
SSL可以用于在线交易时保护像信用卡号以及股票交易明细这类敏感信息。
受SSL保护的网页具有"https"前缀,而非标准的"http"前缀。
而且随着技术的发展,新型专用网络设备SSL加速器可以使Web站点通过在优化的硬件和软件中进行所有的SSL处理来满足性能和安全性的需要。
当具有SSL功能的浏览器(Navigator、IE)与Web服务器(Apache、IIS)通信时,它们利用数字证书确认对方的身份。
数字证书是由可信赖的第三方发放的,并被用于生成公共密钥。
当最初的认证完成后,浏览器向服务器发送48字节利用服务器公共密钥加密的主密钥,然后Web服务器利用自己的私有密钥解密这个主密钥。
最后,浏览器和服务器在会话过程中用来加解密的对称密钥集合就生成了。
加密算法可以为每次会话显式地配置或协商,最广泛使用的加密标准为"数据加密标准(DES)"和RC4。
一旦完成上述启动过程,安全通道就建立了,保密的数据传输就可以开始了,如图所示。
图 SSL安全通道
由于SSL具有应用面广、实施成本低、安全高效、操作简单等优点,它已成为电子商务系统中应用得最广泛的协议,例如目前美国的大多数电子商务应用系统都是基于SSL协议的。
当浏览器要与远端Web服务器建立安全连接时,它向安全代理发出请求,由安全代理负责与远端Web服务器建立连接。
连接建立后,浏览器与服务器之间的数据传输是经过安全代理转发完成的。
浏览器与安全代理之间的数据传输是用浏览器本身支持的40位以下的弱加密算法加密的,而安全代理与远端Web服务器之间的数据传输则是用高强度的数据加密算法加密的。
默认情况下,HTTP协议是没有任何加密措施的,所有的消息全部都是以明文形式在网络上传送的,这种通信方式存在很多缺陷。
有了数字证书,就可以使用一种安全性更高的认证,即通过SSL(SecuritySocketLayer)安全机制来保证浏览过程的安全性。
建立了SSL安全机制后,客户端和服务器端就建立了一个唯一的安全通道。
只有SSL允许的客户才能与SSL允许的Web站点进行通信,并且在使用URL资源定位器时,输入,而不是XP中,打开Internet信息服务管理器,然后打开要为之申请证书的站点的属性。
(1)准备证书请求。
以本地机器为例,选择"默认Web站点",点击右键,在弹出的菜单中选择"属性",出现属性对话框。
找到"目录安全性"对话框。
如果以前从未用过该项,"编辑"显示为灰色。
选择"服务器证书"按钮,根据服务器证书的状态,单击"下一步"按钮。
在出现的选项中,选择"新建证书"。
单击"下一步"按钮,如图所示。
图 准备服务器证书请求
(2)设置名称和安全性。
在这一步,要选择密钥的长度,位长越长,安全性越高,因此建议选择能力范围内的较大值。
如图所示。
不过,位长过长也会使安全性降低。
设置完毕,现在已经产生了一对密钥。
私钥将存储在服务器上。
这些信息将显示在服务器证书上,并将说明这个密钥的所有者。
图 设置名称和安全性
(3)设置单位信息。
接着输入单位信息,通过这些单位信息能够与其他单位区分开。
输入完毕单击"下一步"按钮。
(4)设置公用名称。
注意"公用名称"是用来区分不同证书的最好方法。
在SSL服务器证书的情况下,一般输入主机的域名,比如即可。
(5)设置地理信息。
选择存储证书请求的文件,选择一个容易找到的位置,用写字板打开这个文件,拷贝并粘贴在申请页面的"证书请求"一栏中。
一旦请求被提交,将不再需要这个文件。
单击"下一步"按钮,完成申请步骤。
(6)产生申请的摘要信息。
如图所示。
当证书请求产生之后,会被保存为一个使用默认文件名(如c:
\或指定文件名的文本文件,存储在服务器的硬盘上。
使用记事本或其他ASCII文本编辑器打开证书请求文件,可以查看证书请求的内容。
注意,不能用Word或其他文字处理软件打开证书请求文件,因为这些软件会在证书请求文件中插入格式控制符。
图 生成请求文件摘要
3.获得服务器证书和安装服务器证书
(1)添加服务器证书的实体申请。
进入,单击左侧"RA功能"下面的"添加终端实体"。
在出现的表单中,有用户名、密码、Email、通用名、组织部门、城市、省、国家等信息。
按照系统规定的格式提示,输入相关数据即可。
这里设置用户名为testweb,密码为123456。
(2)输入证书请求内容。
登录,在左侧的CreateServerCertificate(创建服务器证书)中,根据用户名和密码,输入C:
\中的内容,单击OK按钮,将生成的内容保存为文件,如图所示。
(3)安装服务器证书。
安装证书的时候,在WindowsXP中打开Internet信息服务管理器,然后打开要为之申请证书的站点的属性。
还是选择"目录安全性",选择"服务器证书",现在发现,服务器已经挂起了一个证书请求。
根据证书向导,处理挂起的请求并安装证书。
单击"下一步"按钮,输入刚才申请到的文件的路径和名称。
继续单击"下一步"按钮,可以得到摘要信息。
继续单击"下一步"按钮,完成服务器证书的安装。
图 输入证书请求内容
(4)服务器证书的设置和服务器的访问。
在WindowsXP中打开Internet信息服务管理器,然后打开要为之申请证书的站点的属性。
选择"目录安全性",选择"服务器证书",可以发现,下面的3个按钮都能使用了,如图所示。
图 设置目录安全性
单击"编辑"按钮,还可以对访问的证书用户进行管理,如图所示。
现在,通过HTTPS地址打开站点,会发现浏览器下方有一个黄色的小锁,这表明当前的通信过程是安全可信的。
除了能够浏览安全站点,还可以通过设置用户的权限来浏览不同的网站,服务器的安全性将得到很大的提高。
图 设置客户证书属性
可见,通过EJBCA,我们可以很方便地在校园网、企业内部网甚至单位内部建立一个小型安全管理中心。
通过多种策略的配合,从而提高网络办公过程中的安全性。