王一飛
摘要:該文介紹了P2P應(yīng)用以及P2P應(yīng)用所面臨的安全問(wèn)題,針對(duì)這些安全問(wèn)題進(jìn)行分析研究,提出了一種P2P網(wǎng)絡(luò)系統(tǒng)中的安全策略。
關(guān)鍵詞:P2P;對(duì)等網(wǎng);用戶識(shí)別;安全策略;安全威脅
近年來(lái),隨著P2P(Peer-to-Peer)技術(shù)的日趨成熟,基于P2P網(wǎng)絡(luò)的各種應(yīng)用系統(tǒng)不斷涌現(xiàn)和壯大,P2P技術(shù)應(yīng)用主要集中在:1)分布式計(jì)算。P2P技術(shù)可以將網(wǎng)絡(luò)中眾多計(jì)算機(jī)暫時(shí)不用的計(jì)算能力連接起來(lái),用這積累起來(lái)的巨大的計(jì)算能力來(lái)解決問(wèn)題。如有許多大型的計(jì)算,比如某些天體力學(xué)中的計(jì)算,單靠一個(gè)或數(shù)個(gè)PC的計(jì)算能力是不可能完成的,甚至單個(gè)的大型計(jì)算機(jī)的計(jì)算能力也不能滿足其需求;2)交互應(yīng)用。交互應(yīng)用是指Internet上用戶之間的實(shí)時(shí)通信,比如即時(shí)消息、語(yǔ)音聊天、視頻聊天等。這是我們平時(shí)經(jīng)常用到的P2P技術(shù)的應(yīng)用實(shí)例。在交互的過(guò)程中,應(yīng)包括信息的發(fā)布者,信息的接受者和管理員三種角色;3)文件共享。文件共享也是P2P技術(shù)的重要應(yīng)用之一。有三種角色參與了文件共享的過(guò)程,即文件的發(fā)布者、文件的接受者和管理員。
1P2P應(yīng)用帶來(lái)的安全問(wèn)題
基于P2P的分布式計(jì)算所面臨的可靠性和安全性問(wèn)題,遠(yuǎn)比單機(jī)的計(jì)算任務(wù)要復(fù)雜得多。在計(jì)算任務(wù)的提交者(分布式計(jì)算用戶)將計(jì)算任務(wù)(可以包含應(yīng)用程序、數(shù)據(jù)、結(jié)果位置、需要的資源、通知機(jī)制等)提交后,有一個(gè)中心的管理服務(wù)器(不是必需的,可以由發(fā)起者完成管理工作)按照一定的策略,將工作分配下去,于是開(kāi)始了該分布式計(jì)算的過(guò)程。而對(duì)于提供這些計(jì)算資源的用戶,分布式計(jì)算程序應(yīng)該對(duì)他們盡量透明,分布式計(jì)算程序不影響他們現(xiàn)行的工作,他們也不知道使用其計(jì)算資源的用戶身份、分布式計(jì)算程序的具體操作和得到的數(shù)據(jù)信息。
基于P2P的交互應(yīng)用信任模型很依賴于具體應(yīng)用實(shí)例的特殊性以及所包含內(nèi)容的敏感度。對(duì)于傳輸內(nèi)容有一定敏感性的應(yīng)用,可能存在著以下這些安全威脅:1)竊?。旱谌娇梢杂帽O(jiān)聽(tīng)信道或橋接攻擊的方法非法得到通信內(nèi)容;2)篡改:第三方可以用橋接攻擊的方法,改變被傳輸?shù)膬?nèi)容;3)偽裝:偽裝通訊的某一方,騙取通訊內(nèi)容。
基于P2P的文件共享應(yīng)用過(guò)程中,文件的發(fā)布者希望知道:誰(shuí)是文件的接受者、他是否有權(quán)限接受此文件。文件的接受者希望所接受的文件就是他想要的,即要保證文件的完整性。管理員希望對(duì)文件內(nèi)容可以做一定的審記。另外,為了保證文件的安全傳輸,也要防止數(shù)據(jù)在傳輸期間可能受到的攔截攻擊。
2P2P系統(tǒng)安全策略的研究
根據(jù)上述P2P的三種應(yīng)用中我們分析出的安全威脅,我們可以得到我們的安全機(jī)制所要完成的工作包括:
1)用戶身份的識(shí)別與認(rèn)證
這在三種應(yīng)用中都有必要,可以說(shuō)是整個(gè)P2P安全機(jī)制中的核心內(nèi)容,在分布式計(jì)算中,要對(duì)計(jì)算任務(wù)的提交者進(jìn)行身份認(rèn)證,防止對(duì)計(jì)算資源的非授權(quán)使用;在交互應(yīng)用中,要對(duì)交互對(duì)手的身份進(jìn)行驗(yàn)證,重點(diǎn)是對(duì)信息發(fā)布者的身份進(jìn)行驗(yàn)證,防止偽裝攻擊;在文件共享中,用身份認(rèn)證保證文件訪問(wèn)控制的正確實(shí)施。
2)基于資源的訪問(wèn)控制
與身份認(rèn)證組合使用,保證只有被授權(quán)的合法用戶才能得到想要的資源。
3)安全傳輸
無(wú)論是分布式計(jì)算中的數(shù)據(jù)和結(jié)果傳輸,交互應(yīng)用中的交互信息,文件共享中的文件傳輸,都需要一個(gè)加/解密過(guò)程,來(lái)保證對(duì)應(yīng)內(nèi)容傳輸過(guò)程中不被竊聽(tīng)、篡改。
4)完整性保護(hù)
在分布式計(jì)算,要保證被分發(fā)到各個(gè)計(jì)算資源的程序代碼和數(shù)據(jù)的完整性,保證計(jì)算結(jié)果的完整性;文件共享中要保證被共享文件的完整性。
3P2P系統(tǒng)安全策略的設(shè)計(jì)
首先我們要實(shí)現(xiàn)的就是對(duì)等認(rèn)證,在C/S方式下,用戶可以有多種認(rèn)證方式,最常見(jiàn)的是基于口令的身份認(rèn)證。但這種認(rèn)證方式的安全強(qiáng)度較低,存在著窮舉口令或攔截認(rèn)證報(bào)文等多種可能的攻擊,另外一個(gè)最大的問(wèn)題是,在對(duì)等方式下,沒(méi)有一個(gè)集中存放口令的sever來(lái)驗(yàn)證用戶身份,不可能要求每一個(gè)交互對(duì)手都知道我的口令,所以在P2P方式下,這樣的身份認(rèn)證手段是不適合的。
基于x.509證書的身份認(rèn)證很適合在應(yīng)用P2P技術(shù)的系統(tǒng)中使用,因?yàn)樵谡J(rèn)證過(guò)程中,它并不要求要有一個(gè)sever存在,而是把認(rèn)證建立在雙方對(duì)于簽發(fā)對(duì)方證書的CA的信任之上的。X.509證書是建立在非對(duì)稱加密體制上的,所有人都使用數(shù)字證書(最終成為數(shù)字身份證),所有網(wǎng)絡(luò)上有安全需求的服務(wù)都有基于數(shù)字證書的認(rèn)證過(guò)程才是整個(gè)網(wǎng)絡(luò)安全的終級(jí)方案,才能在網(wǎng)絡(luò)上建立和現(xiàn)實(shí)社會(huì)中一樣的安全秩序。
下面我們就給出一個(gè)身份認(rèn)證過(guò)程的實(shí)例來(lái)具體說(shuō)明。
假設(shè)A要驗(yàn)證B的身份,B有由A所信任的CA甲簽發(fā)的數(shù)字證書(所謂信任,一是A承認(rèn)甲的權(quán)威性,同時(shí)A擁有甲的公鑰)。B所擁有的數(shù)字證書當(dāng)然要包含以下內(nèi)容:簡(jiǎn)單的用戶信息,B的公鑰,CA甲對(duì)以上內(nèi)容的簽名(做文摘后甲用私鑰匙加密)交互過(guò)程如下:
1)A要求B提交證書。
2)B向A提交證書,A用甲的公鑰做驗(yàn)證,確認(rèn)證書。
3)A用B的公鑰加密一個(gè)由時(shí)戳生成的隨機(jī)數(shù),將它發(fā)給B,(同時(shí)再給B一個(gè)對(duì)稱密鑰,或是對(duì)話密鑰)。
4)B用自己的私鑰對(duì)A送回的信息解密,將所得的信息送回(可以用A傳來(lái)的對(duì)稱密鑰加密)。
5)完成身份認(rèn)證過(guò)程。
傳輸安全和部分的完整性保護(hù)工作,我們采用SSL來(lái)完成。SSL工作過(guò)程是在身份認(rèn)證過(guò)程中,交互雙方交換了通訊所要使用的一對(duì)對(duì)稱密鑰匙(會(huì)話密鑰),然后所有要發(fā)送的數(shù)據(jù)在發(fā)送端加密,在接受方被解密。這樣,就能有效地防止竊聽(tīng)信道、篡改傳輸數(shù)據(jù)等攻擊。
完整性保護(hù)工作的重點(diǎn)是保護(hù)內(nèi)容的完整性,如保護(hù)文件共享時(shí),文件接受者收到的就是他要求的文件,或者至少他能追查出是誰(shuí)生成了這個(gè)文件。有許多方法可以驗(yàn)證內(nèi)容,包括簡(jiǎn)單的校驗(yàn)和,加密和水印技術(shù)。在保證內(nèi)容完整性的時(shí)候,我們引進(jìn)一種基于非對(duì)稱加密機(jī)制的數(shù)字簽名的機(jī)制:
1)在安全連接建立好后,對(duì)等點(diǎn)A向?qū)Φ赛c(diǎn)B要求一個(gè)內(nèi)容。
2)如果對(duì)等點(diǎn)B創(chuàng)建了該內(nèi)容,它就會(huì)在傳送該內(nèi)容之前為其數(shù)字簽名。如果對(duì)等點(diǎn)B只是發(fā)布在別處創(chuàng)建的內(nèi)容,那么該內(nèi)容是已經(jīng)被簽名過(guò)的。
3)在對(duì)等點(diǎn)A收到內(nèi)容后,它將驗(yàn)證附在內(nèi)容上的數(shù)字簽名。具體過(guò)程是,A對(duì)收到的文件內(nèi)容做文摘,用B的公鑰對(duì)B的簽名解密,將得到的結(jié)果與文摘做比較,就可以得到結(jié)果。
鑒于P2P文件共享時(shí)文件被多次復(fù)制,接受者多半不是從文件的發(fā)布者得到文件,有很大的危險(xiǎn)性。所以對(duì)文件內(nèi)容進(jìn)行校驗(yàn)是十分必要的。
4小結(jié)
本文對(duì)P2P網(wǎng)絡(luò)系統(tǒng)中安全問(wèn)題進(jìn)行了分析研究,提出了強(qiáng)認(rèn)證機(jī)制的安全策略,增強(qiáng)了P2P系統(tǒng)的安全性和可審計(jì)性,然而所給的安全解決方案也并不全面,例如沒(méi)有涉及如何解決引入互操作性所帶來(lái)的安全問(wèn)題等,不足之處將會(huì)成為我們?nèi)蘸蟮难芯恐攸c(diǎn)。