使用外部秘密的存儲系統(tǒng)中的數(shù)據(jù)保護(hù)的制作方法
【專利摘要】用于與外部秘密相結(jié)合地使用秘密共享方案來保護(hù)一組存儲設(shè)備的系統(tǒng)、方法和計(jì)算機(jī)可讀存儲介質(zhì)。生成初始主秘密,然后使用外部秘密將初始主秘密變換成最終主秘密。根據(jù)初始主秘密生成多個(gè)份額,并將多個(gè)份額分發(fā)到存儲設(shè)備。利用特定于設(shè)備的密鑰來加密每個(gè)存儲設(shè)備的數(shù)據(jù),此密鑰是使用最終主秘密加密的。為了讀取給定存儲設(shè)備上的數(shù)據(jù),根據(jù)閾值數(shù)量的份額重構(gòu)初始主秘密,并檢索外部秘密。接下來,使用外部秘密將初始主秘密變換成最終主秘密,然后使用最終主秘密來解密給定存儲設(shè)備的經(jīng)加密的密鑰。
【專利說明】
使用外部秘密的存儲系統(tǒng)中的數(shù)據(jù)保護(hù)
技術(shù)領(lǐng)域
[0001]本發(fā)明涉及存儲系統(tǒng),更具體而言,涉及用于保護(hù)數(shù)據(jù)防止被未經(jīng)授權(quán)的訪問的系統(tǒng)。
【背景技術(shù)】
[0002]存儲系統(tǒng)常常存儲許多不同類型的敏感信息。因此,存儲系統(tǒng)需要確保存儲的數(shù)據(jù)不能被讀取或以別的方式被未經(jīng)授權(quán)的用戶泄密(compromise)。防止數(shù)據(jù)被泄密可被證明在各種情況下是具有挑戰(zhàn)性的。例如,當(dāng)存儲設(shè)備在各位置之間裝運(yùn)時(shí),可能難以防止丟失或被盜竊的存儲設(shè)備上的數(shù)據(jù)被訪問。另外,在另一個(gè)示例中,未經(jīng)授權(quán)的人可能會盜竊單個(gè)存儲設(shè)備,并通過規(guī)避或突破正在被使用的安全措施來訪問存儲設(shè)備上的數(shù)據(jù)。
[0003]現(xiàn)有的用于防止這些類型的情況的方案通常未能完全解決這些對數(shù)據(jù)安全性的威脅。確保未經(jīng)授權(quán)的用戶不能讀取存儲在存儲系統(tǒng)中的數(shù)據(jù)十分重要。另外,常常期望能夠快速地使數(shù)據(jù)不可讀,并且無需給存儲設(shè)備通電。因此,期望用于保護(hù)存儲系統(tǒng)中的數(shù)據(jù)的改善的技術(shù)。
[0004]鑒于上面的內(nèi)容,期望用于防止對一組存儲設(shè)備的訪問的改善的系統(tǒng)和方法。
【發(fā)明內(nèi)容】
[0005]想到了用于防止對存儲在存儲陣列中的數(shù)據(jù)的未經(jīng)授權(quán)的訪問的系統(tǒng)和方法的各實(shí)施例。
[0006]在一個(gè)實(shí)施例中,可以將秘密共享方案與一個(gè)或多個(gè)外部秘密相結(jié)合來保護(hù)存儲在存儲陣列中的數(shù)據(jù)。秘密共享方案可以通過在少量存儲設(shè)備丟失或被盜竊的情況下防止數(shù)據(jù)被泄密來保護(hù)存儲陣列。為防止在整個(gè)存儲陣列丟失的情況下的未經(jīng)授權(quán)的數(shù)據(jù)訪問,可以將一個(gè)或多個(gè)外部秘密與秘密共享方案相結(jié)合地使用以保護(hù)存儲的數(shù)據(jù)。
[0007]在一個(gè)實(shí)施例中,初始主秘密可以被生成,然后可被分成份額的集合,以便只有擁有足夠數(shù)量的份額才能恢復(fù)初始主秘密,但是,擁有不足數(shù)量的份額提供很少或不會提供有關(guān)初始主秘密的信息??梢詾橄到y(tǒng)的每個(gè)存儲設(shè)備生成一個(gè)或多個(gè)份額,然后,可以將份額存儲在它們的對應(yīng)的存儲設(shè)備上。如果有足夠的存儲設(shè)備存在,那么可以根據(jù)存儲在這些存儲設(shè)備上的份額重構(gòu)初始主秘密。在一個(gè)實(shí)施例中,可以將初始主秘密與一個(gè)或多個(gè)外部秘密相結(jié)合以生成最終主秘密。外部秘密可以是密碼、USB密鑰、存儲在外部服務(wù)器中的密鑰和/或另一種類型的存儲在外部的秘密。
[0008]在一個(gè)實(shí)施例中,可以利用密鑰對每個(gè)存儲設(shè)備上的數(shù)據(jù)進(jìn)行加密,并且每個(gè)存儲設(shè)備可以使用單獨(dú)的唯一密鑰對存儲設(shè)備上的數(shù)據(jù)進(jìn)行加密??梢允褂酶鞣N加密方法中的任何一種來使用密鑰對存儲設(shè)備上的數(shù)據(jù)進(jìn)行加密。在一個(gè)實(shí)施例中,對于每個(gè)存儲設(shè)備,可以使用最終主秘密和特定于設(shè)備的值來加密每驅(qū)動(dòng)器加密密鑰。然后,經(jīng)加密的密鑰可以存儲在其對應(yīng)的存儲設(shè)備中。在一個(gè)實(shí)施例中,特定于設(shè)備的值可以是給定存儲設(shè)備的序列號。
[0009]為了解密存儲陣列中的數(shù)據(jù),可以根據(jù)適當(dāng)數(shù)量的份額重構(gòu)初始主秘密。此外,可以檢索一個(gè)或多個(gè)外部秘密。在已重構(gòu)了初始主秘密并且已定位和/或檢索了一個(gè)或多個(gè)外部秘密之后,一個(gè)或多個(gè)外部秘密可以被用來將初始主秘密變換為最終主秘密。然后,可以使用最終主秘密和特定于設(shè)備的值來解密每個(gè)特定于設(shè)備的經(jīng)加密的密鑰。然后,可以使用這些密鑰來解密存儲陣列中的存儲設(shè)備上的數(shù)據(jù)。
[0010]由于存儲陣列上的數(shù)據(jù)是使用初始主秘密和一個(gè)或多個(gè)外部秘密的組合來加密的,因此,所有這些輸入都必須存在,才能使數(shù)據(jù)被解密。因此,可以通過破壞外部秘密或使外部秘密無法被訪問,輕松地破壞存儲在存儲陣列中的數(shù)據(jù)。如果使用USB密鑰令牌作為外部秘密,那么破壞USB密鑰令牌將有效地破壞存儲陣列上的數(shù)據(jù)。替選地,如果使用智能卡來存儲外部秘密,那么可以破壞智能卡以便破壞存儲陣列上的數(shù)據(jù)。如果外部秘密存儲在遠(yuǎn)程網(wǎng)絡(luò)服務(wù)器上,則服務(wù)器可以拒絕提供外部秘密,這將會防止為解密存儲在存儲陣列上的數(shù)據(jù)所需的步驟的完成。
[0011 ]在考慮下列描述和附圖的情況下,這些及其他實(shí)施例將變得清楚。
【附圖說明】
[0012]圖1是示出存儲系統(tǒng)的一個(gè)實(shí)施例的一般化框圖。
[0013]圖2是存儲系統(tǒng)的另一個(gè)實(shí)施例的一般化框圖。
[0014]圖3是示出用于保護(hù)一組存儲設(shè)備上的數(shù)據(jù)的方法的一個(gè)實(shí)施例的一般化流程圖。
[0015]圖4是示出用于利用外部秘密使用秘密共享方案來解密存儲系統(tǒng)中的數(shù)據(jù)的方法的一個(gè)實(shí)施例的一般化流程圖。
[0016]圖5是生成經(jīng)加密的密鑰和份額的一個(gè)實(shí)施例的框圖。
[0017]盡管本發(fā)明可以具有各種修改和替選形式,但是在本文中將通過示例的方式在附圖中示出特定實(shí)施例,并進(jìn)行詳細(xì)描述。然而,應(yīng)理解,附圖和詳細(xì)描述不是旨在將本發(fā)明只限于所公開的特定形式,而是相反地,本發(fā)明將涵蓋落入如所附權(quán)利要求所定義的本發(fā)明的精神和范圍內(nèi)的所有修改、等同內(nèi)容和替選方案。
【具體實(shí)施方式】
[0018]在以下描述中,闡述了許多具體細(xì)節(jié)以提供對本發(fā)明的透徹理解。然而,本領(lǐng)域的技術(shù)人員應(yīng)該認(rèn)識到,本發(fā)明也可以在沒有這些具體細(xì)節(jié)的情況下實(shí)施。在某些情況下,沒有詳細(xì)示出已知的電路、結(jié)構(gòu)、信號、計(jì)算機(jī)程序指令和技術(shù),以避免使本發(fā)明變得模糊??梢岳斫?,為說明簡單和清楚起見,圖中所示出的元件不一定是按比例繪制的。例如,某些元件的尺寸可以相對于其他元件而放大。
[0019]本說明書包括對“一個(gè)實(shí)施例”的引用。在不同的上下文中出現(xiàn)短語“在一個(gè)實(shí)施例中”不一定都是指同一個(gè)實(shí)施例。根據(jù)本發(fā)明,特定特征、結(jié)構(gòu)或特性可以以任何合適的方式組合起來。此外,如在本申請全篇中所使用的,詞語“可以”用于許可的意義(即,表示具有可能性做某事),而不是強(qiáng)制性的意義(即,表示必須)。類似地,詞語“包括”表示包括但不僅限于。
[0020]術(shù)語。下面的段落提供了在本公開(包括所附權(quán)利要求書)中發(fā)現(xiàn)的術(shù)語的定義和/或上下文:
[0021 ] “包括”。此術(shù)語是開放式的。如在所附權(quán)利要求書中所使用的,此術(shù)語不排除額外的結(jié)構(gòu)或步驟??紤]記載了下列內(nèi)容的權(quán)利要求:“包括多個(gè)存儲設(shè)備的計(jì)算系統(tǒng)…”。這樣的權(quán)利要求不排除計(jì)算系統(tǒng)包括額外的組件(例如,網(wǎng)絡(luò)接口、一個(gè)或多個(gè)處理器、存儲器控制器)。
[0022]“被配置成”。各種單元、電路或其他組件可以被描述為或聲明為“被配置成”執(zhí)行一個(gè)或多個(gè)任務(wù)。在這樣的上下文中,“被配置成”用于通過指示單元/電路/組件包括在操作期間執(zhí)行一個(gè)或多個(gè)任務(wù)的結(jié)構(gòu)(例如,電路)來暗示結(jié)構(gòu)。如此,單元/電路/組件可以被說成是被配置成執(zhí)行任務(wù),甚至在指定的單元/電路/組件當(dāng)前不運(yùn)轉(zhuǎn)(例如,沒有接通)的情況下。與“被配置成”一起使用的單元/電路/組件包括硬件一一例如,電路、存儲可執(zhí)行以實(shí)現(xiàn)操作的程序指令的存儲器等等。記載單元/電路/組件“被配置成”執(zhí)行一個(gè)或多個(gè)任務(wù)明確地旨在對于該單元/電路/組件不調(diào)用35 U.S.C.§112第六段。另外,“被配置成”可包括由軟件和/或固件(例如,執(zhí)行軟件的FPGA或通用處理器)操縱以便以能夠執(zhí)行所涉及的任務(wù)的方式進(jìn)行操作的通用結(jié)構(gòu)(例如,通用電路)?!氨慌渲贸伞币部梢园ㄐ薷闹圃爝^程(例如,半導(dǎo)體裝配設(shè)施)以制造被配置為實(shí)現(xiàn)或執(zhí)行一個(gè)或多個(gè)任務(wù)的設(shè)備(例如,集成電路)。
[0023]“基于”。如本文中所使用的,此術(shù)語用于描述影響判定的一個(gè)或多個(gè)因素。此術(shù)語不排除可能會影響判定的額外因素。即,判定可以只基于那些因素或至少部分地基于那些因素。考慮短語“基于B來判定A”。盡管B可能是影響對A的判定的因素,但是這樣的短語不排除對A的判定也基于C。在其他情況下,可以只基于B來判定A。
[0024]參考圖1,示出了存儲系統(tǒng)100的一個(gè)實(shí)施例的一般化框圖。存儲系統(tǒng)100可包括存儲器控制器110和被包括在架子140和145內(nèi)的存儲設(shè)備150A-N。存儲器控制器110可以與使用一個(gè)或多個(gè)外部秘密124相結(jié)合地實(shí)現(xiàn)秘密共享算法,以防止對存儲設(shè)備150A-N的未經(jīng)授權(quán)的訪問。取決于實(shí)施例,外部秘密124可包括密碼、存儲在通用串行總線(USB)密鑰令牌上的秘密、存儲在安全智能卡上的秘密、存儲在可通過網(wǎng)絡(luò)訪問的遠(yuǎn)程服務(wù)器上的秘密和/或存儲在其他設(shè)備上的秘密。
[0025]在一個(gè)實(shí)施例中,初始主秘密生成單元115可以生成初始主秘密120,并且份額生成單元125可以根據(jù)初始主秘密120生成份額。最終主秘密生成單元126可以使用初始主秘密120和一個(gè)或多個(gè)外部秘密124來生成最終主秘密128。在一個(gè)實(shí)施例中,每個(gè)存儲設(shè)備150A-N可以生成并使用用于加密存儲在設(shè)備上的數(shù)據(jù)的密鑰。可以使用最終主秘密128和特定于設(shè)備的值來加密這些未加密的密鑰。作為結(jié)果的經(jīng)加密的密鑰155A-N中的每個(gè)可以存儲在對應(yīng)的存儲設(shè)備150A-N中。
[0026]在一個(gè)實(shí)施例中,對于每種類型的外部秘密124,有關(guān)外部秘密的信息可以存儲在存儲系統(tǒng)100的每個(gè)存儲設(shè)備150A-N中。在另一個(gè)實(shí)施例中,有關(guān)外部秘密的信息可以存儲在足夠多的存儲設(shè)備中,以便至少一個(gè)存儲設(shè)備具有此信息。此信息被示為存儲設(shè)備150N的擴(kuò)展表示中的外部秘密訪問信息162N。在一個(gè)實(shí)施例中,每個(gè)存儲設(shè)備150A-N可以以與存儲設(shè)備150N的擴(kuò)展表示中示出的方式相同的方式來組織。
[0027]外部秘密訪問信息162不能用于推導(dǎo)外部秘密124,但是,信息162指示如何可以獲取外部秘密124。例如,在一個(gè)實(shí)施例中,信息162可以指示外部秘密124存儲在USB密鑰令牌中,并且必須通過USB密鑰令牌來運(yùn)行初始主秘密120以提供最終主秘密128。信息162也可以包括與USB密鑰令牌一起使用的標(biāo)識符。在另一個(gè)實(shí)施例中,信息162可以指定密鑰交換協(xié)議和獲得外部秘密124所聯(lián)絡(luò)的一個(gè)或多個(gè)服務(wù)器的因特網(wǎng)協(xié)議(IP)地址。在此實(shí)施例中,信息162也可以指定向服務(wù)器呈現(xiàn)的標(biāo)識符。在一個(gè)實(shí)施例中,可以存在用于存儲系統(tǒng)100的單組外部秘密124。在此實(shí)施例中,每個(gè)存儲設(shè)備150可以存儲用于獲得外部秘密124的相同信息162。然而,如果添加或刪除外部秘密124,信息162可以在不同的存儲設(shè)備150A-N上臨時(shí)改變。
[0028]在某些情況下,可能為外部秘密124指定不正確的值。因此,在一些實(shí)施例中,每個(gè)存儲設(shè)備150A-N可以存儲校驗(yàn)和164N,而校驗(yàn)和164N可以被用來驗(yàn)證最終主秘密128。校驗(yàn)和164N可以比最終主秘密128小得多,以便試圖根據(jù)校驗(yàn)和164N計(jì)算最終主秘密128的攻擊將會失敗。在其他實(shí)施例中,可以使用驗(yàn)證最終主秘密128的其他方式,或替選地,可以不做出驗(yàn)證最終主秘密128的嘗試。
[0029]圖1中所示出的數(shù)據(jù)保護(hù)方案使得通過使外部秘密124無法被訪問來破壞存儲在存儲器系統(tǒng)100中的所有數(shù)據(jù)變得簡單。例如,可以以任意數(shù)量的方式物理地破壞USB密鑰令牌,從而使得不可能恢復(fù)外部秘密124。從安全位置處的密鑰服務(wù)器中獲得的外部秘密124不需要在服務(wù)器上被破壞。相反,服務(wù)器可以拒絕向存儲系統(tǒng)100提供外部秘密124,這會防止任何人讀取存儲系統(tǒng)100中的數(shù)據(jù)。
[0030]作為由存儲系統(tǒng)100使用的整體數(shù)據(jù)保護(hù)方案的一部分,秘密共享方案可以由存儲器控制器110來實(shí)現(xiàn)。在一個(gè)實(shí)施例中,可以由初始主秘密生成單元115使用沙米爾(Shamir)秘密共享來實(shí)現(xiàn)整體數(shù)據(jù)保護(hù)方案的秘密共享算法部分。然而,注意,可以在其他實(shí)施例中使用其他秘密共享方案。例如,在其他實(shí)施例中,可以使用諸如Blakley、KraWCZyk或中國剩余定理之類的其他秘密共享方案。盡管說明書的剩余部分可以是特定于沙米爾秘密共享的,但是,可以理解,這不排除使用其他秘密共享方案。
[0031]在一個(gè)實(shí)施例中,單元115可以被配置成生成“m”數(shù)量的份額,其中,需要’k’個(gè)份額來重構(gòu)初始主秘密120。在一個(gè)實(shí)施例中,份額的數(shù)量“m”可以等于存儲設(shè)備的數(shù)量“η”。然而,在其他實(shí)施例中,份額的數(shù)量“m”可以大于存儲設(shè)備的數(shù)量“η”??梢允褂盟鶎兕I(lǐng)域的技術(shù)人員所知的各種已知技術(shù)中的任何一種來生成初始主秘密120和“m”數(shù)量的份額。
[0032 ]每個(gè)份額135A-N可以被分發(fā)到對應(yīng)的存儲設(shè)備150A-N,并被存儲在對應(yīng)的存儲設(shè)備150A-N上。存儲系統(tǒng)100的存儲設(shè)備150A-N被示為被分離成兩個(gè)相等大小的架子140和145。然而,在其他實(shí)施例中,可以在存儲系統(tǒng)中使用其他數(shù)量的架子,另外,每個(gè)架子可以大小不同。
[0033]雖然初始主秘密生成單元115、份額生成單元125、最終主秘密生成單元126和密鑰加密單元130被示為存儲器控制器110內(nèi)的單獨(dú)的實(shí)體,但是,可以理解,這些單元可以被合并成單個(gè)單元。還要注意,存儲器控制器110可包括在圖1中未示出的其他組件和邏輯。此夕卜,在某些實(shí)施例中,單元115、125、126和130可以是從在存儲器控制器110的一個(gè)或多個(gè)處理器(未示出)上執(zhí)行的程序調(diào)用的軟件例程。一般而言,被描述為包括在存儲器控制器110內(nèi)或由存儲器控制器110實(shí)現(xiàn)的邏輯、算法和機(jī)制可以包括硬件和/或軟件。
[0034]應(yīng)該理解,為說明性目的示出了圖1中所示出的功能的分布,而其他實(shí)施例可以具有組件之間的功能的不同的布置。例如,在另一個(gè)實(shí)施例中,單元115、125、126和130中的一個(gè)或多個(gè)可以位于架子140、架子145、任何存儲設(shè)備150A-N內(nèi),或在另一計(jì)算設(shè)備中。在某些實(shí)施例中,如果用于生成份額和秘密和/或?qū)γ荑€進(jìn)行加密的邏輯位于架子或存儲設(shè)備內(nèi),那么份額、秘密和/或經(jīng)加密的密鑰可以不從存儲器控制器傳遞到存儲設(shè)備150A-N,如圖1中所示。相反,在生成份額、秘密和/或經(jīng)加密的密鑰之后,可以在它們的相應(yīng)的存儲設(shè)備中本地使用它們。
[0035]在各實(shí)施例中,存儲設(shè)備150A-N中的每個(gè)可以使用各種類型的數(shù)據(jù)存儲技術(shù)中的任何一種。例如,在一個(gè)實(shí)施例中,存儲設(shè)備150A-N中的一個(gè)或多個(gè)可包括貯存器,該貯存器包括存儲永久性數(shù)據(jù)的固態(tài)存儲器。在其他實(shí)施例中,存儲設(shè)備150A-N中的一個(gè)或多個(gè)可包括使用其他技術(shù)的貯存器,諸如旋轉(zhuǎn)扭矩轉(zhuǎn)移技術(shù)、磁阻隨機(jī)存取存儲器(MRAM)技術(shù)、瓦式磁盤(shingled disk)、憶阻器(memristor)、相變存儲器或其他存儲器技術(shù)。在一個(gè)實(shí)施例中,所包括的固態(tài)存儲器可以包括固態(tài)驅(qū)動(dòng)器(SSD)技術(shù)。注意,固態(tài)驅(qū)動(dòng)器(SSD)也可以被稱為固態(tài)磁盤。
[0036]在一個(gè)實(shí)施例中,每個(gè)存儲設(shè)備150A-N可以生成并使用用于加密存儲在設(shè)備上的數(shù)據(jù)的密鑰。每個(gè)存儲設(shè)備150A-N可包括使用用于加密存儲在設(shè)備上的數(shù)據(jù)的密鑰的硬件加密機(jī)制。替選地,由存儲設(shè)備150A-N使用的密鑰可以由存儲器控制器110或另一個(gè)單元生成。在一個(gè)實(shí)施例中,為添加額外保護(hù)級別,存儲設(shè)備150A-N上的硬件可以被配置成加密這些密鑰。每個(gè)密鑰可以由每個(gè)存儲設(shè)備150A-N上的硬件獨(dú)立地并與其他密鑰分開地加密。替選地,在另一個(gè)實(shí)施例中,存儲器控制器110的密鑰加密單元130可以被配置成對密鑰進(jìn)行加密。盡管密鑰加密單元130被示為位于存儲器控制器110內(nèi),但是注意,這僅僅是為了便于說明。在一些實(shí)施例中,每個(gè)存儲設(shè)備150A-N可包括其自己的密鑰加密單元,存儲器控制器110可以向每個(gè)設(shè)備密鑰加密單元提供一個(gè)值,而設(shè)備可以使用此值來加密其密鑰。
[0037]此外,每個(gè)密鑰可以被獨(dú)立地并與經(jīng)加密并存儲在每個(gè)存儲設(shè)備上的數(shù)據(jù)分開地加密。用于每個(gè)存儲設(shè)備的密鑰可以使用最終主秘密128和特定于相應(yīng)的存儲設(shè)備的第二值來加密。例如,在一個(gè)實(shí)施例中,值165可以是存儲設(shè)備的序列號。在另一個(gè)實(shí)施例中,第二值可以是存儲在存儲設(shè)備的標(biāo)頭160中的標(biāo)識(ID)或ID的一部分。在其他實(shí)施例中,第二值可以基于給定存儲設(shè)備固有的其他信息。在其他實(shí)施例中,可以使用多個(gè)特定于設(shè)備的值對密鑰進(jìn)行加密。此外,在某些實(shí)施例中,可以只使用最終主秘密128對密鑰進(jìn)行加密。
[0038]還要注意,在另一個(gè)實(shí)施例中,兩個(gè)或更多個(gè)存儲設(shè)備可以使用相同密鑰,密鑰加密單元130可以加密此密鑰,并將加密的密鑰傳遞到使用該密鑰的存儲設(shè)備。替選地,在其他實(shí)施例中,最終主秘密128可以是用來加密每個(gè)存儲設(shè)備150A-N上的數(shù)據(jù)的密鑰。在此實(shí)施例中,每個(gè)存儲設(shè)備150A-N可以將份額135、外部秘密訪問信息162、校驗(yàn)和164以及經(jīng)加密的數(shù)據(jù)170,與任何其他特定于設(shè)備的數(shù)據(jù)一起存儲在標(biāo)頭160中。在此實(shí)施例中,為了解密數(shù)據(jù),可以使用足夠數(shù)量的存儲設(shè)備150A-N的份額來重構(gòu)初始主秘密120。接下來,可以檢索外部秘密124,并將外部秘密124與初始主秘密120相結(jié)合,以生成最終主秘密128。然后,可以使用最終主秘密128來解密經(jīng)加密的數(shù)據(jù)170。
[0039]在一個(gè)實(shí)施例中,可以使用散列函數(shù),與給定存儲設(shè)備150的序列號160—起對最終主秘密128進(jìn)行散列,以生成中間值。然后,用于加密給定存儲設(shè)備150上的數(shù)據(jù)的原始密鑰的值可以通過此中間值來加密。該加密階段的輸出可以是存儲在給定存儲設(shè)備150上的經(jīng)加密的密鑰155。在各個(gè)實(shí)施例中,可以使用任何類型的散列函數(shù)(例如,MD5,SHA-1)。在其他實(shí)施例中,可以使用其他加密技術(shù)來使用最終主秘密128和特定于設(shè)備的值,生成經(jīng)加密的密鑰155。
[0040]在一個(gè)實(shí)施例中,初始主秘密120、份額135A-N、最終主秘密128以及經(jīng)加密的密鑰155A-N的生成可以在存儲系統(tǒng)100的配置和安裝期間被執(zhí)行。另外,可以周期性地再生成這些值,以為存儲系統(tǒng)100提供更好的安全性。例如,在一個(gè)實(shí)施例中,初始主秘密生成單元115可以每天生成新的初始主秘密120,而最終主秘密生成單元126可以每天生成新的最終主秘密128。然后,單元115可以根據(jù)新的初始主秘密120生成新的份額135A-N,并將這些新的份額135A-N分發(fā)到存儲設(shè)備150A-N。此外,單元130可以根據(jù)新的最終主秘密128生成經(jīng)加密的密鑰155A-N,并將這些經(jīng)加密的密鑰155A-N分發(fā)到它們的對應(yīng)的存儲設(shè)備150A-N。在其他實(shí)施例中,可以使用其他計(jì)劃表來更新初始主秘密120、最終主秘密128、份額135A-N以及經(jīng)加密的密鑰155A-N。
[0041]在一個(gè)實(shí)施例中,存儲系統(tǒng)100可以更新存儲設(shè)備150A-N的密鑰,而無需返回與中央管理機(jī)構(gòu)通信。相反,存儲器控制器110可以高速緩存外部秘密124的副本,或者對于使用USB密鑰令牌的方法,存儲器控制器110可以再次通過令牌來傳遞新生成的初始主秘密。一旦生成新的最終主秘密,存儲器控制器110可以更新存儲設(shè)備150A-N的密鑰。
[0042]在其他實(shí)施例中,在秘密和密鑰的生成期間使用的步驟可能不同,可以在數(shù)據(jù)保護(hù)方案的更新中包含其他步驟。例如,在另一個(gè)實(shí)施例中,并非只是重新加密原始密鑰以產(chǎn)生新的經(jīng)加密的密鑰155,每個(gè)存儲設(shè)備150上的經(jīng)加密的數(shù)據(jù)可以被解密,并利用新密鑰重新加密。此外,在其他實(shí)施例中,用于加密存儲在每個(gè)存儲設(shè)備150A-N上的數(shù)據(jù)的原始密鑰可以由密鑰生成單元130生成,而并非由每個(gè)存儲設(shè)備生成。
[0043]在圖1中擴(kuò)展存儲設(shè)備150N以示出其單獨(dú)的數(shù)據(jù)組件。在一個(gè)實(shí)施例中,存儲設(shè)備150N可包括特定于設(shè)備的值165N、份額135N、經(jīng)加密的密鑰155N、外部秘密訪問信息162N、校驗(yàn)和164N以及經(jīng)加密的數(shù)據(jù)170N。特定于設(shè)備的值165N、份額135N、以及經(jīng)加密的密鑰155N、外部秘密訪問信息162N、校驗(yàn)和164N可以是標(biāo)頭160N的一部分。替選地,在另一個(gè)實(shí)施例中,經(jīng)加密的密鑰155N可以存儲在位于最終用戶難接近的區(qū)域中的存儲設(shè)備150N上。在此實(shí)施例中,經(jīng)加密的密鑰155N只能經(jīng)由解鎖命令來訪問。標(biāo)頭160N也可以包括圖1中未示出的其他信息。注意,在其他實(shí)施例中,可以以不同的方式格式化存儲設(shè)備150N。另外,存儲設(shè)備150N可包括用于執(zhí)行加密的邏輯(未示出)。
[0044]如圖1所示的存儲設(shè)備150N的格式是存儲在非易失性存儲器(例如,固態(tài)存儲器、磁盤驅(qū)動(dòng)器或任何其他合適的存儲設(shè)備)中的數(shù)據(jù)的格式。雖然在圖1中未示出,但是存儲設(shè)備150N也可以包括易失性存儲器,該易失性存儲器用于存儲可以用來執(zhí)行讀和寫的已解密的密鑰。一般而言,存儲設(shè)備150N可以在讀取數(shù)據(jù)并將數(shù)據(jù)寫入到存儲設(shè)備150N期間使用已解密的密鑰。當(dāng)存儲設(shè)備150N被通電時(shí),可以有初始化處理以使存儲設(shè)備150N進(jìn)入運(yùn)轉(zhuǎn)的狀態(tài)。此運(yùn)轉(zhuǎn)的狀態(tài)可以允許經(jīng)加密的數(shù)據(jù)170N被解密,還允許新的數(shù)據(jù)被加密并被寫入到存儲設(shè)備150N ο在通電時(shí),存儲設(shè)備150N可以保留經(jīng)加密的密鑰155N,該經(jīng)加密的密鑰155N是不可使用的,直到它被解密以重新創(chuàng)建用于加密存儲在設(shè)備150N上的數(shù)據(jù)(經(jīng)加密的數(shù)據(jù)170N)的原始密鑰為止。將參考圖2更詳細(xì)地描述該處理。
[0045]份額135N可以由份額生成單元125生成。份額135N的生成可以獨(dú)立地并與實(shí)際數(shù)據(jù)(經(jīng)加密的數(shù)據(jù)170N)的加密分開地執(zhí)行。換言之,在份額135N的生成中不使用存儲在存儲設(shè)備150N上的用戶數(shù)據(jù)。在一個(gè)實(shí)施例中,份額135N可以是對多項(xiàng)式的輸入和對于該特定輸入的多項(xiàng)式的結(jié)果。在某些實(shí)施例中,份額135N也可以包括額外的信息。例如,在一個(gè)實(shí)施例中,份額135N可包括’k’的值,該值指示重構(gòu)共享的秘密120所需的份額的數(shù)量。
[0046]在一個(gè)實(shí)施例中,存儲在存儲設(shè)備上的數(shù)據(jù)可以利用存儲設(shè)備所特有的密鑰來加密。存儲設(shè)備150N的經(jīng)加密的數(shù)據(jù)通過經(jīng)加密的數(shù)據(jù)170N來表示。密鑰與特定于存儲設(shè)備的另一個(gè)值一起可以從每個(gè)存儲設(shè)備150傳遞到密鑰加密單元130。例如,在一個(gè)實(shí)施例中,存儲器控制器110可以從每個(gè)存儲設(shè)備150接收密鑰和特定于設(shè)備的值165N。密鑰、特定于設(shè)備的值165N以及最終主秘密128可以被密鑰加密單元130用來為特定存儲設(shè)備150生成經(jīng)加密的密鑰155。在另一個(gè)實(shí)施例中,每個(gè)存儲設(shè)備可以被配置成本地加密其相應(yīng)的密鑰,因此,在此實(shí)施例中,將最終主秘密128與特定于設(shè)備的值165N組合的結(jié)果可以被傳輸?shù)矫總€(gè)存儲設(shè)備。對密鑰進(jìn)行加密的位置和方法的其他變型也是可以的,并且是能想到的。
[0047]現(xiàn)在參考圖2,示出了存儲系統(tǒng)200的另一個(gè)實(shí)施例的框圖。存儲系統(tǒng)200包括存儲器控制器205,而取決于實(shí)施例,用于實(shí)現(xiàn)存儲器控制器205中所示出的單元的實(shí)際邏輯可以不同。在各個(gè)實(shí)施例中,可使用硬件、軟件或其組合來實(shí)現(xiàn)存儲器控制器205 ο例如,在一個(gè)實(shí)施例中,單元210、216和220可以表示由存儲器控制器205的一個(gè)或多個(gè)處理器(未示出)執(zhí)行的軟件。此外,在其他實(shí)施例中,存儲器控制器205中所示出的邏輯可以位于架子240和245或存儲設(shè)備250A-N內(nèi)。
[0048]存儲器控制器205可以耦合到包括存儲設(shè)備250A-N的架子240和245。在圖2中存儲設(shè)備250N被擴(kuò)展,以示出標(biāo)頭255N和經(jīng)加密的數(shù)據(jù)275N。標(biāo)頭255N可包括特定于設(shè)備的值260N、份額265N、經(jīng)加密的密鑰270N、外部秘密訪問信息262N以及校驗(yàn)和264N。存儲器控制器205也可以耦合到隨機(jī)存取存儲器(RAM) 230。
[0049]存儲器控制器205可包括初始主秘密重構(gòu)單元210以及最終主秘密重構(gòu)單元216。單元210可以被配置成從存儲設(shè)備250A-N接收份額。只要有足夠的存儲設(shè)備存在并可被訪問,單元210就可以根據(jù)從這些存儲設(shè)備中獲得的份額重構(gòu)初始主秘密215。另外,存儲器控制器205可以在重構(gòu)初始主秘密215之前,與其并行地,或在其之后,獲得一個(gè)或多個(gè)外部秘密202。然后,存儲器控制器205可以按預(yù)定的順序經(jīng)過外部秘密202,從而依次通過每個(gè)外部秘密來變換初始主秘密215。然后,存儲器控制器205可以使用校驗(yàn)和264N來驗(yàn)證最終主秘密218,只有在最終主秘密218匹配期望的校驗(yàn)和264N的情況下才進(jìn)行。然后,可以使用該最終主秘密218來生成每個(gè)設(shè)備加密密鑰225,以解鎖每個(gè)存儲設(shè)備250A-N。
[0050]在其他實(shí)施例中,存儲器控制器205也可以包括用于執(zhí)行其他任務(wù)的許多其他單元及其他邏輯。例如,存儲器控制器205也可以包括在圖2中未示出的其他邏輯,諸如圖1的存儲器控制器110中所示出的邏輯。在各個(gè)實(shí)施例中,存儲器控制器205可以是服務(wù)器或計(jì)算設(shè)備的一部分,而存儲器控制器205可包括硬件(例如,電路、專用邏輯、可編程邏輯、微代碼)、軟件(例如,可執(zhí)行程序指令)或其任何組合。
[0051 ]重構(gòu)最終主秘密218和解密經(jīng)加密的密鑰270的操作可以在存儲系統(tǒng)200啟動(dòng)時(shí)執(zhí)行單次。在經(jīng)加密的密鑰270被解密之后,它們可以存儲在易失性存儲器(RAM 230)中,并多次用于對存儲設(shè)備250A-N的訪問。注意,這是存儲系統(tǒng)200的有益的特征,該特征允許最終主秘密218被單次重構(gòu)并且經(jīng)加密的密鑰270被單次解密,然后被多次重復(fù)使用。
[0052]密鑰解密單元220可以被配置成解密存儲設(shè)備250A-N的經(jīng)加密的密鑰。單元220可以從每個(gè)存儲設(shè)備250A-N接收經(jīng)加密的密鑰和特定于設(shè)備的值。單元220可以使用來自于特定存儲設(shè)備的最終主秘密218和特定于設(shè)備的值,以逆轉(zhuǎn)(reverse)用于對密鑰進(jìn)行加密的加密處理。密鑰225代表用來解密存儲在存儲設(shè)備250A-N上的經(jīng)加密的數(shù)據(jù)275的經(jīng)解密的密鑰。每個(gè)存儲設(shè)備250A-N可以具有用于對存儲在單個(gè)設(shè)備上的數(shù)據(jù)進(jìn)行加密和解密的單獨(dú)的密鑰。雖然密鑰解密單元220被示為位于存儲器控制器205中,但是注意,在一些實(shí)施例中,每個(gè)存儲設(shè)備250A-N可包括其自己的密鑰解密單元。例如,在一個(gè)實(shí)施例中,可以在存儲器控制器205中生成特定于設(shè)備的密鑰,并將特定于設(shè)備的密鑰傳遞到存儲設(shè)備250,以經(jīng)由串行高級技術(shù)附接(SATA)解鎖命令來解密經(jīng)加密的密鑰270。在其他實(shí)施例中,密鑰解密單元220的功能可以在存儲器控制器205和存儲設(shè)備250A-N之間拆分。
[0053]取決于實(shí)施例,密鑰225可以存儲在各種位置。雖然密鑰225被示為存儲在存儲器控制器205中,但是,在另一個(gè)實(shí)施例中,密鑰225可以存儲在RAM 230中。另外,雖然RAM 230被示為與存儲器控制器205分開的單獨(dú)的單元,但是,在另一個(gè)實(shí)施例中,RAM 230可以被包括在存儲器控制器205內(nèi)。在其他實(shí)施例中,每個(gè)存儲設(shè)備250A-N可包括用于存儲經(jīng)解密的密鑰225的內(nèi)部RAM 230。
[0054]RAM 230可以是任何類型的易失性存儲器,以便當(dāng)RAM 230斷電時(shí),密鑰將不會被保存。這有助于在密鑰被解密之后防止未經(jīng)授權(quán)的用戶訪問密鑰。每個(gè)存儲設(shè)備250A-N可以從RAM 230中檢索對應(yīng)的密鑰,并使用此密鑰在從存儲設(shè)備中讀和寫期間對數(shù)據(jù)進(jìn)行加密和解密。替選地,每個(gè)存儲設(shè)備250A-N可包括易失性存儲器的一部分,密鑰可以存儲在對應(yīng)的存儲設(shè)備上的此易失性存儲器中。用于存儲經(jīng)解密的密鑰的位置的其他可能性是可以的,并且是能想到的。在一個(gè)實(shí)施例中,密鑰解密處理可以完全地在每個(gè)存儲設(shè)備250A-N上發(fā)生。在此實(shí)施例中,存儲器控制器205可以向每個(gè)存儲設(shè)備250A-N提供最終主秘密218,以使每個(gè)設(shè)備能夠解密其對應(yīng)的經(jīng)加密的密鑰270。
[0055]在各個(gè)實(shí)施例中,存儲設(shè)備250A-N中的一個(gè)或多個(gè)可能會在整體存儲系統(tǒng)200的操作期間發(fā)生故障。響應(yīng)于這樣的故障,存儲器控制器205可以被配置成為替換發(fā)生故障的存儲設(shè)備的新的存儲設(shè)備生成新份額。作為生成新份額的處理的一部分,存儲器控制器205可以收集足夠的份額以恢復(fù)主秘密。例如,在一個(gè)實(shí)施例中,當(dāng)從多項(xiàng)式導(dǎo)出主秘密215時(shí),可以使用所需的數(shù)量的份額來求解多項(xiàng)式的所有系數(shù)。然后,可以在不同的點(diǎn)評估多項(xiàng)式,以為新的存儲設(shè)備生成新份額。對于其他類型的秘密共享方案,可以使用合適的處理來為替換發(fā)生故障的存儲設(shè)備的新的存儲設(shè)備生成新份額。在另一個(gè)實(shí)施例中,存儲器控制器205可以被配置成每當(dāng)成員改變時(shí),諸如當(dāng)現(xiàn)有的存儲設(shè)備發(fā)生故障時(shí)或當(dāng)向系統(tǒng)添加新的存儲設(shè)備時(shí),生成新的初始主秘密和新的最終主秘密。然后,可以使用新的最終主秘密來刷新所有存儲設(shè)備上的經(jīng)加密的密鑰和份額。替選地,存儲器控制器205可以根據(jù)以前使用的相同秘密生成新的一組份額。
[0056]可以使用許多不同的技術(shù)來破壞存儲系統(tǒng)200中的數(shù)據(jù)以防止未經(jīng)授權(quán)的訪問。例如,如果破壞足夠的存儲設(shè)備,那么將不可能檢索足夠的份額以重構(gòu)初始主秘密215。然而,破壞存儲設(shè)備可能耗時(shí),因此可以破壞外部秘密202或使部秘密202無法被訪問。例如,如果破壞USB密鑰令牌,則存儲在它上的外部秘密不再可被訪問,系統(tǒng)200不能完成獲得對存儲的數(shù)據(jù)的訪問的處理。類似地,如果架子240和245被盜,則遠(yuǎn)程網(wǎng)絡(luò)服務(wù)器可以拒絕提供所需的外部秘密,這將阻止訪問數(shù)據(jù)所需的步驟的完成。因此,存儲在系統(tǒng)200中的數(shù)據(jù)的破壞可以通過去除系統(tǒng)200的電力以及通過破壞對至少一個(gè)所需的外部秘密的訪問的方式來實(shí)現(xiàn)。
[0057]盡管上文所描述的步驟防止攻擊者訪問所存儲的數(shù)據(jù),但是這些步驟是可逆的。如果以后恢復(fù)存儲系統(tǒng)200,則可以根據(jù)備份副本恢復(fù)外部秘密、202。如果存儲系統(tǒng)200通常被保留在安全環(huán)境中,則這可以是有用的,但是必須通過惡劣環(huán)境以單塊發(fā)送。外部秘密可以通過替選的更安全的路徑來發(fā)送,然后在目的地與存儲系統(tǒng)再結(jié)合。此方法也允許從外部秘密202的意外丟失恢復(fù)。如果USB密鑰令牌遭受硬件故障,則可以使用具有相同秘密的另一個(gè)令牌來替換它。類似地,如果USB密鑰令牌被錯(cuò)誤地破壞,則系統(tǒng)中的數(shù)據(jù)不會丟失,但是可以通過獲得具有相同秘密的另一個(gè)密鑰令牌來恢復(fù)。如此,組織可以將額外的令牌或秘密存儲在高度安全的位置,從而根據(jù)需要提供替換。
[0058]由于啟動(dòng)存儲系統(tǒng)200需要對外部秘密202的訪問,因此在一些實(shí)施例中,可以維護(hù)每個(gè)外部秘密202的冗余副本。例如,系統(tǒng)200可以使用兩個(gè)相同地配置的USB密鑰令牌,以在其中一個(gè)令牌發(fā)生故障的情況下提供冗余。組織也可以提供兩個(gè)或更多個(gè)網(wǎng)絡(luò)服務(wù)器,以在一個(gè)服務(wù)器不可用的情況下提供外部秘密。
[0059]現(xiàn)在轉(zhuǎn)向圖3,示出了用于保護(hù)一組存儲設(shè)備上的數(shù)據(jù)的方法的一個(gè)實(shí)施例。為了討論的目的,按先后順序示出了此實(shí)施例中的步驟。應(yīng)該注意的是,在下面所描述的方法的各個(gè)實(shí)施例中,所描述的元素中的一個(gè)或多個(gè)可以并行地執(zhí)行,以與所示出的順序不同的順序來執(zhí)行,或可以完全地省略。也可以根據(jù)需要,執(zhí)行其他附加的元素。
[0060]在一個(gè)實(shí)施例中,方法300可以從存儲設(shè)備組中的每個(gè)存儲設(shè)備生成密鑰開始(框305)。在一個(gè)實(shí)施例中,每個(gè)存儲設(shè)備可以獨(dú)立于其他存儲設(shè)備生成密鑰,密鑰可以是隨機(jī)地生成的數(shù)字。此外,在一個(gè)實(shí)施例中,每個(gè)存儲設(shè)備可以執(zhí)行密鑰生成,而無需來自于存儲器控制器或集中式管理單元的任何輸入或控制。當(dāng)向存儲設(shè)備寫入數(shù)據(jù)時(shí),密鑰可以被每個(gè)存儲設(shè)備用來加密數(shù)據(jù)。每個(gè)存儲設(shè)備可包括被配置成使用密鑰來加密數(shù)據(jù)的硬件。當(dāng)從存儲設(shè)備中讀取數(shù)據(jù)時(shí),密鑰也可以被用來解密數(shù)據(jù)。在另一個(gè)實(shí)施例中,密鑰可以在別處(例如,存儲器控制器)生成,并傳輸?shù)矫總€(gè)存儲設(shè)備。
[0061]接下來,存儲器控制器可以從每個(gè)存儲設(shè)備中檢索密鑰(框310)。在一些實(shí)施例中,可以從每個(gè)存儲設(shè)備中檢索每個(gè)設(shè)備值,并將每個(gè)設(shè)備值用于加密每個(gè)設(shè)備密鑰。此值可以是特定存儲設(shè)備所特有的任何值。例如,在一個(gè)實(shí)施例中,每個(gè)設(shè)備值可以是存儲設(shè)備的序列號。存儲器控制器可以是被配置成管理存儲設(shè)備組和/或控制對存儲設(shè)備組的訪問的任何類型的集中式管理單元。在各個(gè)實(shí)施例中,存儲器控制器可以包括硬件和/或軟件。例如,在一個(gè)實(shí)施例中,存儲器控制器可以是在計(jì)算設(shè)備的一個(gè)或多個(gè)處理器上執(zhí)行的軟件。
[0062]存儲器控制器可以為整個(gè)組生成單個(gè)的初始主秘密,并且為每個(gè)存儲設(shè)備生成份額(框315)。注意,在某些實(shí)施例中,在從每個(gè)存儲設(shè)備檢索隨機(jī)密鑰和其他值之前,存儲器控制器可以為每個(gè)存儲設(shè)備生成初始主秘密和份額。存儲器控制器可以使用各種秘密共享方案中的任何一種來生成初始主秘密和份額。例如,在一個(gè)實(shí)施例中,存儲器控制器可以使用沙米爾的秘密共享方案來生成初始主秘密和各個(gè)份額。
[0063]接下來,存儲器控制器可以通過基于一個(gè)或多個(gè)外部秘密應(yīng)用一個(gè)或多個(gè)變換來修改初始主秘密,以創(chuàng)建最終主秘密(框320)。外部秘密可以是用戶輸入的密碼、USB密鑰、存儲在外部服務(wù)器上的密鑰、其他秘密或其任何組合,包括單一類型的秘密的多個(gè)實(shí)例。例如,在一個(gè)實(shí)施例中,可以使用兩個(gè)不同的USB密鑰來存儲兩個(gè)外部秘密,可以使用基于兩個(gè)外部秘密的變換而根據(jù)初始主秘密創(chuàng)建最終主秘密。對于每個(gè)存儲設(shè)備,存儲器控制器可以使用最終主秘密來加密存儲設(shè)備的密鑰(框325)。在一些實(shí)施例中,可以與特定于設(shè)備的值組合地使用最終主秘密來加密存儲設(shè)備的密鑰。在一個(gè)實(shí)施例中,特定于設(shè)備的值可以是存儲設(shè)備的序列號。在一個(gè)實(shí)施例中,可以將最終主秘密和序列號散列在一起,然后可以使用此值來加密存儲設(shè)備的密鑰。在其他實(shí)施例中,可以使用其他加密方案來基于最終主秘密和特定于設(shè)備的值對密鑰進(jìn)行加密。在一些實(shí)施例中,可以單獨(dú)地使用最終主秘密來加密存儲設(shè)備的密鑰,而不是使用最終主秘密和特定于設(shè)備的值兩者。
[0064]接下來,存儲器控制器可以將對應(yīng)的經(jīng)加密的密鑰、份額以及外部秘密訪問信息傳遞到存儲設(shè)備組中的每個(gè)存儲設(shè)備(框330)。份額、經(jīng)加密的密鑰以及外部秘密訪問信息可以存儲在存儲設(shè)備上(框335)。在一個(gè)實(shí)施例中,份額以及外部秘密訪問信息可以存儲在存儲設(shè)備的標(biāo)頭中,而經(jīng)加密的密鑰可以存儲在最終用戶難接近的區(qū)域的存儲設(shè)備上。在此實(shí)施例中,經(jīng)加密的密鑰可能只能經(jīng)由解鎖命令來訪問。在一些實(shí)施例中,每個(gè)存儲設(shè)備可以存儲用于驗(yàn)證最終主秘密的校驗(yàn)和。在框335之后,方法300可以結(jié)束。
[0065]現(xiàn)在轉(zhuǎn)向圖4,示出了用于利用外部秘密使用秘密共享方案來解密存儲系統(tǒng)中的數(shù)據(jù)的方法的一個(gè)實(shí)施例。為了討論的目的,按先后順序示出了此實(shí)施例中的步驟。應(yīng)該注意的是,在下面所描述的方法的各個(gè)實(shí)施例中,所描述的元素中的一個(gè)或多個(gè)可以并行地執(zhí)行,以與所示出的順序不同的順序來執(zhí)行,或可以完全地省略。也可以根據(jù)需要,執(zhí)行其他附加的元素。
[0066]方法400可以從存儲器控制器從任何存儲設(shè)備檢索外部秘密訪問信息開始(框405)。外部秘密訪問信息可以標(biāo)識一個(gè)或多個(gè)外部秘密,并且還可以指示如何檢索這些一個(gè)或多個(gè)外部秘密。取決于實(shí)施例,外部秘密可以變化。例如,在各個(gè)實(shí)施例中,外部秘密可以是密碼、USB密鑰令牌、存儲在外部服務(wù)器上的秘密或其他類型的秘密。接下來,通過使用此外部秘密訪問信息,存儲器控制器可以檢索外部秘密(框410)。
[0067]另外,存儲器控制器可以從閾值數(shù)量的存儲設(shè)備檢索份額(框415)??梢酝ㄟ^生成初始主秘密的方式確定閾值的值。接下來,可以根據(jù)檢索到的份額重構(gòu)初始主秘密(框420) ο在一個(gè)實(shí)施例中,可以使用多項(xiàng)式內(nèi)插法來重構(gòu)初始主秘密。更具體而言,可以作為用于重構(gòu)初始主秘密的內(nèi)插處理的一部分,根據(jù)份額計(jì)算拉格朗日基本多項(xiàng)式。注意,可以與框405和410并行地執(zhí)行框415和420,或者替選地,可以在框405和410之前執(zhí)行框415和420。
[0068]接下來,可以使用檢索到的外部秘密,將初始主秘密變換成最終主秘密(框425)。在一個(gè)實(shí)施例中,安全硬件令牌可包括使令牌接受一個(gè)值并返回經(jīng)變換的值的接口。變換可以是加密、鍵控散列或其他類型的變換。在這樣的實(shí)施例中,可以通過向令牌呈現(xiàn)初始主秘密并使用返回的值作為最終主秘密來變換初始主秘密??梢酝ㄟ^物理地?fù)p壞令牌來輕松地破壞令牌,以防止對存儲陣列的訪問。
[0069]在另一個(gè)實(shí)施例中,外部秘密可以存儲在一個(gè)或多個(gè)網(wǎng)絡(luò)服務(wù)器中。服務(wù)器可以在比存儲陣列更受保護(hù)的環(huán)境中,如果陣列被盜,則網(wǎng)絡(luò)服務(wù)器可以簡單地拒絕向任何請求者提供外部秘密,從而防止被盜竊的陣列被讀取。在其他實(shí)施例中,外部秘密可以是通過鍵盤或其他輸入設(shè)備直接向存儲系統(tǒng)輸入的密碼。當(dāng)存儲系統(tǒng)啟動(dòng)時(shí),在做出重建初始主秘密的任何嘗試之前,可以請求此密碼。然后,存儲系統(tǒng)可以將密碼維護(hù)在RAM中,直到該密碼被需要為止。
[0070]在框425之后,存儲系統(tǒng)的存儲設(shè)備的經(jīng)加密的密鑰可以使用最終主秘密來解密(框430)。對于給定存儲設(shè)備,解密經(jīng)加密的密鑰也可以要求特定于給定存儲設(shè)備的值。通過使用特定于給定存儲設(shè)備的值,每個(gè)不同的存儲設(shè)備將具有不同的密鑰。然而,對于本文中所公開的方案,特定于設(shè)備的值的使用是可選的。在一個(gè)實(shí)施例中,此特定于設(shè)備的值可以是給定存儲設(shè)備的序列號。在其他實(shí)施例中,特定于設(shè)備的值可以是給定存儲設(shè)備的不同屬性(或以其他方式與存儲設(shè)備相關(guān)聯(lián)的值),諸如存儲在存儲設(shè)備標(biāo)頭中的一些數(shù)據(jù)。在其他實(shí)施例中,特定于設(shè)備的值可以基于諸如設(shè)備ID之類的值、存儲在設(shè)備的標(biāo)頭中的一個(gè)或多個(gè)值以及任何其他合適的值的組合。在其他實(shí)施例中,可以不使用特定于設(shè)備的值來解密給定存儲設(shè)備的經(jīng)加密的密鑰。
[0071]在框430之后,經(jīng)解密的密鑰可以用于解密存儲系統(tǒng)的存儲設(shè)備上的數(shù)據(jù)(框435)。經(jīng)解密的密鑰也可以用于加密向存儲設(shè)備寫入的數(shù)據(jù)。經(jīng)解密的密鑰可以存儲在易失性存儲器中,以便當(dāng)系統(tǒng)被斷電時(shí),經(jīng)解密的密鑰可以丟失。在重新啟動(dòng)時(shí),系統(tǒng)可以再次經(jīng)過方法400,以解密存儲系統(tǒng)中的存儲設(shè)備的經(jīng)加密的密鑰。在單次實(shí)現(xiàn)方法400之后,經(jīng)解密的密鑰可以用于解密多個(gè)存儲的數(shù)據(jù)塊(對于讀取)和/或加密多個(gè)存儲在存儲系統(tǒng)中的新的數(shù)據(jù)塊(對于寫入)。
[0072]現(xiàn)在參考圖5,示出了經(jīng)加密的密鑰和份額的生成的一個(gè)實(shí)施例的框圖??驁D示出了對于總體存儲系統(tǒng)(未示出)的每個(gè)存儲設(shè)備(未示出)的經(jīng)加密的密鑰和份額的生成。特定于設(shè)備的密鑰505代表用于加密存儲在特定存儲設(shè)備上的數(shù)據(jù)的密鑰。特定于設(shè)備的值510代表特定存儲設(shè)備所特有的任何值或值的組合。外部秘密515代表可以用來為存儲在存儲系統(tǒng)中的數(shù)據(jù)提供額外的保護(hù)的一個(gè)或多個(gè)外部秘密。初始主秘密520代表能夠被分成多個(gè)份額的共享的秘密。
[0073]可以使用外部秘密515將初始主秘密520變換成最終主秘密530,如變換階段525所示。取決于實(shí)施例,變換階段525可包括加密、鍵控散列、異或操作和/或其他類型的變換。特定于設(shè)備的值510和最終主秘密530可以被輸入到散列階段535,并且可以根據(jù)這兩個(gè)輸入生成散列值。散列階段535可以使用任何類型的散列函數(shù)將值510和最終主秘密530散列在一起。來自散列階段535的輸出可以作為輸入耦合到加密階段540。加密階段540可以使用散列階段535的輸出來加密原始密鑰505。加密階段540的輸出可以是可以存儲在其對應(yīng)的存儲設(shè)備中的經(jīng)加密的密鑰550。加密階段540可以使用任何合適類型的加密來生成經(jīng)加密的密鑰550。
[0074]份額生成器545可以被配置成根據(jù)初始主秘密520生成份額555。在一些實(shí)施例中,份額生成器530可以被配置成為單個(gè)存儲設(shè)備生成多個(gè)份額555。在一個(gè)實(shí)施例中,份額生成器545可以為每個(gè)份額555生成多項(xiàng)式上的一個(gè)點(diǎn)。在其他實(shí)施例中,可以使用其他技術(shù)生成份額555。圖5中所示出的圖示示出了可以為單個(gè)存儲設(shè)備執(zhí)行的操作。對于具有多個(gè)存儲設(shè)備的存儲系統(tǒng),可以對于系統(tǒng)中的每個(gè)存儲設(shè)備重復(fù)這些操作。可以為每個(gè)存儲設(shè)備生成經(jīng)加密的密鑰550和份額555,然后可以將經(jīng)加密的密鑰550和份額555兩者存儲在它們的對應(yīng)的存儲設(shè)備上。單獨(dú)的密鑰505和單獨(dú)的特定于設(shè)備的值510可以用于每個(gè)單獨(dú)的存儲設(shè)備,但是相同的初始主秘密520和外部秘密515可以用于系統(tǒng)中的全部存儲設(shè)備。
[0075]可以理解,圖5旨在作為用于存儲設(shè)備的份額和經(jīng)加密的密鑰的生成的一個(gè)可能實(shí)施例的邏輯表示。在其他實(shí)施例中,可以使用用于生成份額和經(jīng)加密的密鑰的其他合適的機(jī)制或方法。圖5中所示出的各種功能可以通過存儲器控制器內(nèi)的硬件和/或軟件、通過存儲設(shè)備上的硬件和/或軟件、或通過其任何組合來執(zhí)行。
[0076]注意,上文所描述的實(shí)施例可以包括軟件。在這樣的實(shí)施例中,實(shí)現(xiàn)方法和/或機(jī)制的程序指令可以在非暫態(tài)計(jì)算機(jī)可讀介質(zhì)上傳輸或存儲。被配置為存儲程序指令的很多類型的介質(zhì)類型可用,包括硬盤、軟盤、⑶_R0M、DVD、閃速存儲器、可編程ROM(PROM)、隨機(jī)存取存儲器(RAM)以及各種其他形式的易失性或非易失性存儲器。
[0077]在各個(gè)實(shí)施例中,本文中所描述的方法和機(jī)制的一個(gè)或多個(gè)部分可以構(gòu)成云計(jì)算環(huán)境的一部分。在這樣的實(shí)施例中,可以根據(jù)一個(gè)或多個(gè)各種模型,通過因特網(wǎng)將資源提供為服務(wù)。這樣的模型可包括基礎(chǔ)設(shè)施即服務(wù)(IaaS)、平臺即服務(wù)(PaaS)以及軟件即服務(wù)(SaaS)。在IaaS中,將計(jì)算機(jī)基礎(chǔ)設(shè)施作為服務(wù)來提供。在這樣的情況下,計(jì)算設(shè)備一般由服務(wù)提供商擁有和運(yùn)營。在PaaS模型中,開發(fā)人員用來開發(fā)軟件解決方案的軟件工具和底層設(shè)備可被提供為服務(wù),并由服務(wù)提供商托管。SaaS通常包括服務(wù)提供商按需將軟件授權(quán)為服務(wù)。服務(wù)提供商可以托管軟件,或者可以在給定時(shí)間段內(nèi)將軟件部署給消費(fèi)者。上面的模型的很多組合是可以的,并且是能想到的。
[0078]雖然非常詳細(xì)地描述了上文的實(shí)施例,但是,一旦完全理解了上面的公開內(nèi)容,很多變型和修改對于那些本領(lǐng)域的技術(shù)人員將變得清楚。意圖在于下面的權(quán)利要求應(yīng)被解釋為包括所有這樣的變型和修改。
【主權(quán)項(xiàng)】
1.一種包括多個(gè)存儲設(shè)備的計(jì)算系統(tǒng),其中,所述計(jì)算系統(tǒng)被配置成: 根據(jù)初始主秘密生成多個(gè)份額; 將一個(gè)或多個(gè)份額存儲在多個(gè)存儲設(shè)備中的一個(gè)或多個(gè)存儲設(shè)備中; 使用一個(gè)或多個(gè)外部秘密將所述初始主秘密變換為最終主秘密,其中,所述一個(gè)或多個(gè)外部秘密與所述計(jì)算系統(tǒng)分開地存儲;以及 使用所述最終主秘密來加密存儲在所述多個(gè)存儲設(shè)備中的每個(gè)存儲設(shè)備上的數(shù)據(jù)的至少一部分。2.如權(quán)利要求1所述的計(jì)算系統(tǒng),其中,所述計(jì)算系統(tǒng)還被配置成: 使用設(shè)備密鑰來加密所述多個(gè)存儲設(shè)備中的每個(gè)存儲設(shè)備上的數(shù)據(jù),其中,每個(gè)存儲設(shè)備使用單獨(dú)的設(shè)備密鑰; 使用所述最終主秘密來加密每個(gè)設(shè)備密鑰; 將對應(yīng)的經(jīng)加密的設(shè)備密鑰存儲在每個(gè)存儲設(shè)備上;以及 將所述多個(gè)份額中的單獨(dú)的份額存儲在所述多個(gè)存儲設(shè)備中的每個(gè)存儲設(shè)備上。3.如權(quán)利要求1所述的計(jì)算系統(tǒng),其中,所述計(jì)算系統(tǒng)還被配置成將有關(guān)如何檢索所述一個(gè)或多個(gè)外部秘密的信息存儲在所述多個(gè)存儲設(shè)備中的至少一個(gè)存儲設(shè)備上。4.如權(quán)利要求2所述的計(jì)算系統(tǒng),其中,所述計(jì)算系統(tǒng)還被配置成使用所述最終主秘密和特定于設(shè)備的值來加密每個(gè)設(shè)備密鑰。5.如權(quán)利要求2所述的計(jì)算系統(tǒng),其中,所述計(jì)算系統(tǒng)還被配置成: 使用所述多個(gè)份額中的閾值數(shù)量的份額來重構(gòu)所述初始主秘密; 使用所述一個(gè)或多個(gè)外部秘密將所述初始主秘密變換為所述最終主秘密; 使用所述最終主秘密來解密經(jīng)加密的設(shè)備密鑰; 將經(jīng)解密的設(shè)備密鑰存儲在易失性存儲器中;以及 使用經(jīng)解密的設(shè)備密鑰來訪問對應(yīng)的存儲設(shè)備。6.如權(quán)利要求1所述的計(jì)算系統(tǒng),其中,所述計(jì)算系統(tǒng)還被配置成通過使所述一個(gè)或多個(gè)外部秘密無法被訪問來破壞存儲在所述計(jì)算系統(tǒng)中的數(shù)據(jù)。7.如權(quán)利要求5所述的計(jì)算系統(tǒng),其中,所述計(jì)算系統(tǒng)還被配置成: 使用所述最終主秘密和特定于設(shè)備的值來加密每個(gè)設(shè)備密鑰;以及 使用所述最終主秘密和特定于設(shè)備的值來解密每個(gè)經(jīng)加密的設(shè)備密鑰。8.一種方法,包括: 根據(jù)初始主秘密生成多個(gè)份額; 將一個(gè)或多個(gè)份額存儲在多個(gè)存儲設(shè)備中的一個(gè)或多個(gè)存儲設(shè)備上; 使用一個(gè)或多個(gè)外部秘密將所述初始主秘密變換為最終主秘密,其中,所述一個(gè)或多個(gè)外部秘密與所述計(jì)算系統(tǒng)分開地存儲;以及 使用所述最終主秘密來加密存儲在所述多個(gè)存儲設(shè)備中的每個(gè)存儲設(shè)備上的數(shù)據(jù)的至少一部分。9.如權(quán)利要求8所述的方法,還包括: 使用設(shè)備密鑰來加密所述多個(gè)存儲設(shè)備中的每個(gè)存儲設(shè)備上的數(shù)據(jù),其中,每個(gè)存儲設(shè)備使用單獨(dú)的設(shè)備密鑰; 使用所述最終主秘密來加密每個(gè)設(shè)備密鑰; 將對應(yīng)的經(jīng)加密的設(shè)備密鑰存儲在每個(gè)存儲設(shè)備上;以及 將所述多個(gè)份額中的單獨(dú)的份額存儲在每個(gè)存儲設(shè)備上。10.如權(quán)利要求8所述的方法,還包括將有關(guān)如何檢索所述一個(gè)或多個(gè)外部秘密的信息存儲在所述多個(gè)存儲設(shè)備中的至少一個(gè)存儲設(shè)備上。11.如權(quán)利要求9所述的方法,還包括使用所述最終主秘密和特定于設(shè)備的值來加密每個(gè)設(shè)備密鑰。12.如權(quán)利要求9所述的方法,還包括: 使用所述多個(gè)份額中的閾值數(shù)量的份額來重構(gòu)所述初始主秘密; 使用所述一個(gè)或多個(gè)外部秘密將所述初始主秘密變換為所述最終主秘密; 使用所述最終主秘密來解密經(jīng)加密的設(shè)備密鑰; 將經(jīng)解密的設(shè)備密鑰存儲在易失性存儲器中;以及 使用經(jīng)解密的設(shè)備密鑰來訪問對應(yīng)的存儲設(shè)備。13.如權(quán)利要求8所述的方法,還包括通過使所述一個(gè)或多個(gè)外部秘密無法被訪問來破壞存儲在所述計(jì)算系統(tǒng)中的數(shù)據(jù)。14.如權(quán)利要求12所述的方法,還包括: 使用所述最終主秘密和特定于設(shè)備的值來加密每個(gè)設(shè)備密鑰;以及 使用所述最終主秘密和特定于設(shè)備的值來解密每個(gè)經(jīng)加密的設(shè)備密鑰。15.—種包括程序指令的非暫態(tài)計(jì)算機(jī)可讀存儲介質(zhì),其中所述程序指令可執(zhí)行以: 根據(jù)初始主秘密生成多個(gè)份額; 將一個(gè)或多個(gè)份額存儲在多個(gè)存儲設(shè)備中的一個(gè)或多個(gè)存儲設(shè)備上; 使用一個(gè)或多個(gè)外部秘密將所述初始主秘密變換為最終主秘密,其中,所述一個(gè)或多個(gè)外部秘密與所述計(jì)算系統(tǒng)分開地存儲;以及 使用所述最終主秘密來加密存儲在所述多個(gè)存儲設(shè)備中的每個(gè)存儲設(shè)備上的數(shù)據(jù)的至少一部分。16.如權(quán)利要求15所述的非暫態(tài)計(jì)算機(jī)可讀存儲介質(zhì),其中,所述程序指令還可執(zhí)行以: 使用設(shè)備密鑰來加密所述多個(gè)存儲設(shè)備中的每個(gè)存儲設(shè)備上的數(shù)據(jù),其中,每個(gè)存儲設(shè)備使用單獨(dú)的設(shè)備密鑰; 使用所述最終主秘密來加密每個(gè)設(shè)備密鑰; 將對應(yīng)的經(jīng)加密的設(shè)備密鑰存儲在每個(gè)存儲設(shè)備中;以及 將所述多個(gè)份額中的單獨(dú)的份額存儲在所述多個(gè)存儲設(shè)備中的每個(gè)存儲設(shè)備上。17.如權(quán)利要求15所述的非暫態(tài)計(jì)算機(jī)可讀存儲介質(zhì),其中,所述程序指令還可執(zhí)行,以將有關(guān)如何檢索所述一個(gè)或多個(gè)外部秘密的信息存儲在所述多個(gè)存儲設(shè)備中的至少一個(gè)存儲設(shè)備上。18.如權(quán)利要求16所述的非暫態(tài)計(jì)算機(jī)可讀存儲介質(zhì),其中,所述程序指令還可執(zhí)行,以使用所述最終主秘密和特定于設(shè)備的值來加密每個(gè)設(shè)備密鑰。19.如權(quán)利要求16所述的非暫態(tài)計(jì)算機(jī)可讀存儲介質(zhì),其中,所述程序指令還可執(zhí)行以: 使用所述多個(gè)份額中的閾值數(shù)量的份額來重構(gòu)所述初始主秘密; 使用所述一個(gè)或多個(gè)外部秘密將所述初始主秘密變換為所述最終主秘密; 使用所述最終主秘密來解密經(jīng)加密的設(shè)備密鑰; 將經(jīng)解密的設(shè)備密鑰存儲在易失性存儲器中;以及 使用經(jīng)解密的設(shè)備密鑰來訪問對應(yīng)的存儲設(shè)備。20.如權(quán)利要求15所述的非暫態(tài)計(jì)算機(jī)可讀存儲介質(zhì),其中,所述程序指令還可執(zhí)行,以通過使所述一個(gè)或多個(gè)外部秘密無法被訪問來破壞存儲在所述計(jì)算系統(tǒng)中的數(shù)據(jù)。
【文檔編號】H04L9/08GK105830086SQ201480068769
【公開日】2016年8月3日
【申請日】2014年10月27日
【發(fā)明人】E·米勒, J·科爾格洛夫, J·海耶斯
【申請人】凈睿存儲股份有限公司