SSL的流程及體系結(jié)構(gòu)
Secure Socket Layer,為Netscape所研發(fā),用以保障在Internet上數(shù)據(jù)傳輸?shù)陌踩?,利用?shù)據(jù)加密(Encryption)技術(shù),可確保數(shù)據(jù)在網(wǎng)絡(luò)上的傳輸過(guò)程中不會(huì)被截取及竊聽(tīng)。一般通用的規(guī)格為40 bit的安全標(biāo)準(zhǔn),美國(guó)則已推出128 bit的更高安全標(biāo)準(zhǔn)。只要3.0版本以上的I.E.或Netscape瀏覽器即可支持SSL。當(dāng)前版本為3.0。它已被廣泛地用于Web瀏覽器與服務(wù)器之間的身份認(rèn)證和加密數(shù)據(jù)傳輸。SSL協(xié)議位于TCP/IP協(xié)議與各種應(yīng)用層協(xié)議之間,為數(shù)據(jù)通訊提供安全支持。SSL協(xié)議可分為兩層: SSL記錄協(xié)議(SSL Record Protocol):它建立在可靠的傳輸協(xié)議(如TCP)之上,為高層協(xié)議提供數(shù)據(jù)封裝、壓縮、加密等基本功能的支持。 SSL握手協(xié)議(SSL Handshake Protocol):它建立在SSL記錄協(xié)議之上,用于在實(shí)際的數(shù)據(jù)傳輸開(kāi)始前,通訊雙方進(jìn)行身份認(rèn)證、協(xié)商加密算法、交換加密密鑰等。
SSL的體系結(jié)構(gòu)中包含兩個(gè)協(xié)議子層,其中底層是SSL記錄協(xié)議層(SSL Record Protocol Layer);高層是SSL握手協(xié)議層(SSL HandShake Protocol Layer)。
SSL記錄協(xié)議層的作用是為高層協(xié)議提供基本的安全服務(wù)。SSL記錄協(xié)議針對(duì)HTTP協(xié)議進(jìn)行了特別的設(shè)計(jì),使得超文本的傳輸協(xié)議HTTP能夠在SSL運(yùn)行。記錄封裝各種高層協(xié)議,具體實(shí)施壓縮解壓縮、加密解密、計(jì)算和校驗(yàn)MAC等與安全有關(guān)的操作。SSL握手協(xié)議層包括SSL握手協(xié)議(SSL HandShake Protocol)、SSL密碼參數(shù)修改協(xié)議(SSL Change Cipher Spec Protocol)、應(yīng)用數(shù)據(jù)協(xié)議(Application Data Protocol)和SSL告警協(xié)議(SSL Alert Protocol)。握手層的這些協(xié)議用于SSL管理信息的交換,允許應(yīng)用協(xié)議傳送數(shù)據(jù)之間相互驗(yàn)證,協(xié)商加密算法和生成密鑰等。SSL握手協(xié)議的作用是協(xié)調(diào)客戶(hù)和服務(wù)器的狀態(tài),使雙方能夠達(dá)到狀態(tài)的同步。
服務(wù)器認(rèn)證階段:1)客戶(hù)端向服務(wù)器發(fā)送一個(gè)開(kāi)始信息“Hello”以便開(kāi)始一個(gè)新的會(huì)話(huà)連接;2)服務(wù)器根據(jù)客戶(hù)的信息確定是否需要生成新的主密鑰,如需要?jiǎng)t服務(wù)器在響應(yīng)客戶(hù)的“Hello”信息時(shí)將包含生成主密鑰所需的信息;3)客戶(hù)根據(jù)收到的服務(wù)器響應(yīng)信息,產(chǎn)生一個(gè)主密鑰,并用服務(wù)器的公開(kāi)密鑰加密后傳給服務(wù)器;4)服務(wù)器恢復(fù)該主密鑰,并返回給客戶(hù)一個(gè)用主密鑰認(rèn)證的信息,以此讓客戶(hù)認(rèn)證服務(wù)器。用戶(hù)認(rèn)證階段:在此之前,服務(wù)器已經(jīng)通過(guò)了客戶(hù)認(rèn)證,這一階段主要完成對(duì)客戶(hù)的認(rèn)證。經(jīng)認(rèn)證的服務(wù)器發(fā)送一個(gè)提問(wèn)給客戶(hù),客戶(hù)則返回(數(shù)字)簽名后的提問(wèn)和其公開(kāi)密鑰,從而向服務(wù)器提供認(rèn)證。SSL協(xié)議提供的安全通道有以下三個(gè)特性:機(jī)密性:SSL協(xié)議使用密鑰加密通信數(shù)據(jù)??煽啃裕悍?wù)器和客戶(hù)都會(huì)被認(rèn)證,客戶(hù)的認(rèn)證是可選的。完整性:SSL協(xié)議會(huì)對(duì)傳送的數(shù)據(jù)進(jìn)行完整性檢查。從SSL 協(xié)議所提供的服務(wù)及其工作流程可以看出,SSL協(xié)議運(yùn)行的基礎(chǔ)是商家對(duì)消費(fèi)者信息保密的承諾,這就有利于商家而不利于消費(fèi)者。在電子商務(wù)初級(jí)階段,由于運(yùn)作電子商務(wù)的企業(yè)大多是信譽(yù)較高的大公司,因此這問(wèn)題還沒(méi)有充分暴露出來(lái)。但隨著電子商務(wù)的發(fā)展,各中小型公司也參與進(jìn)來(lái),這樣在電子支付過(guò)程中的單一認(rèn)證問(wèn)題就越來(lái)越突出。雖然在SSL3.0中通過(guò)數(shù)字簽名和數(shù)字證書(shū)可實(shí)現(xiàn)瀏覽器和Web服務(wù)器雙方的身份驗(yàn)證,但是SSL協(xié)議仍存在一些問(wèn)題,比如,只能提供交易中客戶(hù)與服務(wù)器間的雙方認(rèn)證,在涉及多方的電子交易中,SSL協(xié)議并不能協(xié)調(diào)各方間的安全傳輸和信任關(guān)系。在這種情況下,Visa和 MasterCard兩大信用卡公司組織制定了SET協(xié)議,為網(wǎng)上信用卡支付提供了全球性的標(biāo)準(zhǔn)。