如何利用数字证书提高服务器的安全

互联网 | 编辑: 何毅 2011-04-01 14:48:00转载

《网络安全进阶笔记》第6章奇妙的数字证书与PKI应用。这也是本书的重要部分。通过数字证书的获得、安装,EJBCA开源系统的应用,以及Esign电子签名、SSL访问浏览等,完全熟悉数字证书的应用。本节为大家介绍利用数字证书提高服务器安全。

服务器证书是数字证书的一种形式,类似于驾驶证、护照和营业执照的电子副本,用于在网络通讯中标识和验证服务器的身份。在网络应用系统中,服务器软件利用证书机制保证与其他服务器或客户端通信的安全性。这个身份证书可以存贮在软盘、硬盘、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协议的。当浏览器要与远端Web服务器建立安全连接时,它向安全代理发出请求,由安全代理负责与远端Web服务器建立连接。连接建立后,浏览器与服务器之间的数据传输是经过安全代理转发完成的。浏览器与安全代理之间的数据传输是用浏览器本身支持的40位以下的弱加密算法加密的,而安全代理与远端Web服务器之间的数据传输则是用高强度的数据加密算法加密的。

默认情况下,HTTP协议是没有任何加密措施的,所有的消息全部都是以明文形式在网络上传送的,这种通信方式存在很多缺陷。有了数字证书,就可以使用一种安全性更高的认证,即通过SSL(Security Socket Layer)安全机制来保证浏览过程的安全性。建立了SSL安全机制后,客户端和服务器端就建立了一个唯一的安全通道。只有SSL允许的客户才能与SSL允许的Web站点进行通信,并且在使用URL资源定位器时,输入https://,而不是http://。

2.获取服务器证书请求文件

在Windows XP中,打开Internet信息服务管理器,然后打开要为之申请证书的站点的属性。

(1)准备证书请求。以本地机器为例,选择"默认Web站点",点击右键,在弹出的菜单中选择"属性",出现属性对话框。找到"目录安全性"对话框。如果以前从未用过该项,"编辑"显示为灰色。选择"服务器证书"按钮,根据服务器证书的状态,单击"下一步"按钮。在出现的选项中,选择"新建证书"。单击"下一步"按钮。

(2)设置名称和安全性。在这一步,要选择密钥的长度,位长越长,安全性越高,因此建议选择能力范围内的较大值。不过,位长过长也会使安全性降低。设置完毕,现在已经产生了一对密钥。私钥将存储在服务器上。这些信息将显示在服务器证书上,并将说明这个密钥的所有者。

(3)设置单位信息。接着输入单位信息,通过这些单位信息能够与其他单位区分开。输入完毕单击"下一步"按钮。

(4)设置公用名称。注意"公用名称"是用来区分不同证书的最好方法。在SSL服务器证书的情况下,一般输入主机的域名,比如testweb.com即可。

(5)设置地理信息。选择存储证书请求的文件,选择一个容易找到的位置,用写字板打开这个文件,拷贝并粘贴在申请页面的"证书请求"一栏中。一旦请求被提交,将不再需要这个文件。单击"下一步"按钮,完成申请步骤。

(6)产生申请的摘要信息。当证书请求产生之后,会被保存为一个使用默认文件名(如c:\certreq.txt)或指定文件名的文本文件,存储在服务器的硬盘上。使用记事本或其他ASCII文本编辑器打开证书请求文件,可以查看证书请求的内容。注意,不能用Word或其他文字处理软件打开证书请求文件,因为这些软件会在证书请求文件中插入格式控制符。

3.获得服务器证书和安装服务器证书

(1)添加服务器证书的实体申请。单击左侧"RA功能"下面的"添加终端实体"。在出现的表单中,有用户名、密码、Email、通用名、组织部门、城市、省、国家等信息。按照系统规定的格式提示,输入相关数据即可。这里设置用户名为testweb,密码为123456。

(2)输入证书请求内容。在左侧的Create Server Certificate(创建服务器证书)中,根据用户名和密码,输入C:\certreq.txt中的内容,单击OK按钮,将生成的内容保存为server.cer文件。

(3)安装服务器证书。安装证书的时候,在Windows XP中打开Internet信息服务管理器,然后打开要为之申请证书的站点的属性。还是选择"目录安全性",选择"服务器证书",现在发现,服务器已经挂起了一个证书请求。

根据证书向导,处理挂起的请求并安装证书。单击"下一步"按钮,输入刚才申请到的server.cer文件的路径和名称。继续单击"下一步"按钮,可以得到摘要信息。继续单击"下一步"按钮,完成服务器证书的安装。

(4)服务器证书的设置和服务器的访问。在Windows XP中打开Internet信息服务管理器,然后打开要为之申请证书的站点的属性。选择"目录安全性",选择"服务器证书",可以发现,下面的3个按钮都能使用了。

单击"编辑"按钮,还可以对访问的证书用户进行管理。

现在,通过HTTPS地址打开站点,会发现浏览器下方有一个黄色的小锁,这表明当前的通信过程是安全可信的。除了能够浏览安全站点,还可以通过设置用户的权限来浏览不同的网站,服务器的安全性将得到很大的提高。

可见,通过EJBCA,我们可以很方便地在校园网、企业内部网甚至单位内部建立一个小型安全管理中心。通过多种策略的配合,从而提高网络办公过程中的安全性。 

相关阅读

每日精选

点击查看更多

首页 手机 数码相机 笔记本 游戏 DIY硬件 硬件外设 办公中心 数字家电 平板电脑