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


