是Netscape公司1995年推出的壹種安全通信協議。SSL提供了兩臺計算機之間的安全連接,對整個會話進行了加密,從而保證了安全傳輸。SSL協議建立在可靠的TCP傳輸控制協議之上,並且與上層協議無關,各種應用層協議(如:HTTP,FTP,TELNET等)能通過SSL協議進行透明傳輸。
SSL協議分為兩層:SSL握手協議和SSL記錄協議。SSL協議與TCP/IP協議間的關系如圖壹所示:
HTTPS FTPS TELNETS IMAPS等
SSL握手協議
SSL記錄協議
TCP傳輸控制協議
IP因特網協議
圖壹 SSL協議與TCP/IP協議間的關系
SSL協議提供的安全連接具有以下三個基本特點:
(1)連接是保密的:對於每個連接都有壹個唯壹的會話密鑰,采用對稱密碼體制(如DES、RC4等)來加密數據;
(2)連接是可靠的:消息的傳輸采用MAC算法(如MD5、SHA等)進行完整性檢驗;
(3)對端實體的鑒別采用非對稱密碼體制(如RSA、DSS等)進行認證。
1.2?SSL握手協議
SSL握手協議用於在通信雙方建立安全傳輸通道,具體實現以下功能:(1)在客戶端驗證服務器,SSL協議采用公鑰方式進行身份認證;(2)在服務器端驗證客戶(可選的);(3)客戶端和服務器之間協商雙方都支持的加密算法和壓縮算法,可選用的加密算法包括:IDEA、RC4、DES、3DES、RSA、DSS、Diffie_hellman、Fortezza、MD5、SHA等;(4)產生對稱加密算法的會話密鑰;(5)建立加密SSL連接。壹般的握手過程如圖二所示:
圖二 SSL協議的握手過程
握手過程分為4個階段:
(1)初始化邏輯連接,客戶方先發出ClientHello消息,服務器方也應返回壹個ServerHello消息,這兩個消息用來協商雙方的安全能力,包括協議版本、隨機參數、會話ID、交換密鑰算法、對稱加密算法、壓縮算法等。
(2)服務器方應發送服務器證書(包含了服務器的公鑰等)和會話密鑰,如果服務器要求驗證客戶方,則要發送CertificateRequest消息。最後服務器方發送ServerHelloDone消息,表示hello階段結束,服務器等待客戶方的響應。
(3)如果服務器要求驗證客戶方,則客戶方先發送Certificate消息,然後產生會話密鑰,並用服務器的公鑰加密,封裝在ClientKeyExchange消息中,如果客戶方發送了自己的證書,則再發送壹個數字簽名CertificateVerify來對證書進行校驗。
(4)客戶方發送壹個ChangeCipherSpec消息,通知服務器以後發送的消息將采用先前協商好的安全參數加密,最後再發送壹個加密後的Finished消息。服務器在收到上述兩個消息後,也發送自己的ChangeCipherSpec消息和Finished消息。至此,握手全部完成,雙方可以開始傳輸應用數據。
SSL握手協議在通信雙方建立起合適的會話狀態信息要素,如下表所示:
會話狀態信息要素描述
對話標識服務器選擇的用於標識壹個活躍的、重新開始的對話標識
對等證書對等實體的X509證書
壓縮方法所采用的數據壓縮算法
加密說明所采用的數據加密算法和MAC算法
會話密鑰客戶端和服務器所***享的會話密鑰
可重開始標識此對話是否可以用來初始化新的標誌
1.3?SSL記錄協議
SSL記錄協議從高層接收到數據後要經過分段、壓縮和加密處理,最後由傳輸層發送出去。在SSL協議中,所有的傳輸數據都被封裝在記錄中,SSL記錄協議規定了記錄頭和記錄數據的格式。
每個SSL記錄包含以下信息:(1)內容類型:指SSL的高層協議;(2)協議版本號:指所用的SSL協議版本號,目前已有2.0和3.0版本;(3)長度:指記錄數據的長度,記錄數據的最大長度為16383個字節;(4)數據有效載荷:將數據用SSL握手階段所定義的壓縮方法和加密方法進行處理後得到的結果;(5)MAC:MAC在有效數據被加密之前計算出來並放入SSL記錄中,用於進行數據完整性檢查,若使用MD5算法,則MAC數據長度是16個字節。SSL記錄協議采用了RFC2104中關於HMAC結構的修正版,在HASH函數作用之前將壹個序號放入消息中,以抵抗各種形式的重傳攻擊,序號是壹個32位的遞增計數器。
2SET協議
2.1?SET協議概述
SET(Secure?Electronic?Transaction)安全電子交易協議是1996年由MasterCard(維薩)與Visa(萬事達)兩大國際信用卡公司聯合制訂的安全電子交易規範。它提供了消費者、商家和銀行之間的認證,確保交易的保密性、可靠性和不可否認性,保證在開放網絡環境下使用信用卡進行在線購物的安全。
2.2?SET協議中采用的數據加密模型
SET協議采用的數據加密模型如圖三所示。
圖三 SET協議采用的數據加密模型
該模型具有以下特點:
(1)交易參與者的身份鑒別采用數字證書的方式來完成,數字證書的格式壹般采用X.509國際標準;
(2)交易的不可否認性用數字簽名的方式來實現。由於數字簽名是由發送方的私鑰產生,而發送方的私鑰只有他本人知道,所以發送方便不能對其發送過的交易數據進行抵賴;
(3)用報文摘要算法來保證數據的完整性;
(4)由於非對稱加密算法的運算速度慢,所以要和對稱加密算法聯合使用,用對稱加密算法來加密數據,用數字信封來交換對稱密鑰。
2.3?SET協議的數據交換過程
SET協議的購物系統由持卡人、商家、支付網關、收單銀行和發卡銀行五個部分組成,這五大部分之間的數據交換過程如圖四所示。
圖四 SET協議的數據交換過程
3SSL協議和SET協議的對比
SSL協議和SET協議的差別主要表現在以下幾個方面:
(1)用戶接口:SSL協議已被瀏覽器和WEB服務器內置,無需安裝專門軟件;而SET協議中客戶端需安裝專門的電子錢包軟件,在商家服務器和銀行網絡上也需安裝相應的軟件。
(2)處理速度:SET協議非常復雜、龐大,處理速度慢。壹個典型的SET交易過程需驗證電子證書9次、驗證數字簽名6次、傳遞證書7次、進行5次簽名、4次對稱加密和4次非對稱加密,整個交易過程可能需花費1.5至2分鐘;而SSL協議則簡單得多,處理速度比SET協議快。
(3)認證要求:早期的SSL協議並沒有提供身份認證機制,雖然在SSL3.0中可以通過數字簽名和數字證書實現瀏覽器和Web服務器之間的身份驗證,但仍不能實現多方認證,而且SSL中只有商家服務器的認證是必須的,客戶端認證則是可選的。相比之下,SET協議的認證要求較高,所有參與SET交易的成員都必須申請數字證書,並且解決了客戶與銀行、客戶與商家、商家與銀行之間的多方認證問題。
(4)安全性:安全性是網上交易中最關鍵的問題。SET協議由於采用了公鑰加密、信息摘要和數字簽名可以確保信息的保密性、可鑒別性、完整性和不可否認性,且SET協議采用了雙重簽名來保證各參與方信息的相互隔離,使商家只能看到持卡人的訂購數據,而銀行只能取得持卡人的信用卡信息。SSL協議雖也采用了公鑰加密、信息摘要和MAC檢測,可以提供保密性、完整性和壹定程度的身份鑒別功能,但缺乏壹套完整的認證體系,不能提供完備的防抵賴功能。因此,SET的安全性遠比SSL高。
(5)協議層次和功能:SSL屬於傳輸層的安全技術規範,它不具備電子商務的商務性、協調性和集成性功能。而SET協議位於應用層,它不僅規範了整個商務活動的流程,而且制定了嚴格的加密和認證標準,具備商務性、協調性和集成性功能。
總結:
由於SSL協議的成本低、速度快、使用簡單,對現有網絡系統不需進行大的修改,因而目前取得了廣泛的應用。但隨著電子商務規模的擴大,網絡欺詐的風險性也在提高,在未來的電子商務中SET協議將會逐步占據主導地位。