吳柏華
摘要:如何保證交易過(guò)程中所傳遞的敏感信息的安全是電子商務(wù)系統(tǒng)的重要問(wèn)題,SSL協(xié)議使用對(duì)稱加密算法,本文介紹了一種基于Kerberos的認(rèn)證方式來(lái)改進(jìn)SSL握手協(xié)議的密鑰交換方式的方法。此外,考慮到SSL協(xié)議對(duì)服務(wù)器資源的大量占用,本文給出了提高服務(wù)器效率的方法。
關(guān)鍵詞:安全套接字層協(xié)議SSL;服務(wù)器;加密算法
0 引言
建立在Internet之上的電子商務(wù)系統(tǒng)以其高效率、低開(kāi)銷、高收益和全球性的特點(diǎn),得到很多國(guó)家政府和企業(yè)的重視,發(fā)展非常迅速。但是在電子商務(wù)系統(tǒng)傳輸?shù)臄?shù)據(jù)中涉及到很多私密信息,如賬號(hào)密碼、銀行卡號(hào)等。如何保證數(shù)據(jù)的安全傳輸成為最首要的問(wèn)題。SSL普遍被認(rèn)為是足夠安全的,但是有部分安全研究人員聲稱能夠攔截SSL連接,這對(duì)網(wǎng)絡(luò)安全的研究提出了新的挑戰(zhàn),促使我們不斷完善SSL協(xié)議,不斷改進(jìn)。
1 SSL協(xié)議概述
1.1 SSL安全機(jī)制
SSL協(xié)議位于HTTP層和TCP層之間,建立用戶與服務(wù)器之間的加密通信,確保所傳遞信息的安全性。SSL是工作在公共密鑰和私人密鑰基礎(chǔ)上的,任何用戶都可以獲得公共密鑰來(lái)加密數(shù)據(jù),但解密數(shù)據(jù)必須要通過(guò)相應(yīng)的私人密鑰。建立了SSL安全機(jī)制后,只有SSL允許的客戶才能與SSL允許的Web站點(diǎn)進(jìn)行通信,并且在使用URL資源定位器時(shí),輸入https,而不是http。默認(rèn)情況下我們所使用的HTTP協(xié)議是沒(méi)有任何加密措施的,所有的消息全部都是以明文形式在網(wǎng)絡(luò)上傳送的,惡意的攻擊者可以通過(guò)安裝監(jiān)聽(tīng)程序來(lái)獲得我們和服務(wù)器之間的通訊內(nèi)容。
1.2 SSL體系結(jié)構(gòu)
SSL不是一個(gè)單一的協(xié)議,而是由多個(gè)協(xié)議組成,包括SSL記錄協(xié)議、SSL握手協(xié)議、SSL修改密文規(guī)約協(xié)議、SSL告警協(xié)議,SSL記錄協(xié)議為高層協(xié)議提供基本的安全服務(wù)。特別是為Web客戶端/服務(wù)器交互提供傳送服務(wù)的HTTP協(xié)議可以在上層訪問(wèn)SSL,而高層協(xié)議負(fù)責(zé)對(duì)SSL交換進(jìn)行管理。
2 Web服務(wù)器的安全性實(shí)現(xiàn)
2.1 SSL在Web服務(wù)器中的應(yīng)用
SSL協(xié)議是建立在TCP的基礎(chǔ)上,而不是UDP。這就保證了數(shù)據(jù)傳輸?shù)目煽啃院屯暾?。那么具體SSL協(xié)議是如何保證Web服務(wù)器的安全性的呢?當(dāng)客戶端使用具有SSL功能的瀏覽器(比如IE瀏覽器)和Web服務(wù)器通信時(shí),主要會(huì)進(jìn)行以下幾個(gè)步驟以保證通信安全。首先C/S雙方進(jìn)行身份認(rèn)證。通過(guò)交換各自的數(shù)字證書(shū),對(duì)客戶端和服務(wù)器進(jìn)行身份認(rèn)證,確保連接到正確的站點(diǎn)。然后客戶端向服務(wù)器發(fā)送通過(guò)證書(shū)服務(wù)中公共密鑰加密的48位主密鑰,服務(wù)器使用自身私有密鑰對(duì)主密鑰進(jìn)行解密。
2.2 如何提高SSL在Web服務(wù)器中的效率
據(jù)測(cè)試,當(dāng)處理安全的SSL會(huì)話時(shí),標(biāo)準(zhǔn)的Web服務(wù)器只能處理1%~10%的正常負(fù)載。電子商務(wù)時(shí)代,服務(wù)器反應(yīng)速度至關(guān)重要。那么如何解決SSL協(xié)議在會(huì)話啟動(dòng)階段對(duì)服務(wù)器資源占用過(guò)大,影響整個(gè)系統(tǒng)效率的問(wèn)題則顯得非常重要。
SSL加速器將SSL協(xié)議中的大量函數(shù)計(jì)算轉(zhuǎn)移出網(wǎng)絡(luò)服務(wù)器,所有由SSL加密過(guò)的數(shù)據(jù)流經(jīng)過(guò)SSL加速器時(shí),加密的數(shù)據(jù)流都會(huì)被解密然后才被傳輸給服務(wù)器,另一方面由服務(wù)器發(fā)出SSL數(shù)據(jù)流則被SSL加速器加密后傳向客戶。
2.3 SSL握手協(xié)議密鑰交換方式改進(jìn)
SSL握手協(xié)議提供了一種C/S雙方都沒(méi)有證書(shū)的匿名密鑰交換方式。SSL提供這種密鑰交換方式,其主要目的是為了增強(qiáng)協(xié)議的實(shí)用性,但也帶來(lái)了不安全因素。
如果采用匿名密鑰交換方式,比較容易受到中間人攻擊,攻擊者可以使用匿名身份與雙方會(huì)話。主要有三種情況:第一,攻擊者可能冒充其他合法用戶進(jìn)入服務(wù)器進(jìn)行操作;第二,攻擊者可以通過(guò)改變服務(wù)器的網(wǎng)絡(luò)體制,發(fā)送偽造請(qǐng)求;第三,攻擊者可以對(duì)用戶和服務(wù)器的會(huì)話進(jìn)行監(jiān)聽(tīng)或者使用重放攻擊,來(lái)獲得服務(wù)或進(jìn)行破壞活動(dòng)。
Kerberos認(rèn)證協(xié)議通過(guò)提供—個(gè)集中的認(rèn)證服務(wù)器來(lái)負(fù)責(zé)用戶對(duì)服務(wù)器的認(rèn)證和服務(wù)器對(duì)用戶的認(rèn)證,保護(hù)用戶信息和服務(wù)器資源。Kerberos僅僅依賴于對(duì)稱的加密機(jī)制而沒(méi)有使用公鑰加密機(jī)制。接下來(lái)介紹基于Kerberos的SSL認(rèn)證過(guò)程:
(1)客戶端向AS發(fā)送用戶標(biāo)識(shí)和TGS標(biāo)識(shí),申請(qǐng)TGT;
(2)AS通過(guò)查找自身數(shù)據(jù)庫(kù),得到TGT,使用用戶口令中的密鑰機(jī)密后發(fā)送給客戶端。同時(shí)提示客戶端用戶輸入口令,如果口令輸入正確,則產(chǎn)生密鑰,對(duì)傳遞的數(shù)據(jù)進(jìn)行解密,還原TGT;
(3)客戶端將用戶標(biāo)識(shí)、服務(wù)標(biāo)識(shí)和TGT發(fā)送給TGS用于申請(qǐng)一個(gè)服務(wù)票據(jù);
(4)TGS對(duì)TGT進(jìn)行解密,并驗(yàn)證TGT的正確性。如果TGT未過(guò)期,且用戶標(biāo)識(shí)和網(wǎng)絡(luò)地址與消息來(lái)源一致,則TGS發(fā)布相應(yīng)的服務(wù)授權(quán)票據(jù)。
(5)客戶端將包含用戶標(biāo)識(shí)和服務(wù)授權(quán)票據(jù)的消息發(fā)送到服務(wù)器,請(qǐng)求服務(wù)。服務(wù)器同服務(wù)授權(quán)票據(jù)的內(nèi)容對(duì)用戶進(jìn)行合法性認(rèn)證。
由Kerberos的認(rèn)證過(guò)程可以看出,Kerberos認(rèn)證協(xié)議基本上能夠改進(jìn)SSL握手協(xié)議中存在的不足。
3 結(jié)論
隨著電子商務(wù)的發(fā)展,電子支付過(guò)程中單一認(rèn)證問(wèn)題就越來(lái)越突出。本文集中討論了基于安全套接層協(xié)議的安全通信問(wèn)題,提出了對(duì)SSL協(xié)議的改進(jìn),并且利用這個(gè)協(xié)議完成安全Web服務(wù)器的實(shí)現(xiàn),可以進(jìn)一步的提高網(wǎng)絡(luò)通信安全。