專利名稱:P2p網(wǎng)絡(luò)中對等用戶結(jié)點間的加密安全數(shù)據(jù)交換方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種互聯(lián)網(wǎng)的數(shù)據(jù)交換方法,特別是P2P網(wǎng)絡(luò)中對等用戶結(jié)點間安 全的加密通信方法。
背景技術(shù):
P2P(Peer to Peer,點對點)網(wǎng)絡(luò)也被稱為對等網(wǎng)絡(luò),與當(dāng)前互聯(lián)網(wǎng)上常見的S / C(服務(wù)器/客戶端)模式相比,網(wǎng)絡(luò)中每個結(jié)點可以自由地加入或退出網(wǎng)絡(luò),結(jié)點之間的 關(guān)系都是對等的,各個結(jié)點間可以更好地共享資源。P2P網(wǎng)絡(luò)在用戶間的直接通信、文件交 換以及分布計算方面都有廣泛的應(yīng)用前景。然而,P2P網(wǎng)絡(luò)是非中心化網(wǎng)絡(luò),結(jié)點之間數(shù)據(jù)交換方便,資源分享頻繁,各個結(jié)點 可以自由地加入或退出,病毒、木馬很容易通過網(wǎng)絡(luò)傳播,所以用戶數(shù)據(jù)在傳輸過程中遭遇 竊聽、篡改、重放、中間人等多種攻擊。為了避免上述問題,需要一種安全的信息通信機制實 現(xiàn)對P2P通信的安全保護(hù)。在現(xiàn)有技術(shù)中,P2P的通信往往是數(shù)據(jù)明文傳輸,缺乏對數(shù)據(jù)的安全保護(hù)。已有的 加密通信方法如SSL/TLS和IKE應(yīng)用在P2P網(wǎng)絡(luò)傳輸上過于龐大復(fù)雜,并且SSL/TLS和IKE 本身又有安全缺陷,容易遭到中間人攻擊。具體來說,SSL/TLS協(xié)議證書完全是明文傳輸, 各戶節(jié)點的身份很容易被竊聽,IKE的nonce隨機數(shù)也是明文發(fā)送,容易被中間人截獲,因 而迫切需要一套解決方案來保護(hù)端對端的數(shù)據(jù)傳輸。目前對于P2P網(wǎng)絡(luò)用戶節(jié)點的認(rèn)證已經(jīng)提出了切實可行的方法,通過認(rèn)證服務(wù)器 對用戶頒發(fā)數(shù)字證書,認(rèn)證時交換證書實現(xiàn)認(rèn)證,可是沒有考慮認(rèn)證后數(shù)據(jù)的安全傳輸。網(wǎng) 絡(luò)用戶的認(rèn)證歸根結(jié)底是為了實現(xiàn)數(shù)據(jù)的安全交換,所以非常需要一種能夠從認(rèn)證開始, 到數(shù)據(jù)的傳輸都能保障P2P網(wǎng)絡(luò)中對等用戶結(jié)點間的安全通信的方法。
發(fā)明內(nèi)容
本發(fā)明所要解決的技術(shù)問題是為了克服P2P網(wǎng)絡(luò)中對等用戶結(jié)點通信中的安全 問題,而設(shè)計出從認(rèn)證開始到數(shù)據(jù)傳輸?shù)陌踩ㄐ欧椒ā1景l(fā)明為解決上述技術(shù)問題,采用如下技術(shù)方案
一種P2P網(wǎng)絡(luò)中對等用戶結(jié)點間的加密安全數(shù)據(jù)交換方法,包括如下步驟 步驟1 網(wǎng)絡(luò)中任意兩個對等用戶結(jié)點A、B通過認(rèn)證服務(wù)器登錄網(wǎng)絡(luò)獲取公鑰證書,證 書由認(rèn)證服務(wù)器的私鑰對用戶結(jié)點公鑰的數(shù)字簽名產(chǎn)生;
步驟2 用戶節(jié)點A向用戶節(jié)點B發(fā)送用戶結(jié)點A的公鑰證書,結(jié)點B驗證結(jié)點A的公 鑰證書獲得結(jié)點A的公鑰;
步驟3 用戶結(jié)點B向用戶結(jié)點A發(fā)送結(jié)點B的公鑰證書和隨機數(shù)Nb用結(jié)點A的公鑰 加密,用戶結(jié)點A用自身私鑰解密用戶結(jié)點B發(fā)來公鑰證書和隨機數(shù)Nb,驗證結(jié)點B的證書 獲得結(jié)點B的公鑰;
步驟4 用戶結(jié)點A向用戶結(jié)點B發(fā)送自身的隨機Na,用B的公鑰加密,用戶結(jié)點B用自身的私鑰解密用戶結(jié)點A發(fā)來的隨機數(shù)Na。步驟5 結(jié)點A擁有自身的隨機數(shù)Na和結(jié)點B發(fā)來的隨機數(shù)Nb,結(jié)點B擁有自身 的隨機數(shù)Nb和結(jié)點A發(fā)來的隨機數(shù)Na,應(yīng)用加密算法用戶結(jié)點A和用戶結(jié)點B形成加密通 道,進(jìn)行數(shù)據(jù)加密傳輸。所述的步驟1中,P2P網(wǎng)絡(luò)中對等用戶結(jié)點間的公鑰證書產(chǎn)生包括如下步驟 步驟1-1 對于信任域的任意用戶結(jié)點先下載有認(rèn)證服務(wù)器的公鑰,然后用戶結(jié)點在
登錄時生成自身的公、私密鑰對,將其中的公鑰與登錄時所輸入的用戶名、密碼一起用認(rèn)證 服務(wù)器的公鑰加密,發(fā)送到認(rèn)證服務(wù)器;
步驟1-2 認(rèn)證服務(wù)器用自身的私鑰解密所接收到的加密的用戶名、密碼信息后,核對 登錄用戶結(jié)點的用戶名、密碼,核對成功則該用戶結(jié)點登錄成功;
步驟1-3 認(rèn)證服務(wù)器用自身的私鑰對用戶結(jié)點的公鑰進(jìn)行數(shù)字簽名,得到該用戶結(jié) 點的公鑰證書;
步驟1-4 用戶結(jié)點的公鑰證書采用該用戶結(jié)點的公鑰加密后發(fā)送給該用戶結(jié)點,該 用戶結(jié)點利用私鑰解密后保存所得到的公鑰證書。所述步驟1-1中用戶結(jié)點在各次登錄時所生成的自身的公、私密鑰對互不相同。所述的P2P網(wǎng)絡(luò)中對等用戶結(jié)點間的加密安全數(shù)據(jù)交換方法,其特征在于所述 步驟5所述加密算法為DH加密算法。本發(fā)明實現(xiàn)了下列有益效果
1、本發(fā)明提出了對等用戶建立安全通信的方法,不僅僅建立互相的認(rèn)證,還考慮了通 信過程中的加密傳輸。2、將認(rèn)證和加密通信的建立緊密地結(jié)合起來,通過認(rèn)證獲得的對方公鑰,立即用 于加密通道的建立。3、用戶每次登錄都產(chǎn)生新的公私密鑰對,應(yīng)用新的證書,每次交換隨機數(shù)都用不 同的公鑰對其進(jìn)行加密,極大地減少了 DH密鑰被破解實施中間人攻擊的可能性。4、每一次建立加密通道,所交互的隨機數(shù)不同,加密通道不易被破解。5、安全通信建立過程簡單,交互次數(shù)少,除第一次發(fā)送證書是明文,其余都在密文 情況下進(jìn)行信息交互,具有較好的安全性。
圖1為本發(fā)明在兩個結(jié)點間建立安全通信的示意圖; 圖2為本發(fā)明認(rèn)證服務(wù)器獲取證書的流程圖3為本發(fā)明中利用證書建立安全通信的流程圖。
具體實施例方式下面結(jié)合附圖,對本發(fā)明做進(jìn)一步的說明。為了方便理解,以一個簡單的P2P網(wǎng)絡(luò)為例,對本發(fā)明的實現(xiàn)方法加以說明。如圖 1所示,在這一 P2P網(wǎng)絡(luò)中,有兩個用戶結(jié)點,分別為用戶結(jié)點A和用戶結(jié)點B,還有一個認(rèn)
4證服務(wù)器通過網(wǎng)絡(luò)連接。網(wǎng)絡(luò)中的用戶結(jié)點在登錄過程中會得到各自的證書,利用這一證 書,應(yīng)用公鑰算法可實現(xiàn)加密環(huán)境中隨機數(shù)的交換,建立加密安全通信。參考圖2,首先對用 戶結(jié)點證書的獲取過程進(jìn)行說明。一個用戶結(jié)點,假設(shè)為用戶結(jié)點A,首先從認(rèn)證服務(wù)器下載認(rèn)證服務(wù)器公鑰,然后 輸入用戶名和密碼登錄網(wǎng)絡(luò)。在登錄過程中,根據(jù)用戶結(jié)點A終端的非對稱加密算法會自 動生成一對公私密鑰對,其中的私鑰以安全方式予以保存,而公鑰則會與用戶結(jié)點所輸入 的用戶名、密鑰一起采用認(rèn)證服務(wù)器的公鑰加密,然后將加密結(jié)果通過網(wǎng)絡(luò)發(fā)送給認(rèn)證服 務(wù)器。需要說明的是,用戶結(jié)點每次登錄所生成的公私密鑰對是不同的,此次登錄所生成的 公私密鑰對不能用于下次登錄的過程中。當(dāng)認(rèn)證服務(wù)器收到用戶結(jié)點A所發(fā)送的加密結(jié)果后,采用自身的密鑰對加密結(jié)果 進(jìn)行解密,并對解密所得的用戶名和密碼進(jìn)行檢查,如果用戶名和密碼正確,則表示用戶結(jié) 點A登錄成功。在用戶結(jié)點A登錄成功后,
認(rèn)證服務(wù)器將用戶結(jié)點A所發(fā)送的用戶結(jié)點A公鑰用自己的私鑰進(jìn)行數(shù)字簽名,形成 用于身份認(rèn)證的證書。認(rèn)證服務(wù)器采用用戶結(jié)點A的公鑰將該證書加密后,返還給用戶結(jié) 點A。用戶結(jié)點A收到后用自己的私鑰予以解密,保存所得到的證書。在上述登錄過程中,用戶結(jié)點A經(jīng)過與認(rèn)證服務(wù)器的交互后得到用于身份認(rèn)證的 證書,該證書包括由認(rèn)證服務(wù)器私鑰簽名的用戶結(jié)點A公鑰。上述過程對于用戶結(jié)點B而 言,同樣如此。用戶結(jié)點B在成功登錄到網(wǎng)絡(luò)中后,也能夠從認(rèn)證服務(wù)器得到一個用于身份 認(rèn)證的證書,只是該證書中所包括的是由認(rèn)證服務(wù)器私鑰簽名的用戶結(jié)點B公鑰。當(dāng)用戶結(jié)點在登錄網(wǎng)絡(luò)后,根據(jù)實際應(yīng)用的需要,一個用戶結(jié)點需要與網(wǎng)絡(luò)中的 其它用戶結(jié)點建立連接安全通信,實現(xiàn)數(shù)據(jù)的加密交換。首先要做的就是證書交換,在公鑰 保護(hù)下進(jìn)行隨機數(shù)的交換,建立DH加密通道。下面仍以用戶結(jié)點A、B為例,參考圖3,對兩 個用戶結(jié)點間建立加密通道加以說明。假設(shè)數(shù)據(jù)連接的建立過程由用戶結(jié)點A發(fā)起,則用戶結(jié)點A需要向用戶結(jié)點B發(fā) 送自己的證書,用戶結(jié)點B收到后,用認(rèn)證服務(wù)器公鑰對證書A予以解密,獲得用戶A的公 鑰。用戶結(jié)點B向用戶結(jié)點A發(fā)送結(jié)點B的證書和隨機數(shù)Nb用結(jié)點A的公鑰加密,用戶結(jié) 點A用自身私鑰解密用戶結(jié)點B發(fā)來證書和隨機數(shù)Nb,驗證結(jié)點B的證書獲得結(jié)點B的公 鑰。用戶結(jié)點A向用戶結(jié)點B發(fā)送自身的隨機Na,用B的公鑰加密,用戶結(jié)點B用自身的私 鑰解密用戶結(jié)點A發(fā)來的隨機數(shù)Na。結(jié)點A擁有自身的隨機數(shù)Na和結(jié)點B發(fā)來的隨機數(shù) Nb,結(jié)點B擁有自身的隨機數(shù)Nb和結(jié)點A發(fā)來的隨機數(shù)Na,應(yīng)用DH加密算法用戶結(jié)點A和 用戶結(jié)點B形成加密通道。上述加密通信建立的過程,若在認(rèn)證過程中有一個用戶結(jié)點C對用戶結(jié)點B所返 回的消息進(jìn)行攔截,由于它不具有用戶結(jié)點A的私鑰,因此不能對攔截結(jié)果進(jìn)行解密,也就 無法偽裝成用戶結(jié)點B與用戶結(jié)點A建立連接,從而造成安全通信建立的失敗。同樣如果 該結(jié)點攔截A發(fā)來的隨機數(shù),由于它不具有用戶結(jié)點A的私鑰,因此不能對攔截結(jié)果進(jìn)行解 密,如此建立的DH加密通道是安全的,可以防止中間人攻擊。在上述加密通信建立的過程中;用戶結(jié)點A、B之間的身份認(rèn)證過程并不涉及到認(rèn) 證服務(wù)器。認(rèn)證服務(wù)器只在用戶登錄過程中為該用戶結(jié)點授予此次登錄時的身份認(rèn)證證 書,以后這一用戶結(jié)點在此次登錄中無論與多少個用戶結(jié)點建立連接,都和認(rèn)證服務(wù)器無關(guān),大大降低了認(rèn)證服務(wù)器的負(fù)載,也就不會因為認(rèn)證服務(wù)器負(fù)載過重而延緩兩個用戶結(jié) 點間的數(shù)據(jù)連接過程。 最后所應(yīng)說明的是,以上實施例僅用以說明本發(fā)明的技術(shù)方案而非限制。盡管參 照實施例對本發(fā)明進(jìn)行了詳細(xì)說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解,對本發(fā)明的技術(shù)方 案進(jìn)行修改或者等同替換,都不脫離本發(fā)明技術(shù)方案的精神和范圍,其均應(yīng)涵蓋在本發(fā)明 的權(quán)利要求范圍當(dāng)中。
權(quán)利要求
1.在一種P2P網(wǎng)絡(luò)中對等用戶結(jié)點間的加密安全數(shù)據(jù)交換方法,其特征在于,包括如 下步驟步驟1 網(wǎng)絡(luò)中任意兩個對等用戶結(jié)點A、B分別通過認(rèn)證服務(wù)器登錄網(wǎng)絡(luò)獲取公鑰證 書,所述證書由認(rèn)證服務(wù)器的私鑰對用戶結(jié)點公鑰的數(shù)字簽名產(chǎn)生;步驟2 用戶結(jié)點A向用戶結(jié)點B發(fā)送用戶結(jié)點A的公鑰證書,用戶結(jié)點B驗證用戶結(jié) 點A的公鑰證書獲得用戶結(jié)點A的公鑰;步驟3 用戶結(jié)點B采用用戶結(jié)點A的公鑰加密自身的公鑰證書和隨機數(shù)Nb后發(fā)送給 用戶結(jié)點A,用戶結(jié)點A用自身私鑰解密用戶結(jié)點B發(fā)來公鑰證書和隨機數(shù)Nb,驗證用戶結(jié) 點B的證書,獲得用戶結(jié)點B的公鑰;步驟4 用戶結(jié)點A采用用戶結(jié)點B的公鑰加密自身的隨機數(shù)Na,并發(fā)送給用戶結(jié)點B ; 用戶結(jié)點B用自身的私鑰解密用戶結(jié)點A發(fā)來的隨機數(shù)Na ;步驟5 用戶結(jié)點A擁有自身的隨機數(shù)Na和用戶結(jié)點B發(fā)來的隨機數(shù)Nb,用戶結(jié)點B擁 有自身的隨機數(shù)Nb和用戶結(jié)點A發(fā)來的隨機數(shù)Na ;應(yīng)用加密算法,使用戶結(jié)點A和用戶結(jié) 點B形成加密通道,進(jìn)行數(shù)據(jù)加密傳輸。
2.根據(jù)權(quán)利要求1所述的P2P網(wǎng)絡(luò)中對等用戶結(jié)點間的加密安全數(shù)據(jù)交換方法,所述 的步驟1中,P2P網(wǎng)絡(luò)中對等用戶結(jié)點間的公鑰證書產(chǎn)生包括如下步驟步驟1-1 對于信任域的任意用戶結(jié)點先下載有認(rèn)證服務(wù)器的公鑰,然后用戶結(jié)點在 登錄時生成自身的公、私密鑰對,將其中的公鑰與登錄時所輸入的用戶名、密碼一起用認(rèn)證 服務(wù)器的公鑰加密,發(fā)送到認(rèn)證服務(wù)器;步驟1-2 認(rèn)證服務(wù)器用自身的私鑰解密所接收到的加密的用戶名、密碼信息后,核對 登錄用戶結(jié)點的用戶名、密碼,核對成功則該用戶結(jié)點登錄成功;步驟1-3 認(rèn)證服務(wù)器用自身的私鑰對用戶結(jié)點的公鑰進(jìn)行數(shù)字簽名,得到該用戶結(jié) 點的公鑰證書;步驟1-4 用戶結(jié)點的公鑰證書采用該用戶結(jié)點的公鑰加密后發(fā)送給該用戶結(jié)點,該 用戶結(jié)點利用私鑰解密后保存所得到的公鑰證書。
3.根據(jù)權(quán)利要求2所述的P2P網(wǎng)絡(luò)中對等用戶結(jié)點間的加密安全數(shù)據(jù)交換方法,其特 征在于所述步驟1-1中用戶結(jié)點在各次登錄時所生成的自身的公、私密鑰對互不相同。
4.根據(jù)權(quán)利要求1所述的P2P網(wǎng)絡(luò)中對等用戶結(jié)點間的加密安全數(shù)據(jù)交換方法,其特 征在于所述步驟5所述加密算法為DH加密算法。
全文摘要
本發(fā)明提供一種P2P網(wǎng)絡(luò)中對等用戶結(jié)點間的加密安全數(shù)據(jù)交換方法,網(wǎng)絡(luò)中任意兩個對等用戶結(jié)點A、B分別通過認(rèn)證服務(wù)器登錄網(wǎng)絡(luò)獲取公鑰證書,通過交換操作,用戶結(jié)點A擁有自身的隨機數(shù)NA和用戶結(jié)點B發(fā)來的隨機數(shù)NB,用戶結(jié)點B擁有自身的隨機數(shù)NB和用戶結(jié)點A發(fā)來的隨機數(shù)NA;然后應(yīng)用加密算法,使用戶結(jié)點A和用戶結(jié)點B形成加密通道,進(jìn)行數(shù)據(jù)加密傳輸。本發(fā)明安全通信建立過程簡單,交互次數(shù)少,除第一次發(fā)送證書是明文,其余都在密文情況下進(jìn)行信息交互,具有較好的安全性。
文檔編號H04L9/32GK102111411SQ20111002315
公開日2011年6月29日 申請日期2011年1月21日 優(yōu)先權(quán)日2011年1月21日
發(fā)明者李天目, 韓進(jìn) 申請人:南京信息工程大學(xué)