SSL(Secure Sockets Layer安全套接層),及其繼任者傳輸層安全(Transport Layer Security,TLS)是為網(wǎng)絡通信提供安全及數(shù)據(jù)完整性的一種安全協(xié)議。TLS與SSL在傳輸層對網(wǎng)絡連接進行加密。
Secure Socket Layer,為Netscape所研發(fā),用以保障在Internet上數(shù)據(jù)傳輸之安全,利用數(shù)據(jù)加密(Encryption)技術(shù),可確保數(shù)據(jù)在網(wǎng)絡上之傳輸過程中不會被截取及竊聽。一般通用之規(guī)格為40 bit之安全標準,美國則已推出128 bit之更高安全標準,但限制出境。只要3.0版本以上之I.E.或Netscape瀏覽器即可支持SSL。
SSL協(xié)議位于TCP/IP協(xié)議與各種應用層協(xié)議之間,為數(shù)據(jù)通訊提供安全支持。SSL協(xié)議可分為兩層:SSL記錄協(xié)議(SSL Record Protocol):它建立在可靠的傳輸協(xié)議(如TCP)之上,為高層協(xié)議提供數(shù)據(jù)封裝、壓縮、加密等基本功能的支持。SSL握手協(xié)議(SSL Handshake Protocol):它建立在SSL記錄協(xié)議之上,用于在實際的數(shù)據(jù)傳輸開始前,通訊雙方進行身份認證、協(xié)商加密算法、交換加密密鑰等。
1)認證用戶和服務器,確保數(shù)據(jù)發(fā)送到正確的客戶機和服務器;
2)加密數(shù)據(jù)以防止數(shù)據(jù)中途被竊取;
3)維護數(shù)據(jù)的完整性,確保數(shù)據(jù)在傳輸過程中不被改變。
服務器認證階段:1)客戶端向服務器發(fā)送一個開始信息“Hello”以便開始一個新的會話連接;2)服務器根據(jù)客戶的信息確定是否需要生成新的主密鑰,如需要則服務器在響應客戶的“Hello”信息時將包含生成主密鑰所需的信息;3)客戶根據(jù)收到的服務器響應信息,產(chǎn)生一個主密鑰,并用服務器的公開密鑰加密后傳給服務器;4)服務器回復該主密鑰,并返回給客戶一個用主密鑰認證的信息,以此讓客戶認證服務器。
用戶認證階段:在此之前,服務器已經(jīng)通過了客戶認證,這一階段主要完成對客戶的認證。經(jīng)認證的服務器發(fā)送一個提問給客戶,客戶則返回(數(shù)字)簽名后的提問和其公開密鑰,從而向服務器提供認證。
SSL的體系結(jié)構(gòu)中包含兩個協(xié)議子層,其中底層是SSL紀錄協(xié)議層(SSL Record Protocol Layer);高層是SSL握手協(xié)議層(SSL HandShake Protocol Layer)。
會話(Session)和連接(Connection)是SSL中兩個重要的概念,在規(guī)范中定義如下。
(1)SSL連接:用于提供某種類型的服務數(shù)據(jù)的傳輸,是一種點對點的關(guān)系。一般來說,連接的維持時間比較短暫,并且每個連接一定與某一個會話相關(guān)聯(lián)。
(2)SSL會話:是指客戶和服務器之間的一個關(guān)聯(lián)關(guān)系。會話通過握手協(xié)議來創(chuàng)建。它定義了一組安全參數(shù)。