SSL協議的概述

 提供網絡安全服務可以在不同層次提供。通用的解決方法是在網絡層使用IPSecIPSec對於最終用戶和應用程序是透明的。另一個比較通用的解決方法是在TCP上實現安全性,在這一級,有兩種實現選擇,一是SSL(或TLS)可以作爲基本協議族的一個部分提供,因此對應用程序透明,二是將SSL嵌入到軟件中,如嵌入到Web瀏覽器與Web服務器。與應用有關的安全服務也可以被嵌入到特定的應用程序中,如安全電子交易(SET)。
HTTP
FTP
SMTP
 
S/MIME
PGP
SET
HTTP
FTP
SMTP
SSL or TLS
Kerberos
SMTP
HTTP
TCP
TCP
UDP
TCP
IP/IPSec
IP
IP
圖13.1 TCP/IP協議棧中安全機制的位置
Netscape公司推出Web瀏覽器時,提出了SSLSecure Socket Layer)安全通信協議, SSL協議目前已成爲Internet上保密通訊的工業標準。現行Web瀏覽器普遍將HTTPSSL相結合,來實現安全通信。
IETF[url]www.ietf.org[/url])將SSL作了標準化,即RFC2246,並將其稱爲TLSTransport Layer Security),從技術上講,TLS1.0SSL3.0的差別非常微小。
WAP的環境下,由於手機及手持設備的處理和存儲能力有限,wap論壇([url]www.wapforum.org[/url])在TLS的基礎上做了簡化,提出了WTLS協議(Wireless Transport Layer Security),以適應無線的特殊環境。
SSL採用公開密鑰技術。其目標是保證兩個應用間通信的保密性和可靠性,可在服務器和客戶機兩端同時實現支持。它能使客戶/服務器應用之間的通信不被***者竊聽,並且始終對服務器進行認證,還可選擇對客戶進行認證。SSL協議要求建立在可靠的傳輸層協議(例如:TCP)之上。SSL協議的優勢在於它是與應用層協議獨立無關的,高層的應用層協議(例如:HTTPFTPTelnet)能透明的建立於SSL協議之上。SSL協議在應用層協議通信之前就已經完成加密算法、通信密鑰的協商以及服務器認證工作。
如果利用SSL協議來訪問網頁,其步驟如下:
1)用戶:在瀏覽器的地址欄裏輸入[url]https://www.sslserver.com[/url]
2HTTP層:將用戶需求翻譯成HTTP請求,如
GET /index.htm HTTP/1.1
Host [url]http://www.sslserver.com[/url]
3SSL: 藉助下層協議的的信道,安全的協商出一份加密密鑰,並用此密鑰來加密HTTP請求。
4TCP層:與web server443端口建立連接,傳遞SSL處理後的數據。
接收端與此過程相反。
SSL協議允許支持SSL協議的服務器與一個支持SSL協議的客戶機相互認證,還允許這兩個機器間建立加密連接,提供連接可靠性。
SSL服務器認證允許用戶確認服務器身份。支持SSL協議的客戶機軟件能使用公鑰密碼標準技術(如用RSADSS等)檢查服務器證書、公用ID是否有效和是否由在客戶信任的認證機構CA列表內的認證機構發放。
SSL客戶機認證允許服務器確認用戶身份。使用應用於服務器認證同樣的技術,支持SSL協議的服務器軟件能檢查客戶證書、公用ID是否有效和是否由在服務器信任的認證機構列表內的認證機構發放。
一個加密的SSL連接要求所有在客戶機與服務器之間發送的信息由發送方軟件加密和由接受方軟件解密,對稱加密法用於數據加密(如用DESRC4等),從而連接是保密的。所有通過加密SSL連接發送的數據都被一種檢測篡改的機制所保護,使用消息認證碼(MAC)的消息完整性檢查、安全散列函數(如SHAMD5等)用於消息認證碼計算,這種機制自動地決定傳輸中的數據是否已經被更改,從而連接是可靠的。
SSL協議支持如下一些使用RSA密鑰交換算法的密碼組,它們的加密強度由強到弱排列:
SHA-1消息認證、支持168位加密的Triple-DES,速度不如RC4快。由於密碼長度較大,大約有3.7 * 1050個密碼可用。
MD5消息認證、支持128位加密的RC4RC4RC2都有128位的密碼,它們的加密強度僅次於Triple-DESRC4RC2大約有3.4 * 1038 個密碼可用,這使得它們很難被破解。RC4密碼是SSL支持的密碼中最快的。
MD5消息認證、支持128位加密的RC2RC2RC4速度慢(SSL3.0支持而SSL2.0不支持)。
SHA-1消息認證、支持56位加密的DES,大約有7.2 * 1016 個可用的密碼(在SSL2.0中該密碼使用的是MD5 消息認證)。
根據美國政府的規定,以上四種加密僅能在美國境內使用,以下加密技術是可以出口的。
MD5消息認證、支持40位加密的RC4,大約有個1.1 * 1012可用的密碼。
MD5消息認證、支持40位加密的RC2,大約有個1.1 * 1012可用的密碼。
注:對RC2RC4支持40位加密,其中密鑰仍是128位的,但只有40位有加密意義。
不加密,只帶MD5消息認證。這種方法使用MD5消息認證檢測篡改(SSL3.0支持而SSL2.0不支持)。
SSL主要工作流程包括:網絡連接建立;與該連接相關的加密方式和壓縮方式選擇;雙方的身份識別;本次傳輸密鑰的確定;加密的數據傳輸;網絡連接的關閉。
應用數據的傳輸過程爲:
1)應用程序把應用數據提交給本地的SSL
2)發送端根據需要,使用指定的壓縮算法,壓縮應用數據;
3)發送端使用散列算法對壓縮後的數據進行散列,得到數據的散列值;
4)發送端把散列值和壓縮後的應用數據一起用加密算法加密;
5)密文通過網絡傳給對方;
6)接收方用相同的加密算法對密文解密,得到明文;
7)接收方用相同的散列算法對明文中的應用數據散列;
8)計算得到的散列值與明文中的散列值比較;
如果一致,則明文有效,接收方的SSL把明文解壓後得到應用數據上交給接收方的應用。否則就丟棄數據,並向發方發出告警信息。嚴重的錯誤有可能引起再次的協商或連接中斷。
SSL協議建立在傳輸層和應用層之間,包括兩個子協議:SSL記錄協議和SSL握手協議,其中記錄協議在握手協議下端。
SSL握手協議
SSL改變密碼格式協議
SSL警告協議
HTTP,FTP,…
SSL 記錄協議
TCP
IP
圖13.2 SSL記錄協議和SSL握手協議
SSL記錄協議定義了要傳輸數據的格式,它位於一些可靠的的傳輸協議之上(如TCP),用於各種更高層協議的封裝。SSL握手協議就是這樣一個被封裝的協議。SSL握手協議允許服務器與客戶機在應用程序傳輸和接收數據之前互相認證、協商加密算法和密鑰。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章