4.1 实战:使用数字证书确保Web网站数据传输安全
SSL (Secure Socket Layer)
为Netscape所研发,用以保障在Internet上数据传输之安全,利用数据加密(Encryption)技术,可确保数据在网络上之传输过程中不会被截取及窃听。目前一般通用之规格为40 bit之安全标准,美国则已推出128 bit之更高安全标准,但限制出境。只要3.0版本以上之I.E.或Netscape浏览器即可支持SSL。
当前版本为3.0。它已被广泛地用于Web浏览器与服务器之间的身份认证和加密数据传输。SSL协议位于TCP/IP协议与各种应用层协议之间,为数据通讯提供安全支持。SSL协议可分为两层: SSL记录协议(SSL Record Protocol):它建立在可靠的传输协议(如TCP)之上,为高层协议提供数据封装、压缩、加密等基本功能的支持。 SSL握手协议(SSL Handshake Protocol):它建立在SSL记录协议之上,用于在实际的数据传输开始前,通讯双方进行身份认证、协商加密算法、交换加密密钥等。
SSL协议提供的服务主要有:
ü 认证用户和服务器,确保数据发送到正确的客户机和服务器;
ü 加密数据以防止数据中途被窃取;
ü 维护数据的完整性,确保数据在传输过程中不被改变。
SSL协议的工作流程:
服务器认证阶段:
1. 客户端向服务器发送一个开始信息“Hello”以便开始一个新的会话连接;
2. 服务器根据客户的信息确定是否需要生成新的主密钥,如需要则服务器在响应客户的“Hello”信息时将包含生成主密钥所需的信息;
3. 客户根据收到的服务器响应信息,产生一个主密钥,并用服务器的公开密钥加密后传给服务器;
4. 服务器恢复该主密钥,并返回给客户一个用主密钥认证的信息,以此让客户认证服务器。
用户认证阶段:在此之前,服务器已经通过了客户认证,这一阶段主要完成对客户的认证。经认证的服务器发送一个提问给客户,客户则返回(数字)签名后的提问和其公开密钥,从而向服务器提供认证。
从SSL 协议所提供的服务及其工作流程可以看出,SSL协议运行的基础是商家对消费者信息保密的承诺,这就有利于商家而不利于消费者。在电子商务初级阶段,由于运作电子商务的企业大多是信誉较高的大公司,因此这问题还没有充分暴露出来。但随着电子商务的发展,各中小型公司也参与进来,这样在电子支付过程中的单一认证问题就越来越突出。虽然在SSL3.0中通过数字签名和数字证书可实现浏览器和Web服务器双方的身份验证,但是SSL协议仍存在一些问题,比如,只能提供交易中客户与服务器间的双方认证,在涉及多方的电子交易中,SSL协议并不能协调各方间的安全传输和信任关系。在这种情况下,Visa和 MasterCard两大信用卡公共组织制定了SET协议,为网上信用卡支付提供了全球性的标准。
https介绍
HTTPS(Secure Hypertext Transfer Protocol)安全超文本传输协议
它是由Netscape开发并内置于其浏览器中,用于对数据进行压缩和解压操作,并返回网络上传送回的结果。HTTPS实际上应用了Netscape的完全套接字层(SSL)作为HTTP应用层的子层。(HTTPS使用端口443,而不是象HTTP那样使用端口80来和TCP/IP进行通信。)SSL使用40 位关键字作为RC4流加密算法,这对于商业信息的加密是合适的。HTTPS和SSL支持使用X.509数字认证,如果需要的话用户可以确认发送者是谁。。
https是以安全为目标的HTTP通道,简单讲是HTTP的安全版。即HTTP下加入SSL层,https的安全基础是SSL,因此加密的详细内容请看SSL。
它是一个URI scheme(抽象标识符体系),句法类同http:体系。用于安全的HTTP数据传输。https:URL表明它使用了HTTP,但HTTPS存在不同于HTTP的默认端口及一个加密/身份验证层(在HTTP与TCP之间)。这个系统的最初研发由网景公司进行,提供了身份验证与加密通讯方法,现在它被广泛用于万维网上安全敏感的通讯,例如交易支付方面。
限制
它的安全保护依赖浏览器的正确实现以及服务器软件、实际加密算法的支持。
一种常见的误解是“银行用户在线使用https:就能充分彻底保障他们的银行卡号不被偷窃。”实际上,与服务器的加密连接中能保护银行卡号的部分,只有用户到服务器之间的连接及服务器自身。并不能绝对确保服务器自己是安全的,这点甚至已被***者利用,常见例子是模仿银行域名的钓鱼***。少数罕见***在网站传输客户数据时发生,***者尝试窃听数据于传输中。
商业网站被人们期望迅速尽早引入新的特殊处理程序到金融网关,仅保留传输码(transaction number)。不过他们常常存储银行卡号在同一个数据库里。那些数据库和服务器少数情况有可能被未授权用户***和损害。
示例:配置Web站点使用HTTPS通信
实验目的:
ü 在Web服务器上创建配置Web站点
ü 在Web服务器申请Web服务器证书
ü 配置Web服务器使用数字证书
ü 在DNS服务器上配置www.sohu.com域名解析
ü 在客户机访问使用https://www.sohu.com网站
网络拓扑:
实验环境:
ü CAServer安装了Windows Server 2008企业版,安装了独立的证书颁发机构。
ü WebServer安装了Windows Server 2008企业版,安装了IIS服务。
ü DNSServer安装了Windows Server 2008企业版,安装了DNS服务。
ü 在Sales安装了Vista操作系统。
4.1.1 在WebServer安装Web服务和申请Web证书
任务:
ü 安装Web服务
ü 更改本地连接TCP/IP属性使用Internet上的DNS服务器
ü 打开IE浏览器访问www.sohu.com网站
ü 将该网页另存到C:\inetpub\wwwroot目录下
ü 配置默认站点的默认文档使用保存的搜狐网页
ü 申请网站证书
步骤:
5. 在WebServer上,打开服务器管理器,点击“添加角色”。
6. 在开始之前对话框,点击“下一步”。
7. 在出现的选择服务器角色对话框,选中“Web服务器(IIS)”,在出现的是否添加Web服务器(IIS)所需的功能对话框,点击“添加必须的功能”。
8. 在选择服务器角色对话框,选择“Web服务器(IIS)”,点击“下一步”。
9. 在Web服务器(IIS)对话框,点击“下一步”。
10. 在出现的选择角色服务对话框,保持默认选择,点击“下一步”。
11. 在确认安装选择对话框,点击“安装”。
12. 在安装结果对话框,点击“关闭”。
13. 更改本地连接TCP/IP属性,将首选DNS服务器更改为202.99.160.68,这样可以解析搜狐网站的网址。
14. 打开IE浏览器输入www.sohu.com,点击“文件”à “另存为”,将该网页保持到C:\inetpub\wwwroot目录下。
15. 点击“开始”à“程序”à“管理工具”à“Internet 信息服务(IIS)管理器”。
16. 点中“Default Web Site”,点击“默认文档”。
17. 点击“添加”,在出现的添加默认文档对话框,输入保存的搜狐网站网页名称,点击“确定”。
18. 可以看到搜狐网页已经添加到默认文档。
19. 再次点击“Default Web Site”,点击“浏览*80(http)”。
20. 可以看到WebServer默认站点已经使用将搜狐的网页设置为首页了。
21. 点中“WebServer”,点击“服务器证书”。
22. 点击“创建证书申请”。
23. 在出现的可分辨名称属性,在通用名称输入www.sohu.com,注意:该名称一定是用户访问该网站使用的域名,点击“下一步”。
24. 在文件名对话框,点击“…”,输入文件名,点击“完成”。
25. 打开IE浏览器,输入证书颁发机构的网站http://10.7.10.50/certsrv,在打开的网页,点击“申请证书”。
26. 在申请一个证书页面,点击“高级证书申请”。
27. 在高级证书申请页面,点击“使用base64编码的CMC或PKCS#10文件提交一个证书申请,或使用base64编码的PKCS#7文件续订证书申请”。
28. 打开保存的Web服务器证书申请记事本,选择所有内容,复制所有内容。
29. 在提交一个证书申请或续订申请页面,右击图示位置,点击“粘贴”。
30. 将网站申请的内容粘贴到网页,点击“提交”。
31. 出现证书正在挂起页面。独立证书颁发机构需要证书服务管理员颁发证书。
4.1.2 在CAServer上颁发证书
在CAServer上,以管理员身份登录,点击“开始”à“程序”à“管理工具”à“Certification Authority”,打开证书颁发机构管理工具。
点中“挂起的申请”,右击证书,点击“所有任务”à“颁发”。
4.1.3 在WebServer上配置Web站点使用证书
任务:
ü 下载Web证书。
ü 配置网站使用证书
步骤:
32. 在WebServer上,点击“首页”。
33. 返回到证书申请的页面上,点击“查看挂起的证书申请的状态”。
34. 在查看挂起的证书申请的状态页面,点击“保存的申请证书”。
35. 在证书已颁发页面,点击“下载证书”。
36. 在出现的文件下载对话框点击“保存”,将证书保存到本地。
37. 点击“开始”à“程序”à“管理工具”à“Internet 信息服务(IIS)管理器”,打开Internet信息服务管理器。
38. 如图,点中WebServer,点击“服务器证书”。
39. 点击“完成证书申请”。
40. 在出现的指定证书颁发机构相应对话框,点击“…”,浏览到下载的Web证书,输入好记的名称,点击“确定”。
41. 可以看到申请的证书已经和该服务器关联。
42. 点中“Default Web Site”,点击“绑定”,在出现的网站绑定对话框,点击“添加”。
43. 在添加网站绑定对话框,类型选择“https”,SSL证书选择“WebServerKey”,点击“确定”。
44. 可以看到网站绑定已经添加了https类型以及443端口的绑定。
45. 点中“Default Web Site”,点击“SSL设置”。
46. 在SSL设置界面,选中“要求SSL”,选中“需要128为SSL”,点击“应用”。
47. 点中“Default Web Site”,可以看到该网站有两种访问访问方式http和https。
4.1.4 在DNSServer上配置DNS域名解析www.sohu.com
在DNSServer上,打开DNS管理工具,在正向查找区域创建sohu.com区域,在该区域下添加主机www对应的IP地址10.7.10.120,这样通过该DNS服务器能够解析www.sohu.com域名到WebServer的IP地址。
4.1.5 在Sales计算机使用https协议访问Web站点
任务:
ü 测试到www.sohu.com解析到的IP地址
ü 使用http访问www.sohu.com网址
ü 使用https访问www.sohu.com网址,提示网站安全证书有问题
ü 下载证书颁发机构的证书,并添加到受信任根证书颁发机构
ü 再次使用https访问www.sohu.com网址,没有安全提示
ü 使用https访问10.7.10.120,观察安全提示
步骤:
48. 在Sales计算机上,更改本地连接TCP/IP属性,将首选的DNS配置使用10.7.10.200服务器。
49. 打开IE浏览器,输入网址http://www.sohu.com,发现禁止访问。因为该网站已经强制要求SSL。
50. 打开命令行界面,ping www.sohu.com发现能够解析到WebServer服务器的IP地址10.7.10.120。
51. 出现此网站的安全证书有问题页面,网站出具的安全证书不是由受信任的证书颁发机构颁发的。如何信任该证书颁发机构呢?以下操作将会下载CAServer-CA证书颁发机构证书,并添加到受信任的根证书颁发机构。
52. 输入http://10.7.10.50/certsrv访问证书颁发机构网站,点击“下载CA证书、证书链或CRL”。
53. 在出现的CA证书对话框,点击“下载CA证书”。
54. 在出现的文件下载对话框,点击“保存”。
55. 在出现的另存为对话框,点击“保存”。
56. 在下载完毕对话框,点击“打开”。
57. 在出现的Internet Explorer安全对话框,点击“允许”。
58. 在出现的证书对话框,点击“安装证书”。
59. 在出现的欢迎使用证书导入向导对话框,点击“下一步”。
60. 在证书存储对话框,选择“将所有的证书放入下列存储”,点击“浏览”。
61. 在选择证书存储对话框,点中“受信任的根证书颁发机构”,点击“确定”。
62. 在证书存储对话框,点击“下一步”。
63. 在出现的正在完成证书导入向导对话框,点击“完成”。
64. 稍等一会儿,就会出现安全性警告,点击“是”。到目前位置该用户已经信任CAServer-CA证书颁发机构了。
65. 右击桌面上IE图标,点击“属性”。在出现的Internet属性对话框的内容标签下,点击“证书”。
66. 在出现的证书对话框的受信任的根证书颁发机构标签下,可以看到已经存在了证书颁发机构CAServer-CA的证书。
67. 在次打开IE浏览器,使用https://www.sohu.com访问,能够正常访问,在命令行下输入netstat -n 可以看到使用443端口和Web服务器建立会话。
68. 如图输入https://10.7.10.120访问WebServer的网站。出现安全警告页面,此网站的安全证书有问题,这是因为该网站的证书申请时输入的通用名称是www.sohu.com而不是10.7.10.120。
微软最有价值专家(MVP)从业12年录制500小时16G视频教程 课程网址 http://www.91xueit.com
视频教程网址 http://www.91xueit.com