專利名稱:一種P2P(Peer to Peer)安全連接的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種互聯(lián)網(wǎng)即時(shí)通信技術(shù),尤其涉及一種P2P網(wǎng)絡(luò)的安全連接技術(shù)。
背景技術(shù):
本發(fā)明討論的P2P網(wǎng)絡(luò)安全共享的背景技術(shù)是用戶之間合法身份的安全識別問題,這個問題的解決當(dāng)前主要是下面一些技術(shù)和方法。
最常用的方法是在申請建立連接時(shí)進(jìn)行用戶應(yīng)答操發(fā)起方向接受方發(fā)出連接請求消息,該連接請求消息包括發(fā)起方信息;接受方接收到連接請求消息后,在屏幕上顯示發(fā)起方信息;接受方在屏幕上選擇接受還是拒絕該連接請求;如果拒絕則接受方向發(fā)起方發(fā)送連接拒絕響應(yīng),然后結(jié)束;若果接受,則接受方向發(fā)起方發(fā)送連接接受響應(yīng);發(fā)起方和接受方建立P2P連接,進(jìn)行P2P數(shù)據(jù)通信。從上述技術(shù)方案可知,利用接受方的應(yīng)答操作進(jìn)行連接安全性檢查的作用非常有限,因?yàn)榻邮芊皆趹?yīng)答連接請求時(shí),有可能由于大意或誤操作而接受非法發(fā)起方的連接請求。舉例說明,假設(shè)某非法發(fā)起方破解了一條用于文件傳送的P2P協(xié)議,該非法發(fā)起方根據(jù)破解的協(xié)議模擬出連接請求消息的數(shù)據(jù)包,比如木馬程序的數(shù)據(jù)包,再通過啟動一個批處理程序進(jìn)行群發(fā)操作,將這個木馬程序數(shù)據(jù)包發(fā)送給多個接受方,盡管接受方可通過上述應(yīng)答機(jī)制來拒絕連接請求,但是多個接受方中只要有幾個不慎選擇了接受連接請求,非法發(fā)起方的目的就達(dá)到了。
另一種方法解決了上面這種方法的缺陷,即一種點(diǎn)對點(diǎn)連接安全性檢查的方法。這種方法對即時(shí)消息業(yè)務(wù)中P2P連接的安全性進(jìn)行檢查,該方法預(yù)先在提供即時(shí)消息業(yè)務(wù)的中心服務(wù)器上保存對用戶進(jìn)行鑒權(quán)的身份鑒權(quán)信息,然后執(zhí)行如下步驟P2P連接的發(fā)起方發(fā)送包含其身份信息的連接請求至接受方;接受方接收連接請求后,發(fā)送鑒權(quán)請求至提供即時(shí)消息業(yè)務(wù)的中心服務(wù)器;中心服務(wù)器利用發(fā)起方身份信息和所述身份鑒權(quán)信息對發(fā)起方進(jìn)行鑒權(quán),并向接受方返回鑒權(quán)響應(yīng);接受方根據(jù)接收到的鑒權(quán)響應(yīng)接受或拒絕發(fā)起方的連接請求,如圖1。這種方法,因?yàn)橹行姆?wù)器的對點(diǎn)對點(diǎn)連接的發(fā)起方身份進(jìn)行鑒權(quán),能夠有效地阻止非法連接申請,從而提高了點(diǎn)對點(diǎn)連接的安全性。
但是,P2P網(wǎng)絡(luò)中,一個節(jié)點(diǎn)的這種信息切換每秒達(dá)幾十次的,假設(shè)一個P2P網(wǎng)絡(luò)中當(dāng)前在線的有1萬個節(jié)點(diǎn),這些節(jié)點(diǎn)都要向中心服務(wù)器發(fā)送鑒權(quán)請求,那么中心服務(wù)器每秒要響應(yīng)的就是幾十萬個身份鑒權(quán)請求,這對中心服務(wù)器的壓力之大不言而喻的。要緩解這個壓力,需要增設(shè)大量的服務(wù)器,而隨著互聯(lián)網(wǎng)的發(fā)展,這個成本的投入將是個巨大難題。
發(fā)明內(nèi)容
鑒于上述當(dāng)前P2P網(wǎng)絡(luò)中,合法用戶身份的鑒別方法存在的缺陷,本發(fā)明提供一種最小限度利用服務(wù)器服務(wù)的安全連接方法,即利用特有的令牌技術(shù),使得接受連接請求信息的用戶不通過服務(wù)器,可以直接對發(fā)起連接請求的用戶進(jìn)行合法和有效身份的驗(yàn)證,從而最小限度的利用服務(wù)器的服務(wù),大大地減輕服務(wù)器的壓力。
任何發(fā)送連接請求的用戶,都預(yù)先要在網(wǎng)站服務(wù)器上登陸,獲取含有身份識別信息的令牌。令牌具有有效期,獲得令牌的用戶在有效期內(nèi)可以不用再登陸服務(wù)器,用戶每一次登陸,都可以重新獲得新令牌,更新舊令牌。
用戶在獲得令牌后,在有效期內(nèi)可以向P2P網(wǎng)絡(luò)節(jié)點(diǎn)發(fā)送連接請求,執(zhí)行下列步驟A、請求連接用戶向P2P網(wǎng)絡(luò)在線節(jié)點(diǎn)發(fā)送連接請求。
B、接收到連接請求信息的用戶讀取發(fā)送連接請求用戶的令牌信息。
C、接收請求信息的用戶驗(yàn)證發(fā)送請求信息的用戶的令牌是否合法。若是,則轉(zhuǎn)E;若否,則轉(zhuǎn)D。
D、接收請求信息用戶拒絕發(fā)送請求用戶連接,用戶連接失敗,結(jié)束。
E、請求連接的用戶身份驗(yàn)證獲得通過,與在線用戶建立P2P連接,該用戶成為P2P在線用戶。
在上述步驟A之前,用戶首先要向管理中心獲得令牌,用戶獲得令牌的過程執(zhí)行下列步驟1)、用戶登錄管理中心,從管理中心下載數(shù)字證書。
2)、用戶終端生成一個臨時(shí)公共密鑰對(包含公鑰和私鑰)。
3)、用戶將自己的合法用戶名(user name)和密碼(password)用管理中心的公鑰(public key)加密。
4)、將用戶自己的public key和步驟6)生成的文件打包發(fā)送到管理中心。
5)、管理中心利用private key解密獲得用戶的用戶名和密碼。
6)、管理中心驗(yàn)證用戶是否為合法用戶。若是,則轉(zhuǎn)8);若否,則轉(zhuǎn)7)。
7)、管理中心拒絕用戶信息,登錄失敗,結(jié)束。
8)、讀取用戶的IP地址、當(dāng)前時(shí)間等信息,生成一新令牌,并以用戶的publickey加密令牌。
9)、管理中心向用戶發(fā)送加密的令牌。
10)、用戶用自己的private key解密被加密的令牌,獲得新令牌。
令牌在P2P網(wǎng)絡(luò)中用來表明一個客戶端的合法身份,每一個客戶端(用戶或者說節(jié)點(diǎn))都有自己特有的令牌,P2P客戶端用此令牌來相互認(rèn)證,如圖3所示。用戶在向管理中心獲取令牌時(shí),令牌是以加密的形式傳遞給用戶的,但在P2P網(wǎng)絡(luò)的用戶終端之間進(jìn)行相互認(rèn)證時(shí),令牌不需要加密,因?yàn)橹挥泄芾碇行牟拍芎灠l(fā),并且令牌具有時(shí)效性。
每一個令牌包含有以下信息(1)時(shí)間(Time)。指用戶獲得本令牌時(shí),在服務(wù)器登入的時(shí)間。此信息同時(shí)在對令牌的有效時(shí)間進(jìn)行計(jì)算時(shí)有效。
(2)地址(IP)。指用戶登錄服務(wù)器時(shí),用戶當(dāng)前所在的終端PC機(jī)的IP地址,或者可以是用戶PC機(jī)的物理地址。
(3)有效期(Duration)。指本令牌自用戶在服務(wù)器登陸時(shí)起持續(xù)有效的時(shí)間。用戶在令牌的有效時(shí)間內(nèi)不必再次登陸服務(wù)器,可以直接用令牌連接到P2P網(wǎng)絡(luò)在線節(jié)點(diǎn),成為P2P網(wǎng)絡(luò)中的一個在線用戶,與其他在線用戶身份、地位同等。若令牌過期,用戶需要登陸服務(wù)器重新獲得令牌;若令牌沒有過期,而用戶登錄服務(wù)器,同樣將獲得新令牌。
(4)數(shù)字簽名(Signature)。令牌由服務(wù)器的私鑰進(jìn)行簽名,即令牌與客戶端是一一對應(yīng)的,服務(wù)器簽發(fā)令牌后,不保留該令牌的信息。
因上所述,在前述步驟C中具體包括以下過程C1、驗(yàn)證令牌是否由服務(wù)器簽發(fā)。若是,則轉(zhuǎn)C2;若否,則轉(zhuǎn)D。
C2、驗(yàn)證用戶當(dāng)前IP地址與令牌內(nèi)所含IP地址是否一致。若是,則轉(zhuǎn)C3;若否,則轉(zhuǎn)D。
C3、驗(yàn)證用戶令牌是否在有效期內(nèi),若是,則轉(zhuǎn)E;若否,則轉(zhuǎn)D。
本發(fā)明的方法由于使用了令牌技術(shù),P2P網(wǎng)絡(luò)用戶可以直接通過驗(yàn)證令牌的合法性和有效性,來相互驗(yàn)證用戶的合法身份,達(dá)到更為安全的P2P連接。同時(shí)用戶合法身份的驗(yàn)證不需要向服務(wù)器發(fā)送鑒權(quán)請求,即在用戶請求連接的成為P2P在線用戶的上述步驟過程中,并不需要服務(wù)器參與,從而大大地減輕了服務(wù)器的壓力。而用戶登錄服務(wù)器獲取令牌,是階段性的,相對分散的;而且令牌具有時(shí)間有效性,在令牌有效期內(nèi),用戶請求連接到P2P網(wǎng)絡(luò)不需要登錄服務(wù)器,所以即使網(wǎng)絡(luò)中有大量的用戶,對服務(wù)器壓力也是相對很小的。
圖1是用戶向服務(wù)器請求對發(fā)送連接請用戶進(jìn)行鑒權(quán)的示意圖;圖2是不需服務(wù)器參與的用戶建立連接示意圖;圖3是用戶獲得令牌的流程示意圖;圖4是用戶以令牌相互認(rèn)證建立P2P連接流程的示意圖;具體實(shí)施方式
以下結(jié)合附圖,對本發(fā)明的具體實(shí)施方法,進(jìn)行更為詳細(xì)的說明。
本發(fā)明是為了解決P2P網(wǎng)絡(luò)連接的過程中,既要安全的建立連接,又使得服務(wù)器壓力不要太大的問題。本發(fā)明的方法,是利用特有的令牌技術(shù),使得接受連接請求信息的用戶不通過服務(wù)器,可以直接對發(fā)起連接請求的用戶進(jìn)行合法和有效身份的驗(yàn)證,從而最小限度的利用服務(wù)器的服務(wù),極大地減輕服務(wù)器的壓力,如圖2。
任何發(fā)送連接請求的用戶都預(yù)先要在網(wǎng)站服務(wù)器上登陸,然后獲取含有身份識別信息的令牌。令牌具有有效期,獲得令牌的用戶在有效期內(nèi)可以不用再登陸服務(wù)器,但用戶每一次登陸,都可以重新獲得新令牌,更新舊令牌。
作為一個較佳實(shí)施例,假設(shè)用戶A是要在服務(wù)器登陸,獲取令牌,其流程如圖3所示步驟301用戶A登錄管理中心。管理中心是一個服務(wù)器集群的總稱,包括P2P控制服務(wù)器和中心服務(wù)器等。
步驟302用戶A從管理中心下載管理中心的數(shù)字證書。數(shù)字證書是管理中心合法身份的標(biāo)志。
步驟303用戶A驗(yàn)證下載的證書是否合法,是轉(zhuǎn)305;否則轉(zhuǎn)304。
步驟304用戶A登錄的管理中心系偽造,取消此次登錄,結(jié)束。
步驟305用戶A生成一個臨時(shí)公共密鑰對(包含公鑰和私鑰)。用戶生成臨時(shí)公共密鑰對,是用來有效地獲取唯一屬于自己的信息的需要。
步驟306用戶A將自己的合法用戶名(user name)和密碼(password)用管理中心的公鑰(public key)加密。
步驟307用戶A將臨時(shí)公共密鑰對中的public key和步驟306生成的文件打包發(fā)送到管理中心。
步驟308管理中心利用自己的private key解密用戶A的文件包,獲得用戶A的用戶名和密碼。
步驟309驗(yàn)證用戶A是否為合法用戶,是轉(zhuǎn)311;否則轉(zhuǎn)310。
步驟310管理中心拒絕用戶A信息,登錄失敗,結(jié)束。
步驟311讀取用戶A的IP地址、當(dāng)前時(shí)間等信息,生成一新令牌,并以用戶的public key加密令牌。令牌是根據(jù)用戶A的信息隨機(jī)生成的,具有唯一性,服務(wù)器并不保存用戶的令牌信息。
步驟312管理中心向用戶A發(fā)送加密的令牌。
步驟313用戶A用自己的private key解密被加密的令牌,獲得新令牌。
該令牌在P2P網(wǎng)絡(luò)中表明用戶A是合法一個客戶端的唯一標(biāo)志,每一個客戶端(用戶或者說節(jié)點(diǎn))都有自己特有的令牌,P2P客戶端以相互讀取對方的令牌來達(dá)到相互認(rèn)證,如圖3所示。用戶在向管理中心獲取令牌時(shí),令牌是以加密形式傳遞給用戶的,,這樣可以有效地防止在管理中心向用戶發(fā)送令牌時(shí),被非法用戶截獲。但在P2P網(wǎng)絡(luò)的用戶終端之間進(jìn)行相互認(rèn)證時(shí),令牌的傳輸不需要加密,因?yàn)槭紫戎挥泄芾碇行牟拍芎灠l(fā),即使非法用戶截獲令牌,其IP地址與令牌內(nèi)的IP地址會沖突;其次令牌具有時(shí)間有效性,即使令牌被非法偽造,在有效時(shí)間后,令牌也會失效。
每一個令牌包含有以下信息1)時(shí)間(Time)。指用戶獲得本令牌時(shí),在服務(wù)器登入的時(shí)間。此信息同時(shí)在對令牌的有效時(shí)間進(jìn)行計(jì)算時(shí)有效。
2)地址(IP)。指用戶登錄服務(wù)器時(shí),用戶當(dāng)前所在的終端PC機(jī)的IP地址,或者可以是用戶PC機(jī)的物理地址。
3)有效期(Duration)。指本令牌自用戶在服務(wù)器登陸時(shí)起持續(xù)有效的時(shí)間。用戶在令牌的有效時(shí)間內(nèi)不必再次登陸服務(wù)器,可以直接用令牌連接到P2P網(wǎng)絡(luò)在線節(jié)點(diǎn),成為P2P網(wǎng)絡(luò)中的一個在線用戶,與其他在線用戶身份、地位同等。若令牌過期,用戶需要登陸服務(wù)器重新獲得令牌;若令牌沒有過期,而用戶登錄服務(wù)器,同樣將獲得新令牌。
4)數(shù)字簽名(Signature)。令牌由服務(wù)器的私鑰進(jìn)行簽名,即令牌與客戶端是一一對應(yīng)的,服務(wù)器簽發(fā)令牌后,不保留該令牌的信息。
用戶在獲得令牌后,在有效期內(nèi)可以向P2P網(wǎng)絡(luò)節(jié)點(diǎn)發(fā)送連接請求,隨時(shí)成為P2P網(wǎng)絡(luò)中的一個在線用戶。作為一個較佳實(shí)施例,設(shè)用戶A向P2P網(wǎng)絡(luò)用戶B發(fā)送連接請求,如流程圖4所示步驟401用戶A向P2P網(wǎng)絡(luò)在線節(jié)點(diǎn)B發(fā)送連接請求。
步驟402接收到連接請求信息的客戶端B讀取發(fā)送連接請求用戶A的令牌信息。
步驟403用戶B使用服務(wù)器的Public key驗(yàn)證令牌是否由服務(wù)器簽發(fā),是轉(zhuǎn)405;否則轉(zhuǎn)404。
服務(wù)器的公鑰在用戶登錄的時(shí)候便已經(jīng)獲得,所以此時(shí)驗(yàn)證過程已經(jīng)無需服務(wù)器參與。
步驟404用戶B拒絕用戶A連接,用戶A連接失敗,結(jié)束。
步驟405驗(yàn)證用戶A當(dāng)前IP地址與令牌內(nèi)所含IP地址是否一致,是轉(zhuǎn)406;否則轉(zhuǎn)404。
步驟406驗(yàn)證用戶A令牌是否在有效期內(nèi),是轉(zhuǎn)407;否則轉(zhuǎn)404。
步驟407用戶A身份驗(yàn)證通過,為合法用戶,建立P2P連接,用戶A成為P2P在線用戶。
從實(shí)施例可以看出,由于使用了令牌技術(shù),合法用戶能安全地與P2P網(wǎng)絡(luò)建立連接,同時(shí)在本發(fā)明方法中,用戶身份的驗(yàn)證不需要向服務(wù)器發(fā)送鑒權(quán)請求,接收連接請求信息的用戶可以直接通過驗(yàn)證令牌的合法性,來驗(yàn)證發(fā)送請求用戶的合法身份,從而大大地減輕了服務(wù)器的壓力,使得在P2P網(wǎng)絡(luò)的發(fā)展中大大地節(jié)約了服務(wù)器成本的投入。
權(quán)利要求
1.一種P2P安全連接的方法,其特征在于,利用特有的令牌技術(shù),使得接受連接請求信息的用戶不需要服務(wù)器的服務(wù),可以直接對發(fā)起連接請求的用戶進(jìn)行合法和有效身份的驗(yàn)證。
2.根據(jù)權(quán)利要求1所述方法,其特征在于,請求連接的用戶預(yù)先要在服務(wù)器上登陸,獲取含有身份識別信息的令牌。令牌具有有效期,獲得令牌的用戶在有效期內(nèi)可以不再登陸服務(wù)器,用戶每一次登陸,都可以重新獲得新令牌,更新舊令牌。
3.根據(jù)權(quán)利要求2所述方法,其特征在于,用戶在獲得令牌后,在有效期內(nèi)可以向P2P網(wǎng)絡(luò)節(jié)點(diǎn)發(fā)送連接請求,執(zhí)行下列步驟A、請求連接用戶向P2P網(wǎng)絡(luò)在線節(jié)點(diǎn)發(fā)送連接請求信息,請求信息中隨帶令牌。B、接收到連接請求信息的用戶讀取發(fā)送連接請求用戶的令牌,并驗(yàn)證該用戶的令牌是否合法、有效。若是,則轉(zhuǎn)D;若否,則轉(zhuǎn)C。C、接收請求信息用戶拒絕發(fā)送請求用戶的連接,新發(fā)起用戶連接失敗,結(jié)束。D、請求連接的用戶身份驗(yàn)證獲得通過,與在線用戶建立P2P連接,該用戶成為P2P在線用戶。
4.根據(jù)權(quán)利要求2和3所述的方法,其特征在于,在上述步驟A之前,用戶首先向服務(wù)器獲得令牌,而在用戶請求連接的成為P2P在線用戶的上述步驟過程中,并不需要服務(wù)器參與,用戶獲得令牌的過程執(zhí)行下列步驟1)、用戶登錄管理中心,從管理中心下載數(shù)字證書。管理中心是一個服務(wù)器集群的總稱,包括控制服務(wù)器和中心服務(wù)器等。2)、用戶終端生成一組臨時(shí)公共密鑰對,并將自身的合法用戶名(user name)和密碼(password)用管理中心的公鑰(public key)加密,連同密鑰對中的publickey一起發(fā)送到管理中心。
5.根據(jù)權(quán)利要求4所述的方法,其特征在于,還包括步驟3)、管理中心利用private key解密用戶的文件包,獲得用戶的用戶名和密碼,同時(shí)讀取用戶的IP地址、當(dāng)前時(shí)間等信息,生成一新令牌,并以用戶的publickey加密令牌。4)、管理中心向用戶發(fā)送加密的令牌。5)、用戶用自己的private key解密被加密的令牌,獲得新令牌。
6.根據(jù)權(quán)利要求1至5任意所述的方法,其特征在于,令牌在P2P網(wǎng)絡(luò)中用來表明一個客戶端的合法身份,每一個合法用戶都有自己特有的令牌,P2P客戶端用此令牌來相互認(rèn)證,用戶在向管理中心獲取令牌時(shí),令牌是以加密的形式傳遞給用戶的,但在P2P網(wǎng)絡(luò)的用戶終端之間進(jìn)行相互認(rèn)證時(shí),令牌不需要加密,因?yàn)橹挥泄芾碇行牟拍芎灠l(fā),并且令牌具有時(shí)效性。
7.根據(jù)權(quán)利要求1至6任意所述的方法,其特征還在于,每一個令牌包含有以下信息(1)時(shí)間(Time)。指用戶獲得本令牌時(shí),在服務(wù)器登入的時(shí)間。此信息同時(shí)在對令牌的有效時(shí)間進(jìn)行計(jì)算時(shí)有效。(2)地址(IP)。指用戶登錄服務(wù)器時(shí),用戶所在的終端PC機(jī)的IP地址,或者可以是用戶PC機(jī)的物理地址。(3)有效期(Duration)。指本令牌自用戶在服務(wù)器登陸時(shí)起持續(xù)有效的時(shí)間。用戶在令牌的有效時(shí)間內(nèi)不必再次登陸服務(wù)器,可以直接用令牌連接到P2P網(wǎng)絡(luò)在線節(jié)點(diǎn),成為P2P網(wǎng)絡(luò)中的一個在線用戶,與其他在線用戶身份、地位同等。若令牌過期,用戶需要登陸服務(wù)器重新獲得令牌;若令牌沒有過期,而用戶登錄服務(wù)器,同樣將獲得新令牌。(4)數(shù)字簽名(Signature)。令牌由服務(wù)器的私鑰進(jìn)行簽名,即令牌與客戶端是一一對應(yīng)的,服務(wù)器簽發(fā)令牌后,不保留該令牌的信息。
8.根據(jù)權(quán)利要求3所述方法,其特征在于,在前述步驟B中包括以下過程B1、驗(yàn)證令牌是否由服務(wù)器簽發(fā)。若是,則執(zhí)行步驟B2;若否,則執(zhí)行步驟C。B2、驗(yàn)證用戶當(dāng)前IP地址與令牌內(nèi)所含IP地址是否一致。若是,則執(zhí)行步驟B3;若否,則執(zhí)行步驟C。B3、驗(yàn)證用戶令牌是否在有效期內(nèi),若是,則執(zhí)行步驟D;若否,則執(zhí)行步驟C。
全文摘要
本發(fā)明提供一種P2P安全連接方法,該方法設(shè)定用戶預(yù)先在網(wǎng)站服務(wù)器上登陸,獲取含有身份識別信息的令牌,請求連接的用戶向P2P網(wǎng)絡(luò)在線節(jié)點(diǎn)發(fā)送連接請求時(shí)隨帶自己的令牌,接收到連接請求信息的用戶讀取發(fā)送連接請求用戶的令牌信息,并驗(yàn)證該用戶的令牌是否合法、有效,根據(jù)令牌的合法性、有效性決定用戶連接請求是否成功。本發(fā)明方法利用特有的令牌技術(shù),使得P2P網(wǎng)絡(luò)用戶在不需要服務(wù)器服務(wù)下,可以直接對對等用戶進(jìn)行合法和有效身份的驗(yàn)證,安全地建立P2P連接,同時(shí)因?yàn)榱钆凭哂杏行?,獲得令牌的用戶在有效期內(nèi)可以不用再登陸服務(wù)器,從而最小限度地利用服務(wù)器服務(wù),大大地減輕了服務(wù)器的壓力,節(jié)約服務(wù)器的投入成本。
文檔編號H04L9/32GK101064695SQ20071006861
公開日2007年10月31日 申請日期2007年5月16日 優(yōu)先權(quán)日2007年5月16日
發(fā)明者張兵權(quán), 盧軍, 李春燕, 楊志民, 徐禮崗 申請人:杭州看吧科技有限公司