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