金敏捷 秦飛龍
(中國船舶及海洋工程設計研究院 上海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握手中所有數據被截取,而其中的關鍵數據通過技術手段是可讀的?,F在在客戶端向服務器發送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-),男,助理工程師。研究方向:計算機科學。