SSL协议的安全性及其分析

时间:2022-10-18 09:42:44

SSL协议的安全性及其分析

摘要:SSL(Secure Sockets Layer安全套接层)是保护网络通信数据安全及其完整性的一种网络安全协议。这种协议已经在互联网上获得了广泛的应用。该文对SSL协议工作原理、流程进行介绍,并对其安全性作出分析,讨论其所存在的问题且提出相应的措施。

关键词:SSL协议;安全套接层;安全性

中图分类号:TP393文献标识码:A文章编号:1009-3044(2012)12-2726-03

当前,互联网技术的不断更新和发展,给我们的生活带来了很多便利。但与此同时也带来了很多网络信息安全性的威胁。随着信息网络的发展,信息安全越来越引起人们的关注。如当今流行的电子商务、电子政务、电子邮件等,除了其业务本身,人们更加关心的是其安全性。这样我们需要保证信息的保密性、完整性,通信双方的认证等,这正是过去网络所缺乏。这就有了安全套接层(Security Socket Layer Protocol,简称SSL协议)。它是现在互联网上保证信息安全传输的一种网络协议。

1概述

SSL是由Netscape公司设计的一种开放性协议,利用数据加密技术,保证数据在公开网络中传输不被截取及窃听修改,以保障互联网信息的安全传输。SSL协议是介于传输层和应用层之间的,为应用层提供数据保密服务。其优势在于它与应用层协议独立无关。这样SSL协议可以透明的为应用层协议提供服务。应用层协议在通信之前,SSL协议就将传输的数据加密、完成通信密钥的协商,以及服务器认证工作等。之后,应用层所传输的数据都是被加密的,从而保证通信的安全性。SSL协议目前已经有2.0和3.0版本。现在它已被广泛地用于Web浏览器与服务器之间的身份认证和加密数据传输。

SSL协议提供的安全信道有以下三个特性。

1)私密性:从应用层经过SSL协议的数据,所有的消息都是被加密后才到传输层的。

2)确认性:服务器端是被认证的。

3)可靠性:所有传输的消息都是经过完整性检查的。

2 SSL协议结构

SSL协议的目标在于在TCP的基础上提供安全可靠的传输服务。在SSL的体系结构中包括了SSL握手协议层和SSL记录协议层两个协议子层。这两大协议完成了SSL的大部分工作。SSL握手协议层建立在SSL记录协议层之上。建立在SSL记录协议层上的还有密码参数修改协议、报警协议、应用数据协议等子协议。

图1 SSL体系结构图

2.1 SSL记录协议

SSL记录协议限定了所有要传输的数据的打包,所有的传输数据都被封装在记录中。它提供了通信、身份认证功能。由上层传来的数据信息,将在记录协议层,划分数据分段。依据握手协议中协商的加密算法,给分段的数据压缩、计算MAC值、对数据加密处理,将数据变成记录。添上记录头后,传递到下层的TCP协议。

SSL记录头格式

SSL记录头包括记录头长度、记录数据长度的信息,及记录数据中是否填充数据。当最高位为1时,则不含有填充数据,记录头为两字节,记录数据最大长度为32767字节;当最高位为0时,则含有填充数据,记录头为三个字节,记录数据的最大长度为16383字节。当记录头长度是为三个字节时,次高位有特殊的含义。当次高位为1时,标识所传输的记录是普通的数据记录;当次高位为0时,标识所传输的记录是安全空白记录(被保留用于将来协议的扩展)。

SSL记录数据格式

SSL的记录数据包含三个部分:MAC数据、实际数据和填充数据(若是需要的话)。MAC数据为密钥,实际数据,填充数据,序号的拼接后的散列值。用于检查数据的完整性。

2.2 SSL握手协议层

SSL握手协议层包括握手协议(Handshake Protocol)、密码参数修改协议(SSL Change Cipher Spec Protocol)、应用数据协议(Application Data Protocol)和报警协议(Alert Protocol)。握手协议主要负责协商客户端和服务器端所有使用的参数,包括采用协议版本、加密算法、密钥等;建立独立的安全会话连接,认证双方的身份。密码参数修改协议主要负责协商双方修改密码参数,并指示记录层把即将读/写状态编程当前读/写状态。客户端和服务器均可发送此类消息,通知对方记录将使用新的协商密码说明和密钥。报警协议主要是负责通知对方警告信息。例如关闭通知、错误记录、解压失败、握手失败、无证书、错误证书等等。应用数据协议主要负责将应用数据直接传递给记录协议。

3 SSL协议工作过程

1)由客户端向服务器端发送“ClientHello”信息,以便开始一个新的安全对话连接。信息中将表明客户端密码能力。例如SSL版本,使用的加密算法、签名算法、密钥交换算法、可接受的压缩算法等。

2)由服务器回应客户端发送“SeverHello”信息(如果可以接受其回应的话,否则握手失败。注:客户端和服务器端必须要至少支持一个公共密码对,否则握手将会失败)。“ServerHello”消息将告知服务器的相关安全参数。

3)由服务器向客户端发送它使用的证书和密钥交换信息。若服务器端需要对客户端认证,则还会向客户端发出“数字证书”的请求消息。

4)服务器发出“ServerHello Done”消息并等待客户端响应。

5)客户端收到了“ServerHello Done”以后,将对服务器发送过来的数字证书验证,并检查服务端的安全参数是否可以接受。如果服务器端需要客户端的数字证书的话,则客户端将要发送它的数字证书。如果客户端没有数字证书可有,则发送一个警告信息表明没有数字证书,但将会导致本次握手失败(如果客户端数字证书认证是强制性的话)。

6)客户端发送“客户端密钥交换”消息。消息中包含有“预-主密钥”和消息认证代码( MAC )密钥(消息使用了服务器端公钥加密,故此消息只有服务器可以用私钥解密)。

7)客户端将计算出“主密钥”。然后,客户端发“更改密码规范”消息给服务器,以确定本次传输使用的加密套件和密钥。

8)服务器确定了本次传输使用的加密套件和密钥。完成本次握手。

9)此后的传输的数据都将加密后才传输。

图2 SSL协议工作过程

(标有括号的表示服务器需要验证客户端的情况)

4 SSL安全性分析

1)算法安全性。SSL协议v2/v3均支持的算法有RC2、RC4、IDEA、DES、3DES等。认证算法采用X.509电子证书标准,使用RSA算法进行数字签名。SSL协议通过使用数字证书来完成客户端和服务器端之间的身份验证。通过SSL握手,双方使用非对称密码体制协商并确定本次对话所要使用的加密算法和会话密钥。这样不仅保证了会话密钥协商过程的安全性,而且又克服了非对称密码加密速度慢的缺陷。SSL协议所提供的混合密码体制,可使SSL使用的加密算法和会话密钥适时的变更。此外,协议还提供完整性的检查,保证数据不被篡改。

2)抵抗重放攻击。SSL协议使用了序列号,序列号经加密后传输。在每一次握手都使用了一个随机数来标示本次握手,从而阻止了重放攻击。

5 SSL存在的问题和改进

1)加密强度问题。由于美国对加密技术出口的限制,SSL支持的对称加密算法受到了影响。如密钥长度朝超过40位的对称加密算法RC4、DES等不能用于SSL的数据加密。一般的,使用同一加密算法,密钥位数越高其安全性越强。尽管SSL所支持的加密算法的安全强度都比较高,但出口到我国的仅支持低位密钥算法,削弱了加密算法的安全性。此外加密数据的安全性还取决于密码管理的安全性。同样的,美国对密码技术出口的限制,如在SSL规范中限定RSA算法和DH算法采用512位的密钥。非对称算法如果要保证其安全性,一般是需要1024位以上的。这样使得密钥交换的安全性得不到保证。所以,首先在算法选择上,应当把一些不安全的算法如DES等移去。在实现中选择对称加密算法3DES、IDEA、AES等。在实现SSL时,都应该限定交换密钥长度必须为1024位或更多位。或者可以选用椭圆曲线算法。这样不仅可以密钥比较短,而且处理速度比较快。

2)签名问题。SSL协议不能数字签名。虽然SSL可很好保证数据传输的机密性和完整性,但缺乏数字签名是其在电子商务应用中一大缺憾。而事实上,SSL本身就有对消息进行数字签名和验证的潜力。因为原有的公私钥只是使用在服务器端和客户端之间密钥的交换,并由使用其来签名。基本的思路是,将签名服务作为SSL协议一个可选独立扩展功能,保证其向下兼容性;对发送的所有信息进行签名;利用原有的密码资源;

6结束语

SSL虽然存在一些缺陷,但也不失为一套完善安全的网络通信协议。在其广泛的实践中也证明了其高度的安全性。当然,它只是网络安全的一种工具。而要做到真正的安全还需要多方面的结合,这样才可以打造一个全面的、完善的、安全可靠的网络环境。

参考文献:

[1]方勇.信息系统安全理论与技术[M].北京:高等教育出版社,2008.

[2]卿斯汉.密码学与计算机网络安全[M].北京:清华大学出版社,2001.

[3] A.Frier,P.Karlton,and P.Kocher. The SSL 3.0 Protocol. Netscape Communications Corp. Nov 18,1996.

[4] Eric Rescorla. SSL and TLS Designing and Building Secure Systems [M]. Addison Wesley,2000.

上一篇:局域网FTP的可靠性试验与评估工作探析 下一篇:计算机网络安全及防范策略分析