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