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