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