一種基于身份認(rèn)證的安全存儲(chǔ)方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及云安全,特別涉及一種基于身份認(rèn)證的安全存儲(chǔ)方法。
【背景技術(shù)】
[0002]云存儲(chǔ)服務(wù)能夠?qū)崟r(shí)地備份文件并隨時(shí)隨地同步和分享文件。但是云存儲(chǔ)也面臨著許多挑戰(zhàn)。云存儲(chǔ)中用戶數(shù)據(jù)安全便是一個(gè)基本的問(wèn)題。由于云存儲(chǔ)提供商是商業(yè)性質(zhì)的,所以云存儲(chǔ)服務(wù)器是不受信任的,必須保證云平臺(tái)不能獲取用戶數(shù)據(jù)。現(xiàn)有方法是在用戶將數(shù)據(jù)上傳至云平臺(tái)之前對(duì)數(shù)據(jù)進(jìn)行加密,這樣僅有該用戶才能解密。而另一方面,云存儲(chǔ)的快速發(fā)展導(dǎo)致存儲(chǔ)空間的高速增長(zhǎng),高效的存儲(chǔ)是云存儲(chǔ)中另一個(gè)問(wèn)題。大部分云存儲(chǔ)提供商都采用的去冗余技術(shù)是一個(gè)減少存儲(chǔ)空間和傳輸帶寬的有效方法。然而,數(shù)據(jù)的去冗余和加密似乎是矛盾的。加密是使數(shù)據(jù)顯得隨機(jī),而隨機(jī)數(shù)據(jù)上去冗余的空間節(jié)省是很低的。數(shù)據(jù)加密是讓用戶使用用戶私鑰加密的相同數(shù)據(jù)變得不同,而去冗余技術(shù)卻是利用了數(shù)據(jù)的相似性,所以加密數(shù)據(jù)的去冗余問(wèn)題有待解決。
【發(fā)明內(nèi)容】
[0003]為解決上述現(xiàn)有技術(shù)所存在的問(wèn)題,本發(fā)明提出了一種基于身份認(rèn)證的安全存儲(chǔ)方法,包括:
[0004]存儲(chǔ)用戶文件的云平臺(tái)的文件所有者通過(guò)移動(dòng)終端使用自身的文件,其他用戶在進(jìn)行去冗余之前,首先通過(guò)所有權(quán)驗(yàn)證,云平臺(tái)僅僅存儲(chǔ)一份共享文件,在用戶成為文件所有者后,云平臺(tái)記錄該用戶,使其取回自己的文件;在用戶進(jìn)行加密處理前的文件明文上進(jìn)行相同數(shù)據(jù)的判斷以及所有權(quán)驗(yàn)證,在去冗余的過(guò)程中,對(duì)于不擁有文件的非法用戶,云平臺(tái)保證通過(guò)所接收到的有關(guān)用戶文件和私鑰的信息不能獲取用戶文件以及用戶私鑰的相關(guān)內(nèi)容;在文件的所有權(quán)驗(yàn)證中,將所有權(quán)驗(yàn)證的判斷轉(zhuǎn)移至合法用戶,只有文件所有者才能決定其他用戶是否是該文件的所有者,在文件所有權(quán)驗(yàn)證后,在不同用戶用戶私鑰使用二次加密來(lái)加密的文件進(jìn)行冗余消除。
[0005]優(yōu)選地,在新用戶上傳已經(jīng)存在的文件時(shí)沒(méi)有文件所有者在線的情況下,一旦有用戶上傳文件,則即時(shí)存儲(chǔ)文件,用戶執(zhí)行文件創(chuàng)建的過(guò)程,云平臺(tái)實(shí)際存儲(chǔ)的兩份同一文件分別被一組用戶共享;在兩組用戶有同時(shí)在線時(shí)合并兩組用戶,兩組合并過(guò)程如下:
[0006]I)第二組用戶向第一組用戶證明其文件所有權(quán),第一組用戶向第二組用戶以葉節(jié)點(diǎn)序號(hào)發(fā)出挑戰(zhàn),第二組用戶從云平臺(tái)中取回相關(guān)的節(jié)點(diǎn),并根據(jù)文件去冗余過(guò)程完成證明,在第一組用戶完成對(duì)第二組用戶的驗(yàn)證時(shí),第一組用戶將加密的密鑰發(fā)送給云平臺(tái),云平臺(tái)轉(zhuǎn)發(fā)給第二組用戶;
[0007]2)第二組用戶接收到密鑰后,計(jì)算二次加密私鑰,然后發(fā)送給云平臺(tái),并且第二組用戶將本地存儲(chǔ)改為新的索引文件;
[0008]3)在云平臺(tái)接收到信息后,將第二組用戶的二次加密私鑰進(jìn)行修改,云平臺(tái)刪除第二組的共享文件,當(dāng)?shù)诙M中其他用戶在線時(shí),云平臺(tái)將二次加密私鑰發(fā)送給第二組中其他用戶,第二組中其他用戶對(duì)云平臺(tái)和本地存儲(chǔ)的二次加密私鑰進(jìn)行更新。
[0009]本發(fā)明相比現(xiàn)有技術(shù),具有以下優(yōu)點(diǎn):
[0010]本發(fā)明保證了非法用戶不能獲取數(shù)據(jù)的所有權(quán),使得實(shí)現(xiàn)加密數(shù)據(jù)去冗余的同時(shí),能夠讓用戶自己任意選擇私鑰。
【附圖說(shuō)明】
[0011]圖1是根據(jù)本發(fā)明實(shí)施例的基于身份認(rèn)證的安全存儲(chǔ)方法的流程圖。
【具體實(shí)施方式】
[0012]下文與圖示本發(fā)明原理的附圖一起提供對(duì)本發(fā)明一個(gè)或者多個(gè)實(shí)施例的詳細(xì)描述。結(jié)合這樣的實(shí)施例描述本發(fā)明,但是本發(fā)明不限于任何實(shí)施例。本發(fā)明的范圍僅由權(quán)利要求書(shū)限定,并且本發(fā)明涵蓋諸多替代、修改和等同物。在下文描述中闡述諸多具體細(xì)節(jié)以便提供對(duì)本發(fā)明的透徹理解。出于示例的目的而提供這些細(xì)節(jié),并且無(wú)這些具體細(xì)節(jié)中的一些或者所有細(xì)節(jié)也可以根據(jù)權(quán)利要求書(shū)實(shí)現(xiàn)本發(fā)明。
[0013]本發(fā)明首先使用戶在數(shù)據(jù)去冗余之前先進(jìn)行基于散列樹(shù)的所有權(quán)驗(yàn)證,保證了非法用戶不能獲取數(shù)據(jù)的所有權(quán),在用戶完成文件所有權(quán)驗(yàn)證后,使用二次加密,使得實(shí)現(xiàn)加密數(shù)據(jù)去冗余的同時(shí),能夠讓用戶自己任意選擇私鑰。圖1是根據(jù)本發(fā)明實(shí)施例的基于身份認(rèn)證的安全存儲(chǔ)方法流程圖。
[0014]在云存儲(chǔ)環(huán)境由3個(gè)部分組成:存儲(chǔ)用戶文件的云平臺(tái);文件的合法所有者;上傳數(shù)據(jù)到云平臺(tái)并想通過(guò)去冗余來(lái)減少存儲(chǔ)空間和傳輸帶寬的用戶。
[0015]云存儲(chǔ)中,一個(gè)文件所有者可以通過(guò)PC甚至是隨時(shí)隨地都可使用的移動(dòng)終端來(lái)自由使用自身的文件。如果另一個(gè)用戶想進(jìn)行去冗余,必須首先通過(guò)所有權(quán)驗(yàn)證。一個(gè)用戶一旦成功通過(guò)去冗余的過(guò)程,就不需要再上傳該文件。云平臺(tái)也僅僅存儲(chǔ)一份這個(gè)共享文件,在用戶成為文件所有者后,假設(shè)云平臺(tái)記錄該用戶,以便用戶下次能夠方便地取回自己的文件。
[0016]在云存儲(chǔ)環(huán)境中,對(duì)云平臺(tái)有不同的考慮。對(duì)于云平臺(tái),它是一個(gè)半信任模型,云平臺(tái)會(huì)誠(chéng)實(shí)地執(zhí)行協(xié)議的過(guò)程,但是云平臺(tái)也會(huì)根據(jù)自己得到的消息盡可能地獲取用戶文件和用戶私鑰的相關(guān)信息。因此,需要保證云平臺(tái)不能獲取數(shù)據(jù)內(nèi)容。為了保護(hù)系統(tǒng)的安全,在考慮第三方攻擊的同時(shí),需要防護(hù)來(lái)自云平臺(tái)的攻擊。
[0017]對(duì)于云平臺(tái),目標(biāo)是保證用戶數(shù)據(jù)的保密、保護(hù)用戶的敏感數(shù)據(jù)。在去冗余的過(guò)程中,云平臺(tái)會(huì)接收到許多有關(guān)用戶文件和私鑰的信息,必須保證云平臺(tái)通過(guò)這些信息不能獲取用戶文件以及用戶私鑰的相關(guān)內(nèi)容。此外,如果云平臺(tái)能夠表現(xiàn)得像誠(chéng)實(shí)的執(zhí)行了去冗余過(guò)程而不被用戶所發(fā)現(xiàn),那么云平臺(tái)能夠做任何事情以獲取用戶文件。因此,必須保證云平臺(tái)不能欺騙用戶而不被檢測(cè)到。
[0018]對(duì)于第三方用戶,分為兩類:一類是不擁有文件的用戶,稱為非法用戶,他們?cè)噲D獲取文件的所有權(quán)來(lái)得到文件的內(nèi)容。必須保證只有真正擁有文件的用戶才能通過(guò)文件所有權(quán)驗(yàn)證,任何非法用戶都會(huì)被檢測(cè)到。另一類是擁有文件的用戶,稱為合法用戶,合法用戶共享文件,但不必知曉其他信息,因此,必須保證合法用戶之間的隱私,任何合法用戶都應(yīng)不知道其他用戶的身份以及其他用戶的私鑰等信息。
[0019]本發(fā)明使用戶在將經(jīng)過(guò)用戶私鑰加密處理過(guò)的文件上傳至云平臺(tái)之后,如果有其他用戶也想上傳同一文件至云平臺(tái),為了保證去冗余過(guò)程的安全,需要進(jìn)行的是文件的所有權(quán)驗(yàn)證,在通過(guò)文件所有權(quán)驗(yàn)證后再進(jìn)行加密數(shù)據(jù)去冗余操作。文件的加密操作將使數(shù)據(jù)隨機(jī)地分布于密文空間,而隨機(jī)分布數(shù)據(jù)上的去冗余節(jié)省率是十分低的。因此,為了保證高去冗余節(jié)省率,是否是相同數(shù)據(jù)的判斷以及所有權(quán)驗(yàn)證都是在明文上進(jìn)行的,即在用戶進(jìn)行加密處理前的文件上進(jìn)行操作。在文件的所有權(quán)驗(yàn)證中,將所有權(quán)驗(yàn)證的判斷從云平臺(tái)轉(zhuǎn)移至合法用戶,只有文件所有者才能決定其他用戶是否是該文件的所有者,因?yàn)樵破脚_(tái)本就是不受信任的,云平臺(tái)沒(méi)有決定的權(quán)利。云平臺(tái)用于傳遞用戶之間的通信消息,以便用戶之間隱藏身份。所有權(quán)驗(yàn)證是交互且動(dòng)態(tài)的,任何不擁有整個(gè)文件的用戶都不能通過(guò)該證明。在文件所有權(quán)驗(yàn)證后,要在不同用戶用戶私鑰加密的文件上去冗余,使用二次加密技術(shù)實(shí)現(xiàn)這個(gè)需求。
[0020]用戶將原始文件Fo編碼成F,。令群Gl,G2是階為素?cái)?shù)p的循環(huán)群,e:G1 X Gl — G2是一個(gè)雙線性映射,g是群Gl的一個(gè)生成元,并且z = e(g,g) e G2,H是一個(gè)散列函數(shù)。
[0021](I)文件創(chuàng)建
[0022]用戶A擁有私鑰a。
[0023]I)用戶A計(jì)算H(F)作為文件F的索引部分,并將文件F分為η塊,F(xiàn)= Ovm2,…,mn) ο
[0024]2)用戶A在文件F = (Iii1, m2,…,mn)上構(gòu)建散列樹(shù),并計(jì)算這個(gè)散列樹(shù)的根R。用戶A將索引(H(F),R)及塊數(shù)η上傳給云平臺(tái),云平臺(tái)根據(jù)該索引查找文件,如果云平臺(tái)查找不到這個(gè)文件,那么用戶A不能進(jìn)行去冗余操作,用戶A必須上傳用用戶私鑰加密的整個(gè)文件到云平臺(tái),上傳過(guò)程如下:
[0025]I)根據(jù)文件F的散列樹(shù)的塊數(shù)η,云平臺(tái)隨機(jī)選擇ε個(gè)葉節(jié)點(diǎn)序號(hào)(I1, I2,…,IJ,其中ε是系統(tǒng)的預(yù)定義安全參數(shù),然后將ΙΛ,12,…,1ε}發(fā)送給用戶Α。
[0026]2)用戶A提供葉節(jié)點(diǎn)(HOiiiMl1S i彡I ε以及從選擇的葉節(jié)點(diǎn)到根節(jié)點(diǎn)間所需的兄弟節(jié)點(diǎn){SJ I < i < s (其中s是所需要的兄弟節(jié)點(diǎn)的個(gè)數(shù))。
[0027]3)用戶A隨機(jī)選擇會(huì)話私鑰K,并利用該私鑰通過(guò)AES算法來(lái)加密文件EK(F)。用戶A將會(huì)話私鑰K編碼成群G2上的元素K’,隨機(jī)選擇kl并用用戶私鑰加密會(huì)話私鑰K’,密文加密形式是C = (Zakl,gak1,K’ Zkl) ο
[0028]實(shí)際上,這個(gè)密文C包含兩級(jí)密文,第一級(jí)密文是(Zakl,K’ Zkl),只能被用戶A的私鑰解密,第二級(jí)密文是(gakl,K’ Zkl),不僅能被用戶A的私鑰解密,而且能被轉(zhuǎn)化為其他用戶私鑰加密的密文。
[0029]用戶A只需在本地存儲(chǔ)(H(F),R),并且上傳(H(F),R),IH(Hii)} I1S i彡I ε,{SJ I ( i ( s,C,EK(F))到云平臺(tái)中。云平臺(tái)通過(guò)(H(IHi)Il1^ i彡I ε和{S J I彡i彡s來(lái)驗(yàn)證根節(jié)點(diǎn)R,如果驗(yàn)證成功,證明用戶A確實(shí)擁有該文件。云平臺(tái)將(H(F),R)當(dāng)作密文文件(C,EK(F))的索引,并將用戶A記錄為(H(F), R)的一個(gè)文件所有者,。
[0030](2)文件去冗余
[0031]用戶B擁有文件F并想將用用戶私鑰加密的文件上傳至云平臺(tái)。如果該文件在云平臺(tái)已經(jīng)存在,用戶B和云平臺(tái)希望執(zhí)行去冗余來(lái)減少存儲(chǔ)空間和傳輸帶寬,執(zhí)行過(guò)程如下:
[0032]I)用戶B (稱作證明者)計(jì)算文件F的散列值H(F)以及文