秦 杰
[摘要]網(wǎng)絡(luò)即時(shí)通訊在為人們?nèi)粘=涣鲙?lái)便利的同時(shí),也伴隨著信息泄露、個(gè)人隱私被竊等煩擾。如何保證敏感信息在網(wǎng)絡(luò)上安全的傳輸成為一個(gè)重要的研究課題?;诰W(wǎng)絡(luò)通信的軟件都需要采用加密手段來(lái)最大限度上對(duì)用戶(hù)的敏感信息進(jìn)行保護(hù),其中密鑰的管理將影響整個(gè)系統(tǒng)的性能和安全性。模擬SSL協(xié)議原理,提出使用公鑰密碼進(jìn)行私密鑰的分配,并通過(guò)密鑰分配中心(KDC)對(duì)公鑰密碼進(jìn)行認(rèn)證的解決方案。
[關(guān)鍵詞]SSL RSA 數(shù)字簽名 KDC
中圖分類(lèi)號(hào):TP3文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):1671-7597(2009)0810055-01
一、研究背景
隨著顧客行為、溝通方式的轉(zhuǎn)變,單一通道的電話(huà)客服已不再能滿(mǎn)足網(wǎng)絡(luò)時(shí)代的需求,網(wǎng)頁(yè)聊天作為一種高效、內(nèi)容豐富,成本低廉的新興客戶(hù)服務(wù)方式,正被廣泛應(yīng)用于企業(yè)客戶(hù)服務(wù)領(lǐng)域。目前,越來(lái)越多的企業(yè)門(mén)戶(hù)網(wǎng)站出現(xiàn)“在線(xiàn)支持”的鏈接,您只需輕點(diǎn)鼠標(biāo),就可以和相關(guān)的客服人員進(jìn)行即時(shí)通訊。數(shù)據(jù)資料顯示,這種通訊方式有效地降低投入及運(yùn)營(yíng)費(fèi)用達(dá)到30%,并且可有效增加25%的新客戶(hù)。但是,通訊內(nèi)容往往包括一些私密的信息,尤其是在提供金融、醫(yī)療等方面的咨詢(xún)服務(wù)時(shí),信息的安全問(wèn)題成為了客戶(hù)使用的最大的顧慮。
目前,國(guó)內(nèi)外一些知名產(chǎn)品,如Live Person,Sight Max等都是采用基于安全套接字層協(xié)議(SSL)的解決方案,具有如下優(yōu)點(diǎn):
1.安全性高:SSL協(xié)議第3版作為業(yè)界使用一般標(biāo)準(zhǔn),提供可靠的端到端安全服務(wù),保障了消息的保密性和完整性。
2.實(shí)現(xiàn)方便:主流Web服務(wù)器如Netscape、IE瀏覽器均實(shí)現(xiàn)了SSL協(xié)議。
同時(shí)又存在著以下缺點(diǎn):
1.SSL使用復(fù)雜的數(shù)學(xué)公式進(jìn)行數(shù)據(jù)加密和解密,隨著秘鑰位數(shù)的增加,高強(qiáng)度的計(jì)算給服務(wù)器CPU造成了沉重負(fù)擔(dān)并產(chǎn)生了嚴(yán)重的性能瓶頸。
2.需要權(quán)威的第三方認(rèn)證機(jī)構(gòu)頒發(fā)證書(shū),增加了成本開(kāi)銷(xiāo)。
3.SSL提供了端到端的安全服務(wù),對(duì)于有多方參與的會(huì)話(huà)來(lái)說(shuō),會(huì)增加加密解密的次數(shù),增加了性能開(kāi)銷(xiāo)。
即時(shí)通訊在應(yīng)用上首先考慮的是信息的即時(shí)性,其次才考慮到安全性。本文旨在尋找一種高效且相對(duì)安全的密鑰管理策略。
二、原理分析
(一)SSL握手協(xié)議。此協(xié)議允許客戶(hù)端和服務(wù)器端相互認(rèn)證、協(xié)商加密和MAC算法,保護(hù)數(shù)據(jù)使用的密鑰通過(guò)SSL記錄傳送。握手協(xié)議在傳遞應(yīng)用數(shù)據(jù)之前使用。握手協(xié)議由客戶(hù)端和服務(wù)器間交換的一系列消息組成,此交換由四個(gè)階段組成:
階段1:建立安全能力,包括協(xié)議版本、會(huì)話(huà)標(biāo)識(shí)、密碼組、壓縮方法和初始隨機(jī)數(shù)。
階段2:服務(wù)器發(fā)送證書(shū),交換密鑰,證書(shū)請(qǐng)求,完成消息。
階段3:如果接收到請(qǐng)求,客戶(hù)端發(fā)送其證書(shū);發(fā)送交換密鑰,也可以發(fā)送證書(shū)驗(yàn)證消息。
階段4:改變密碼組,結(jié)束握手協(xié)議。
(二)SSL會(huì)話(huà)。SSL會(huì)話(huà)是一個(gè)客戶(hù)端和服務(wù)器間的關(guān)聯(lián),會(huì)話(huà)是通過(guò)握手協(xié)議創(chuàng)建的,定義了一組多個(gè)連接共享的密碼安全參數(shù)。
三、系統(tǒng)設(shè)計(jì)
模擬SSL握手協(xié)議,即時(shí)通訊雙方在傳遞應(yīng)用數(shù)據(jù)之前,通過(guò)密鑰分配中心交換公鑰,完成握手,并生成共享的密鑰,作為以后通信的會(huì)話(huà)密鑰。
首先我們來(lái)看由Merkle提出的一種簡(jiǎn)單的秘密鑰分配方法。
(一)簡(jiǎn)單秘密鑰分配
若A要與B通信,則執(zhí)行下列操作:
1.A產(chǎn)生公/私鑰對(duì){PUa,PRa},并將含有PUa和其標(biāo)識(shí)IDA的消息發(fā)送給B。
2.B產(chǎn)生秘密鑰KS,并用A的公鑰對(duì)KS加密后發(fā)送給A。
3.A計(jì)算D(PRa,E(PUa,KS))得出秘密鑰KS。因?yàn)橹挥蠥能解密該消息,所以只有A和B知道KS。
4.A丟掉PUa和PRa,B丟掉PUa。
這樣,A和B就可利用傳統(tǒng)密碼和會(huì)話(huà)密鑰KS安全地通信。密鑰交換完成后,A和B均丟棄KS。上述協(xié)議盡管簡(jiǎn)單,但卻很誘人。由于在通信前和通信完成后都沒(méi)有密鑰存在,所以密鑰泄密的可能性最小,同時(shí)這種通信還可以抗竊聽(tīng)攻擊。
但是,此協(xié)議是不安全的,因?yàn)閷?duì)手可以截獲消息,然后可以重放截獲的消息或者對(duì)消息進(jìn)行替換。這樣的攻擊稱(chēng)為中間人攻擊[RIVE84]。此時(shí),如果攻擊者E能夠控制通信信道,那么他可用下列方式對(duì)通信造成危害但又不被發(fā)現(xiàn):
1.A產(chǎn)生公/私鑰對(duì){PUa,PRa},并將含有PUa和其標(biāo)識(shí)IDA的消息發(fā)送給B。
2.E截獲消息,產(chǎn)生其公/私鑰對(duì){PUe,PRe},并將PUe||IDA發(fā)送給B。
3.B產(chǎn)生秘密鑰KS,并發(fā)送E(PUe,KS)。
4.E截獲該消息,并通過(guò)計(jì)算D(PRe,E(PUe,KS))得出秘密鑰KS。
5.E發(fā)送E(PUa,KS)給A。
結(jié)果是,A和B均已知KS,但他們不知道E也已知道KS。A和B用KS來(lái)交換消息;E不再主動(dòng)干擾通信信道而只需竊聽(tīng)即可。由于E也已知KS,所以E可解密任何消息,但是A和B卻毫無(wú)察覺(jué),因此上述簡(jiǎn)單協(xié)議只能用于僅有竊聽(tīng)攻擊的環(huán)境中。
(二)增加數(shù)字簽名的密鑰分配中心
如果A能確認(rèn)接收到的秘密鑰是來(lái)自B,就能有效防止中間人攻擊。由此引入數(shù)字簽名的概念:數(shù)字簽名是一種認(rèn)證機(jī)制,它使得消息的產(chǎn)生者可以添加一個(gè)起簽名作用的碼字。通過(guò)計(jì)算消息的散列值并用產(chǎn)生者的私鑰加密散列值來(lái)生成簽名。簽名保證了消息的來(lái)源和完整性。
結(jié)合客戶(hù)服務(wù)行業(yè)特點(diǎn),建立如下模型:
KDC:簡(jiǎn)單的密鑰分配中心,負(fù)責(zé)會(huì)話(huà)雙方的公鑰管理及會(huì)話(huà)秘密鑰的生成及分派。
Agent:客戶(hù)服務(wù)人員,登錄后負(fù)責(zé)提供客戶(hù)支持。
Customer:會(huì)話(huà)的一般發(fā)起者。
1.KDC產(chǎn)生公/私鑰對(duì){PUkdc,PRkdc},并將PUkdc對(duì)外公布。
2.Agent登錄系統(tǒng),產(chǎn)生其公/私鑰對(duì){PUa,PRa},并將E(PUkdc,PUa)發(fā)送給KDC。
3.KDC計(jì)算D(PRkdc,E(PUkdc,PUa))得出Agent的公鑰。因?yàn)橹挥蠯DC能解密該消息,所以能保證KDC和Agent之間的通信是安全的。
4.Customer訪(fǎng)問(wèn)網(wǎng)站發(fā)起會(huì)話(huà)請(qǐng)求,產(chǎn)生其公/私鑰對(duì){PUc,PRc},并將E(PUkdc,PUc)發(fā)送給KDC。
5.KDC計(jì)算D(PRkdc,E(PUkdc,PUc))得出Customer的公鑰。因?yàn)橹挥蠯DC能解密該消息,所以能保證KDC和Customer之間的通信是安全的。
6.KDC根據(jù)一定算法產(chǎn)生會(huì)話(huà)密鑰KS,首先計(jì)算E(PRkdc,KS)產(chǎn)生數(shù)字簽名。
7.然后計(jì)算E(PUa,E(PRkdc,KS))對(duì)會(huì)話(huà)密鑰和簽名加密,發(fā)送給Agent,計(jì)算E(PUc,E(PRkdc,KS))發(fā)送給Customer。
8.Agent計(jì)算D(PRa,E(PUa,E(PRkdc,KS)))得出經(jīng)過(guò)KDC簽名的消息,再計(jì)算D(PUkdc,E(PRkdc,KS))驗(yàn)證數(shù)字簽名并得出對(duì)稱(chēng)加密的會(huì)話(huà)密鑰KS。
9.Customer計(jì)算D(PRc,E(PUc,E(PRkdc,KS)))得出經(jīng)過(guò)KDC簽名的消息,再計(jì)算D(PUkdc,E(PRkdc,KS))驗(yàn)證數(shù)字簽名并得出對(duì)稱(chēng)加密的會(huì)話(huà)密鑰KS。
10.Agent和Customer使用KS進(jìn)行即時(shí)通訊。
上述模型假設(shè)KDC對(duì)外公布的公鑰PUkdc是安全的,能夠被Agent及Customer正確訪(fǎng)問(wèn)的。事實(shí)上也正如此,PUkdc可以通過(guò)應(yīng)用站點(diǎn)的配置文件進(jìn)行配置。
四、結(jié)束語(yǔ)
本文基于SSL協(xié)議原理,對(duì)Merkle提出的簡(jiǎn)單秘密鑰分配方法進(jìn)行改進(jìn),提出增加了密鑰分配中心及數(shù)字簽名認(rèn)證的密鑰管理方案。
參考文獻(xiàn):
[1](美)StallingsW著,楊明等譯,密碼編碼學(xué)與網(wǎng)絡(luò)安全:原理與實(shí)踐(第二版),北京:電子工業(yè)出版社,2001:51-60,130-154?.
[2]盧開(kāi)澄,計(jì)算機(jī)密碼學(xué)——計(jì)算機(jī)網(wǎng)絡(luò)中的數(shù)據(jù)保密與安全,北京:清華大學(xué)出版社,1998.
[3]馮登國(guó)、裴定一,密碼學(xué)導(dǎo)引,北京:科學(xué)出版社,1999.
[4]Salomma A著,公鑰密碼學(xué),丁存生、單煒娟譯,北京:國(guó)防工業(yè)出版社,1985.
作者簡(jiǎn)介:
秦杰(1981-),男,漢族,上海人,工程碩士,研究方向:計(jì)算機(jī)技術(shù)。