本發(fā)明涉及一種信息安全領(lǐng)域,特別是涉及一種分布式文件系統(tǒng)及用于其中節(jié)點(diǎn)間認(rèn)證通信的方法。
背景技術(shù):
分布式文件系統(tǒng)將文件存儲(chǔ)在網(wǎng)絡(luò)中的節(jié)點(diǎn)上,從而解決了本地存儲(chǔ)空間不足的問(wèn)題。分布式文件系統(tǒng)的設(shè)計(jì)基于客戶機(jī)/服務(wù)器模式,系統(tǒng)中的節(jié)點(diǎn)既可以作為存儲(chǔ)文件的服務(wù)器,也可以作為請(qǐng)求文件的客戶機(jī)。
傳統(tǒng)的分布式文件系統(tǒng)中的訪問(wèn)控制大多采用訪問(wèn)列表或者功能劃分,訪問(wèn)控制權(quán)限列表需要存放在存儲(chǔ)文件資源的節(jié)點(diǎn)上,當(dāng)權(quán)限發(fā)生改變時(shí),這些節(jié)點(diǎn)都需要更新列表,這個(gè)過(guò)程較為繁瑣。此外,在實(shí)際應(yīng)用中,獲得資源的節(jié)點(diǎn)也需要驗(yàn)證所收到的資源來(lái)源于自己所請(qǐng)求的節(jié)點(diǎn)、并且資源未在傳輸過(guò)程中被篡改,基于訪問(wèn)控制權(quán)限列表的方案無(wú)法解決此問(wèn)題。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明要解決的技術(shù)問(wèn)題是為了克服現(xiàn)有技術(shù)中分布式文件系統(tǒng)中,提供資源的節(jié)點(diǎn)無(wú)法判斷請(qǐng)求資源的節(jié)點(diǎn)及其請(qǐng)求的合法性,接收資源的節(jié)點(diǎn)也無(wú)法驗(yàn)證收到的資源是否來(lái)源合法并未在傳輸過(guò)程中意外損毀或被惡意篡改的缺陷,提供一種分布式文件系統(tǒng)及用于其中節(jié)點(diǎn)間認(rèn)證通信的方法。
本發(fā)明是通過(guò)下述技術(shù)方案來(lái)解決上述技術(shù)問(wèn)題的:
本發(fā)明提供了一種分布式文件系統(tǒng),其特點(diǎn)在于,包括第一節(jié)點(diǎn)、第二節(jié)點(diǎn)以及服務(wù)器;
所述第一節(jié)點(diǎn)用于向所述服務(wù)器發(fā)送請(qǐng)求及第一簽名,所述請(qǐng)求用于請(qǐng)求資源;
所述服務(wù)器用于在接收到所述請(qǐng)求及第一簽名后,驗(yàn)證所述第一簽名,并在驗(yàn)證通過(guò)后,查找到存儲(chǔ)有資源的第二節(jié)點(diǎn),并為所述第一節(jié)點(diǎn)和所述第二節(jié)點(diǎn)生成會(huì)話密鑰,并對(duì)所述第二節(jié)點(diǎn)的身份和會(huì)話密鑰生成第二簽名,并用所述第一節(jié)點(diǎn)的身份加密第二節(jié)點(diǎn)的身份、會(huì)話密鑰及第二簽名為第一密文,將所述第一密文發(fā)送至所述第一節(jié)點(diǎn);
所述第一節(jié)點(diǎn)用于解密所述第一密文得第二節(jié)點(diǎn)的身份、會(huì)話密鑰及第二簽名,并對(duì)所述請(qǐng)求、第二節(jié)點(diǎn)的身份、會(huì)話密鑰和第二簽名生成第三簽名,并用所述第二節(jié)點(diǎn)的身份加密所述請(qǐng)求、第二節(jié)點(diǎn)的身份、會(huì)話密鑰、第二簽名和第三簽名為第二密文,并將所述第二密文發(fā)送至第二節(jié)點(diǎn);
所述第二節(jié)點(diǎn)用于在接收到所述第二密文后,解密得到所述請(qǐng)求、第二節(jié)點(diǎn)的身份、會(huì)話密鑰、第二簽名和第三簽名,驗(yàn)證所述第二簽名和第三簽名,若驗(yàn)證通過(guò),則用所述會(huì)話密鑰為所述第一節(jié)點(diǎn)提供資源;
所述第一節(jié)點(diǎn)還用于在接收到所述第二節(jié)點(diǎn)提供的資源后,用所述會(huì)話密鑰驗(yàn)證資源,并在驗(yàn)證通過(guò)后接收資源。
較佳地,所述第二節(jié)點(diǎn)還用于在所述第二簽名和第三簽名驗(yàn)證未通過(guò)時(shí),向所述第一節(jié)點(diǎn)發(fā)送失敗信息。
較佳地,所述第一節(jié)點(diǎn)還用于在資源驗(yàn)證未通過(guò)時(shí)丟棄資源。
較佳地,第一節(jié)點(diǎn)的身份、服務(wù)器的身份及第二節(jié)點(diǎn)的身份在所述分布式文件系統(tǒng)中作為各自公鑰使用,用于驗(yàn)證簽名和加密;第一節(jié)點(diǎn)的私鑰、服務(wù)器的私鑰及第二節(jié)點(diǎn)的私鑰分別秘密存儲(chǔ)在第一節(jié)點(diǎn)、服務(wù)器及第二節(jié)點(diǎn),用于生成簽名和解密。
較佳地,所述第一簽名、第二簽名及第三簽名中均包括時(shí)間戳信息。
本發(fā)明的目的在于還提供了一種用于分布式文件系統(tǒng)中節(jié)點(diǎn)間認(rèn)證通信的方法,其特點(diǎn)在于,其利用上述的分布式文件系統(tǒng)實(shí)現(xiàn),包括以下步驟:
S1、所述第一節(jié)點(diǎn)向所述服務(wù)器發(fā)送請(qǐng)求及第一簽名,所述請(qǐng)求用于請(qǐng)求資源;
S2、所述服務(wù)器在接收到所述請(qǐng)求及第一簽名后,驗(yàn)證所述第一簽名,并在驗(yàn)證通過(guò)后,查找到存儲(chǔ)有資源的第二節(jié)點(diǎn),并為所述第一節(jié)點(diǎn)和所述第二節(jié)點(diǎn)生成會(huì)話密鑰,并對(duì)所述第二節(jié)點(diǎn)的身份和會(huì)話密鑰生成第二簽名,并用所述第一節(jié)點(diǎn)的身份加密第二節(jié)點(diǎn)的身份、會(huì)話密鑰及第二簽名為第一密文,將所述第一密文發(fā)送至所述第一節(jié)點(diǎn);
S3、所述第一節(jié)點(diǎn)解密所述第一密文得第二節(jié)點(diǎn)的身份、會(huì)話密鑰及第二簽名,并對(duì)所述請(qǐng)求、第二節(jié)點(diǎn)的身份、會(huì)話密鑰和第二簽名生成第三簽名,并用所述第二節(jié)點(diǎn)的身份加密所述請(qǐng)求、第二節(jié)點(diǎn)的身份、會(huì)話密鑰、第二簽名和第三簽名為第二密文,并將所述第二密文發(fā)送至第二節(jié)點(diǎn);
S4、所述第二節(jié)點(diǎn)在接收到所述第二密文后,解密得到所述請(qǐng)求、第二節(jié)點(diǎn)的身份、會(huì)話密鑰、第二簽名和第三簽名,驗(yàn)證所述第二簽名和第三簽名,若驗(yàn)證通過(guò),則用所述會(huì)話密鑰為所述第一節(jié)點(diǎn)提供資源;
S5、所述第一節(jié)點(diǎn)在接收到所述第二節(jié)點(diǎn)提供的資源后,用所述會(huì)話密鑰驗(yàn)證資源,并在驗(yàn)證通過(guò)后接收資源。
較佳地,步驟S4中在所述第二簽名和第三簽名驗(yàn)證未通過(guò)時(shí),所述第二節(jié)點(diǎn)還向所述第一節(jié)點(diǎn)發(fā)送失敗信息。
較佳地,步驟S5中所述第一節(jié)點(diǎn)還在資源驗(yàn)證未通過(guò)時(shí)丟棄資源。
較佳地,步驟S1之前還包括:
S01、根據(jù)所述第一節(jié)點(diǎn)的身份、服務(wù)器的身份及第二節(jié)點(diǎn)的身份生成第一節(jié)點(diǎn)的私鑰、服務(wù)器的私鑰及第二節(jié)點(diǎn)的私鑰;其中所述第一節(jié)點(diǎn)的身份、服務(wù)器的身份及第二節(jié)點(diǎn)的身份分別作為第一節(jié)點(diǎn)的公鑰、服務(wù)器的公鑰及第二節(jié)點(diǎn)的公鑰,在所述分布式文件系統(tǒng)中公開(kāi),用于驗(yàn)證簽名和加密;所述第一節(jié)點(diǎn)的私鑰、服務(wù)器的私鑰及第二節(jié)點(diǎn)的私鑰分別秘密存儲(chǔ)在第一節(jié)點(diǎn)、服務(wù)器及第二節(jié)點(diǎn),用于生成簽名和解密。
較佳地,所述第一簽名、第二簽名及第三簽名中均包括時(shí)間戳信息。
本發(fā)明的積極進(jìn)步效果在于:本發(fā)明與傳統(tǒng)基于訪問(wèn)控制權(quán)限列表的方案相比,無(wú)需將權(quán)限列表存放在提供存儲(chǔ)功能的節(jié)點(diǎn)上,從而避免了權(quán)限更新時(shí)這類節(jié)點(diǎn)修改列表的復(fù)雜過(guò)程。此外,本發(fā)明還為請(qǐng)求文件資源的節(jié)點(diǎn)提供數(shù)據(jù)一致性檢驗(yàn),保障此類節(jié)點(diǎn)接收到正確、合法的文件資源。
附圖說(shuō)明
圖1為本發(fā)明的較佳實(shí)施例的分布式文件系統(tǒng)的模塊示意圖。
圖2為本發(fā)明的較佳實(shí)施例的用于分布式文件系統(tǒng)中節(jié)點(diǎn)間認(rèn)證通信的方法的流程圖。
具體實(shí)施方式
下面通過(guò)實(shí)施例的方式進(jìn)一步說(shuō)明本發(fā)明,但并不因此將本發(fā)明限制在所述的實(shí)施例范圍之中。
如圖1所示,本發(fā)明的分布式文件系統(tǒng)包括第一節(jié)點(diǎn)1、第二節(jié)點(diǎn)2以及服務(wù)器3,其中所述第一節(jié)點(diǎn)1分別與所述第二節(jié)點(diǎn)2和所述服務(wù)器3通信連接;
在所述第一節(jié)點(diǎn)1、第二節(jié)點(diǎn)2及服務(wù)器3所構(gòu)成的分布式文件系統(tǒng)中,所述服務(wù)器3記錄并追蹤文件資源存儲(chǔ)位置,并能根據(jù)所述第一節(jié)點(diǎn)1的請(qǐng)求查找確定資源存儲(chǔ)位置第二節(jié)點(diǎn)2;
當(dāng)所述第一節(jié)點(diǎn)1需要從所述分布式文件系統(tǒng)獲取文件資源時(shí),首先向所述服務(wù)器3發(fā)送請(qǐng)求及第一簽名,所述請(qǐng)求用于請(qǐng)求資源,所述第一簽名用于保障所述服務(wù)器收到的請(qǐng)求來(lái)源于第一節(jié)點(diǎn)1且未在傳輸過(guò)程中被篡改或損壞;
所述服務(wù)器3用于在接收到所述請(qǐng)求及第一簽名后,會(huì)驗(yàn)證第一簽名及第一節(jié)點(diǎn)1的身份,即判斷接收到的請(qǐng)求是否與所述第一節(jié)點(diǎn)1發(fā)出的請(qǐng)求一致,并判斷所述第一節(jié)點(diǎn)1是否是系統(tǒng)的合法用戶,若是,則驗(yàn)證所述第一簽名,并在驗(yàn)證通過(guò)后,根據(jù)所述請(qǐng)求查找到存儲(chǔ)有資源的第二節(jié)點(diǎn)2,并為所述第一節(jié)點(diǎn)1和所述第二節(jié)點(diǎn)2生成會(huì)話密鑰,并對(duì)所述第二節(jié)點(diǎn)2的身份和會(huì)話密鑰生成第二簽名,并用所述第一節(jié)點(diǎn)1的身份加密第二節(jié)點(diǎn)2的身份、會(huì)話密鑰及第二簽名為第一密文,將所述第一密文發(fā)送至所述第一節(jié)點(diǎn)1;所述第二簽名用于保障所述第一節(jié)點(diǎn)1及第二節(jié)點(diǎn)2得到的所述會(huì)話密鑰由所述服務(wù)器3生成,且在傳輸過(guò)程中未被篡改,
所述第一節(jié)點(diǎn)1用于在接收到所述第一密文后,解密所述第一密文得第二節(jié)點(diǎn)2的身份、會(huì)話密鑰及第二簽名,并對(duì)所述請(qǐng)求、第二節(jié)點(diǎn)2的身份、會(huì)話密鑰和第二簽名生成第三簽名,并用所述第二節(jié)點(diǎn)2的身份加密所述請(qǐng)求、第二節(jié)點(diǎn)2的身份、會(huì)話密鑰、第二簽名和第三簽名為第二密文,并將所述第二密文發(fā)送至第二節(jié)點(diǎn)2;所述第三簽名用于保障所述第二節(jié)點(diǎn)2收到的所述請(qǐng)求來(lái)源于所述第一節(jié)點(diǎn)1,所述請(qǐng)求由服務(wù)器3驗(yàn)證通過(guò),且在傳輸過(guò)程中未被篡改。
所述第二節(jié)點(diǎn)2用于在接收到所述第二密文后,解密得到所述請(qǐng)求、第二節(jié)點(diǎn)2的身份、會(huì)話密鑰、第二簽名和第三簽名,驗(yàn)證所述第二簽名和第三簽名,若驗(yàn)證通過(guò),則用所述會(huì)話密鑰為所述第一節(jié)點(diǎn)1提供資源;若驗(yàn)證未通過(guò),則向所述第一節(jié)點(diǎn)1發(fā)送失敗信息。
所述第一節(jié)點(diǎn)1還用于在接收到所述第二節(jié)點(diǎn)2提供的資源后,用所述會(huì)話密鑰驗(yàn)證資源,并在驗(yàn)證通過(guò)后接收資源;在驗(yàn)證未通過(guò)后丟棄資源。
其中,在本發(fā)明中,優(yōu)選地,第一節(jié)點(diǎn)1的身份、服務(wù)器3的身份及第二節(jié)點(diǎn)2的身份在所述分布式文件系統(tǒng)中作為各自公鑰使用,用于驗(yàn)證簽名和加密;第一節(jié)點(diǎn)1的私鑰、服務(wù)器3的私鑰及第二節(jié)點(diǎn)2的私鑰分別秘密存儲(chǔ)在第一節(jié)點(diǎn)1、服務(wù)器3及第二節(jié)點(diǎn)2,用于生成簽名和解密。
所述第一簽名、第二簽名及第三簽名中均包括時(shí)間戳信息,用于防止重放攻擊。
如圖2所示,本發(fā)明還提供了一種用于分布式文件系統(tǒng)中節(jié)點(diǎn)間認(rèn)證通信的方法,其特點(diǎn)在于,其利用上述的分布式文件系統(tǒng)實(shí)現(xiàn),包括以下步驟:
步驟101、根據(jù)所述第一節(jié)點(diǎn)的身份、服務(wù)器的身份及第二節(jié)點(diǎn)的身份生成第一節(jié)點(diǎn)的私鑰、服務(wù)器的私鑰及第二節(jié)點(diǎn)的私鑰;其中所述第一節(jié)點(diǎn)的身份、服務(wù)器的身份及第二節(jié)點(diǎn)的身份分別作為第一節(jié)點(diǎn)的公鑰、服務(wù)器的公鑰及第二節(jié)點(diǎn)的公鑰,在所述分布式文件系統(tǒng)中公開(kāi),用于驗(yàn)證簽名和加密;所述第一節(jié)點(diǎn)的私鑰、服務(wù)器的私鑰及第二節(jié)點(diǎn)的私鑰分別秘密存儲(chǔ)在第一節(jié)點(diǎn)、服務(wù)器及第二節(jié)點(diǎn),用于生成簽名和解密;
步驟102、所述第一節(jié)點(diǎn)向所述服務(wù)器發(fā)送請(qǐng)求及第一簽名,所述請(qǐng)求用于請(qǐng)求資源;所述第一簽名具體可使用所述第一節(jié)點(diǎn)的私鑰對(duì)所述請(qǐng)求進(jìn)行簽名算法得到;
步驟103、所述服務(wù)器在接收到所述請(qǐng)求及第一簽名后,首先判斷所述第一節(jié)點(diǎn)是否為系統(tǒng)合法用戶,若是,則用所述第一節(jié)點(diǎn)的身份驗(yàn)證所述第一簽名,并在驗(yàn)證通過(guò)后,根據(jù)所述請(qǐng)求查找到存儲(chǔ)有資源的第二節(jié)點(diǎn),并為所述第一節(jié)點(diǎn)和所述第二節(jié)點(diǎn)生成會(huì)話密鑰,并用服務(wù)器的私鑰對(duì)所述第二節(jié)點(diǎn)的身份和會(huì)話密鑰計(jì)算簽名生成第二簽名,并用所述第一節(jié)點(diǎn)的身份加密第二節(jié)點(diǎn)的身份、會(huì)話密鑰及第二簽名為第一密文,將所述第一密文發(fā)送至所述第一節(jié)點(diǎn);
步驟104、所述第一節(jié)點(diǎn)在接收到所述第一密文后,用所述第一節(jié)點(diǎn)的私鑰解密所述第一密文得第二節(jié)點(diǎn)的身份、會(huì)話密鑰及第二簽名,用所述服務(wù)器的身份驗(yàn)證所述第二簽名,若驗(yàn)證通過(guò),則用所述第一節(jié)點(diǎn)的私鑰對(duì)所述請(qǐng)求、第二節(jié)點(diǎn)的身份、會(huì)話密鑰和第二簽名生成第三簽名,并用所述第二節(jié)點(diǎn)的身份加密所述請(qǐng)求、第二節(jié)點(diǎn)的身份、會(huì)話密鑰、第二簽名和第三簽名為第二密文,并將所述第二密文發(fā)送至第二節(jié)點(diǎn);
步驟105、所述第二節(jié)點(diǎn)在接收到所述第二密文后,用所述第二節(jié)點(diǎn)的私鑰解密所述第二密文得到所述請(qǐng)求、第二節(jié)點(diǎn)的身份、會(huì)話密鑰、第二簽名和第三簽名,并用所述第一節(jié)點(diǎn)的身份驗(yàn)證所述第三簽名、用所述服務(wù)器的身份驗(yàn)證所述第二簽名,若驗(yàn)證皆通過(guò),則用所述會(huì)話密鑰對(duì)文件資源計(jì)算哈希值,并將所述文件資源及哈希值發(fā)送至所述第一節(jié)點(diǎn);若驗(yàn)證未通過(guò),則所述第二節(jié)點(diǎn)還向所述第一節(jié)點(diǎn)發(fā)送失敗信息;
步驟106、所述第一節(jié)點(diǎn)在接收到所述第二節(jié)點(diǎn)提供的文件資源及哈希值后,用所述會(huì)話密鑰驗(yàn)證所述文件資源的哈希值,若驗(yàn)證通過(guò)則接收文件資源,若驗(yàn)證未通過(guò)則舍棄文件資源。
其中,在步驟101中,所述第一節(jié)點(diǎn)的身份、服務(wù)器的身份及第二節(jié)點(diǎn)的身份可設(shè)置為第一節(jié)點(diǎn)地址、服務(wù)器地址及第二節(jié)點(diǎn)地址,并分別作為第一節(jié)點(diǎn)的公鑰、服務(wù)器的公鑰及第二節(jié)點(diǎn)的公鑰,可避免基于傳統(tǒng)公鑰密碼體制的安全框架中對(duì)公鑰證書(shū)的維護(hù)。在步驟102、步驟103及步驟104,優(yōu)選地,所述第一簽名、第二簽名及第三簽名中還包括時(shí)間戳信息,用于防止重放攻擊。在步驟103中,所述服務(wù)器通過(guò)隨機(jī)數(shù)生成器生成所述會(huì)話密鑰。在步驟105中,優(yōu)選地,所述哈希值還包括時(shí)間戳信息。
雖然以上描述了本發(fā)明的具體實(shí)施方式,但是本領(lǐng)域的技術(shù)人員應(yīng)當(dāng)理解,這些僅是舉例說(shuō)明,本發(fā)明的保護(hù)范圍是由所附權(quán)利要求書(shū)限定的。本領(lǐng)域的技術(shù)人員在不背離本發(fā)明的原理和實(shí)質(zhì)的前提下,可以對(duì)這些實(shí)施方式做出多種變更或修改,但這些變更和修改均落入本發(fā)明的保護(hù)范圍。