SSL网络协议安全性分析
2006-10-10 作者: joeytang 语言:中文 |
<script type=text/javascript>
</script>
Internet原先建立在可信的基础上,网际协议(IPv4)信任数据保的发送者,相信数据包的发送方是该包的真正发送者,相信包在传输过程中没有被改变。最重要的是IPv4相信在传送过程中没有他人看过数据包。
电子商务对
World Wide Web(WWW)
交易提出了安全的要求。为保证电子商务的安全,
Netscape
于
1994
年
7
月开发了安全套接字层协议(
SSL
)。它被
WWW
广泛接受并且已经成为事实上的
Internet
加密标准。
1996
年
IETF
批准
SSL
为标准的
Internet
安全协议。
SSL
的目的是实现客户和服务器时间的认证和加密通信。
SSL2.0
版本于
1994
年
12
月发布,
SSL3.0
于
1995
年
11
月发布。
SSL
是目前电子商务中应用最为广泛的安全协议,其实现模式非常适合编程开发。由于
SSL
提供传输层的通信加密而与应用层协议独立无关,因此各种高层的应用层协议
(
如
HTTP
、
FTP
、
TELNET
、
SOAP
、
WDDX
等
)
能透明的建立于
SSL
协议之上。
SSL
协议在应用层协议通信之前就已经完成加密算法、通信密钥的协商以及服务器认证工作,在此之后应用层协议所传送的所有数据都会被加密,从而保证通信的安全性。如前面所述,由于目前国内
B2B
市场还很少使用网上支付,因此安全性很高的
SET
协议几乎不太可能用到,而
SSL
由于其使用范围广(可结合大多数互联网通信协议),所需费用少(可以到网上免费下载基于各种操作系统平台、各种编程语言的工具包),实现方便(比如和
IPSec
相比较)、安全性高(经过多年实践检验),所以已成为一般网络数据安全通信的首选方案。下面对
SSL
的实现作简要介绍:
SSL
协议包括
SSL
记录协议和
SSL
握手协议两部分,前者指定传输数据的具体格式。后者则负责在支持
SSL
的客户端和服务器端之间建立安全传输通道,并实现:在客户端验证服务器;允许客户端和服务器选择双方都支持的加密算法;在服务器端验证客户(可选);用公钥加密算法产生“共享安全信息”;建立加密
SSL
连接。
SSL
协议同时使用对称密钥算法和公钥加密算法。前者在速度上比后者要快很多,但是后者可以实现更好的安全验证。一个
SSL
传输过程首先需要握手:用公钥加密算法使服务器端在客户端得到验证,以后就可以使双方用商议成功的对称密钥来更快速的加密、解密数据。其基本过程我就不做详细描述了。
也许很多人知道
Socket
,它是一个编程界面,并不提供任何安全措施,而
SSL
不但提供编程界面,而且向上提供一种安全的服务,
SSL3.0
现在已经应用到了服务器和浏览器上,
SSL2.0
则只能应用于服务器端。目前我们使用的版本为
SSL 3.0
,使用
SSL
可以建立一条点对点的安全信道用于实时的数据交互。
SSL
协议是对计算机之间整个会话进行加密的协议,它能提供
Internet
上通信的保密性。该协议允许客户∕服务器应用程序在通信时,能够阻止窃听、报文伪造等安全攻击。下面我要从它抵御攻击的能力来分析它的安全性。
(
1
)防止版本重放攻击
当正在执行
SSL3.0
的通信方执行
SSL2.0
时,版本重放攻击发生。
SSL3.0
使用了非随机的
KKC
#
1
分组类型
2
的消息填充,这有助于使用
SSL3.0
的服务器检测出版本重放攻击。
(
2
)检测对握手协议的攻击
攻击者可能试图改变握手协议中的消息,使通信双方选择不同于通常使用的加密算法。这种攻击容易被发现,因为攻击者必须修改一个或多个握手消息。一旦这种情况发生,客户和服务器将计算出不同的
handshake message hashes
,这就导致双方不接收彼此发送的
finished
消息。
(
3
)会话的恢复
当通过恢复一个会话建立一个连接时,将产生新的这个连接使用的
MAC secret
,加密
keys
,
Ivs
。攻击者不可能在不打破安全的
hash
操作的情况下通过已知的以前的连接的
MAC secret
或加密
keys
来获得或破坏
master secret
。所以如果这个会话的
master secret
是安全的,并且
hash
操作也是安全的,那么这个连接是安全的且独立于以前的连接。但仍建议一个
session ID
的生存周期最长位
24
小时,因为获得了
master secret
的攻击者可能在
session ID
改变之前假冒受攻击的一方。
(
4
)中间人攻击
SSL 3.0
中包含了对
Diffie-Hellman
密钥交换进行短暂加密的支持。
Diffie-Hellman
是一种公开密钥算法,它能有效地提供完善的保密功能,对于
SSL
来说是一个有益的补充。在
SSL 3.0 Diffie-Hellman
密钥交换系统中,服务器必须指定模数和原始根(这两个数均为素数),以及
Diffie-Hellman
的指数。为了防止服务器端产生的陷门,客户端应该对模数和原始根进行仔细的检查,看它们是否为固定公共列表上的可靠数值。在
SSL 3.0
中,通过对服务器端的
Diffie-Hellman
指数的鉴别,可以抵御众所周知的中间人(
man-in-the-middle
)攻击。(匿名客户不必拥有证书。)另外,在
SSL 3.0
中并不支持具有较高性能的
Diffie-Hellman
变量,如较小的指数变量(
160bit
)或椭圆曲线变量。
(
5
)流量数据分析攻击
这种攻击的核心是通过检查数据包的未加密字段或未保护的包的属性来试图进行攻击。例如,通过检查
IP
包中未加密的
IP
源地址和目标地址,或检测网路流量,攻击者可知道谁正在参与交互通信,他们在使用何种服务,有时候甚至能得到或推测出一些商业或个人之间的关系。用户在通常情况下认为这种流量分析是相对无害的,
SSL
协议也未尝试阻止这种攻击。但是有一些特殊情况,可能会给攻击者提供较大的成功概率。
(
6
)主动攻击
SSL
能抵御主动攻击以安全地保护机密数据,这一点非常重要。当然,所使用的加密算法应该在被选择明文∕被选择密文攻击下是安全的,但这对于加密算法来说还不够。
IETF
的
IPSEC
工作组的最近研究表明,即使所使用的密码强度足够,在记录层上精明的主动攻击仍能打破系统的保密性。
SSL 3.0
的记录层能抵御这些强有力的攻击:更进一步,为何这些攻击会被阻止,值得我们讨论。
IPSEC
中的一个重要的主动攻击是
Bellovin
的剪贴攻击。回想起来,要获得保密性,光对链接进行加密是不够的——接收端也必须防止敏感数据在无意中被泄露出来。剪贴攻击的攻击方式就是谋求接收端的信任,使之对敏感数据进行解密并将这些数据泄露给它们。
SSL 3.0
能够阻止剪贴攻击。阻止这种攻击的一种局部性防御策略是为每一个不同的上下文使用独立的会话密钥,这样便能在不同的连接之间,以及连接的不同方向之间阻止剪贴操作。
SSL
已经为每个连接方向使用了独立的密钥。但是,这种机制无法阻止传输中一个方向上的剪贴操作。应用最广泛的防御策略是在所有加密包上使用强大的认证机制,以阻止敌方对密文数据的修改。
SSL
记录层确实采用了这种防御策略,因此剪贴操作被完全阻止住了。
另一种主动攻击是短块攻击,它主要针对 IPSEC 。这种攻击适用于最后的报文块包含一个一字节长的明文并且报文块剩余部分由随机数填充的情况。在 SSL 上并没有明显的短块攻击。 SSL 记录层格式与以前的 IPSEC 格式相当类似,这种格式容易遭到攻击,因此可以想象,修改性攻击会对 SSL 产生威胁。但是,无论如何,由标准 SSL 加密的 Web 服务器基本上不会受到短块攻击的威胁,因为这些服务器不会经常对短块进行加密。(但要注意,由 SSL 加密的 telnet 客户端必须得到特殊的保护,以防止短块攻击,因为每一次按键在传送时都是一字节长的数据包。
(
7
)报文重放攻击
报文重放攻击是一种比较容易被阻止的攻击,如上所述,
SSL
在
MAC
数据中含进序列号阻止了重放攻击。同时,这种机制也阻止了
“
延迟
”
,
“
重排序
”
,
“
删除数据
”
等攻击方式。
虽然 SSL 在安全性方面已经做得相当完善,但在实际的应用中,仍存在着许多安全漏洞。已经出现的对 SSL3.0 成功的攻击是流量分析攻击,这种攻击基于密文长度能够揭示明文长度。另外,在密钥管理方面, SSL 也存在一些问题:客户机和服务器在相互发送自己能够支持的加密算法时,是以明文传送的,存在被攻击修改的可能; SSL3.0 为了兼容以前的版本,可能会降低安全性;所有的会话密钥中都将生成 master key ,握手协议的安全完全依赖于对 master key 的保护,因此通信中要尽可能地减少使用 master key 。
以上是我根据一些的文献资料,自己学习总结的
SSL
网络协议针对几种攻击的安全性分析,当然攻击的种类远远不止这些。总的说来,
SSL
网络协议还是比较安全的,它
也是国际上最早应用于电子商务的一种网络安全协议
,
现在被许多网上商店和网上银行所使用。例如:
SecurePay
(由
Anacom
提供的实时信用卡交易服务,基于
SSL
协议);
SecureTrans
(一种提供实时信用卡交易处理和电子支票服务的系统,基于
SSL
协议);
ByWay and BuyWayPS
(信用卡安全交易系统,使用
SSL
协议)。该协议已成为事实上的工业标准
,
并被广泛应用于
Internet
和
Intranet
的服务器产品和客户端产品中。
如网景公司
,
微软公司
, IBM
公司等领导
Internet/Intranet
网络产品的公司已在使用该协议。
|
SSL网络协议安全性分析
最新推荐文章于 2024-06-25 15:13:36 发布