一種基于客戶端公私鑰加解密的云安全存儲方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及一種云安全存儲技術(shù),特別涉及一種基于客戶端公私鑰加解密的云安全存儲方法。
【背景技術(shù)】
[0002]隨著云存儲的普及,越來越多的用戶將對象(包括目錄,文件等)放置到云端的服務(wù)器上,但是用戶數(shù)據(jù)在服務(wù)器上如果不加上保密措施很有可能遭到泄露,竊取或者篡改等破壞用戶隱私的安全性攻擊。并且由于大多數(shù)云存儲的服務(wù)器是分布式存儲的,服務(wù)器的安全性可能不一樣,且服務(wù)器的管理員也有可能惡意獲取數(shù)據(jù)。因此用戶在服務(wù)器端的數(shù)據(jù)保密性成為了云存儲安全性里重要的一部分。
【發(fā)明內(nèi)容】
[0003]本發(fā)明的目的在于克服現(xiàn)有技術(shù)的缺點(diǎn)與不足,提供一種基于客戶端公私鑰加解密的云安全存儲方法,客戶端主要負(fù)責(zé)對象的加解密,服務(wù)器負(fù)責(zé)加密后的對象的存儲,密鑰數(shù)據(jù)中心主要負(fù)責(zé)權(quán)限記錄的存儲和控制,其權(quán)限記錄的存儲和控制主要是基于用戶的公鑰。其中的假設(shè)是基于服務(wù)器端和密鑰數(shù)據(jù)中心是不完全可信的,服務(wù)器端的管理員也有可能惡意獲取數(shù)據(jù),密鑰數(shù)據(jù)中心有可能獨(dú)立于服務(wù)器端或者在服務(wù)器端上,只有客戶端是可信度的。因此本發(fā)明的出發(fā)點(diǎn)是找出一種基于客戶端公私鑰加解密的云安全存儲方法,在滿足文件系統(tǒng)安全的基本條件下,防止管理員在獲取服務(wù)器端的數(shù)據(jù)后能夠破解對象內(nèi)容。
[0004]本發(fā)明的目的通過下述技術(shù)方案實(shí)現(xiàn):一種基于客戶端公私鑰加解密的云安全存儲方法,具有客戶端角色,服務(wù)器端角色,以及密鑰數(shù)據(jù)中心角色??蛻舳私巧饕糜趯ο蟮募咏饷埽?wù)器角色負(fù)責(zé)加密后的對象的存儲,密鑰數(shù)據(jù)中心角色主要負(fù)責(zé)權(quán)限記錄的存儲和控制。該方法描述了初始化用戶有權(quán)限訪問的對象,查看對象,增加對象,刪除對象,修改對象,用戶添加或者刪除另一個(gè)用戶的共享權(quán)限這六個(gè)方面的流程步驟。所述云安全存儲方法具體包括如下步驟:
[0005]1、初始化加載有權(quán)限訪問的對象:
[0006]當(dāng)用戶登錄的時(shí)候,該文件系統(tǒng)根據(jù)密鑰數(shù)據(jù)中心里的權(quán)限記錄,返回給客戶端??蛻舳烁鶕?jù)密鑰中心返回的權(quán)限記錄獲取對象ID,根據(jù)對象ID從服務(wù)器端獲取對應(yīng)的密文,用戶用私鑰從權(quán)限記錄中解密出對象的明文密鑰。如果是目錄對象,則客戶端會向密鑰數(shù)據(jù)中心請求再加密的信息,根據(jù)返回的再加密信息和目錄對象的明文密鑰,用戶解密出目錄對象的目錄數(shù)據(jù),目錄數(shù)據(jù)記載的是目該目錄下面的所有對象的明文密鑰。如果是除了目錄對象以外的對象,則直接用解密出的明文密鑰打開對象,無需再從密鑰數(shù)據(jù)中心獲取再加密信息。所以,用戶能看到的都是有權(quán)限訪問的對象。沒有權(quán)限訪問到的對象用戶是沒法看到的。
[0007]2、查看對象:
[0008]由于用戶能看到的都是有權(quán)限訪問的對象,客戶端根據(jù)從密鑰數(shù)據(jù)中心得到的權(quán)限記錄,此時(shí)用戶用私鑰從權(quán)限記錄中解密出對象的明文密鑰??蛻舳烁鶕?jù)密鑰中心返回的權(quán)限記錄獲取對象ID,根據(jù)對象ID從服務(wù)器端獲取對應(yīng)的密文。如果是目錄對象,則客戶端會向密鑰數(shù)據(jù)中心請求再加密的信息,根據(jù)返回的再加密信息和目錄對象的明文密鑰,用戶解密出目錄對象的目錄數(shù)據(jù),目錄數(shù)據(jù)記載的是目該目錄下面的所有對象的明文密鑰。如果是除了目錄對象以外的對象,則直接用解密出的明文密鑰打開對象,無需再從密鑰數(shù)據(jù)中心獲取再加密信息。如果還對目錄對象下的對象進(jìn)行訪問,由于已經(jīng)獲得了該目錄對象的目錄數(shù)據(jù),該目錄下面的所有對象的明文密鑰已經(jīng)知道,若是還訪問目錄對象,則客戶端繼續(xù)向數(shù)據(jù)密鑰中心請求對應(yīng)目錄對象的再加密信息。若是訪問的是非目錄對象,則直接用解密得到的明文密鑰解密非目錄對象。依次循環(huán)執(zhí)行流程,直到訪問到目標(biāo)對象。
[0009]3、增加對象:
[0010]用戶在客戶端生成對象的密鑰,對象的對稱密鑰是由客戶端隨機(jī)生成的。對于增加的對象如果是目錄對象,客戶端還需要增加一步,發(fā)送請求給密鑰數(shù)據(jù)中心要求對新增的目錄對象的目錄數(shù)據(jù)進(jìn)行再加密,生成再加密信息,返回給客戶端。將對象用密鑰加密后(目錄對象是對目錄數(shù)據(jù)進(jìn)行本身密鑰加密后再加密,其它對象則是直接用本身的密鑰加密),將加密后的對象上傳至服務(wù)器的目標(biāo)位置目錄下。將加密后的目標(biāo)位置目錄的目錄數(shù)據(jù)下載至客戶端,客戶端與密鑰數(shù)據(jù)中心進(jìn)行通信獲得解密目錄數(shù)據(jù)的密鑰,解密目錄數(shù)據(jù)后將增加對象的明文密鑰寫入目標(biāo)目錄的目錄數(shù)據(jù)里,將目標(biāo)位置目錄數(shù)據(jù)重新加密后傳至服務(wù)器下。最后,客戶端將對象的權(quán)限記錄(哪些用戶可以共享對象的記錄)用共享用戶的公鑰加密后,發(fā)送給密鑰數(shù)據(jù)中心存儲。
[0011]4、刪除對象:
[0012]客戶端向服務(wù)器端發(fā)送請求,獲取刪除對象的所在目錄的目錄數(shù)據(jù)。將加密后的目錄數(shù)據(jù)下載至客戶端,客戶端與密鑰數(shù)據(jù)中心進(jìn)行通信獲得解密目錄數(shù)據(jù)的密鑰,解密目錄數(shù)據(jù)后將要?jiǎng)h除的對象的明文密鑰刪除。刪除后將目錄數(shù)據(jù)重新加密后傳至服務(wù)器下。對于刪除的對象如果是目錄對象,客戶端還需要增加一步,遍歷要?jiǎng)h除的目錄對象以下的所有的目錄對象,發(fā)送請求給密鑰數(shù)據(jù)中心要求對刪除的目錄對象以及該目錄下的所有子目錄的再加密信息進(jìn)行刪除。之后客戶端向服務(wù)器端發(fā)送請求將要?jiǎng)h除的對象刪除。最后,客戶端向數(shù)據(jù)密鑰中心發(fā)送請求將刪除對象的權(quán)限記錄(哪些用戶可以共享對象的記錄)刪除(如果是目錄對象,則刪除的權(quán)限記錄包括該目錄對象以及該目錄對象下的所有對象;如果是非目錄對象,則直接刪除該非目錄對象的權(quán)限記錄)。
[0013]5、修改對象:
[0014]由于對目錄對象的修改主要是對目錄數(shù)據(jù)的修改,目錄數(shù)據(jù)存有該目錄對象下面的所有對象的明文密鑰,對其修改即是該目錄對象下對象的增加與刪除,而且目錄數(shù)據(jù)的改變并不會引起目錄對象的本身密鑰改變。所以對目錄對象的修改參考前面的增加與刪除對象的流程。
[0015]以下討論的是非目錄對象的修改。
[0016]客戶端向服務(wù)器端發(fā)送請求,下載要修改的加密后的對象以及對象所在的目錄對象的目錄數(shù)據(jù)??蛻舳伺c密鑰數(shù)據(jù)中心通信獲得解密的密鑰進(jìn)行解密,解密后對對象內(nèi)容進(jìn)行修改。修改后客戶端隨機(jī)生成新的對象密鑰。用新的密鑰對對象進(jìn)行加密。并且將新的密鑰寫入上一級的目錄對象的目錄數(shù)據(jù)里,刪除原來的對象密鑰,對目錄數(shù)據(jù)重新加密??蛻舳讼蚍?wù)器端發(fā)送請求,刪除原來的對象和目錄數(shù)據(jù),將修改后的加密后的新對象和上一級的目錄數(shù)據(jù)上傳至原來的位置;向密鑰數(shù)據(jù)中心發(fā)送請求,刪除該對象的權(quán)限記錄,客戶端重新生成該對象的權(quán)限記錄后發(fā)送給密鑰數(shù)據(jù)中心。
[0017]6、用戶添加或者刪除另一個(gè)用戶的共享權(quán)限。
[0018]如果某個(gè)用戶要添加另一個(gè)用戶的共享權(quán)限,用戶的客戶端直接將要共享對象的明文密鑰用另一個(gè)用戶的公鑰加密后,形成權(quán)限信息,發(fā)送給密鑰數(shù)據(jù)中心。如果某個(gè)用戶要?jiǎng)h除另一個(gè)用戶的共享權(quán)限,如果撤銷的是目錄對象的共享權(quán)限,則用戶的客戶端首先遍歷該目錄下的所有對象,獲取對象ID集合,發(fā)送請求將密鑰數(shù)據(jù)中心中的對應(yīng)的權(quán)限信息(用戶ID與對象ID集合的笛卡爾積的對應(yīng)關(guān)系)刪除,同時(shí)客戶端將該目錄對象下的所有子目錄對象的信息發(fā)送給密鑰數(shù)據(jù)中心要求更新該目錄以及所有子目錄的再加密信息。密鑰數(shù)據(jù)中心將這些目錄對象的再加密信息更新之后,將舊的以及新的再加密信息發(fā)送給回客戶端,客戶端向服務(wù)器端請求這些目錄對象的目錄數(shù)據(jù),重新解密加密后,重新上傳至服務(wù)器端。如果撤銷的是非目錄對象的共享權(quán)限,則用戶的客戶端直接向密鑰數(shù)據(jù)中心發(fā)送請求,刪除被撤銷用戶與對象的對應(yīng)權(quán)限記錄。
[0019]本發(fā)明的原理:本發(fā)明的基于客戶端公私鑰加解密的云安全存儲方法,具有客戶端,服務(wù)器端,以及密鑰數(shù)據(jù)中心,主要流程包括:當(dāng)用戶登錄系統(tǒng)時(shí),初始化操作流程;用戶查看有權(quán)限訪問的對象的操作流程;用戶刪除對象的操作流程;用戶增加對象的操作流程;用戶修改對象的操作流程;以及用戶對共享權(quán)限的控制流程(增加或者刪除共享用戶的流程)。系統(tǒng)中使用到的加解密方法包括對稱加密方法對對象進(jìn)行加密,用非對稱加密方法實(shí)現(xiàn)對訪問權(quán)限的控制,密鑰數(shù)據(jù)中心的加密保證前向安全。根據(jù)本發(fā)明的實(shí)現(xiàn),有效的保證了用戶在客戶端對加解密的控制,避免了服務(wù)器端的解密,保證了安全性。本發(fā)明也可以防止當(dāng)用戶被撤銷某個(gè)對象的訪問權(quán)限時(shí),可以繼續(xù)訪問該對象。本發(fā)明有效提高了云存儲的安全與存儲性能。
[0020]本發(fā)明相對于現(xiàn)有技術(shù)具有如下的優(yōu)點(diǎn)及效果:
[0021]本發(fā)明實(shí)現(xiàn)了一種基于客戶端公私鑰加解密的云安全存儲方法。該方法包括客戶端,服務(wù)器端,以及密鑰數(shù)據(jù)中心??蛻舳酥饕?fù)責(zé)對象的加解密,服務(wù)器負(fù)