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