SSL
1 . SSL(Server Socket Layer) 簡介
在網絡上信息在源 - 宿的傳遞過程中會經過其它的計算機。一般情況下,中間的計算機不會監聽路過的信息。但在使用網上銀行或者進行信用卡交易的時候有可能被監視,從而導致個人 隱私的泄露。由于 Internet 和 Intranet 體系結構的原因,總有某些人能夠讀取并替換用戶發出的信息。隨著網上支付的不斷發展,人們對信息安全的要求越來越高。因此 Netscape 公司提出了 SSL 協議,旨在達到在開放網絡 (Internet) 上安全保密地傳輸信息的目的,這種協議在 WEB 上獲得了廣泛的應用。 之后 IETF(ietf.org) 對 SSL 作了標準化,即 RFC2246 ,并將其稱為 TLS ( Transport Layer Security ),從技術上講, TLS1.0 與 SSL3.0 的差別非常微小。
2 . SSL 工作原理
SSL 協議使用不對稱加密技術實現會話雙方之間信息的安全傳遞。可以實現信息傳遞的保密性、完整性,并且會話雙方能鑒別對方身份。不同于常用的 http 協議,我們在與網站建立 SSL 安全連接時使用 https 協議,即采用 https://ip:port/ 的方式來訪問。當我們與一個網站建立 https 連接時,我們的瀏覽器與 Web Server 之間要經過一個握手的過程來完成身份鑒定與密鑰交換,從而建立安全連接。具體過程如下:
用戶瀏覽器將其 SSL 版本號、加密設置參數、與 session 有關的數據以及其它一些必要信息發送到服務器。
服務器將其 SSL 版本號、加密設置參數、與 session 有關的數據以及其它一些必要信息發送給瀏覽器,同時發給瀏覽器的還有服務器的證書。如果配置服務器的 SSL 需要驗證用戶身份,還要發出請求要求瀏覽器提供用戶證書。
客戶端檢查服務器證書,如果檢查失敗,提示不能建立 SSL 連接。如果成功,那么繼續。客戶端瀏覽器為本次會話生成 pre-master secret ,并將其用服務器公鑰加密后發送給服務器。如果服務器要求鑒別客戶身份,客戶端還要再對另外一些數據簽名后并將其與客戶端證書一起發送給服務器。
如果服務器要求鑒別客戶身份,則檢查簽署客戶證書的 CA 是否可信。如果不在信任列表中,結束本次會話。如果檢查通過,服務器用自己的私鑰解密收到的 pre-master secret ,并用它通過某些算法生成本次會話的 master secret 。
客戶端與服務器均使用此 master secret 生成本次會話的會話密鑰 ( 對稱密鑰 ) 。在雙方 SSL 握手結束后傳遞任何消息均使用此會話密鑰。這樣做的主要原因是對稱加密比非對稱加密的運算量低一個數量級以上,能夠顯著提高雙方會話時的運算速度。
客戶端通知服務器此后發送的消息都使用這個會話密鑰進行加密。并通知服務器客戶端已經完成本次 SSL 握手。
服務器通知客戶端此后發送的消息都使用這個會話密鑰進行加密。并通知客戶端服務器已經完成本次 SSL 握手。
本次握手過程結束,會話已經建立。雙方使用同一個會話密鑰分別對發送以及接受的信息進行加、解密。posted on 2009-11-12 17:38 yuxh 閱讀(178) 評論(0) 編輯 收藏 所屬分類: 協議