原文地址:
http://datum.studyget.com/sh/200703/20070328_46338.shtml
SSL 是Secure socket Layer英文縮寫,它的中文意思是安全套接層協議,指使用公鑰和私鑰技術組合的安全網絡通訊協議。SSL協議是網景公司(Netscape)推出的基于 WEB應用的安全協議,SSL協議指定了一種在應用程序協議(如Http、Telenet、NMTP和FTP等)和TCP/IP協議之間提供數據安全性分層的機制,它為TCP/IP連接提供數據加密、服務器認證、消息完整性以及可選的客戶機認證,主要用于提高應用程序之間數據的安全性,對傳送的數據進行加密和隱藏,確保數據在傳送中不被改變,即確保數據的完整性。
SSL 以對稱密碼技術和公開密碼技術相結合,可以實現如下三個通信目標:
(1)秘密性: SSL客戶機和服務器之間傳送的數據都經過了加密處理,網絡中的非法竊聽者所獲取的信息都將是無意義的密文信息。
(2)完整性: SSL利用密碼算法和散列(HASH)函數,通過對傳輸信息特征值的提取來保證信息的完整性,確保要傳輸的信息全部到達目的地,可以避免服務器和客戶機之間的信息受到破壞。
(3)認證性:利用證書技術和可信的第三方認證,可以讓客戶機和服務器相互識別對方的身份。為了驗證證書持有者是其合法用戶(而不是冒名用戶), SSL要求證書持有者在握手時相互交換數字證書,通過驗證來保證對方身份的合法性。
3.SSL協議的體系結構
SSL協議位于TCP/IP協議模型的網絡層和應用層之間,使用TCP來提供一種可靠的端到端的安全服務,它是客戶/服務器應用之間的通信不被攻擊竊聽,并且始終對服務器進行認證,還可以選擇對客戶進行認證。SSL協議在應用層通信之前就已經完成加密算法、通信密鑰的協商以及服務器認證工作,在此之后,應用層協議所傳送的數據都被加密。SSL實際上是共同工作的兩層協議組成,如圖1所示。從體系結構圖可以看出SSL安全協議實際是SSL握手協議、SSL修改密文協議、SSL警告協議和SSL記錄協議組成的一個協議族。
握手
協議
|
修改密
文協議
|
報警
協議
|
SSL記錄協議
|
TCP
|
IP
|
圖1 SSL體系結構
SSL記錄協議為SSL連接提供了兩種服務:一是機密性,二是消息完整性。為了實現這兩種服務, SSL記錄協議對接收的數據和被接收的數據工作過程是如何實現的呢? SSL記錄協議接收傳輸的應用報文,將數據分片成可管理的塊,進行數據壓縮(可選),應用MAC,接著利用IDEA、DES、3DES或其他加密算法進行數據加密,最后增加由內容類型、主要版本、次要版本和壓縮長度組成的首部。被接收的數據剛好與接收數據工作過程相反,依次被解密、驗證、解壓縮和重新裝配,然后交給更高級用戶。
SSL修改密文協議是使用SSL記錄協議服務的SSL高層協議的3個特定協議之一,也是其中最簡單的一個。協議由單個消息組成,該消息只包含一個值為1的單個字節。該消息的唯一作用就是使未決狀態拷貝為當前狀態,更新用于當前連接的密碼組。為了保障SSL傳輸過程的安全性,雙方應該每隔一段時間改變加密規范。
SSL告警協議是用來為對等實體傳遞SSL的相關警告。如果在通信過程中某一方發現任何異常,就需要給對方發送一條警示消息通告。警示消息有兩種:一種是 Fatal錯誤,如傳遞數據過程中,發現錯誤的MAC,雙方就需要立即中斷會話,同時消除自己緩沖區相應的會話記錄;第二種是Warning消息,這種情況,通信雙方通常都只是記錄日志,而對通信過程不造成任何影響。SSL握手協議可以使得服務器和客戶能夠相互鑒別對方,協商具體的加密算法和MAC算法以及保密密鑰,用來保護在SSL記錄中發送的數據。
SSL握手協議允許通信實體在交換應用數據之前協商密鑰的算法、加密密鑰和對客戶端進行認證(可選)的協議,為下一步記錄協議要使用的密鑰信息進行協商,使客戶端和服務器建立并保持安全通信的狀態信息。SSL握手協議是在任何應用程序數據傳輸之前使用的。SSL握手協議包含四個階段:第一個階段建立安全能力;第二個階段服務器鑒別和密鑰交換;第三個階段客戶鑒別和密鑰交換;第四個階段完成握手協議。