在IIS上基于SSL的信息安全通道的构建
摘要:本文详细介绍了如何在windows 2003 server上用 IIS服务器搭建一条基于SSL的信息安全通道的全部过程,其中包括对DNS,Active Directory以及CA服务的配置,WEB服务器端证书和客户端证书的申请、安装以及配置, 证书链的获取与安装等内容,简述了基于SSL的信息安全通道的原理及应用,阐明了为什么要使用信息安全通道来传输信息,并且提出了IIS服务器上高于128位加密的实验性方案。
Abstract: This paper exhaustivly introduced the total course of implementing the secure information passageway based on SSL by Internet Information Service on Windows 2003 server,including the configuration of DNS,Active Directory and CA, the requestion, installation and configuration of WEB server_end certificate and client_end certificate, the obtaining and installation of Certificate chain etc. Sketch the principle and application based on SSL infoimation secure passageway. Expound the reason for transmitting information by the secure infoimation passageway.Put forward the experimental scheme of overtopping 128-bit encrypted on IIS.
关键词:SSL,windows 2003 server,安全信息通道,openssl,IIS
中图分类号:TP3 文献标志识码 B
所谓SSL(Secure Socket Layer)就是安全套接层协议,是一种在两台计算机之间提供安全通道的协议,它具有保护传输数据以及识别通讯机器的功能。在协议栈中,SSL协议位于应用层之下,TCP层之上,并且整个SSL协议API和微软提供的套接字层的API极为相似。因为很多协议都在TCP上运行,而SSL连接与TCP连接非常相似,所以通过SSL上附加现有协议来保证其安全是一项非常好的设计方案。到目前为止,ssl之上的协议有http,nntp,smtp,telnet和FTP,另外,国内为的软件厂商也开始用ssl保护自己的专有协议。目前最实用的ssl软件开发包是OpenSSL软件组织提供的openssl开发工具包,用户可以调用其中API实现数据传输的加密解密以及身份识别。Microsoft的IIS服务器也提供了对SSL协议的支持,本文主要介绍在windows 2003 server下的IIS上构建基于SSL的安全信息通道。
我们采用较简单的工作环境:操作系统为Windows 2003 Server;WEB服务器为IIS;CA认证中心采用Windows 2003 Server自带的“证书服务”组件;浏览器为IE5.0(用户在实际应用的时候必须为IE和windows 2003 Server安装补丁,因为它们自身有好多的安全漏洞);配置Windows 2003 Server的DNS服务和Active Directory服务。
1 配置DNS,Active Directory以及CA服务
要建立一个独立根的CA认证服务器需要WINDOWS 2003 SERVER上有DNS和Active Directory服务,所以配置这两项服务必不可少.这两项的配置不是本文的重点,用户只要按照”管理工具”中的”配置服务器”向导操作就可以了.另外为了实验方便,CA认证中心的颁发策略要设置成“始终颁发”。
2 服务器端证书的获得与安装
2.1 如何获得WEB站点数字证书
? 启动web服务器的”Internet信息服务”;在”Internet信息服务”界面中右击要申请数字证书的站点,在弹出的快捷菜单中选择“属性”,出现站点属性对话框。
? 单击属性对话框中的“目录安全性”页标签,然后单击“服务器证书”按纽。
? 出现“IIS证书向导”对话框,按向导提示生成证书请求,以文件形式保存在C:\certreq.txt。
? 生成的certrep.txt中的内容应该是以PKCS#10编码形式保存,将此文件打开后,全部选择然后复制到剪贴板.
? 打开IE浏览器,在地址栏中输入http://CA认证服务器名称/CertSrv;
? 选择”申请证书”,单击”下一步”,然后选择申请类型为”高级申请”,单击”下一步”;
? 使用 base64 编码的 CMC 或 PKCS #10 文件提交 一个证书申请,或使用 base64 编码的 PKCS #7 文件续订证书申请。如下图所示。
? 右击“Base-64 编码的证书申请 (CMC 或 PKCS #10 或 PKCS #7)”右边的编辑框,然后粘贴,并且在证书模板中选择“web服务器”模板,然后提交。
? 由于认证中心的证书办法策略为立即颁发,因此很快CA中心会将证书颁发给你,屏幕上会显示“证书已经发布”,单击”下载CA证书”,保存为”C:\certnew.cer”文件。
2.2 安装WEB站点数字证书
进入到站点属性对话框中,单击“服务器证书“,在”IIS证书向导“对话框中,按提示操作即可安装服务器证书。步骤如下:
? 选择“处理挂起的请求并安装证书”;
? 输入证书文件名时,单击“浏览”,选择C盘下文件certnew.cer,按照向导执行直到完成安装。
2.3 设置“安全通信” 属性
选择网站属性对话框中的“编辑”按纽,选中“申请安全通道”与“申请客户证书”,再单击确定。(如果需要将客户端证书和服务器上的特定帐户联系起来可以选中“启用客户端映射”,如果对客户端证书有更加具体的需求则可以选中“启用证书信任列表”。)
3 客户端证书的获得与安装
客户端如果想通过信息安全通道访问需要安全认证的网站,必须具有此网站信任的CA机构颁发的客户端证书以及CA认证机构的证书链。下面看一下如何申请客户端证书。
3.1 申请客户端证书
? 打开IE浏览器,在地址栏中输入http://CA认证服务器名称/CertSrv然后回车;
? 选择”申请证书”,单击”下一步”,然后选择”用户证书”,单击”下一步”;
? 在如下图页面中,对客户证书作更加详细的定制,然后单击“提交”;
? 服务器根据用户的请求生成一个客户端证书,并且作为一个ActiveX控件嵌入回应的网页里面,用户只要单击“安装此证书”就可以了。
3.2 安装证书链或CRL
CA认证机构的证书链好比是一个证书的路径,浏览器通过这个路径能够找到客户端证书,并且检验用户证书的合法性,因此必须要在客户端安装CA认证机构的证书链。
? 在浏览器中输入http://CA认证服务器名称/CertSrv/default.asp,载入CA认证中心页面,单击“下载一个CA证书,证书链或CRL”
? 选择安装“此证书链”
4 通过安全信息通道访问WEB网站
客户端安装了证书和证书链后,我们就可以访问需要客户端认证的网站了,但是必须保证客户端证书和服务器端证书是同一个CA颁发的。我们在浏览器中输入以下网址https://WEB服务器地址:SSL端口 /index.htm,其中https表示浏览器要通过安全信息通道(即ssl,安全套接层)访问web站点,并且如果服务器的SSL端口不是默认的443端口那么在访问的时候要指明SSL端口。在连接刚建立时浏览器会弹出一个安全警报对话框,这是浏览器在建立SSL通道之前对服务器端证书的分析,用户单击“确定”以后,浏览器把客户端目前已有的用户证书全部列出来(如下图所示),供用户选择,选择正确的证书后单击“确定”,至此安全通道正式建立。
5 为什么通过安全信息通道来访问WEB站点
目前,internet上的绝大部分信息是明文传送的,用户的各种敏感信息通过某些嗅探软件(如snort)都可以轻而易举的得到,网络用户没有办法保护自己的合法权益,网络不能充分发挥其方便快捷安全高效的效能,阻碍了我国电子商务,电子政务的建设,阻碍了B/S系统软件的推广。
我们通过研究国外的各种网络安全解决方案,认为采用最新的SSL(安全套接层)技术来构建安全信息通道是一种在安全性,稳定性,可靠性的方面考虑都很优秀的解决方案。
6 结束语
本文在一种极为简单的网络环境中实现了基于SSL的安全信息通道的构建,IIS这种WEB服务器只能实现128位的加密,这对于有更高安全性的需求的用户是远远不够的。用户可以根据自己的需要选择你的WEB服务器软件以及CA认证软件,目前最实用的是OPENSSL自带的安全认证组件,它能实现更高位数的加密,能满足用户各种安全级别的需求。
参考文献:
[1] William Stallings 著 杨明等译,网络编码学与网络安全:原理与实践,电子工业出版社,2001年10月第二版
[2] Eric Rescorla 著 崔凯译,SSL与TLS,中国电力出版社,2002年10月第一版
How to implement a secure information passageway that based on SSL in IIS
E-mail:Hbkd_xyf@hebust.edu.cn