前言
为了帮助同学们完成痛苦的实验课程设计,本作者将其作出的实验结果及代码贴至CSDN中,供同学们学习参考。如有不足或描述不完善之处,敬请各位指出,欢迎各位的斧正!
一、实验目的
- 通过实验深入了解 SSL 的工作原理,熟练掌握 Windows 2000/2003 Server 环境下 CA系统和 SSL 连接的配置和使用方法。
- 给 IIS 配置 SSL,给指定 Web 站点利用 SSL 加密 HTTP 通道。
二、实验原理
由于 Web 上有时要传输重要或敏感的数据,因此 Netscape 公司在推出 Web 浏览器首版的同时,提出了安全通信协议 SSL(Secure Socket Layer),目前已有 2.0 和 3.0 版本。SSL 采用公开密钥技术。其目标是保证两个应用间通信的保密性和可靠性,可在服务器和客户机两端同时实现支持。目前,利用公开密钥技术的 SSL 协议,并已成为 Internet 上保密通讯的工业标准。SSL 提供使用 TCP/IP 的通信应用程序间的隐私与完整性。因特网的超文本传输协议(HTTP)使用 SSL 来实现安全的通信。
在客户端与服务器间传输的数据是通过使用对称算法(如 DES 或 RC4)进行加密的。公用密钥算法(通常为 RSA)是用来获得加密密钥交换和数字签名的,此算法使用服务器的 SSL 数字证书中的公用密钥。有了服务器的 SSL 数字证书,客户端也可以验证服务器的身份。SSL 协议的版本 1 和 2 只提供服务器认证。版本 3 添加了客户端认证,此认证同时需要客户端和服务器的数字证书。
SSL 连接总是由客户端启动的。在 SSL 会话开始时执行 SSL 握手。此握手产生会话的密码参数。关于如何处理 SSL 握手的简单概述,如下图 5.59 所示。此示例假设已在 Web 浏览器和 Web 服务器间建立了 SSL 连接。
图 4.59 SSL 的客户端与服务器端的认证握手
如图 4.59 所示,SSL 的客户端与服务器端的认证握手的详细步骤如下:
(1)客户端发送列出客户端密码能力的客户端“您好”消息(以客户端首选项顺序排序),如 SSL 的版本、客户端支持的密码对和客户端支持的数据压缩方法。消息也包含 28 字节的随机数。
(2)服务器以服务器“您好”消息响应,此消息包含密码方法(密码对)和由服务器选择的数据压缩方法,以及会话标识和另一个随机数。
注意:客户端和服务器至少必须支持一个公共密码对,否则握手失败。服务器一般选择最大的公共密码对。
(3) 服务器发送其 SSL 数字证书。(服务器使用带有 SSL 的 X.509 V3 数字证书)如果服务器使用 SSL V3,而服务器应用程序(如 Web 服务器)需要数字证书进行客户端认证,则客户端会发出“数字证书请求”消息。在“数字证书请求”消息中,服务器发出支持的客户端数字证书类型的列表和可接受的 CA 的名称。
(4)服务器发出服务器“您好完成”消息并等待客户端响应。
(5)一旦接到服务器“您好完成”消息,客户端(Web 浏览器)将验证服务器的 SSL 数字证书的有效性并检查服务器的“您好”消息参数是否可以接受。
如果服务器请求客户端数字证书,客户端将发送其数字证书;或者,如果没有合适的数字证书是可用的,客户端将发送“没有数字证书”警告。此警告仅仅是警告而已,但如果客户端数字证书认证是强制性的话,服务器应用程序将会使会话失败。
(6)客户端发送“客户端密钥交换”消息。此消息包含 pre-master secret(一个用在对称加密密钥生成中的 46 字节的随机数字),和消息认证代码(MAC)密钥(用服务器的公用密钥加密的)。
如果客户端发送客户端数字证书给服务器,客户端将发出签有客户端的专用密钥的“数字证书验证”消息。通过验证此消息的签名,服务器可以显示验证客户端数字证书的所有权。
注意:如果服务器没有属于数字证书的专用密钥,它将无法解密 pre-master 密码,也无法创建对称加密算法的正确密钥,且握手将失败。
(7)客户端使用一系列加密运算将 pre-master secret 转化为 master secret ,其中将派生出所有用于加密和消息认证的密钥。然后,客户端发出“更改密码规范”消息将服务器转换为新协商的密码对。客户端发出的下一个消息(“未完成”的消息)为用此密码方法和密钥加密的第一条消息。
(8)服务器以自己的“更改密码规范”和“已完成”消息响应。
(9)SSL 握手结束,且可以发送加密的应用程序数据。
三、实验环境
- 装有 Windows 2000/2003 Server 操作系统的 PC 服务器一台。
- 装有 Windows 2000/XP(含 IE 浏览器)的 PC 客服机若干台。
- 服务器与 PC 客服机通过 HUB 或交换机连接成局域网。
四、实验内容
任务一:Windows 环境下独立根 CA 的安装和使用
1.独立根 CA 的安装
(1)单击“开始”按钮,选择“设置”→“控制面板”→“添加/删除程序”,在弹出的窗口中选择“添加/删除 Windows 组件”。在弹出的窗口中,选择“证书服务”,单击“下一步”按钮开始安装。
(2)在弹出的配置窗口中,选择“独立根 CA”,并单击“下一步”按钮。依次填入CA 的名称、单位、部门、城市、电子邮件、描述、有效期限,单击“下一步”按钮。在弹出的窗口中填入数据的存放位置,单击“下一步”按钮。这样会停止本机在 Internet 上运行的信息服务,即完成了证书安装。证书安装后,Internet 上运行的信息服务会自动开启。
(3)单击“开始”按钮,选择“程序”→“管理工具”,此时可在该菜单中找到“证书颁发机构”,说明 CA 的安装已经完成。
2.通过 Web 页面申请证书
(1)在局域网另一台计算机中打开 IE,在地址栏中输入 http://根 CA 的 IP/certsrv,在出现的页面中选中“申请证书”,并单击“下一步”按钮,从 CA 申请证书。
(2)在弹出的页面中选中“用户证书申请”中的“Web 浏览器证书”,即该证书用于获得基于 SSL 协议的 Web 页面的访问权限。
(3)在弹出的窗口中填写用户的身份信息,完成后单击“提交”按钮。出现提示信息后单击“是”按钮,弹出证书挂起页面,表示服务器已经收到证书申请,需要进行处理后才能反馈。表示证书申请已经完成,等待根 CA 发布该证书。
3.证书发布
(1)在根 CA 所在的计算机上,单击“开始”按钮,选择“程序”→“管理工具”→“证书颁发机构”。在弹出的窗口左侧的菜单目录中选择“待定申请”,上一步中申请的证书出现在窗口右侧。
(2)在证书上单击鼠标右键,选择“所有任务”→“颁发”,进行证书颁发。
(3)证书颁发后将从“待定申请”转入到“颁发的证书”文件夹中,表示证书颁发完成。
4.证书的下载安装
(1)在申请证书的计算机上打开 IE 浏览器,在地址栏中输入 http://根 CA 的 IP/certsrv,进入证书申请页面。选择“检查挂起的证书”,看看 CA 是否颁发了证书。
(2)在弹出的页面中选择已经提交的证书申请,单击“下一步”按钮。
(3)如果颁发机构已将证书颁发,将弹出证书发布页面。
(4)单击“安装此证书”,弹出系统提示,这是由于没有下载安装 CA 系统的根证书,在(6)中将安装 CA 的根证书。
(5)在这里先单击“是”按钮,完成证书的安装。
(6)由于没有下载安装 CA 的根证书,所以无法验证此 CA 所颁发的证书是否可信任。为此需要安装 CA 系统的根证书,在地址栏输入 http://根 CA 的 IP/certsrv,进入证书申请页面。选择“检索 CA 证书或证书吊销列表”在弹出的窗口中单击“下载 CA 证书”。在弹出的文件下载对话框中选择恰当的保存路径,将证书保存在本地。
任务二:配置基于 Web 的 SSL 连接
1.为 Web 服务器申请证书
(1)单击“开始”按钮,选择“程序”→“管理工具”→“Internet 服务管理器”,在弹出的窗口左侧菜单中右击“默认 Web 站点”,选择“属性”。
(2)在弹出的窗口中选择“目录安全性”菜单,单击“安全通信”中的“服务器证书”。
(3)在出现的欢迎使用 Web 服务器证书向导中,单击“下一步”按钮,选中“创建一个新证书”,单击“下一步”按钮。
(4)在弹出的窗口中输入证书的名称,单击“下一步”按钮。
2.提交 Web 服务器证书
(1)在服务器所在的计算机上打开 IE浏览器,在地址栏中输入 http://根CA的 IP/certsrv,在出现的页面中选中“申请证书”,并单击“下一步”按钮。
(2)在弹出的页面中选中“高级申请”,并单击“下一步”按钮,高级申请可以由用户导入请求证书文件。
(3)在弹出的页面中选中“Base64 编码方式”,并单击“下一步”按钮。
(4)单击“浏览”,找到证书请求文件,并把它插入到“证书申请”框内,单击“提交”按钮。弹出提交成功页面。
3.服务器证书的颁布和安装实现步骤和任务一中的 3、4 相同。
4.客户端证书的申请、颁发和安装实现步骤和任务一中的 2、3、4 相同。
6.在服务器上配置 SSL
(1)单击“开始”按钮,选择“程序”→“管理工具”→“Internet 服务器”。在弹出的窗口左侧菜单中右击“默认 Web 站点”,选择“属性”。
(2)在弹出的窗口中选择“目录安全性”,选择“安全通信”中的“查看证书”项,查看已安装的证书。
6.在服务器上配置 SSL
(1)单击“开始”按钮,选择“程序”→“管理工具”→“Internet 服务器”。在弹出的窗口左侧菜单中右击“默认 Web 站点”,选择“属性”。
(2)在弹出的窗口中选择“目录安全性”,选择“安全通信”中的“查看证书”项,查看已安装的证书。
(3)单击“确定”按钮后返回到“目录安全性”,选择“安全通信”中的“编辑”项,在弹出的窗口中选择“申请安全信道(SSL)”,并在“客户证书”栏中选择“接收客户证书”,单击“确定”按钮。
(4)返回到“目录安全性”面板,单击“应用”按钮及“确定”按钮,完成配置。
7.客户端通过 SSL 与服务器建立连接
(1)打开 Sniffer 的数据包监测窗口。
(2)在客户端计算机上打开IE浏览器,若仍在地址栏中输入http://<根CA的IP>/certsrv,则显示“该网页必须通过安全频道查看”,要求采用 HTTPS(安全的 HTTP)协议连接服务器端。
(3)输入 https://<根 CA 的 IP>/certsrv,单击提示窗口中的“确定”按钮,弹出证书选择窗口。
(4)再用 Sniffer 监测数据包,查看结果。
任务三:给指定 Web 站点利用 SSL 加密 HTTP 通道
(1)在 Windows 2003 Server 桌面上选择“开始”|“设置”|“控制面板”命令,在出现的“控制面板”窗口中,单击“添加/删除Windows组件”图标,出现“Windows 组件向导”对话框,如图 4.60 所示。选择“证书服务”复选框(这个服务在默认安装中没有被安装),单击“下一步”按钮(需要安装光盘来安装)。出现“证书颁发机构类型”对话框。
(2)选择“独立根 CA”类型(如图 4.61 所示),单击“下一步”按钮,给本机的 CA取一个名字来完成安装(其余的步骤可参考“实验 2 安装和配置证书服务”)。
图 4.60 “Windows 组件”安装向导
图 4.61 “证书颁发机构类型”
(3)安装完成后,启动 IIS 管理器来申请一个数字证书,启动 Internet 管理器选择需要配置的 Web 站点,www.isfocus.net。出现“www.isfocus.net 属性”对话框,如图 4.62 所示。
(4)在“www.isfocus.net 属性”对话相中,选择“目录安全性”标签页,在“安全通信”这选项中,单击“服务器证书”按钮,出现“IIS 证书向导”对话框,如图 4.63 所示。
图 4.62 “www.isfocus.net 属性”标签页
(5)要通过“Web 服务器证书向导”申请 Web 证书,需选择“创建一个新证书”单选按钮,单击“下一步”按钮。在以后的几步中,根据系统的提示填写相关信息,最后将填写的相关信息保存到一个文本文件中。
(6)启动 IE 浏览器,上地址栏中输入证书颁发机构的地址,如 http://127.0.0.1/certsrv/。按照“申请证书→高级申请→使用 Base64 编码的 PKCS#10 文件提交一个证书申请”的顺序执行,在“提交一个保存的申请”网页中,将保存的文本文件内容复制到“Base64 编码证书申请”栏中,从而完成提交。
(7)启动“证书颁发机构”,颁发待定申请的证书。成功以后,在“颁发的证书’”里找到刚才颁发的证书,双击其属性栏,打开“证书”对话框,然后在“详细信息”标签页里选择将证书复制到文件。
(8)启动“证书导出向导”,在“导出文件格式”对话框中选择“DER 编码二进制 X.509(D)”做为示范,我们保存为 sql.cer 文件。
(9)重新回到 IIS 的 Web 管理界面选择证书申请,启动“IIS 证书向导”,这个时候显示的界面就是挂起的证书请求了。选择我们导出的 sql.cer 文件,如图 4.64 所示,图 4.65 显示了证书的有关信息。
图 4.64 选择导出的文件
图 4.65 证书摘要信息
(10)确定一切信息正确以后,就可以单击“下一步”按钮来完成 SSL 的安装了。在“安全通信”对话框中,选择“申请安全通道”复选框,如图 4.66 所示。
图 4.66 选中“申请安全通道”复选框
(11)默认安装结束后,SSL 并没有启动,需要自己给站点 SSL 指定加密通道,并且确定 HTTPS 使用的端口。参考图 4.67,在“Web 站点”标签页中将 SSL 端口设置为 443。
(12)第一次通过 HTTPS 进入站点的时候,会有一个对话框让我们确认是否同意当前证书。
完成操作后,在登录某网络时,所有在网上的信息都是以加密的方式来传送的,任何人都无法再轻易了解其中的内容。
使用加密的 SSL 通道的 Web 会比普通的没有加密的 Web 浏览的时候慢一点,主要是因为加密的通道额外还要占用一点 CPU 的资源,对于那些没有任何秘密可言的 Web 站点,不需要用加密的 SSL 通道。只有对那些重要的目录和站点才有这个必要性。
五、思考题
- 利用协议分析工具(如 Sniffer)对 SSL 协议数据进行分析,指出其优缺点。
答:
优点:确保信息数据的安全。提高网站真实性。提升网站品牌形象。有助于网站SEO优化。
缺点:证书价格不菲。技术门槛比较高。HTTPS页面中不能引用其它非安全外部资源。Https网站配置CDN会比较麻烦。Https后期维护比较麻烦。 - 请从多个方面比较 SET(电子交易协议)与 SSL 两个协议。
答:1、两种都是应用于电子商务用的网络安全协议。都能保证交易数据的安全性、保密性和完整性。
2、SSL叫安全套接层协议,是国际上最早用的,已成工业标准,但它的基点是商家对客户信息保密的承诺,因此有利于商家而不利于客户。
4、SET叫安全电子交易协议,是为了在互联网上进行在线交易时保证信用卡支付的安全而设立的一个开放的规范。因它的对象包括消费者、商家、发卡银行、收单银行、支付网关、认证中心,所以对消费者与商家同样有利。
5、SET对商家提供了保护自己的手段,使商家免受欺诈的困扰;对消费者而言,SET保证了商家的合法性,并且用户的信用卡号不会被窃取;银行和发卡机构以及各种信用卡组织非常喜爱SET,因为信用卡网上支付具有更低的欺骗概率。
6、SET对于参与交易的各方定义了互操作接口,一个系统可以由不同厂商的产品构筑。