首页 理论教育 深入了解SSL协议:保障网络安全的关键

深入了解SSL协议:保障网络安全的关键

更新时间:2025-01-07 工作计划 版权反馈
【摘要】:本任务涉及SSL协议的加密和认证算法、SSL协议的分析及应用等知识点。SSL协议保障了Internet上Web浏览器和服务器的标准安全性措施,该协议提供用于启动TCP/IP连接的安全性“信号交换”。SSL协议通过数字签名和数字证书,实现浏览器和Web服务器双方的身份验证。SSL协议独立于应用层协议,因此,在电子交易中被用来安全传送信用卡号码。从目前实际使用的情况看,SSL协议是人们最信赖的协议。

【任务描述】

在Web服务器上设置SSL协议,完成证书的发放,安装证书,然后在Web服务器上配置SSL协议,最后使用HTTPS协议访问网站以验证结果。

【任务分析】

本任务涉及SSL协议的加密和认证算法、SSL协议的分析及应用等知识点。

【知识准备】

1.SSL协议概述

1)SSL协议的概念

HTTP协议存在3个安全性问题:通信内容可能被窃听、通信内容可能被篡改、通信对象可能被冒充。20世纪90年代中期,网景(Netscape)公司为了解决HTTP协议明文传送的安全性问题,设计了SSL协议。

SSL协议是网景公司推出的一个安全通信协议,是在网络传输层之上提供的一种基于RSA和保密密钥的用于浏览器和Web服务器之间的安全通信连接技术。微软公司和网景公司的浏览器都支持SSL协议,很多Web服务器也支持SSL协议。SSL协议使用的RSA数字签名算法可以支持X.509证书和多种保密密钥加密算法,比如DES和TripleDES。

SSL协议保障了Internet上Web浏览器和服务器的标准安全性措施,该协议提供用于启动TCP/IP连接的安全性“信号交换”。这种信号交换导致客户和服务器同意将使用的安全性级别,并履行连接的任何身份验证要求。SSL协议通过数字签名和数字证书,实现浏览器和Web服务器双方的身份验证。

SSL协议是由网景公司设计的一种开放协议,它指定了一种在应用程序协议(HTTP、TELNET、NNTP、FTP)和TCP/IP之间提供数据安全性分层的机制。它为TCP/IP连接提供数据加密、服务器认证、消息完整性以及可选的客户机认证。

2)SSL协议的作用

SSL协议的主要目的是在两个通信应用程序之间提供私密性和可靠性保障,如图5-1所示。

图5-1 SSL协议

SSL协议主要用于浏览器和服务器之间相互认证和传输加密数据,此时浏览器和服务器在应用层的通信将采用S-HTTP协议(安全超文本传输协议),S-HTTP链接的网址以“https://”开头,而不是“http://”。

2.SSL协议的过程

SSL协议由警告协议、握手协议、密码规范改变协议和记录协议组成[1],如图5-2所示。

图5-2 SSL协议的组成

记录协议用于在客户机和服务器之间交换应用数据;警告协议用来为对等实体传递SSL协议的相关警告,标示在什么时候发生了错误或两个主机之间的会话在什么时候终止;握手协议用于产生会话状态的密码参数,允许服务器和客户机相互验证、协商加密,保护在SSL记录中传送的数据。

SSL协议的思想是基于传输控制层协议(TCP)建立的一个安全的网络连接层,就是应用层和传输层之间多了一个安全套接层,应用层的数据先递送给安全套接层,安全套接层对应用层的数据进行分段、压缩,添加消息认证码和加密之后,再往下递送给传输层进行传送。同样,传输层把接收到的数据先传给安全套接层,由安全套接层解密,验证消息的完整性,解压并且组装之后再传给应用层。

SSL协议位于应用层和传输层之间,它可以为任何基于TCP等可靠连接的应用层协议提供安全性保证,如图5-3所示。

图5-3 SSL协议位于应用层和传输层之间

SSL握手协议描述建立安全连接的过程,在客户和服务器传送应用层数据之前,完成诸如加密算法和会话密钥的确定、通信双方的身份验证等。

SSL记录协议定义了数据传送的格式,上层数据,包括SSL握手协议建立安全连接时所需传送数据,都通过SSL记录协议再往下层传送,这样,应用层通过SSL协议把数据传送给传输层时,已是被加密的数据,此时,TCP/IP协议只需要负责将其可靠地传送到目的地,弥补了TCP/IP协议安全性差的弱点。

SSL协议在应用层收发数据前,协商加密算法、连接密钥并认证通信双方,从而为应用层提供了安全的传输通道;在该通道上可透明加载任何高层应用协议(如HTTP、FTP、TELNET等)以保证应用层数据传输的安全性。SSL协议独立于应用层协议,因此,在电子交易中被用来安全传送信用卡号码。

我国目前有多家银行采用SSL协议,如在电子商务系统中完成实时支付时,招商银行“一网通”采用的就是SSL协议。从目前实际使用的情况看,SSL协议是人们最信赖的协议。

SSL协议当初并不是为支持电子商务而设计的,所以在电子商务系统的应用中还存在很多弊端。它是一个面向连接的协议,在涉及多方的电子交易中,只能提供交易中客户与服务器间的双方认证,而电子商务往往是用户、网站、银行三家协作完成的,SSL协议并不能协调各方间的安全传输和信任关系;还有,购货时用户要输入通信地址,这样将可能使用户收到大量垃圾信件。

3.SSL协议在电子商务中的具体应用

在SSL协议中,可采用公钥和私钥两种方法进行加密。SSL协议采用数字证书进行双端实体认证,使用非对称加密算法进行密钥协商,用对称加密算法将数据加密后进行传输以保证数据的保密性,并通过计算数字摘要来验证数据在传输过程中是否被篡改和伪造,从而为敏感数据在Internet上的传输提供了一种安全保障手段,如图5-4所示。

图5-4 SSL协议在电子商务中的具体应用

1)SSL协议的工作流程

SSL握手协议包括4个阶段:第一个阶段为建立安全能力;第二个阶段为服务器鉴别和密钥交换;第三个阶段为客户鉴别和密钥交换;第四个阶段为完成握手协议。

2)经典案例——阿里巴巴的支付宝安全

阿里巴巴成功地缔造了网上贸易市场,引领电子商务发展,阿里巴巴已经成为全球最大的网上贸易市场。支付宝网站是阿里巴巴旗下的公司,是国内先进的网上支付平台,致力于为网上交易用户提供优质的安全支付服务,其运作的实质是以支付宝为信用中介,在买家确认收到商品前,由支付宝替买卖双方暂时保管货款的一种增值服务。

随着支付宝业务的发展,其安全性变得越来越重要。早期的支付宝采用单向SSL认证方式,解决了支付宝网站的真实性和防止网络窃取等安全需求,但没有真正解决对支付宝用户的身份认证,非法用户仍然可以通过各种途径,盗取和猜测用户登录所用的E-mail地址和登录密码。

支付宝为了解决安全隐患,决定采取成熟的客户端和服务器端双向SSL认证方式,在支付宝单向SSL认证的基础上,增加客户端数字证书认证方式,用户登录支付宝账户时通过数字证书来认证用户身份,以便在所有引起账户变动和交易状态变化的关键的业务点上实现SSL的双向认证,按照系统的可扩充原则,在今后增加数字签名功能时,保证现有CA系统能够很好地满足需求,方便灵活地进行扩充。

支付宝CA系统能够签发满足电子签名法要求的用户证书,为阿里巴巴和支付宝提供了更多的扩展应用功能,包括电子签名证据保全服务功能和有法可依的诚信体系建设服务功能等。

【任务实施】

1.通过SSL协议在W eb服务器上启用安全通信通道

为了使用户访问Web站点时可以使用HTTPS方式浏览网页,可以通过SSL协议在Web服务器上启用安全通信通道以实现高安全性。证书服务必须建立在安装IIS服务的基础上。

1)步骤一:安装IIS服务

(1)支持Web注册需先安装IIS服务,然后再安装证书服务。打开系统的“控制面板”,选择“添加或删除程序”选项;

(2)选择“添加/删除Windows组件”→“Windows组件向导”选项;

(3)在组件下,找到并选择“应用程序服务器”→“详细信息”选项;

(4)在“应用程序服务器的自组件”对话框中,勾选“Internet信息服务(IIS)”及“启用网络COM+访问”选项并单击“确定”按钮,最后单击“下一步”→“完成”按钮即可,至此IIS服务安装成功。

2)步骤二:配置Web服务器

(1)在“开始”菜单中选择“管理工具”→“Internet信息服务(IIS)管理器”选项;

(2)在“Internet信息服务(IIS)管理器”中双击“本地计算机”图标;

(3)用鼠标右键单击“网站”图标,在弹出的菜单中选择“新建网站”选项,弹出“网站创建向导”对话框;

(4)依次填写“网站描述”“IP地址”“端口号”“路径”和“网站访问权限”等。最后,为了便于方便访问,还应设置默认文档(“Index.asp”“Index.htm”)。

3)步骤三:安装证书服务

(1)进入“添加/删除Windows组件”界面,在组件下找到并单击“证书服务”选项;

(2)单击“下一步”按钮,选择“企业根CA”选项;

(3)单击“下一步”按钮,在“此CA的公用名称”文本框中输入一个公用名称;

(4)单击“下一步”→“完成”按钮即可。

4)步骤四:生成证书申请

(1)在“开始”菜单中选择“管理工具”→“Internet信息服务(IIS)管理器”选项;

(2)在“Internet信息服务(IIS)管理器”中双击“本地计算机”图标;

(3)用鼠标右键选择“默认网站”→“属性”选项;

(4)在“默认网站属性”对话框中选择“目录安全性”选项;

(5)选择“安全通行”→“服务器证书”选项,出现服务器证书向导框;(www.xing528.com)

(6)单击“下一步”按钮,出现IIS向导,选择“新建证书”选项;

(7)单击“下一步”→“现在准备申请,但稍后发送”→“下一步”按钮;

(8)在“名称”文本框中输入证书的描述性名称后,单击“下一步”按钮;

(9)输入单位、部门信息,单击“下一步”按钮;

(10)在“公用名”字段中,输入站点公用名,然后单击“下一步”按钮;

[说明:公用名是证书最重要的信息之一,它是Web站点的DNS名称(即用户在浏览站点时输入的名称)。如果证书名称与站点名称不匹配,当用户浏览到网站时,将会报告证书问题。例如,如果网站在Web上并且被命名为“www.contoso.com”,这就是应当指定的公用名。如果网站是内部站点,并且用户是通过计算机名称浏览的,请输入计算机的Net-BIOS或DNS名称。]

(11)在“国家/地区”“州/省”和“城市/县市”等字段中输入正确的信息后,单击“下一步”按钮;

(12)输入证书申请文件名;

(该文件包含类似下面这样的信息:

这是证书申请的Base 64编码表示形式。申请中包含输入到向导中的信息,还包括用公钥和私钥签名的信息。将此申请文件发送到CA机构,然后CA机构会使用证书申请中的公钥信息验证用自己的私钥签名的信息。CA机构也验证申请中提供的信息。当将申请提交到CA机构后,CA机构将在一个文件中发回证书,然后应当重新启动Web服务器证书向导。)

(13)单击“下一步”按钮,该向导显示证书申请中包含的信息概要;

(14)单击“下一步”按钮,然后单击“完成”按钮完成申请过程。

现在可以将证书申请发送到CA机构进行验证和处理。当从CA机构收到证书响应以后,可以再次使用IIS证书向导,在Web服务器上继续安装证书。

5)步骤五:提交证书申请

(1)使用“记事本”程序打开上述操作步骤中生成的证书文件,将它的整个内容复制到剪贴板;

(2)启动IE浏览器,导航到“http://07-936F992F37A2/CertSrv”,其中hostname是运行Microsoft证书服务的计算机的名称,输入用户和密码;

(3)单击“申请一个证书”→“下一步”按钮;

(4)在“选择申请类型”页面中,单击“高级申请”→“下一步”按钮;

(5)单击使用Base 64编码的CMC或PKCS#10文件提交一个证书申请,或单击使用Base 64编码的PKCS#7文件续订证书申请;

(6)在保存的文本框里粘贴复制的证书文件内容;

(7)在“证书模板”组合框中,单击“Web服务器”→“提交”按钮;

(8)单击“Base 64编码”→“下载证书”按钮;

(9)保存证书,关闭IE浏览器。

6)步骤六:在Web服务器上安装证书

(1)在“开始”菜单中选择“管理工具”→“Internet信息服务(IIS)管理器”选项;

(2)在“Internet信息服务(IIS)管理器”中双击“本地计算机”图标;

(3)用鼠标右键选择“默认网站”→“属性”选项;

(4)在“默认网站属性”对话框中选择“目录安全性”选项;

(5)选择“安全通行”→“服务器证书”选项,出现服务器证书向导框;

(6)单击“下一步”按钮,出现IIS向导,选择“处理挂起的请求并安装证书”选项,然后单击“下一步”按钮;

(7)输入包含CA响应的文件的路径和文件名,单击“下一步”按钮;

(8)保持默认端口为443,单击“下一步”按钮;

(9)显示证书信息,单击“下一步”按钮,完成。

7)步骤七:Web服务器启动SSL协议

(1)在“开始”菜单中选择“管理工具”→“Internet信息服务(IIS)管理器”选项;

(2)在“Internet信息服务(IIS)管理器”中双击“本地计算机”图标;

(3)用鼠标右键选择“默认网站”→“属性”选项;

(4)在“默认网站属性”对话框中选择“目录安全性”选项;

(5)单击“安全通信”→“编辑”按钮;

(6)勾选“要求安全通道SSL”选项,单击“确定”按钮,完成。

8)总结

对于步骤四的(9)需注意:这些信息将放在证书申请中,因此应确保它的正确性。CA机构将验证这些信息并将其放在证书中。浏览Web站点的用户需要查看这些信息,以便决定他们是否接受证书。

在网站设置中,此时的Web服务还仅适用于静态内容,即静态网页能正常浏览,常用Active Server Pages(ASP)功能没有被启用,所以还应选择“Internet信息服务(IIS)管理器”→“Web服务扩展”→“Active Server Pages”选项。

还须注意:如果客户端访问Web服务器时没有证书,可以在服务器地址“http://locahost/certsrv/”处申请一个“浏览器的证书”,然后颁发下载并安装就可以使用了。

另外,如果Web服务主目录所在分区是NTFS格式,而ASP网页有写入操作时(如用到新闻后台管理功能的),需设置写入修改权限。

2.了解SSL协议的组成

SSL协议是网景公司提出的基于Web应用的安全协议,其是在Internet的基础上提供的一种保证机密性的安全协议。它能使客户端/服务器应用之间的通信不被攻击者窃听,并且始终对服务器进行认证,还可选择对客户端进行认证。

SSL协议是国际上最早应用于电子商务的一种网络安全协议,主要用于提高应用程序之间数据的安全性。它同时使用对称加密算法和非对称加密算法,前者在速度上比后者快很多,但是后者可以实现更好的安全认证。一个SSL传输过程首先需要握手:用非对称加密算法使服务器在客户端得到认证,以后就可以使用双方商议成功的对称密钥更快速地加密、解密数据。

SSL协议要求建立在可靠的传输层协议(例如TCP协议)之上。SSL协议的优势在于它与应用层协议独立无关。高层的应用层协议(例如HTTP协议、FTP协议)能透明地建立于SSL协议之上。SSL协议在应用层协议通信之前就已经完成加密算法、通信密钥的协商以及服务器认证工作。应用层协议所传送的数据都会被加密,从而保证通信的机密性。对于电子商务应用来说,使用SSL协议可保证信息的真实性、完整性和保密性。

1)SSL记录协议

在SSL协议中,所有的传输数据都被封装在记录中。所有的SSL通信,包括握手消息、安全空白记录和应用数据都使用SSL记录协议。SSL记录协议允许服务器和客户端相互认证并协商加密算法和密钥,对所有发送和接收的数据进行分段、压缩、认证、加密和完整性服务。

2)SSL握手协议

SSL握手协议用于在通信双方之间建立安全传输通道。握手过程一般分为4个阶段:

(1)初始化逻辑连接。客户端先发出ClientHello消息,服务器返回一个ServerHello消息,这两个消息用来协商双方的安全能力,包括协议版本、对称加密算法、压缩算法等。

(2)服务器发送数字证书(包含服务器的公钥等)和会话密钥。如果服务器要求认证客户端,则要发送CertificateRequest消息。最后服务器发送ServerHelloDone消息,表示Hello阶段结束,服务器等待客户端的响应。

(3)如果服务器要求认证客户端,则客户端先发送Certificate消息,然后产生会话密钥,并用服务器的公钥加密,封装在ClientKeyExchange消息中,如果客户端发送了自己的数字证书,则再发送一个数字签名CertificateVerify来对数字证书进行校验。

(4)客户端发送一个ChangeCipherspec消息,通知服务器以后发送的消息将采用先前协商好的安全参数加密,最后再发送一个加密后的Finished消息。服务器在收到上述两个消息后,也发送自己的ChangeCipherspec消息和Finished消息。

至此,握手全部完成,双方可以开始传输应用数据。

3)SSL协议提供的功能及其局限性

SSL协议使用加密的办法建立一个安全的传输通道,它可提供以下3种基本的安全服务功能:

(1)信息加密。客户端和服务器之间所有的应用数据都使用在SSL握手过程中建立的密钥和算法进行加密。这样就防止了某些用户通过使用IP Packet Sniffer等工具进行非法窃听或者破解。

(2)信息完整。SSL协议提供完整信息服务,以建立客户端与服务器之间的安全通道,使所有经过SSL协议处理的业务能全部准确无误地到达目的地。

(3)相互认证。客户端和服务器都有各自的识别号,这些识别号由公钥进行编号。为了认证用户是否合法,SSL协议要求在握手交换数据前进行数字认证,以确保用户的合法性。

SSL协议的局限性:首先,客户的信息先到商家,让商家阅读,这样,客户资料的安全性得不到保证;其次,SSL协议只能保证资料信息传递的安全,而无法保证传递过程中的截取。所以,SSL协议并没有实现电子支付所要求的保密性、完整性,而且多方互相认证也是很困难的。此外,SSL协议最大的弱点是不能做数字签名,因此不支持不可否认性。另外,它不能对商家进行认证,不能防止网上欺诈行为。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈