在訪問Internet時,有時網站會提示采用的是安全連接,同時屏幕顯示相應的對話框要求用戶選擇是否繼續進行連接。出現這種現象,說明該網站使用了SSL協議。與傳統的Web 80端口不同,安全連接使用的默認端口為443。
SSL是Netscape公司發布的一種開放協議,目前多應用在HTTP中,為網絡傳輸提供數據安全性分層的機制,為TCP/IP連接提供數據加密、服務器認證、消息完整性,以及可選的客戶機認證。
SSL的主要作用是為應用程序之間的通信提供保密性和可靠性,其工作過程可以分為以下三個階段。
(1)握手:這個階段雙方協商被用于會話的加密參數。當一個SSL客戶機和服務器第1次開始通信時,它們在一個協議版本上達成一致,選擇加密算法及相互認證,并使用公鑰技術來生成共享密鑰。
(2)記錄:記錄過程中,通信雙方交換應用層數據。信息被分割成可管理的數據塊,數據可以被壓縮并增加消息認證代碼MAC,然后結果被加密并傳輸。接收方接受數據并進行解密,校驗MAC、解壓縮并重新組合,然后向應用程序協議提交結果。
(3)警告協議:用于指示數據傳輸中發生了錯誤或兩個主機之間的會話在什么時候終止。
建立安全連接的過程如下:首先客戶機通過連接到支持SSL的服務器,啟動一次SSL會話。支持SSL的Web服務器在端口443上接受SSL連接請求。當客戶機連接到這個端口上時,它將啟動一次建立SSL會話的握手。當握手完成之后,通信內容被加密,并且執行完整性檢查,然后進行數據傳輸。
SSL協議可以保證網絡訪問的保密與安全,具有以下的特點。
(1)加密的網絡連接:通過初始握手定義了密鑰之后,將使用加密算法。對于數據加密使用了對稱加密(例如DES和RC4)。
(2)身份驗證:可以使用非對稱加密或公鑰加密(例如RSA和DSS)。
(3)可靠的數據完整性:數據包中含有消息認證代碼MAC,包括了完整性檢查,其中使用安全哈希函數(例如SHA和MD5)來進行MAC計算。