SSL協議是一種安全傳輸協議,SSL是SecureSocketLayer的縮寫,即安全套接層協議。該協議最初由Netscape企業發展而來,目前已經成為互聯網上用來鑒別網站和網頁瀏覽者的身份,以及在瀏覽器使用者及網頁服務器之間進行加密通訊的全球化標準協議。由于SSL技術已建立到了所有主要的瀏覽器和WEB服務器程序當中,因此,僅需安裝數字證書,或服務器證書就可以激活服務器功能了。 SSL協議能夠對信用卡和個人信息提供較安全的保護。SSL是對計算機之間整個會話進行加密的協議。在SSL中,采用了公開密鑰和私有密鑰兩種加密方法。 SSL協議的優勢在于它是應用層協議確立無關的。高層的應用協議如HTTP、FTP、Telnet等能透明地建立于SSL協議之上。其在應用層協議通信之前就已經完成加密算法、通信密鑰的協商以及服務器認證工作。在此之后應用層協議所傳送的數據都會被加密,從而保證我們在互聯網上通信的安全。 SSL協議提供的安全服務有: 1)認證用戶和服務器,確保數據發送到正確的客戶機和服務器; 2)加密數據以防止數據中途被竊取; 3)維護數據的完整性,確保數據在傳輸過程中不被改變。 SSL的主要目的是在兩個通信應用程序之間提供私密信和可靠性。這個過程通過3個元素來完成: 1、握手協議。 握手協議負責協商被用于客戶機和服務器之間會話的加密參數。當一個SSL客戶機和服務器第一次開始通信時,它們在一個協議版本上達成一致,選擇加密算法,選擇相互認證,并使用公鑰技術來生成共享密鑰。 2、記錄協議。 記錄協議用于交換應用層數據。應用程序消息被分割成可管理的數據塊,還可以壓縮,并應用一個MAC(消息認證代碼);然后結果被加密并傳輸。接受方接受數據并對它解密,校驗MAC,解壓縮并重新組合它,并把結果提交給應用程序協議。 3、警告協議。這個協議用于指示在什么時候發生了錯誤或兩個主機之間的會話在什么時候終止。 下面我們來看一個使用WEB客戶機和服務器的范例。WEB客戶機通過連接到一個支持SSL的服務器,啟動一次SSL會話。支持SSL的典型WEB服務器在一個與標準HTTP請求(默認為端口80)不同的端口(默認為443)上接受SSL連接請求。當客戶機連接到這個端口上時,它將啟動一次建立SSL會話的握手。當握手完成之后,通信內容被加密,并且執行消息完整性檢查,知道SSL會話過期。SSL創建一個會話,在此期間,握手必須只發生過一次。當SSL會話過程中出現了問題或端口設置出了問題,就會造成無法使用SSL連接現象。 SSL握手過程步驟: 步驟1:SSL客戶機連接到SSL服務器,并要求服務器驗證它自身的身份。 步驟2:服務器通過發送它的數字證書證明其身份。這個交換還可以包括整個證書鏈,直到某個根證書權威機構(CA)。通過檢查有效日期并確認證書包含有可信任CA的數字簽名,來驗證證書。 步驟3:服務器發出一個請求,對客戶端的證書進行驗證。但是,因為缺乏公鑰體系結構,當今的大多數服務器不進行客戶端認證。 步驟4:協商用于加密的消息加密算法和用于完整性檢查的哈希函數。通常由客戶機提供它支持的所有算法列表,然后由服務器選擇最安全的加密算法。 步驟5:客戶機和服務器通過下列步驟生成會話密鑰: a. 客戶機生成一個隨機數,并使用服務器的公鑰(從服務器的證書中獲得)對它加密,然后發送到服務器上 b. 服務器用更加隨機的數據(從客戶機的密鑰可用時則使用客戶機密鑰;否則以明文方式發送數據)響應。 c. 使用哈希函數,從隨機數據生成安全密鑰。 SSL協議的優點是它提供了連接安全,具有3個基本屬性: l 連接是私有的。在初始握手定義了一個密鑰之后,將使用加密算法。對于數據加密使用了對稱加密(例如DES和RC4)。 l 可以使用非對稱加密或公鑰加密(例如RSA和DSS)來驗證對等實體的身份。 l 連接時可靠的。消息傳輸使用一個密鑰的MAC,包括了消息完整性檢查。其中使用了安全哈希函數(例如SHA和MD5)來進行MAC計算。 對于SSL的接受程度僅僅限于HTTP內。它在其他協議中曾被表明可以使用,但還沒有被廣泛應用。收藏本文章下載本文章(DOC格式)下載本文章(TXT格式)
2015-01-28