前言
通过之前文章对SSL握手协议与SSL记录协议有了一定的了解网络安全——传输层安全协议(2)
本章将会继续讲解SSL的其他协议
一.SSL密钥更改协议
SSL密钥更改协议用以通知参与各方加密策略的改变。SSL密钥更改协议只包含一个使用当前(不是未决的)加密方法(Cipher Spec)加密并压缩过的消息。此消息包含一个字节,其值为1。
更改Cipher Spee的消息可以由客户端或服务器发出,通知对方随后的记录将由刚协商好的加密方法(Cipher Spee)和密钥来保护。
二.SSL告警协议
由SSL记录层所支持的一种内容类型(Content Types)即为报警类型,报警消息包含报警级别和对报警的描述。最严重一级的报警消息将立即终止连接,在这种情况下,本次会话的其他连接还可以继续进行,但对话标识符失效,以防止此失败的会话重新建立新的连接。与其他消息一样,报警消息是利用由当前连接状态所指定的算法加密和压缩的。
关闭报警
客户端和服务器为避免截断攻击,必须共享连接已关闭这一信息,通信双方均可发起关闭报警信息,通信双方通过发送发起关闭报警(Close_notify Alert),之后的任何数据都将被丢弃。任何一方在关闭处于写状态的连接时,需要发送关闭报警(Closc_notifyAlert).另一方以立即关闭连接作出响应,丢弃所有挂起的写操作。关闭处于读状态的连接时,不需要等待响应关闭报警。
错误报警
SSL握手协议中的错误处理相对简单。当发现一个错误后,发现方将向对方发一个消息。当传输或收到严重错误报警消息时,连接双方均立即终止此连接。服务器和客户端均丢弃错误会话使用的标识符、密钥及秘密信息。
SSL中定义了下列错误报警
unexpected_message:收到意外的消息,此报警属于严重错误报警,不应在正常的连接中被观察到。 bad_record_mac:当收到带有不正确的MAC记录时,将返回此报警。此报警属于严重错误报警。 decompression_failure:解压缩函数收到不合法的输入(如数据太长等),此报警属于严重错误报警。 handshake_failure:收到handshake_failure报警消息,表明发出者不能接受现有的选项所提供的安全参数集合,此报警属于严重错误报警。 no_certificate:当被要求给出证书面没有合法的证书时,将发出no_certificate 报警消息。 bad_certificate:当一证书被破坏或者证书中签名无法被正确认证时,发出此报警。 unsupported_certificate:证书类型不支持。 certificate_revoked:证书被签发者撤销。 certificate_expired:证书过期或失效。 certificate_unknown:未知因素导致的证书不可接受性。 illegal_parameter;握手消息中域值溢出或一致,此报警属于严重错误报警。
三.SSL协议安全性分析
SSL协议的安全性由采用的加密算法和认证算法所保证。实践证明,现有的加密和认证算法是安全有效的,但随着计算机技术和信息对抗技术的发展,一些新的问题和挑战随即产生。
特别值得注意的是,最近以王小云为代表的一群中国密码学家进行的研究表明,MD5和SHA-l并不是无冲突的,而且他们找到了比暴力方式更快找到冲突的算法。这些发现促使产业界不得不发展更安全的散列算法,同时也使开发下一代更安全的SSL.协议提上了日程。
四.SSL协议依赖的加密和认证算法
1.加密算法和会话密钥
SSL.v2.0协议和SSL.v3.0协议支持的加密算法包括RC4、RC2、IDEA和DES.而加密算法所用的密钥由消息散列函数MD5产生。RC4、RC2是由RSA定义的,其中RC2适用于块加密,RC4适用于流加密。
2.认证算法
SSL协议认证算法采用IEEEx.509电子证书标准,是通过RSA算法进行数字签名来实现的。典型的认证过程包括服务器认证和客户认证。
(1)服务器的认证。服务器方的写密钥和客户方的读密钥、客户方的写密钥和服务器方的读密钥分别是一对私有、公有密钥。对服务器进行认证时只有用正确的服务器方写密钥加密,ClientHello消息形成的数字签名才能被客户正确地解密,从而验证服务器的身份。
(2)客户的认证。同上,只有用正确的客户方写密钥加密的内容,才能被服务器方用其读密钥正确地解开。
五.SSL安全优势
- 1.监听和中间人攻击 2.流量数据分析式攻击
- 3.版本重放攻击 4.检测对握手协议的攻击
- 5.会话恢复伪造 6.短包攻击
- 7.截取再拼接式攻击 8.报文重发式攻击
六.SSL协议存在的问题
1.密钥管理问题
(1)客户机和服务器在互相发送自己能够支持的加密算法时,是以明文传送的,存在被攻击修改的可能性。
(2)SSLv3.0为了兼容以前的版本,可能降低安全性。所有的会话密钥中都将生成MASTER-KEY,握手协议的安全完全依赖于对MASTER-KEY的保护,因此,在通信中要尽可能少地使用MASTER·KEY。
2.加密强度问题
Netscape依照美国内政部的规定,在它的国际版浏览器及服务器上使用40位的密钥。这是因为,依据美国法律,其所使用的RC4加密算法对多于40位长的加密密钥产品的出口加以限制。而较短的密钥长度意味着较高的破译可能。
3.数字签名问题
基于SSL.协议没有数字签名功能,即没有抗否认服务。若要增加数字签名功能,则需要在协议中打补丁。这样做,在用于加密密钥的同时又用于数字签名,在安全上存在漏洞。PKI体系完善了这种措施,即双密钥机制,将加密密钥和数字签名密钥二者分开,成为双证书机制,从而构成了PK1完整的安全服务体系。