金敏捷 秦飞龙
(中国船舶及海洋工程设计研究院 上海200011)
船舶安全与技术管理
基于中间人攻击的SSL防范对策探究
金敏捷 秦飞龙
(中国船舶及海洋工程设计研究院 上海200011)
安全套接层(SSL)是在因特网协议栈中位于传输层与应用层之间的安全协议,能够在终端之间构建一个虚拟的安全联络通道供使用者通信。它主要保证数据在传输过程中的保密性和完整性与对终端身份认证的鉴别性。但在终端相互通信的过程中,物理链路的安全无法保证,黑客们可以在其中实施监听和中间人攻击,并对数据流分析威胁到数据本身的安全。文章对SSL作了简单安全分析,并围绕中间人攻击展开防范对策的探究。
安全套接层;中间人攻击;握手协议;认证
安全套接层(SSL协议)在网络中为使用者提供一个安全的逻辑链路,该协议保证客户端与服务器之间通信数据的保密性、完整性及终端相互的身份鉴别机制。SSL协议为所有应用层协议提供了安全保障。但实际上一台计算机把加密数据通过网络发往另一台计算机的过程中有成百上千个协议在其中起着不可或缺的作用,恶意攻击者正是利用其中某个或某些协议来间接削弱SSL的安全性,使其变得不安全。
Netscape公司在1996年推出SSL安全协议,SSL实际上是一个协议族,由记录协议、握手协议和告警协议组成,为应用访问连接提供认证、加密和防止篡改的基础。Netscape公司为SSL协议制定在应用层协议和传输层协议之间数据交换的安全机制,为网络连接提供数据加密、数据完整性辨别、服务器认证以及可选的客户端认证。SSL协议在握手的过程中采取一系列保密措施以保障数据传输的安全性,则可以说SSL协议在握手时的安全性是SSL协议本身安全的必要条件,然而中间人攻击方式恰恰就是在握手过程中实施攻击[1]。
在加密技术上,SSL协议结合对称加密技术和非对称加密技术。对称加密的特点是安全性高,且加密所需时间短;非对称加密的特点是安全性极高,但加密所需时间大大长于对称加密。所以SSL协议所用的安全方案是对传输的主要数据使用对称加密,而对前者对称加密密钥和提供数据完整性的hash数使用非对称加密(公钥加密)。这样既满足了数据保密性、完整性和身份鉴别的安全特性,也不影响使用者的用户体验效果。
SSL握手协议非常有效地完成了客户端与服务器相互之间的身份认证和对称密码传输,其主要步骤如图1所示[2]。
中间人攻击(man-in-the-middle attack,又称“MITM攻击”)是一种间接的入侵式攻击,通过如ARP欺骗的方式收到客户端原应发给服务器的连接请求,再通过对服务器证书篡改,获得客户端的信任,同时采取一系列技术手段最终得到被加密的通信数据。显然,这是在通信双方毫不知情的情况下秘密进行的。[3]
然而,以上看似天衣无缝的SSL协议的握手过程仍然存在安全隐患。中间人攻击能利用客户端对服务器证书检查的缺陷(即图1所示握手协议步骤3),通过伪造CA证书来获得客户端信任。此时,客户端web页面中会出现握手协议步骤3中的告警,这说明SSL协议其实已检测到其中风险,但是由于在告警web页面均设有“继续访问”的图标按钮,因此一般用户很可能仍会选择“继续访问”,从而最终受到中间人攻击。
黑客们在实施中间人攻击时,攻击者要嵌入服务器和客户端的通信链路之中,同时和服务器客户端通信,起到在服务器和客户端之间传递加密数据的作用,并对加密数据进行解密和数据流分析。一般使用较多的DNS劫持和局域网ARP欺骗技术是攻击者的常用手段。
SSL虽然提供了完整有效的认证机制,但对于诸如中间人攻击之类的入侵显得安全性不足。在SSL握手协议中,为了获得服务器的认证,攻击者利用截取到的客户端CA证书为模板,再通过一定的技术手段,就能伪造出一个合法有效的客户端CA证书,从而获得服务器的认证。
对于SSL协议来说,网络环境是无法改变的,其容易受到中间人攻击的很大原因在于难以在通信之初准确无误地确认对方身份的真实性;因此,防范中间人攻击的有效方法是提前约定好一套身份认证机制,做到双重身份认证效果。
4.1 加强型身份认证
保证通信数据安全的要素之一是为通信双方建立安全的身份认证体系。为了实现用户和服务器的身份认证,在服务器的后台数据库中需要存在一个预先与用户协商好的密钥作为连接时的身份认证密钥,这就如同我们平时登陆某些网站时需要输入的用户名密码一样。密钥在用户使用SSL进行安全连接前就已与服务器约定好,不需要通过SSL本身来进行协商。中间人攻击能成功的前提是在SSL握手中所有数据被截取,而其中的关键数据通过技术手段是可读的。现在在客户端向服务器发送SSL连接请求一开始就加入用户的密钥来增强通信的保密性和鉴别性,客户端服务器双方在收到对方的数据后用密钥解密验证,查看加密数据是否能被解开从而判断用户的合法性。
在这种情况下,黑客即使通过ARP欺骗和DNS劫持技术截取了所有通信数据也于事无补。由于没有切入点来获得解密密钥,这些数据就如同一堆乱码,从而导致中间人攻击失败。因此,该方案简单有效地阻止了中间人攻击。
总体而言,SSL是一个安全的网络安全协议,其通过一系列技术手段提供了数据保密性、完整性和终端鉴别机制。但在实际应用中,由于通信双方在通信前并不认识,所以在通信开始阶段需要协商密钥、交换密钥,故难以保证保密性,导致SSL容易受到中间人攻击的威胁。任何安全协议都并非绝对安全,所以需开展针对性防范工作以提高其安全性,需要人们提高网络安全意识,规范数字证书的签发体系等。
[1] 卿斯汉.安全协议[M].北京:清华大学出版社,2005.
[2] 李均锐,戴宗坤,李哲,等. SSL协议及其安全性分析[J].信息安全与通信保密,2004(6):28-30.
[3] 康荣保,张玲,兰昆. SSL中间人攻击分析与防范[J].信息安全与通信保密,2010(3).
[4] 应国良,田京波.基于SSL VPN的核心机房远程管理系统的设计与实现[J].电化教育研究,2007(8):39-42.
[5] 李海成.解析SSL握手协议[J].鞍山师范学院学报,2005(2):64-66.
On SSL countermeasures based on man-in-the-middle attack
JIN Min-jie QIN Fei-long
(Marine Design & Research Institute of China, Shanghai 200011, China)
The Secure Sockets Layer (SSL) is a secure protocol between the transport layer and the application layer in the internet protocol stack. The SSL can provide a virtual secure service channel between the terminals for user communication, ensuring the conf i dentiality, integrity of the data during the transmission and the terminal authentication. However, the physical link security cannot be guaranteed during the communication process among the terminals as the security of the data could be threatened due to the monitor, man-in-the-middle attack and the analysis of the data stream that implemented by the hackers. The countermeasures against the man-in-the-middle attack are studied in this paper after a simple safety analysis of the SSL.
SSL(secure sockets layer); man-in-the-middle attack; handshake protocol; authentication
TP393.08
A
1001-9855(2017)04-0092-03
10.19423 / j.cnki.31-1561 / u.2017.04.092
2016-09-05;
2017-01-04
金敏捷(1988-),男,硕士,工程师。研究方向:网络安全。
秦飞龙(1989-),男,助理工程师。研究方向:计算机科学。