分級內(nèi)容可尋址存儲系統(tǒng)中的塊級客戶端側(cè)加密的制作方法
【專利摘要】本發(fā)明涉及分級內(nèi)容可尋址存儲系統(tǒng)中的塊級客戶端側(cè)加密。提供用于塊級客戶端側(cè)加密的技術(shù)。在內(nèi)容可尋址存儲系統(tǒng)中,多個塊被用于實施分級文件系統(tǒng)。該分級文件系統(tǒng)支持加密卷和未加密卷兩者。文件夾和文件系統(tǒng)直接調(diào)用塊系統(tǒng)層,以用于涉及非加密卷的操作。文件夾和文件層調(diào)用卷加密層,以用于涉及加密卷的操作。卷加密層通過API接收來自文件夾和文件層的調(diào)用,所述API匹配所述塊系統(tǒng)層通過其接收來自所述文件夾和文件層的調(diào)用的API。
【專利說明】分級內(nèi)容可尋址存儲系統(tǒng)中的塊級客戶端側(cè)加密
[0001]相關(guān)申請的交叉引用
[0002]本申請要求于2013年7月22日提交的申請?zhí)枮?3/947,409的美國專利的優(yōu)先權(quán),其全部內(nèi)容結(jié)合于此作為參考。
【技術(shù)領(lǐng)域】
[0003]本發(fā)明涉及存儲系統(tǒng),更具體地,涉及分級內(nèi)容可尋址存儲系統(tǒng)中的塊級客戶端側(cè)加密的技術(shù)。
【背景技術(shù)】
[0004]用于訪問所存儲的數(shù)字項目的信息在本文被稱為所存儲項目的“訪問密鑰”。在典型的文件系統(tǒng)中,所存儲的項目基于(a)所述項目被存儲的位置,以及(b)所述項目的名稱或識別符而被檢索。例如,如果名為“fo0.txt”的文件位于名為“c:\myfiles\text”的目錄中,那么應(yīng)用程序可以利用路徑名“c:\myfiles\text\fo0.txt”作為訪問密鑰以從文件系統(tǒng)檢索文件。因為常規(guī)的訪問密鑰是基于被檢索項目的位置,所以當所述項目被移動時,訪問密鑰改變。此外,項目的每個副本具有不同的訪問密鑰,這是因為每個副本被存儲在不同的位置。
[0005]與常規(guī)文件系統(tǒng)相比,內(nèi)容可尋址存儲(CAS)系統(tǒng)允許應(yīng)用程序基于從項目內(nèi)容生成的散列值從存儲器檢索項目。因為CAS系統(tǒng)基于為所述項目生成的散列值對所述項目執(zhí)行存儲相關(guān)的操作,并且所述散列值是基于項目的內(nèi)容而不是項目存儲在什么位置,請求操作的應(yīng)用程序可以如此操作,而不需要知道項目存儲副本的數(shù)量或位置。例如,CAS系統(tǒng)可以在位置A、B和C存儲項目X的多個副本。期望檢索項目X的應(yīng)用程序?qū)⑼ㄟ^向CAS系統(tǒng)發(fā)送基于項目X的內(nèi)容的散列值來這樣做?;谠撋⒘兄?,CAS系統(tǒng)將向該應(yīng)用程序提供從位置A、B和C中的一個位置檢索的項目X的副本。因此,應(yīng)用程序?qū)@得項目X,而不需要知道項目X實際存儲的位置,存在多少項目X的副本,或?qū)嶋H獲得所檢索副本的特定位置。
[0006]存儲數(shù)字項目,例如文件或消息,涉及對“塊存儲系統(tǒng)”進行一個或多個調(diào)用。塊存儲系統(tǒng)是執(zhí)行存儲操作而不需要理解數(shù)字信號自身的格式或內(nèi)容的存儲系統(tǒng)。這樣的存儲系統(tǒng)被稱為塊存儲系統(tǒng),是因為該系統(tǒng)處理所有形式的數(shù)字項目,好像這些項目僅僅是不透明的數(shù)據(jù)塊。例如,相同的塊存儲系統(tǒng)可以被文字處理應(yīng)用程序、圖像管理應(yīng)用程序和日歷系統(tǒng)利用,以分別存儲文檔、圖像和約會。不過,從塊存儲系統(tǒng)方面來說,只有一種項目類型被存儲:不透明的數(shù)字塊。
[0007]塊存儲系統(tǒng)可以被實施為CAS系統(tǒng)。例如,塊存儲系統(tǒng)可以通過向該塊應(yīng)用加密散列函數(shù)(例如,MD5、SHA-1或SHA2),生成該塊的散列值。接著,該塊存儲可以存儲所述塊,并保持將散列值與塊被存儲的位置關(guān)聯(lián)的索引。
[0008]當應(yīng)用程序隨后請求該塊的檢索時,該應(yīng)用程序向該存儲系統(tǒng)提供散列值。塊存儲系統(tǒng)利用索引定位與散列值關(guān)聯(lián)的塊,并將因此定位的塊提供至請求的應(yīng)用程序。
[0009]塊可以用于表示文件系統(tǒng)分級結(jié)構(gòu),其中,一些塊對應(yīng)于文件系統(tǒng)分級結(jié)構(gòu)的文件夾/目錄,而其他塊對應(yīng)于存儲在這些文件夾/目錄中的文件。對于分級結(jié)構(gòu)內(nèi)的任何給定的塊或?qū)儆诙鄠€樹的塊的子樹,也是可能的。
[0010]加密用于保護數(shù)據(jù)和/或元數(shù)據(jù)。在實施為CAS系統(tǒng)的塊存儲系統(tǒng)中,一個方案是在塊存儲服務(wù)器上執(zhí)行加密操作。不過,成功的攻擊會暴露存儲在塊存儲服務(wù)器中的所有數(shù)據(jù)。而且,這樣的方案會引起潛在地重大的修改和/或開銷以配置服務(wù)器執(zhí)行加密和解密操作。
[0011]在該部分中描述的方法是可以實行的方法,但不見得是之前已經(jīng)構(gòu)想或?qū)嵭械姆桨?。因此,除非另有說明,否則不應(yīng)該認為由于在該部分中描述的任何方法包含在該部分中而作為現(xiàn)有技術(shù)。
【發(fā)明內(nèi)容】
[0012]提供了用于塊級客戶端側(cè)加密的技術(shù)。根據(jù)本發(fā)明的一個方面,提供了一種方法,包括:在內(nèi)容可尋址存儲系統(tǒng)中,利用多個塊來實施分級文件系統(tǒng);支持所述分級文件系統(tǒng)中的加密卷和非加密卷兩者;其中,支持加密卷和非加密卷兩者包括:使得文件夾和文件層直接調(diào)用塊系統(tǒng)層,以用于涉及非加密卷的操作;以及使得所述文件夾和文件層調(diào)用卷加密層,以用于涉及加密卷的操作,其中,所述卷加密層通過API接收來自所述文件夾和文件層的調(diào)用,所述API匹配所述塊系統(tǒng)層通過其接收來自所述文件夾和文件層的調(diào)用的API。
【專利附圖】
【附圖說明】
[0013]在附圖中:
[0014]圖1示出用于分級內(nèi)容可尋址存儲系統(tǒng)中的塊級客戶端側(cè)加密的系統(tǒng)實施例的框圖;
[0015]圖2A示出對應(yīng)于加密卷的散列樹的實施例的框圖;
[0016]圖2B示出卷狀態(tài)的框圖;
[0017]圖3示出用于獲得塊樹的根散列以訪問加密卷的方法實施例的流程圖;
[0018]圖4示出獲得指定塊的獲取操作方法的實施例的流程圖;
[0019]圖5示出將指定塊添加到加密卷的存放操作(put operat1n)方法的實施例的流程圖;
[0020]圖6示出一個或多個實施例可以在其上實施的計算機系統(tǒng)。
【具體實施方式】
[0021]在下列【具體實施方式】中,為了說明的目的,闡述了很多具體細節(jié)以便提供對本發(fā)明的透徹理解。然而,顯而易見的是,本發(fā)明可以在沒有這些具體細節(jié)的情況下被實踐。在其他情況下,已知的結(jié)構(gòu)和裝置以框圖的形式示出,以避免使本發(fā)明不必要地晦澀難懂。
[0022]總體概述
[0023]提供了用于塊級客戶端側(cè)加密的技術(shù)。在內(nèi)容可尋址存儲系統(tǒng)中,多個塊被用于實施分級文件系統(tǒng)。該分級文件系統(tǒng)可以被配置為支持加密卷和未加密卷兩者種。文件夾和文件系統(tǒng)直接調(diào)用塊系統(tǒng)層,以用于涉及未加密卷的操作。文件夾和文件層調(diào)用卷加密層,以用于涉及加密卷的操作。卷加密層通過API接收來自文件夾和文件層的調(diào)用,所述API匹配塊系統(tǒng)層通過其從文件夾和文件層接收調(diào)用的API。
[0024]對于給定的加密卷,數(shù)據(jù)保護在塊級執(zhí)行。在一個實施例中,加密的卷包括存儲在散列樹中的多個塊。通過利用一個或多個授權(quán)和密鑰分配方案,可以訪問和/或共享加密的卷。
[0025]如本文所利用的,下面的符號指的是:
[0026].E (K, M)-利用密鑰K的數(shù)據(jù)M的加密;
[0027].D (K, N)-利用密鑰K的密文數(shù)據(jù)N的解密;
[0028].h (X)-數(shù)據(jù)X的單程散列;
[0029].CK-塊密鑰(用于加密塊的密鑰);
[0030].VK-卷密鑰(用于加密與特定卷相關(guān)的數(shù)據(jù)的密鑰);
[0031].ID(VK)-卷密鑰VK的識別符;
[0032].VS-卷狀態(tài);
[0033].VID-卷識別符;
[0034].KE -與實體E關(guān)聯(lián)的密鑰;
[0035].RC -加密卷的根塊;以及
[0036].CCT-塊C的明文塊數(shù)據(jù);以及
[0037].CE-塊C的加密塊數(shù)據(jù);CE相當于E (K,CCT),其中,K基于應(yīng)用于塊C的加密方案而確定。
[0038]系統(tǒng)概述
[0039]圖1示出用于塊級客戶端側(cè)加密的系統(tǒng)的實施例的框圖。該塊級客戶端側(cè)加密可以在一個或多個分級內(nèi)容可尋址存儲系統(tǒng)中實施。卷管理系統(tǒng)100被配置為實施一個或多個加密卷的加密、存儲和訪問。在一個實施例中,卷管理系統(tǒng)100還被配置為實施一個或多個未加密卷的存儲和訪問。
[0040]卷管理系統(tǒng)100包括一個或多個文件系統(tǒng)客戶端102-106、塊存儲服務(wù)器(chunkstore server) 122以及名稱表服務(wù)器124。卷管理系統(tǒng)100的這些組件中的每個組件將在后文中更詳細描述。
[0041]文件系統(tǒng)客戶端
[0042]文件系統(tǒng)客戶端102-106通常表示被配置為存儲和訪問利用塊存儲服務(wù)器122實施的文件系統(tǒng)中的文件的實體。因此,文件系統(tǒng)客戶端102-106可以對應(yīng)于個人用戶、應(yīng)用程序、用戶組、系統(tǒng)、服務(wù)或利用文件系統(tǒng)的任何其他實體類型。當在加密卷上存儲文件時,文件系統(tǒng)客戶端102-106執(zhí)行由塊存儲服務(wù)器122存儲的塊數(shù)據(jù)的加密和解密。在一個實施例中,文件系統(tǒng)客戶端102-106包含在用于一個或多個加密卷的一個或多個密鑰管理方案的實施中。
[0043]文件系統(tǒng)客戶端102-106中的每個客戶在擁有在用于加密卷的密鑰關(guān)系方案下授權(quán)的一個或多個加密密鑰時,被授權(quán)訪問加密卷。對于所有的加密卷,卷管理系統(tǒng)100可以實施相同的密鑰管理方案。可供選擇地或另外,不同的加密卷可以具有不同的密鑰管理方案。
[0044]文件系統(tǒng)客戶端102-106被配置為訪問由塊存儲服務(wù)器122存儲的一個或多個加密卷。用于說明目的,文件系統(tǒng)客戶端106的內(nèi)部功能單元被詳細示出。雖然未單獨示出,文件系統(tǒng)客戶端102和104可以具有相同或類似的組件。
[0045]如圖所示,文件系統(tǒng)客戶端106包括文件夾和文檔層108、卷加密層112、塊系統(tǒng)客戶端116,以及名稱表客戶端120。文件系統(tǒng)客戶端106可以被配置為訪問加密卷和未加密卷兩者。在一個實施例中,文件系統(tǒng)客戶端106通過文件夾和文檔層108訪問由塊存儲服務(wù)器122存儲的卷。用戶和應(yīng)用程序可以通過文件夾和文檔層108訪問遠端存儲的卷。在一個實施例中,文件夾和文檔層108表示作為傳統(tǒng)分級文件系統(tǒng)中的一組文件夾和文檔而從塊存儲服務(wù)器122獲得的卷。
[0046]名稱表客戶端120被配置與名稱表服務(wù)器124通信。例如,名稱表客戶段120可以與名稱表服務(wù)器124通信,以獲得加密卷的序列化卷狀態(tài)的散列。在一個實施例中,名稱表客戶端120與名稱表服務(wù)器124通信,以更新序列化卷狀態(tài)信息。
[0047]卷加密層112可以調(diào)用名稱表客戶端120的接口。在一個實施例中,名稱表客戶端120是卷加密層112的集成組件。卷加密層112在下文更詳細地描述。
[0048]塊存儲服務(wù)器
[0049]塊存儲服務(wù)器122是被配置為存儲多個塊的內(nèi)容可尋址存儲系統(tǒng)。雖然只示出單個塊,塊存儲服務(wù)器122可以包括任何數(shù)量的服務(wù)器、數(shù)據(jù)存儲器、網(wǎng)絡(luò)或適合實施數(shù)據(jù)存儲系統(tǒng)的任何其他組件。在一個實施例中,塊存儲服務(wù)器122是云服務(wù)器。在一個實施例中,塊存儲服務(wù)器122被配置為通過一個或多個網(wǎng)絡(luò)126與文件系統(tǒng)客戶端106通信。
[0050]塊存儲服務(wù)器122被配置為存儲利用基于塊內(nèi)容的訪問密鑰可訪問的塊。該訪問密鑰可以是塊數(shù)據(jù)的散列。例如,h(Cct)是用于訪問由塊存儲服務(wù)器122存儲的明文塊的訪問密鑰,而h(CE)是用于訪問由塊存儲服務(wù)器122存儲的加密塊的訪問密鑰。在一個實施例中,散列函數(shù)是不可變的散列函數(shù)。即,給定塊的散列函數(shù)的應(yīng)用程序總是產(chǎn)生相同的訪問密鑰??梢杂糜谏稍L問密鑰的散列函數(shù)的實例包括但不限于MD5、SHA-1和SHA-2。
[0051]卷加密層
[0052]加密卷中的數(shù)據(jù)保護可以利用卷加密層112實施。卷加密層112處理加密、解密、密鑰管理的潛在一個或多個方面以及與加密卷的安全相關(guān)的其他功能。在一個實施例中,卷加密層112被配置為通過塊系統(tǒng)客戶端116的接口 114訪問塊存儲服務(wù)器122。
[0053]卷加密層112可以調(diào)用塊系統(tǒng)客戶端116以與塊存儲服務(wù)器122通信。在這種配置下,為了訪問未加密卷,文件夾和文檔層108通過接口 114調(diào)用塊系統(tǒng)客戶段116。為了訪問加密卷,文件夾和文檔層108通過接口 114調(diào)用卷加密層112,從而通過接口 114調(diào)用塊系統(tǒng)客戶端116。
[0054]卷加密層112通過接口 114調(diào)用塊系統(tǒng)客戶端116,以與塊存儲服務(wù)器122通信。在卷加密層112與塊系統(tǒng)客戶端116之間傳輸?shù)膲K是加密塊。例如,如果卷加密層112執(zhí)行獲取操作,塊系統(tǒng)客戶端116返回在卷加密層112處解密的加密塊。如果卷加密層112執(zhí)行存放操作,卷加密層112向塊系統(tǒng)客戶端116傳輸已加密的塊。
[0055]塊系統(tǒng)客戶端
[0056]塊系統(tǒng)客戶端Il6被配置為與塊存儲服務(wù)器122通信,以訪問由塊存儲服務(wù)器122存儲的塊數(shù)據(jù),所述塊數(shù)據(jù)包括加密塊和未加密塊。塊系統(tǒng)客戶端116可以是被配置為訪問未加密卷的現(xiàn)有客戶。在一個實施例中,塊系統(tǒng)客戶端116被配置通過一個或多個網(wǎng)絡(luò)126與塊存儲服務(wù)器122通信。在一個實施例中,塊系統(tǒng)客戶端116不處理加密、解密、密鑰管理或與加密卷的安全相關(guān)的其他功能。而是,這些功能由卷加密層112處理。
[0057]名稱表服務(wù)器
[0058]在一個實施例中,卷管理系統(tǒng)100進一步包括名稱表服務(wù)器124。名稱表服務(wù)器124被配置為存儲加密卷的卷識別符與卷狀態(tài)數(shù)據(jù)之間的映射。該映射可以被序列化和/或作為一個或多個加密塊被存儲在相同的塊存儲器中。名稱表服務(wù)器124在卷管理系統(tǒng)100中作為塊概念性地示出,名稱表服務(wù)器可以部分和/或全部集成到塊存儲服務(wù)器122中。在一個實施例中,名稱表服務(wù)器124被配置為保持將加密卷的卷識別符映射到其序列化卷狀態(tài)數(shù)據(jù)的散列的名稱到散列的映射。序列化卷狀態(tài)數(shù)據(jù)的散列可以被用于從塊存儲器獲得包含序列化卷狀態(tài)數(shù)據(jù)的存儲塊,其中,所述塊存儲器可以是與塊存儲服務(wù)器122相同的塊存儲器或不同的塊存儲器。在一個實施例中,名稱表服務(wù)器124被配置為通過一個或多個網(wǎng)絡(luò)126與文件系統(tǒng)客戶端106通信。
[0059]示例性接口
[0060]對于涉及存儲在加密卷上的數(shù)據(jù)的操作,文件夾和文檔層108調(diào)用卷加密層112的接口 110。對于涉及存儲在未加密卷上的數(shù)據(jù)的操作,文件夾和文檔層108調(diào)用塊系統(tǒng)客戶端116的接口 114。
[0061]在一個實施例中,接口 110和接口 104暴露通用的接口,從而允許加密的卷支持對文件夾和文檔層108的最小更改。例如,在一個實施例中,塊系統(tǒng)層接口 114和卷加密層接口 110支持下列調(diào)用:
[0062]獲取(卷,訪問密鑰)-請求檢索與指定訪問密鑰關(guān)聯(lián)的塊;
[0063]存放(卷,內(nèi)容)-請求作為塊存儲指定內(nèi)容;
[0064]用于說明的目的,對塊系統(tǒng)層接口 114的“獲取”調(diào)用應(yīng)被標示為Chunk_St0re_get O調(diào)用,而對加密層接口 110的“獲取”調(diào)用應(yīng)被標示為encrypted_volume_get()調(diào)用。同樣,對塊系統(tǒng)層接口 114的“存放”調(diào)用應(yīng)被標示為chunk_store_put()調(diào)用,而對加密層接口 110的“存放”調(diào)用應(yīng)被標示為encrypted_volume_put()調(diào)用。
[0065]這些僅是可以通過塊系統(tǒng)層接口 114和/或卷加密層接口 110調(diào)用的函數(shù)類型的實例。本文所述的技術(shù)并不限于具體參數(shù)的任何特定函數(shù)。
[0066]對于屬于未加密卷的數(shù)據(jù),文件夾和文檔層108直接調(diào)用接口 114。對于屬于加密卷的數(shù)據(jù),卷加密層112用作文件夾和文檔層108與塊系統(tǒng)客戶端116之間的“中間人”。
[0067]例如,對于涉及未加密數(shù)據(jù)的存放操作,文件夾和文檔層108用未加密的塊數(shù)據(jù)調(diào)用chunk_store_put。對于涉及加密卷的存放操作,文件夾和文檔層108還用未加密的塊數(shù)據(jù)調(diào)用encrypted_volume_put。響應(yīng)于該調(diào)用,卷加密層112加密該塊數(shù)據(jù),接著用加密的塊數(shù)據(jù)調(diào)用chunk_store_put。
[0068]對于涉及未加密數(shù)據(jù)的獲取操作,文件夾和文檔層108用未加密的塊數(shù)據(jù)的散列調(diào)用chunk_store_get。對于涉及加密卷的存放操作,文件夾和文檔層108還用未加密的塊數(shù)據(jù)的散列調(diào)用encrypted_volume_put。響應(yīng)于該調(diào)用,卷加密層112確定加密塊數(shù)據(jù)的散列,并接著用加密的塊數(shù)據(jù)的散列調(diào)用chunk_store_put。
[0069]因此,如這些實例所示,文件夾和文檔層108僅需要處理未加密的要素(未加密數(shù)據(jù)塊和未加密數(shù)據(jù)塊的散列),甚至當處理存儲在加密卷上的數(shù)據(jù)時。
[0070]卷散列樹
[0071]塊可以用于表示卷的文件系統(tǒng)分級結(jié)構(gòu)(file system hierarchy),其中,一些塊對應(yīng)于文件系統(tǒng)分級結(jié)構(gòu)的文件夾/目錄,而其他塊對應(yīng)于存儲在這些文件夾/目錄中的文件。圖2A示出對應(yīng)于加密卷的散列樹的實施例的框圖。在圖2中示出的分級關(guān)系沒有重疊樹。然而,對于分級結(jié)構(gòu)中的任何給定的塊或?qū)儆诙鄠€樹的塊的子樹,也是可能的。本文所述的技術(shù)也同樣適用于像表示非重疊樹的塊存儲器那樣的表示這樣的分級結(jié)構(gòu)的塊存儲器。
[0072]卷200被表示為包括以反映存儲在卷200中的文件之間的分級關(guān)系的方式設(shè)置的塊的樹。文檔212-218由該樹內(nèi)的葉節(jié)點表示。例如,在分級結(jié)構(gòu)中,文件B駐留于作為目錄“D0CS”的子目錄的目錄“PPTS”中,目錄“D0CS”是目錄“JACK”的子目錄,目錄“JACK”是Jack的賬戶的根目錄。因此,與文件B相對應(yīng)的塊218被示為與目錄“PPTS”相對應(yīng)的塊206的子目錄。類似地,塊206被示為與目錄“D0CS”相對應(yīng)的塊204的子目錄,以及塊204被示為與根目錄“JACK”相對應(yīng)的塊202的子目錄。塊202是對應(yīng)于卷200的樹的根塊。
[0073]當塊是卷的散列樹的非葉塊時,該塊可以包括識別一個或多個子塊的數(shù)據(jù)。例如,在內(nèi)容可尋址存儲系統(tǒng)中,該非葉塊可以包括可用于定位一個或多個子塊的內(nèi)容信息。例如,該非葉塊可以包括每個子塊的散列,即用于每個子塊的h(CCT)。在加密卷中,該子塊是加密的塊,并且非葉塊包括加密子塊的散列,即h(CE)或可以用于獲得h(CE)的其他信息。在一個實施例中,非葉塊包括用于加密子塊的h(CCT),其可以由卷加密層112映射到h(CE)。
[0074]盡管樹中的塊的設(shè)置反映了塊所對應(yīng)的文件之間的分級關(guān)系,但是塊存儲器內(nèi)的塊的實際設(shè)置可以和分級結(jié)構(gòu)沒有關(guān)系。例如,塊可以被隨機分配在幾個存儲裝置中。因此,對應(yīng)于卷200的樹僅便于本文所述技術(shù)的理解。
[0075]當文件系統(tǒng)分級結(jié)構(gòu)利用塊存儲器實施時,單個文件的添加或更改有必要改變在該分級結(jié)構(gòu)中在文件之上的每個文件。具體地,因為文件通過基于內(nèi)容尋址的塊實施,單個文件的更改引起在分級結(jié)構(gòu)中的文件之上的每個文件的新塊的產(chǎn)生。
[0076]例如,假設(shè)用戶更新文件B。因為對文件B的更新改變了塊的內(nèi)容,而塊基于內(nèi)容被尋址,新的塊不是被簡單地存儲在具有文件B的之前版本的塊218上。而是,文件B的更改版本構(gòu)成新的塊228,新的塊228與塊218分開存儲。
[0077]因為文件B被存儲在新塊228中,對應(yīng)于文件B駐留在其中的目錄“PPTS”的塊226必須也被更新以指向用于文件B的新的塊。用于目錄“PPTS”的更新文件被存儲為新的塊226。類似地,對應(yīng)于作為“PPTS”的父目錄的目錄“D0CS”的塊204必須也被更新以指向用于“PPTS”目錄的新的塊。用于“D0CS”的更新文件被存儲為新的塊224。由于類似的原因,新的塊222被存儲用于作為“D0CS”的父目錄的根目錄“JACK”。
[0078]作為對文件B更新的結(jié)果,幾個塊已變成“過時的”。過時的塊是數(shù)據(jù)不再反映文件系統(tǒng)的當前狀態(tài)的塊。在上述給定的實例中,對文件B的更新引起塊202、204、206和218變成過時的。執(zhí)行越多的更新,越多的塊變成過時的。
[0079]塊加密
[0080]塊存儲服務(wù)器122被配置為將塊存儲在一個或多個加密卷中。塊存儲系統(tǒng)也可以存儲屬于一個或多個未加密卷的塊。塊可以在被存儲在塊存儲系統(tǒng)之前,由客戶端實體利用塊密鑰(CK)加密。塊密鑰CK將根據(jù)如下面所述的加密卷的加密方案。然而,塊密鑰CK不能由不擁有加密卷的卷密鑰(VK)的實體獲得。密鑰管理方案被用于控制與存儲在塊存儲系統(tǒng)中的一個或多個加密塊關(guān)聯(lián)的明文塊數(shù)據(jù)的訪問。
[0081]在一個實施例中,加密通過客戶端側(cè)層,例如卷加密層110實施。卷加密層110可以被配置為利用一個或多個加密方案。提供三個合適的加密方案的實例。這些僅是可以在用于分級內(nèi)容可尋址存儲系統(tǒng)的塊級客戶端側(cè)加密的系統(tǒng)中實施的加密和密鑰管理方案的實例。本文所述的技術(shù)并不限于任何特定函數(shù)或其具體的參數(shù)。
[0082].塊級隨機加密方案
[0083]在塊級隨機加密方案中,塊密鑰(CK)是為每個加密塊生成的隨機密鑰。在一個實施例中,隨機密鑰通過加密該塊的實體,例如客戶端的卷加密層生成。接著,這個指定塊的塊密鑰用與該塊關(guān)聯(lián)的卷的卷密鑰VK加密。
[0084]在一個實施例中,該塊密鑰被存儲在將塊數(shù)據(jù)映射到包括塊密鑰的加密數(shù)據(jù)的表格中。例如,明文塊數(shù)據(jù)的散列被映射到利用卷密鑰加密的塊密鑰,即H(Cct) — E(VK,CK)。
[0085].卷密鑰加密方案
[0086]在卷密鑰加密方案中,邏輯存儲在卷中的所有塊用加密卷的卷密鑰VK進行加密。在該加密卷中的所有塊的塊密鑰(CK)是卷密鑰VK。在一個實施例中,新的隨機初始化向量被選擇用于每個塊的加密。
[0087].明文散列加密方案
[0088]在明文散列加密方案中,明文塊散列h (CCT)被用作塊密鑰以加密每個塊。在一個實施例中,利用強加密散列算法,例如SHA2。在明文散列加密方案中,加密視內(nèi)容而定。因此,加密相同內(nèi)容的兩個不同裝置將產(chǎn)生相同的加密位。在一個實施例中,明文散列加密方案的內(nèi)容依賴特性用于存儲在塊服務(wù)器中的內(nèi)容的解重復(de-duplicat1n)。
[0089]加密的卷狀態(tài)
[0090]卷狀態(tài)(VS)包括訪問加密的卷和管理對加密卷的加密塊的訪問所必要的數(shù)據(jù)。圖2B示出描述包含在用于加密卷的卷狀態(tài)中的數(shù)據(jù)的框圖。
[0091].散列-散列映射
[0092]卷狀態(tài)250可以包括散列-散列映射254。散列-散列映射254是明文塊數(shù)據(jù)的散列h(CeT)與對應(yīng)的加密塊數(shù)據(jù)的散列h(Ce)之間的映射。這個映射是重要的,這是因為由卷加密層112從文件夾和文檔層108接收的調(diào)用將利用明文塊數(shù)據(jù)的散列參照塊,并且卷加密層112必須通過利用加密塊數(shù)據(jù)的散列訪問對應(yīng)的加密塊來響應(yīng)這些調(diào)用。例如,假設(shè)塊的未加密版本的散列是H1,并且相同塊的加密版本的散列是H2。在這些情況下,散列-散列映射254將包含將Hl映射到H2的條目。
[0093]散列-散列映射254可以作為表格被存儲。散列-散列映射254可以用于查詢加密塊(訪問密鑰被給至相同塊的未加密版本所得)的訪問密鑰,并且反之亦然。在一個實施例中,散列-散列映射254將明文塊數(shù)據(jù)的雙散列h (h (Cct))映射到加密塊數(shù)據(jù)的散列h(CE)。在這樣的實施例中,散列-散列映射254仍然可以用于查詢加密塊(將訪問密鑰給至未加密塊所得)的訪問密鑰,例如h(CCT),但反之則不行。例如,h(h(CCT))可以用于提供下明文散列加密方案下的附加安全。
[0094]在一個實施例中,當散列-散列映射254被存儲在卷狀態(tài)250中時,其用卷密鑰VK加密。在一個實施例中,散列-散列映射254將用卷密鑰VK E (VK,h (Cct))加密的明文塊數(shù)據(jù)映射到加密塊數(shù)據(jù)的散列h (Ce)。在一個實施例中,散列-散列映射254將用卷密鑰E(VK,h(h(CCT)))加密的明文塊數(shù)據(jù)的雙散列映射到加密塊數(shù)據(jù)的散列h(Ce)。在這樣的實施例中,散列-散列映射254仍然可以用于查詢?yōu)槲醇用軌K給出訪問密鑰的加密塊的訪問密鑰,例如h(CCT)。其中,明確存儲的h(CCT)用像E(VK,h(CCT)) 一樣的卷密鑰VK加密,可以在任何加密方案下提供附加的安全,以抵御依賴h (Cct))推斷加密數(shù)據(jù)的攻擊。
[0095].加密根散列
[0096]卷狀態(tài)250包括加密根訪問數(shù)據(jù)252。卷狀態(tài)250要求該根訪問數(shù)據(jù),這是因為塊樹的根塊包含用于該加密卷的所有子塊的訪問數(shù)據(jù)。通常,可以利用作為訪問密鑰的加密塊的散列,即h(CE)來訪問加密塊。然而,利用包含在散列-散列映射254中的數(shù)據(jù),h(CCT)足以訪問數(shù)據(jù),這是因為訪問密鑰h(CE)可以利用散列-散列映射254獲得。在這種情況下,根訪問數(shù)據(jù)是h(RCCT)。
[0097]在一個實施例中,加密根訪問數(shù)據(jù)252用卷密鑰VK加密,以保護該根塊的訪問數(shù)據(jù),即 E (VK,h (RCct))。
[0098]在一個實施例中,通過生成消息認證碼(MAC)或通過利用同樣能夠完整性保護的加密算法,例如EAX、CCM或任何其他認證加密算法,數(shù)據(jù)完整性也可以被應(yīng)用。
[0099]?加密的卷密鑰E(VK)
[0100]在一個實施例中,卷狀態(tài)250進一步包括加密的卷密鑰256。卷密鑰是確定塊密鑰CK以解密加密卷中的加密塊所需要的必不可少的加密密鑰。塊密鑰CK將取決于加密卷的加密方案。然而,塊密鑰CK不能由不擁有卷密鑰VK的實體獲得。例如:(a)在塊級隨機加密方案中,塊密鑰(CK)是為每個加密塊生成的隨機密鑰,并且每個塊密鑰CK利用卷密鑰VK加密;(b)在卷密鑰加密方案中,卷密鑰VK被用作用于任何塊的塊密鑰CK ; (c)在明文散列加密方案中,塊密鑰CK從塊樹中的父塊獲得,并且卷密鑰被要求獲得根塊。
[0101]該卷密鑰被加密,以便只有授權(quán)實體可以利用該卷密鑰。在一個實施例中,卷狀態(tài)VS包括被授權(quán)訪問加密卷的每個不同實體的一個加密卷密鑰。例如,假設(shè)兩個實體El和E2被授權(quán)訪問加密的卷。在這些情況下,卷狀態(tài)可以包括用于實體El的一個加密卷密鑰EVKl (利用實體El的實體密鑰Kei被加密),以及用于實體E2的另一個加密卷密鑰EVK2 (利用實體E2的實體密鑰Ke2被加密)。對于特定實體,Ke可以是公共或?qū)ΨQ密鑰。
[0102]卷密鑰ID ID(VK)
[0103]在一個實施例中,卷狀態(tài)250只包括卷密鑰ID且不包括任何形式的實際卷密鑰。卷密鑰ID可以是唯一識別卷密鑰的加密安全隨機數(shù)。
[0104]在一個實施例中,卷密鑰的管理和存儲通過外部的密鑰管理組件進行。在一個實施例中,當兩個實體El和E2被授權(quán)訪問加密的卷時,密鑰管理組件處理卷密鑰的安全交換。密鑰交換可以通過公共或?qū)ΨQ密鑰加密或利用不同通道的其他機制促進。因此,加密卷可以在沒有更改加密卷的狀態(tài)的情況下被共享。而且,只有加密的卷密鑰被要求防止進一步共享整個卷狀態(tài)。這可以用于進一步加強加密的卷狀態(tài),可以防止依賴加密卷狀態(tài)被共享給用戶的號碼或身份的攻擊。
[0105]在一個實施例中,卷密鑰是向每個單獨加密卷分配的對稱密鑰??梢詾槊總€加密卷隨機生成VK,例如當產(chǎn)生加密卷時。卷密鑰VK可以用于實施密鑰管理方案,以確保存儲在加密卷中的數(shù)據(jù)和向授權(quán)實體授權(quán)訪問該加密卷。在一個實施例中,卷密鑰VK只在客戶端側(cè)生成,并且服務(wù)器從不訪問未加密的VK,使得服務(wù)器從不解密加密的卷。
[0106].加密算法
[0107]在一個實施例中,卷狀態(tài)250進一步包括加密算法258。卷狀態(tài)可以識別用于存儲在加密卷中的加密和解密的一個或多個算法。被識別的加密算法也可以用于保護卷的元數(shù)據(jù),例如,卷狀態(tài)的其他要素。在一個實施例中,卷狀態(tài)被明確存儲,但是包括一個或多個加密的組件。
[0108]名稱到散列的映射
[0109]在一個實施例中,加密卷的卷狀態(tài)被序列化并被存儲在塊存儲系統(tǒng)中。例如,卷狀態(tài)250可以被序列化并作為塊被塊存儲服務(wù)器122或分離的塊存儲服務(wù)器存儲。在一個或多個密鑰管理方案中,序列化卷狀態(tài)VS可以明文存儲,這是因為序列化卷狀態(tài)的選擇組件被加密,使得只有授權(quán)實體可以解密訪問加密卷的所必需的組件。
[0110]當序列化卷狀態(tài)VS作為塊被存儲在塊存儲系統(tǒng)中時,該序列化卷狀態(tài)VS可以利用基于塊的內(nèi)容的訪問密鑰,例如,序列化卷狀態(tài)的散列,即,h (VS)進行訪問。
[0111]在一個實施例中,保持脈沖到散列的映射。名稱到散列的映射將加密卷的卷識別符映射到序列化卷狀態(tài)的散列,即VID — h(VS)。實體可以利用卷識別符和名稱到散列的映射獲得特定卷的卷狀態(tài)。該實體可以需要一個或多個加密密鑰以解密存儲在卷狀態(tài)中的數(shù)據(jù)。
[0112]訪問加密的卷
[0113]在當文件系統(tǒng)客戶端擁有在加密卷的密鑰管理方案下授予的一個或多個加密密鑰時,可以訪問加密卷。在一個實施例中,卷加密層被配置為通過處理塊加密和塊的塊解密來訪問加密的卷。卷加密層可以調(diào)用被配置為與塊存儲服務(wù)器直接通信的另一個層。例如,卷加密層112被配置為調(diào)用塊系統(tǒng)客戶端116的接口 114,該接口與塊存儲服務(wù)器122直接通信。
[0114]為了訪問被加密的目標卷,授權(quán)實體E獲得用于該目標卷的序列化卷狀態(tài)250。序列化卷狀態(tài)250包括與目標卷相關(guān)的必不可少的信息,例如目標卷的加密卷密鑰256,或?qū)?yīng)的卷密鑰ID以及加密根塊252。序列化卷狀態(tài)250還包括目標卷的散列-散列映射254,這是定位目標卷的卷樹中的子塊所需要的。卷密鑰VK可以通過利用實體的密鑰Ke解密加密的卷密鑰而獲得。加密卷密鑰可以被存儲在卷狀態(tài)250中,或通過利用卷密鑰ID從密鑰管理組件獲得。接著,實體利用卷密鑰VK解密卷狀態(tài)250的加密組件。
[0115]圖3示出用于獲得塊樹的根散列以訪問加密卷(“目標卷”)的方法的實施例的流程圖。該方法適用于任何加密方案,包括但不限于塊級隨機加密方案、卷密鑰加密方案以及明文散列加密方案。
[0116]在步驟302,通過授權(quán)實體E獲得加密卷的卷識別符(VID)。實體E可以是在密鑰管理方案下被授權(quán)訪問的文件系統(tǒng)客戶端106。在一個實施例中,通過更新與目標卷關(guān)聯(lián)的存儲的序列化卷狀態(tài)VS,以包括用授權(quán)的實體的密鑰編碼的卷密鑰,即E(KE,VK),實體E被授權(quán)訪問。通過更新所存儲的序列化卷狀態(tài)VS,例如,卷狀態(tài)250,任何其他授權(quán)實體E’可以授權(quán)實體E。在一個實施例中,通過利用密鑰管理組件以與授權(quán)實體安全地交換卷密鑰,實體E被授權(quán)訪問。卷密鑰ID被用來識別可用的密鑰。通過相同的機制,任何其他授權(quán)實體E’可以授權(quán)新的實體E。
[0117]在步驟304,實體E獲得目標卷的序列化卷狀態(tài)的散列(即h(VS))。基于卷識別符VID,利用名稱至散列的映射,實體E可以獲得序列化卷狀態(tài)的散列。例如,實體E的卷加密層112可以調(diào)用名稱表客戶端120。該調(diào)用包括卷識別符VID。響應(yīng)于接收調(diào)用,名稱表客戶120定位用于卷識別符VID的條目。該條目將卷識別符VID映射到目標卷的序列化卷狀態(tài)的散列h (VS)。通過已定位的散列h (VS),名稱表客戶120將散列h (VS)返回到卷加密層112,作為對該調(diào)用的響應(yīng)。
[0118]在步驟306,實體E利用散列h(VS)獲得目標卷的序列化卷狀態(tài),例如,卷狀態(tài)250。在一個實施例中,通過執(zhí)行獲取操作以獲得與序列化卷狀態(tài)的散列h(VS)關(guān)聯(lián)的塊,來獲得目標卷的序列化狀態(tài)。例如,通過利用其訪問識別符h(VS),通過對塊系統(tǒng)客戶端116調(diào)用存儲序列化卷狀態(tài)的塊,實體E的卷加密層112可以執(zhí)行獲取操作。在一個實施例中,目標卷的序列化卷狀態(tài)250包括目標卷的加密卷密鑰256、明文根塊的加密散列252以及散列-散列映射254。
[0119]在步驟308,實體E利用實體的密鑰&來解密目標卷的加密卷密鑰(VK)256。加密的卷密鑰256存儲在目標卷的序列化卷狀態(tài)250中。在一個實施例中,加密的卷密鑰256用授權(quán)實體的密鑰加密,即E(Ke,VK)。加密卷密鑰256可以被存儲在序列化卷狀態(tài)250中,或利用卷密鑰ID從密鑰管理組件獲得。
[0120]在步驟310,實體E利用解密的卷密鑰VK來解密目標卷的加密根訪問數(shù)據(jù)252。加密根訪問數(shù)據(jù)252被存儲在目標卷的序列化卷狀態(tài)250中。加密根訪問數(shù)據(jù)252可以利用用于目標卷的散列-散列映射254的任何加密方案而被加密。在一個實施例中,目標卷的序列化卷狀態(tài)250包含卷密鑰256、明文根塊的加密散列252以及散列-散列映射254。在一個實施例中,加密根訪問數(shù)據(jù)252是用目標卷的卷密鑰加密的明文根的散列,即E(VK,h(RCCT)))。
[0121]在步驟312,實體E獲得根塊并利用來自步驟310的未加密根訪問數(shù)據(jù)解密該根塊。該未加密根訪問數(shù)據(jù)包括用于該根塊的塊密鑰。在一個實施例中,根訪問數(shù)據(jù)是h (RCct),并且根塊通過下面方式獲得:(a)利用h (RCct),從散列-散列映射254獲得h (RCe);(b)利用h (RCe),執(zhí)行獲取操作,以獲得加密的根塊RCe;以及(c)根據(jù)加密卷的加密方案(例如,塊級隨機加密方案、卷密鑰加密方案、明文散列加密方案或其他合適的加密方案),解密根塊RCe。步驟312在圖4中更詳細描述。
[0122]在可選的步驟314,如果塊包括子散列,在加密卷的分級結(jié)構(gòu)中的子塊被遞歸處理,例如,通過遞歸執(zhí)行步驟312。在塊存儲系統(tǒng)中,可以利用表示非葉節(jié)點的塊和表示葉節(jié)點的塊表示分級文件系統(tǒng)。表示非葉節(jié)點的塊包含表示其子節(jié)點的塊的散列。例如,在圖2中,卷200的根塊202可以包含子塊204和206的散列。在利用明文散列加密方案加密的卷中,子體(descendant)的散列可以用于定位子體塊(descendant chunk)以及解密該子體塊。在一個實施例中,子散列是子塊的明文塊數(shù)據(jù)的散列,即h(CCT)。
[0123]在一個或多個可選實施例中,如果卷識別符VID未被加密,擁有明文卷識別符VID的未授權(quán)實體E’不能訪問目標卷。即使該未授權(quán)實體E’利用其(通過利用名稱-散列映射所獲得的)散列獲得明文序列化卷狀態(tài),未授權(quán)實體E’也不能解密被加密的序列化卷狀態(tài),例如,用授權(quán)實體E的密鑰加密的卷狀態(tài)中的關(guān)鍵信息。
[0124]獲取操作
[0125]可以利用獲取操作從塊存儲系統(tǒng)中檢索加密卷中的塊。在一個實施例中,加密塊的獲取操作在加密卷層中實施,該加密卷層被配置為利用加密卷的卷密鑰VK,得到塊密鑰CK,并且利用塊密鑰CK,解密加密的塊。加密塊的獲取操作可以調(diào)用在塊系統(tǒng)層中實施的獲取操作,該塊系統(tǒng)層被配置為處理基于內(nèi)容的塊數(shù)據(jù),而不管該塊數(shù)據(jù)是否被加密。
[0126]為了在卷加密層例如卷加密層112中執(zhí)行塊C的獲取操作,需要訪問密鑰和根密鑰CK。訪問密鑰被用于定位塊存儲系統(tǒng)中的C。在一個實施例中,訪問密鑰是加密塊Ce的散列。通過解密操作D(K,CE),塊密鑰CK被用于生成明文塊數(shù)據(jù)CCT。塊密鑰CK的值取決于卷的加密方案,所述加密方案可以從塊級隨機加密方案、卷密鑰加密方案、明文散列加密方案或其他合適的加密方案中選擇。
[0127]圖4示出獲得指定塊的獲取操作的方法的實施例的流程圖。獲取操作可以由授權(quán)的實體E執(zhí)行。
[0128]在步驟402,實體E獲得明文塊數(shù)據(jù)的散列。例如,對于目標卷的根塊,明文塊數(shù)據(jù)的散列可以從目標卷的序列化卷狀態(tài)250獲得。對于目標卷的塊樹中的子塊,明文塊數(shù)據(jù)的散列可以從父塊獲得。
[0129]在步驟404,實體E獲得加密塊的散列。加密塊的散列可以利用加密卷的散列-散列映射254,例如,存儲在序列化卷狀態(tài)250中的散列-散列映射254而獲得。
[0130]在步驟406,實體E從塊存儲系統(tǒng)例如塊存儲服務(wù)器122獲得加密塊。加密塊的散列被用于從塊存儲服務(wù)器122獲得加密塊。在一個實施例中,實體E的卷加密層112調(diào)用塊系統(tǒng)客戶端116,塊系統(tǒng)客戶端116被配置為從塊存儲服務(wù)器122請求塊。
[0131]在步驟408,實體E解密所加密的塊數(shù)據(jù),從而產(chǎn)生明文塊數(shù)據(jù)。在一個實施例中,實體E的卷加密層112解密由塊系統(tǒng)客戶端116返回的加密塊??梢岳眠m當?shù)膲K密鑰CK,根據(jù)加密卷的加密方案,例如塊級隨機加密方案、卷密鑰加密方案、明文散列加密方案或其他合適的加密方案的適當塊密鑰CK,來執(zhí)行解密。
[0132]存放操作
[0133]利用存放操作,塊可以被添加到塊存儲系統(tǒng)中的加密卷中。在一個實施例中,用于加密卷的存放操作在加密卷層中實施,該加密卷層被配置為利用根據(jù)密鑰管理方案所選擇的塊密鑰CK加密塊,接著將所加密的塊存放至塊存儲系統(tǒng)的加密卷中。加密塊的存放操作可以調(diào)用在塊系統(tǒng)層中實施的存放操作,該塊系統(tǒng)層被配置為處理基于內(nèi)容的塊數(shù)據(jù),而不管該塊數(shù)據(jù)是否被加密。
[0134]為了在加密卷V中執(zhí)行塊C的存放操作,C必須在加密操作(K,CeT)中以適當?shù)募用苊荑€K加密,以生成Ce,其被存放至根據(jù)內(nèi)容可尋址存儲系統(tǒng)的塊存儲系統(tǒng)中。此外,卷V中的受影響塊必須被更新,包括卷根RV。加密密鑰K的值取決于卷的加密方案,所述加密方案可以從塊級隨機加密方案、卷密鑰加密方案、明文散列加密方案或其他合適的加密方案中選擇。
[0135]圖5示出將指定塊添加到加密卷的存放操作的方法的實施例的流程圖。存放操作可以由授權(quán)的實體E執(zhí)行。
[0136]在步驟502,實體E加密明文塊數(shù)據(jù)。在一個實施例中,明文塊數(shù)據(jù)通過實體E的卷加密層112加密??梢岳盟x的塊密鑰CK根據(jù)加密卷的加密方案,例如塊級隨機加密方案、卷密鑰加密方案、明文散列加密方案或其他合適的加密方案,執(zhí)行加密。
[0137]在步驟504,生成加密塊的散列。
[0138]在步驟506,明文塊數(shù)據(jù)的散列被映射到加密塊的散列。在一個實施例中,該映射被添加到卷狀態(tài)的散列-散列映射254中。在一個實施例中,卷狀態(tài)的散列-散列映射254被保持在存儲器中,直到該卷狀態(tài)的重新序列化被觸發(fā),以存儲作為塊的序列化卷狀態(tài)250。在塊級隨機加密方案中,明文塊數(shù)據(jù)的散列被映射到用卷密鑰加密的塊密鑰中,即h(Cct) — E(VK,CK),以安全存儲與每個塊關(guān)聯(lián)的塊密鑰。
[0139]在步驟508,加密塊被存放至塊存儲系統(tǒng)中。在一個實施例中,實體E的卷加密層112調(diào)用塊系統(tǒng)客戶端116,塊系統(tǒng)客戶端116通過與塊存儲服務(wù)器122通信,將加密的塊存放至塊存儲器中。
[0140]更新散列樹
[0141]在加密卷的存放操作或其他數(shù)據(jù)變化后,數(shù)據(jù)散列樹可以被更改,以觸發(fā)一個或多個非葉塊的更新和對卷狀態(tài)的更新。對卷狀態(tài)的更新需要卷狀態(tài)的重新序列化,這包括存儲對應(yīng)于新的序列化卷狀態(tài)的新塊和更新在名稱-散列表格中的新序列化卷狀態(tài)的散列。
[0142]用于共享的密鑰管理
[0143]在一個實施例中,可以利用密鑰管理方案共享存儲在塊存儲系統(tǒng)中的加密卷。在一個實施例中,存儲在塊存儲系統(tǒng)中的加密內(nèi)容被擁有在加密卷的密鑰管理方案下的一個或多個可用加密密鑰的客戶解密。這些密鑰可以是對稱的密鑰或公共/私人密鑰對中的任一個。在一個實施例中,用于加密卷的密鑰管理方案包括通過一個或多個客戶端實體實施密鑰共享。
[0144]例如,在一個實施例中,當授權(quán)實體被授權(quán)訪問加密的卷時,用實體的密鑰加密卷密鑰VK,即,用于實體E的E (KE, VK)。從加密的角度來看,訪問卷密鑰VK的任何實體可以執(zhí)行該操作。在該事項處理完成后,實體E可以訪問加密的卷,解密卷密鑰VK,并從而解密整個加密卷。
[0145]可以通過將卷密鑰VK改變?yōu)樾碌木砻荑€VK’,取消特定實體E’對加密卷的訪問。新的卷密鑰VK’可以用所有授權(quán)實體的密鑰加密,但是把取消的實體E’排除在外。在一個實施例中,通過改變卷密鑰VK’,使得在加密卷中的塊不需要被再加密,實體E’的訪問可以被取消。
[0146]改變實體授權(quán)的實施細節(jié)根據(jù)加密卷的加密方案而不同。下面給出本文討論的三個示例性加密方案的附加細節(jié):
[0147].塊級隨機加密方案
[0148]在塊級隨機加密方案中,每個指定塊的塊密鑰CK用與該塊關(guān)聯(lián)的加密卷的卷密鑰VK加密,即E (VK,CK)。在此情況下,原始卷密鑰VK和新的卷密鑰VK’兩者被用于訪問加密卷中的塊。用于加密被添加到加密卷中的新塊的塊密鑰CK用新的卷密鑰加密,即E (VK’,CK)。加密塊密鑰可以包括識別用于加密塊密鑰的指定卷密鑰的識別符。原始卷密鑰VK和新的卷密鑰VK’兩者需要用剩下的實體密鑰加密。在特定實體E’的訪問被取消后,實體E’將不能訪問加密卷中的新數(shù)據(jù)。在一個實施例中,另外的授權(quán)層可用于阻止被刪除的實體E’訪問加密卷。
[0149].卷密鑰加密方案
[0150]在此情況下,原始卷密鑰VK和新的卷密鑰VK’兩者都被用于訪問加密卷中的塊。加密塊可以包含帶報頭,所述報頭具有已被用于加密該加密塊的特定卷密鑰的識別符。被添加到加密卷中的新塊用新的卷密鑰VK’加密。在特定實體E’的訪問被取消后,實體E’將不能訪問加密卷中的新數(shù)據(jù)。在一個實施例中,另外的授權(quán)層可用于阻止被刪除的實體E’訪問加密卷。
[0151].明文散列加密方案
[0152]在將卷密鑰VK改變到新的卷密鑰VK’之后,生成新的該卷的散列樹的新根。新的根散列用新的卷密鑰VK’加密。新的卷密鑰VK’用剩下的實體密鑰加密。
[0153]復制整個卷的加密數(shù)據(jù)
[0154]被授權(quán)訪問加密卷的實體可以被授權(quán)共享該加密卷或其一部分。例如,授權(quán)實體可能希望共享加密卷中的文件夾。加密卷中的文件夾可以由對應(yīng)于加密卷的散列樹的子樹表不。
[0155]在一個實施例中,共享加密卷內(nèi)的分級結(jié)構(gòu)可以通過將數(shù)據(jù)從第一加密卷復制到第二加密卷來實施。在一個實施例中,第一加密卷是屬于第一實體個人的,而第二加密卷是與一個或多個其他實體共享的共享加密卷。共享加密卷的文件夾的操作的實施取決于加密卷的加密方案。
[0156]在明文散列加密方案中,這種操作可以通過將對應(yīng)于文件夾的第一加密卷的映射的子集插入到目標卷的映射中來執(zhí)行。這種操作需要下載子樹的非葉塊,以獲得并列舉子樹的散列。子樹的塊的再加密是不必要的。
[0157]在一個實施例中,在一個或多個其他加密方案中,這種操作可以通過下載對應(yīng)于文件夾的子樹的塊、解密該塊、用與第二加密卷關(guān)聯(lián)的一個或多個適當?shù)募用苊荑€再加密該塊,并將該再加密塊存放至第二加密卷而執(zhí)行。
[0158]共享只讀副本
[0159]在一個實施例中,授權(quán)實體可能希望共享加密卷中的子樹的不變的副本。例如,子樹可以對應(yīng)于卷中的文件夾或其他分級結(jié)構(gòu)。共享加密卷的子樹的不變的副本的操作的實施取決于加密卷的加密方案。
[0160]在明文散列加密方案中,通過共享用E的密鑰即h(KE,CeT)加密的子樹根的明文散列以及對應(yīng)于原始加密卷的子樹中的相關(guān)塊的散列-散列映射的至少相關(guān)部分,子樹可以與實體E共享。該子樹的塊的再加密是不必要的。
[0161 ] 在一個實施例中,在一個或多個其他加密方案中,這種操作可以通過下載對應(yīng)于文件夾的子樹的塊、解密該塊,用與第二加密卷關(guān)聯(lián)的一個或多個適當加密密鑰再加密該塊,并將該再加密塊存放至與實體E共享的加密卷中來執(zhí)行。
[0162]硬件概述
[0163]根據(jù)一個實施例,本文所述的技術(shù)通過一個或多個專用計算裝置來實施。該專用計算裝置可以被硬連線以執(zhí)行該技術(shù),或可以包括數(shù)字電子裝置,例如一個或多個專用集成電路(ASIC)或被永久編程以執(zhí)行該技術(shù)的現(xiàn)場可編程門陣列(FPGA),可以包括被編程以執(zhí)行根據(jù)在硬體、存儲器、其他存儲或其組合中的程序指令執(zhí)行技術(shù)的一個或多個通用硬件處理器。這樣的專用計算裝置還可以組合自定義硬連線邏輯、ASIC或自定義編程以實施該技術(shù)的FPGA。專用計算裝置可以是臺式計算機系統(tǒng)、便攜式計算機系統(tǒng)、手持式裝置、網(wǎng)絡(luò)裝置或并入硬連線和/或程序邏輯以實施該技術(shù)的任何其他裝置。
[0164]例如,圖6示出本發(fā)明的實施方式可以在其上實施的計算機系統(tǒng)600的框圖。計算機系統(tǒng)600包括總線602或用于傳輸信息的其他通信機構(gòu),以及與總線602耦接的用于處理信息的硬件處理器604。硬件處理器604可以是例如通用微處理器。
[0165]計算機系統(tǒng)600還包括耦接至總線602的用于存儲由處理器604執(zhí)行的信息和指令的主存儲器606,例如,隨機訪問存儲器(RAM)或其他動態(tài)存儲器件。主存儲器606還可以被用于存儲在執(zhí)行指令期間由處理器604執(zhí)行的臨時變量或其他中間信息。當被存儲在處理器604可訪問的非臨時性存儲介質(zhì)中時,這樣的指令使得計算機系統(tǒng)600成為被自定義為執(zhí)行該指令指定的操作的專用機器。
[0166]計算機系統(tǒng)600進一步包括耦接到總線602用于存儲供處理器604的靜態(tài)信息和指令的只讀存儲器(ROM) 608或其他靜態(tài)存儲器件。存儲裝置610,例如磁盤、光盤或被提供并耦接到總線602用于存儲信息和指令。
[0167]計算機系統(tǒng)600可以經(jīng)由總線602被耦接到用于向計算機用戶顯示信息的顯示器612,例如陰極射線管(CRT)。包括字母數(shù)字和其他鍵的輸入裝置614被耦接到總線602,用于向處理器604傳送信息和命令選擇。另一種用戶輸入裝置是光標控制616,諸如用于向處理器604傳送方向信息和命令選擇并控制在顯不器612上的光標運動的鼠標、軌跡球或光標方向鍵。這種輸入裝置通常在兩個軸,第一軸(例如,X)和第二軸(例如,y)具有允許該裝置在平面中指定位置的兩個自由度。
[0168]利用與計算機系統(tǒng)組合而使得計算機系統(tǒng)600成為專用機器的自定義硬連線邏輯、一個或多個ASIC或FPGA、固體和/或程序邏輯,計算機系統(tǒng)600可以實施本文所述的技術(shù)。根據(jù)一個實施例,響應(yīng)于執(zhí)行包含在主存儲器606中的一個或多個指令的一個或多個序列,本文所述的技術(shù)由計算機系統(tǒng)600執(zhí)行。這樣的指令可以從其他存儲介質(zhì),例如,存儲裝置610被讀入到主存儲器606中。包含在主存儲器606中的指令序列的執(zhí)行使得處理器604執(zhí)行本文所述的過程步驟。在可選實施例中,硬連線線路可以被軟件指令替換或與軟件指令組合。
[0169]如本文所利用的術(shù)語“存儲介質(zhì)”指的是存儲了使得機器以指定方式運行的數(shù)據(jù)和/或指令的任何非臨時性介質(zhì)。這樣的存儲介質(zhì)可以包括非易失性介質(zhì)和/或易失性介質(zhì)。非易失性介質(zhì)包括例如光盤、磁盤或固態(tài)驅(qū)動器,例如存儲裝置610。易失性介質(zhì)包括動態(tài)存儲器,例如,主存儲器606。存儲介質(zhì)的常見形式包括例如,軟盤、柔性盤、硬盤、固態(tài)驅(qū)動器、磁帶或任何其他磁數(shù)據(jù)存儲介質(zhì)、CD-ROM、任何其他光數(shù)據(jù)存儲介質(zhì)、具有孔圖案的任何物理介質(zhì)、RAM、PROM和EPROM、FLASH-EPROM、NVRAM、任何其他存儲器芯片或盒子。
[0170]存儲介質(zhì)與傳輸介質(zhì)不同但是可以結(jié)合傳輸介質(zhì)使用。傳輸介質(zhì)在存儲介質(zhì)之間參與傳送信息。例如,傳輸介質(zhì)包括同軸電纜、銅線和光纖,包括具有總線603的電線。傳輸介質(zhì)還可以采用聲波或光波的形式,例如在射頻波和紅外數(shù)據(jù)通信期間所生成的那些聲波或光波。
[0171]在向處理器604傳送一個或多個指令的一個或多個序列供執(zhí)行的過程中,涉及各種形式的介質(zhì)。例如,可以在遠程計算機的磁盤或固態(tài)硬盤上初始地承載指令。遠程計算機可以將指令加載到其動態(tài)存儲器中并利用調(diào)制解調(diào)器通過電話線發(fā)送該指令。計算機系統(tǒng)600的本地調(diào)制解調(diào)器可以接收電話線上的數(shù)據(jù)并利用紅外發(fā)送器將數(shù)據(jù)轉(zhuǎn)換為紅外信號。紅外檢測器可以接收在紅外信號中攜帶的數(shù)據(jù)以及適當?shù)木€路可以將該數(shù)據(jù)置于總線602上??偩€602將該數(shù)據(jù)傳送到主存儲器606,處理器604檢索主存儲器606的數(shù)據(jù)并執(zhí)行該指令。在處理器604的執(zhí)行之前或之后,由主存儲器606接收的指令可選地存儲在存儲裝置610上。
[0172]計算機系統(tǒng)600還包括耦接到總線602的通信接口 618。通信接口 618提供耦接到網(wǎng)絡(luò)鏈路620的雙向數(shù)據(jù)通信,該網(wǎng)絡(luò)鏈路620被連接到本地網(wǎng)絡(luò)622。例如,通信接口618可以是綜合業(yè)務(wù)數(shù)字網(wǎng)(ISDN)卡,電纜調(diào)制解調(diào)器,衛(wèi)星調(diào)制解調(diào)器,或向?qū)?yīng)電話線類型提供數(shù)據(jù)通信連接的調(diào)制解調(diào)器。作為另一個實例,通信接口 618可以是向兼容LAN提供數(shù)據(jù)通信連接局域網(wǎng)(LAN)卡。無線鏈路也可以被實施。在任何這樣的實施中,通信接口 618發(fā)送和接收攜帶表示各種信息的數(shù)字數(shù)據(jù)流的電、磁或光信號。
[0173]網(wǎng)絡(luò)鏈路620通常通過一個或多個網(wǎng)絡(luò)向其他數(shù)據(jù)裝置提供數(shù)據(jù)通信。例如,網(wǎng)絡(luò)鏈路620可以通過本地網(wǎng)絡(luò)622至主計算機624或由互聯(lián)網(wǎng)服務(wù)提供商(ISP)626運行的數(shù)據(jù)設(shè)備的連接。ISP626進而通過現(xiàn)在一般稱為“因特網(wǎng)”628的全球分組數(shù)據(jù)通信網(wǎng)絡(luò)提供數(shù)據(jù)通信服務(wù)。本地網(wǎng)絡(luò)622和因特網(wǎng)628兩者均利用攜帶數(shù)據(jù)流的電、磁或光信號。通過各種網(wǎng)絡(luò)的信號和在網(wǎng)絡(luò)鏈路620上并通過通信接口 618的信號是傳輸介質(zhì)的示例形式,所述信號攜帶至和自計算機系統(tǒng)600的數(shù)字數(shù)據(jù)。
[0174]計算機系統(tǒng)600可以通過網(wǎng)絡(luò)、網(wǎng)絡(luò)鏈路620和通信接口 618發(fā)送消息和接收包括程序代碼的數(shù)據(jù)。在因特網(wǎng)實例中,服務(wù)器630可以通過因特網(wǎng)628、ISP626、本地網(wǎng)622和通信接口 618傳送所請求的用于應(yīng)用程序的代碼。
[0175]所接收的代碼可以在處理器604接收時被執(zhí)行,和/或被存儲在存儲裝置610中,或其他非易失性存儲中供以后執(zhí)行。
[0176]擴展和備選
[0177]在前述說明書中,本發(fā)明的實施例已參照可以依實施而變化的多個特定細節(jié)進行了描述。因此,相應(yīng)的規(guī)范和附圖應(yīng)被看作是示例性的,而不是限制性的。本發(fā)明范圍的唯一和排他的指示,以及 申請人:意在保護的本發(fā)明范圍是來自本申請公布的權(quán)利要求組的字面和等效范圍,以這樣的權(quán)利要求所公布的特定形式,包括任何隨后的修改。
【權(quán)利要求】
1.一種方法,包括: 在內(nèi)容可尋址存儲系統(tǒng)中,利用多個塊來實施分級文件系統(tǒng); 支持所述分級文件系統(tǒng)中的加密卷和非加密卷兩者; 其中,支持加密卷和非加密卷兩者包括: 使得文件夾和文件層直接調(diào)用塊系統(tǒng)層,以用于涉及非加密卷的操作;以及 使得所述文件夾和文件層調(diào)用卷加密層,以用于涉及加密卷的操作; 其中,所述卷加密層通過API接收來自所述文件夾和文件層的調(diào)用,所述API匹配所述塊系統(tǒng)層通過其接收來自所述文件夾和文件層的調(diào)用的API。
2.根據(jù)權(quán)利要求1所述的方法,其中 所述塊系統(tǒng)層具有用于執(zhí)行存放操作的第一接口和用于執(zhí)行獲取操作的第二接口; 所述卷加密層具有用于執(zhí)行存放操作的第三接口和用于執(zhí)行獲取操作的第四接口; 所述方法進一步包括: 所述文件夾和文件層對所述第一接口進行第一調(diào)用以對非加密卷執(zhí)行存放操作; 所述文件夾和文件層對所述第二接口進行第二調(diào)用以對所述非加密卷執(zhí)行獲取操作; 所述文件夾和文件層對所述第三接口進行第三調(diào)用以對加密卷執(zhí)行存放操作; 響應(yīng)于所述第三調(diào)用,所述卷加密層對所述第一接口進行第四調(diào)用; 所述文件夾和文件層對所述第四接口進行第五調(diào)用以對所述加密卷執(zhí)行獲取操作;以及 響應(yīng)于所述第五調(diào)用,所述卷加密層對所述第二接口進行第六調(diào)用。
3.根據(jù)權(quán)利要求1所述的方法,其中: 其中,所述塊系統(tǒng)層為被配置為訪問所述分級文件系統(tǒng)的客戶端層; 其中,所述卷加密層為被配置為執(zhí)行加密和解密的客戶端層,其中,所述卷加密層進一步被配置為對所述塊系統(tǒng)層進行調(diào)用以訪問所述分級文件系統(tǒng)。
4.一種方法,包括: 利用內(nèi)容可尋址存儲系統(tǒng)中的多個塊來實施分級文件系統(tǒng),所述分級文件系統(tǒng)包括多個加密卷; 為每個加密卷保持相應(yīng)的卷密鑰; 接收駐留于所述多個加密卷的特定加密卷上的特定塊的獲取請求; 響應(yīng)于所述獲取請求,執(zhí)行步驟: 從所述內(nèi)容可尋址存儲系統(tǒng)獲得所述特定塊的加密塊數(shù)據(jù); 利用所述特定加密卷的卷密鑰獲得所述特定塊的明文塊數(shù)據(jù);以及 用所述特定塊的明文塊數(shù)據(jù)來響應(yīng)所述獲取請求。
5.根據(jù)權(quán)利要求4所述的方法,其中,利用所述特定加密卷的卷密鑰獲得所述特定塊的明文塊數(shù)據(jù)的步驟包括: 利用所述卷密鑰解密為所述特定塊隨機生成的特定塊密鑰; 通過利用所述特定塊密鑰解密所述特定塊的加密塊數(shù)據(jù),生成所述明文塊數(shù)據(jù)。
6.根據(jù)權(quán)利要求4所述的方法,其中,利用所述特定加密卷的卷密鑰獲得所述特定塊的明文塊數(shù)據(jù)的步驟包括通過利用所述卷密鑰解密所述特定塊的加密塊數(shù)據(jù),生成所述明文塊數(shù)據(jù)。
7.根據(jù)權(quán)利要求4所述的方法,其中,利用所述特定加密卷的卷密鑰獲得所述特定塊的明文塊數(shù)據(jù)的步驟包括: 利用所述卷密鑰解密在存儲所述特定加密卷的塊的所述內(nèi)容可尋址存儲系統(tǒng)內(nèi)的塊樹的根散列; 利用所述塊樹的根散列獲得所述特定塊的散列;以及 通過利用所述特定塊的散列解密所述特定塊的所述加密塊數(shù)據(jù),生成所述明文塊數(shù)據(jù)。
8.根據(jù)權(quán)利要求4所述的方法,進一步包括: 對于所述內(nèi)容可尋址存儲系統(tǒng)中的至少一個塊,保持基于明文塊數(shù)據(jù)生成的第一散列與基于所述加密塊數(shù)據(jù)生成的第二散列之間的映射。
9.根據(jù)權(quán)利要求8所述的方法,其中,所述第一散列是所述明文塊數(shù)據(jù)的雙散列。
10.根據(jù)權(quán)利要求4所述的方法,其中,所述獲取請求包括明文塊散列,所述方法進一步包括: 利用所述明文塊散列獲得加密塊散列; 其中,所述加密塊數(shù)據(jù)利用所述加密塊散列而獲得。
11.根據(jù)權(quán)利要求4所述的方法,進一步包括: 對于所述內(nèi)容可尋址存儲系統(tǒng)中的至少一個卷,保持卷識別符與所述至少一個卷的卷狀態(tài)的散列之間的映射。
12.根據(jù)權(quán)利要求4所述的方法,進一步包括: 從客戶端接收存放請求以將第二塊添加到所述特定加密卷; 加密所述第二塊; 在所述內(nèi)容可尋址存儲系統(tǒng)中將所述加密的第二塊與所述特定加密卷關(guān)聯(lián)地存儲。
13.根據(jù)權(quán)利要求12所述的方法,其中,所述加密的第二塊通過利用與所述加密塊的內(nèi)容不相關(guān)的指定塊密鑰進行加密,進一步包括步驟: 利用所述卷密鑰加密所述指定塊密鑰; 將加密的指定塊密鑰與基于所述第二塊的明文塊數(shù)據(jù)生成的散列關(guān)聯(lián)地存儲。
14.根據(jù)權(quán)利要求12所述的方法,其中,所述加密的第二塊利用所述卷密鑰進行加密。
15.根據(jù)權(quán)利要求12所述的方法,其中,所述加密的第二塊利用基于所述第二塊的明文塊數(shù)據(jù)生成的散列進行加密。
16.根據(jù)權(quán)利要求12所述的方法,進一步包括通過利用所述卷密鑰生成至少一個新塊,更新與所述卷關(guān)聯(lián)的所述塊樹。
17.根據(jù)權(quán)利要求4所述的方法,進一步包括: 利用實體的實體密鑰加密所述卷密鑰; 通過密鑰管理組件與所述實體共享所述加密卷密鑰,共享所述特定加密卷,其中,所述實體通過利用其自身的實體密鑰解密所述卷密鑰已經(jīng)訪問所述特定卷。
18.根據(jù)權(quán)利要求4所述的方法,進一步包括: 從所述內(nèi)容可尋址存儲系統(tǒng)獲得序列化卷狀態(tài)數(shù)據(jù); 其中,所述序列化卷狀態(tài)數(shù)據(jù)包括散列-散列映射和卷密鑰信息。
19.根據(jù)權(quán)利要求18所述的方法,其中,所述卷密鑰信息包括卷密鑰ID,其中,所述卷密鑰通過密鑰管理組件利用所述卷密鑰ID而獲得。
20.一種存儲指令的非臨時性計算機可讀介質(zhì),當所述指令由一個或多個處理器執(zhí)行時,使得所述方法的執(zhí)行包括: 獲得用于存儲在實施分級文件系統(tǒng)的內(nèi)容可尋址存儲系統(tǒng)中的多個加密卷中的至少一個加密卷的至少一個卷密鑰; 接收駐留于所述多個加密卷的特定加密卷上的特定塊的獲取請求; 響應(yīng)于所述獲取請求,執(zhí)行步驟: 從所述內(nèi)容可尋址存儲系統(tǒng)獲得所述特定塊的加密塊數(shù)據(jù); 利用所述特定加密卷的卷密鑰獲得所述特定塊的明文塊數(shù)據(jù);以及 用所述特定塊的明文塊數(shù)據(jù)來響應(yīng)所述獲取請求。
21.根據(jù)權(quán)利要求20所述的非臨時性計算機可讀介質(zhì),其中,利用所述特定加密卷的卷密鑰獲得所述特定塊的明文塊數(shù)據(jù)的步驟包括: 利用所述卷密鑰解密為所述特定塊隨機生成的特定塊密鑰; 通過利用所述特定塊密鑰解密所述特定塊的加密塊數(shù)據(jù),生成所述明文塊數(shù)據(jù)。
22.根據(jù)權(quán)利要求20所述的非臨時性計算機可讀介質(zhì),其中,利用所述特定加密卷的卷密鑰獲得所述特定塊的明文塊數(shù)據(jù)的步驟包括通過利用所述卷密鑰解密所述特定塊的加密塊數(shù)據(jù),生成所述明文塊數(shù)據(jù)。
23.根據(jù)權(quán)利要求20所述的非臨時性計算機可讀介質(zhì),其中,利用所述特定加密卷的卷密鑰獲得所述特定塊的明文塊數(shù)據(jù)的步驟包括: 利用所述卷密鑰解密在存儲所述特定加密卷的塊的所述內(nèi)容可尋址存儲系統(tǒng)內(nèi)的塊樹的根散列; 利用所述塊樹的根散列獲得所述特定塊的散列;以及 通過利用所述特定塊的散列解密所述特定塊的加密塊數(shù)據(jù),生成所述明文塊數(shù)據(jù)。
24.根據(jù)權(quán)利要求20所述的非臨時性計算機可讀介質(zhì),進一步包括: 對于所述內(nèi)容可尋址存儲系統(tǒng)中的至少一個塊,保持基于明文塊數(shù)據(jù)生成的第一散列與基于所述加密塊數(shù)據(jù)生成的第二散列之間的映射。
25.根據(jù)權(quán)利要求20所述的非臨時性計算機可讀介質(zhì),其中,所述第一散列是所述明文塊數(shù)據(jù)的雙散列。
26.根據(jù)權(quán)利要求20所述的非臨時性計算機可讀介質(zhì),其中,所述獲取請求包括明文塊散列,所述方法進一步包括: 利用所述明文塊散列獲得加密塊散列; 其中,所述加密塊數(shù)據(jù)利用所述加密塊散列而獲得。
27.根據(jù)權(quán)利要求20所述的非臨時性計算機可讀介質(zhì),進一步包括: 對于所述內(nèi)容可尋址存儲系統(tǒng)中的至少一個卷,保持卷識別符與所述至少一個卷的卷狀態(tài)之間的映射。
28.根據(jù)權(quán)利要求20所述的非臨時性計算機可讀介質(zhì),進一步包括: 從所述客戶接收存放請求以將第二塊添加到所述特定加密卷; 加密所述第二塊; 在所述內(nèi)容可尋址存儲系統(tǒng)中將加密的第二塊與所述特定加密卷關(guān)聯(lián)地存儲。
29.根據(jù)權(quán)利要求28所述的非臨時性計算機可讀介質(zhì),其中,所述加密的第二塊通過利用與所述加密塊的內(nèi)容不相關(guān)的指定塊密鑰進行加密,進一步包括步驟: 利用所述卷密鑰加密所述指定塊密鑰; 將加密的指定塊密鑰與基于所述第二塊的明文塊數(shù)據(jù)生成的散列關(guān)聯(lián)地存儲。
30.根據(jù)權(quán)利要求28所述的非臨時性計算機可讀介質(zhì),其中,所述加密的第二塊利用所述卷密鑰進行加密。
31.根據(jù)權(quán)利要求28所述的非臨時性計算機可讀介質(zhì),其中,所述加密的第二塊利用基于所述第二塊的明文塊數(shù)據(jù)生成的散列進行加密。
32.根據(jù)權(quán)利要求28所述的非臨時性計算機可讀介質(zhì),進一步包括通過利用所述卷密鑰生成至少一個新塊,更新與所述卷關(guān)聯(lián)的塊樹。
33.根據(jù)權(quán)利要求28所述的非臨時性計算機可讀介質(zhì),進一步包括: 利用實體的實體密鑰加密所述卷密鑰; 通過密鑰管理組件與所述實體共享所述加密卷密鑰,共享所述特定加密卷,其中,所述實體通過利用其自身的實體密鑰解密所述卷密鑰已經(jīng)訪問所述特定卷。
34.根據(jù)權(quán)利要求20所述的方法,進一步包括: 從所述內(nèi)容可尋址存儲系統(tǒng)獲得序列化卷狀態(tài)數(shù)據(jù); 其中,所述序列化卷狀態(tài)數(shù)據(jù)包括散列-散列映射和卷密鑰信息。
35.根據(jù)權(quán)利要求34所述的方法,其中,所述卷密鑰信息包括卷密鑰ID,其中,所述卷密鑰通過利用所述卷密鑰ID,通過密鑰管理組件獲得。
36.一種系統(tǒng),包括: 塊存儲器,被配置為存儲多個塊; 塊存儲服務(wù)器,被配置為實施包括多個卷的分級文件系統(tǒng),所述多個卷包括加密卷和未加密卷; 客戶端,其包括: 文件和文件夾層; 塊存儲客戶端層,被配置為與所述塊存儲服務(wù)器通信; 卷加密層,被配置為執(zhí)行加密和解密; 其中,所述文件和文件夾層通過調(diào)用所述塊存儲客戶端層訪問非加密卷; 其中,所述文件和文件夾層通過調(diào)用所述卷加密層訪問加密卷; 其中,所述卷加密層進一步被配置為通過所述塊存儲客戶端層訪問所述塊存儲服務(wù)器。
【文檔編號】G06F21/62GK104331408SQ201410350664
【公開日】2015年2月4日 申請日期:2014年7月22日 優(yōu)先權(quán)日:2012年1月26日
【發(fā)明者】朱利安·伯夫, 薩欽·拉瓦特 申請人:阿普賽爾有限公司