專(zhuān)利名稱(chēng):安全存儲(chǔ)應(yīng)用的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及數(shù)據(jù)存儲(chǔ)系統(tǒng),尤其涉及信息的機(jī)密性和完整性受保護(hù)的新穎存儲(chǔ)應(yīng)用(storage utility)。
背景技術(shù):
企業(yè)IT基礎(chǔ)架構(gòu)必須是靈活的和“響應(yīng)性”的,以便企業(yè)能快速地適應(yīng)市場(chǎng)以及企業(yè)條件的變化,并且由于IT基礎(chǔ)架構(gòu)日益成為“任務(wù)關(guān)鍵性的”,因此其必須是彈性的。存儲(chǔ)應(yīng)用能提供這種靈活性,響應(yīng)性以及彈性,并且其能容許企業(yè)側(cè)重于自己的核心競(jìng)爭(zhēng)力,并外包其存儲(chǔ)給專(zhuān)業(yè)公司。存儲(chǔ)應(yīng)用可以是靈活的,并且能動(dòng)態(tài)地響應(yīng)企業(yè)的存儲(chǔ)需要,從而按需提供更多或更少的存儲(chǔ),并根據(jù)所使用的存儲(chǔ)數(shù)量提供可變的成本結(jié)構(gòu)。通過(guò)盤(pán)“鏡像”和備份與恢復(fù)服務(wù),存儲(chǔ)應(yīng)用也能提供彈性。但是如果企業(yè)關(guān)心其數(shù)據(jù)安全,則企業(yè)對(duì)于使用存儲(chǔ)應(yīng)用可能猶豫不決。企業(yè)可能不希望應(yīng)用或其雇員能“看見(jiàn)”自己的機(jī)密數(shù)據(jù),并且企業(yè)可能關(guān)心應(yīng)用保護(hù)其數(shù)據(jù)完整性免受意外或故意的修改的能力。
非常希望提供一種解決這些問(wèn)題的安全存儲(chǔ)應(yīng)用。
發(fā)明內(nèi)容
本發(fā)明的目的是提供一種安全數(shù)據(jù)存儲(chǔ)應(yīng)用,其實(shí)現(xiàn)了運(yùn)行在企業(yè)的(客戶(hù)機(jī)或服務(wù)器)計(jì)算機(jī)上的新穎安全加密方案,該方案在傳送數(shù)據(jù)塊以便將數(shù)據(jù)塊存儲(chǔ)在存儲(chǔ)介質(zhì)設(shè)備中之前加密數(shù)據(jù)塊。
根據(jù)本發(fā)明的一個(gè)方面,最好在盤(pán)塊被寫(xiě)出到存儲(chǔ)應(yīng)用之前,在企業(yè)的(客戶(hù)機(jī)或服務(wù)器)計(jì)算機(jī)上加密數(shù)據(jù),并且在盤(pán)塊被從存儲(chǔ)應(yīng)用讀回之后,解密數(shù)據(jù)。解密過(guò)程包括完整性檢查。在一個(gè)實(shí)施例中,所使用的完整性保護(hù)方案防止數(shù)據(jù)的修改以及“重放”和“重定位”,因?yàn)槊艽a完整性值不僅是明文數(shù)據(jù)和密碼密鑰的函數(shù),而且還是盤(pán)塊“地址”和防止“重放攻擊”的另一個(gè)值(以下描述)的函數(shù)。在容許對(duì)虛擬盤(pán)上的塊進(jìn)行增量式隨機(jī)存取更新的同時(shí),完整性方案保護(hù)整個(gè)虛擬盤(pán)的完整性。完整性方案使用在塊被寫(xiě)到虛擬盤(pán)時(shí)增量更新的完整性值層次樹(shù)。完整性方案非常高效,并因此容許存儲(chǔ)應(yīng)用中加入安全性,包括機(jī)密性和完整性,而沒(méi)有明顯地增加系統(tǒng)成本或系統(tǒng)讀和寫(xiě)數(shù)據(jù)的時(shí)間。
有利地,本發(fā)明的系統(tǒng)和方法有效地保護(hù)企業(yè)數(shù)據(jù)的私密性和完整性,并且對(duì)于既關(guān)心其數(shù)據(jù)的安全性和完整性,又希望利用存儲(chǔ)應(yīng)用的優(yōu)點(diǎn)的企業(yè)是重要的。
參考以下描述,附加權(quán)利要求,以及附圖將更好的理解本發(fā)明的裝置和方法的更多特征,方面和優(yōu)點(diǎn)。其中圖1描述了實(shí)施本發(fā)明的存儲(chǔ)應(yīng)用的安全存儲(chǔ)區(qū)網(wǎng)絡(luò)系統(tǒng)10;圖2根據(jù)本發(fā)明圖解了從存儲(chǔ)應(yīng)用設(shè)備讀數(shù)據(jù)的加密方案30,以及從服務(wù)器向存儲(chǔ)設(shè)備寫(xiě)數(shù)據(jù)的方案;圖3是根據(jù)本發(fā)明的實(shí)施例描述數(shù)據(jù)存儲(chǔ)完整性方案的示意圖;圖4根據(jù)本發(fā)明的實(shí)施例圖解了向存儲(chǔ)應(yīng)用寫(xiě)盤(pán)塊過(guò)程中所涉及的步驟;以及圖5根據(jù)本發(fā)明的實(shí)施例圖解了從存儲(chǔ)應(yīng)用讀盤(pán)塊過(guò)程中所涉及的步驟。
具體實(shí)施例方式
圖1示出了實(shí)現(xiàn)本發(fā)明存儲(chǔ)應(yīng)用的安全存儲(chǔ)區(qū)網(wǎng)絡(luò)系統(tǒng)10。如圖1所示,提供要被存儲(chǔ)在存儲(chǔ)應(yīng)用15(實(shí)現(xiàn)存儲(chǔ)介質(zhì),例如盤(pán)21和磁帶22)中的明文數(shù)據(jù)的數(shù)據(jù)源位于例如服務(wù)器設(shè)備12中。可以理解,可以實(shí)施其他非易失類(lèi)型的存儲(chǔ)介質(zhì),例如光盤(pán),磁盤(pán),袖珍盤(pán)(compact),閃盤(pán)等等,以及易失存儲(chǔ)介質(zhì)。根據(jù)安全軟件程序20所提供的處理,加密要被寫(xiě)出到存儲(chǔ)應(yīng)用的數(shù)據(jù)塊,其中在服務(wù)器設(shè)備12上執(zhí)行安全軟件程序20,以便生成存儲(chǔ)在存儲(chǔ)應(yīng)用15中的密文。在一個(gè)實(shí)施例中,根據(jù)通信網(wǎng)絡(luò)連接25上的存儲(chǔ)區(qū)網(wǎng)絡(luò)通信標(biāo)準(zhǔn),例如光纖通道或者iSCSI,服務(wù)器設(shè)備12提供在服務(wù)器設(shè)備12上操作的網(wǎng)絡(luò)接口。存儲(chǔ)加密軟件最好已經(jīng)根據(jù)被設(shè)計(jì)成保護(hù)數(shù)據(jù)塊的機(jī)密性和完整性的加密方案編碼了所轉(zhuǎn)換的密文,并密文包括“時(shí)間”和位置敏感性,以防止數(shù)據(jù)塊的“重放”和“重定位”。(數(shù)據(jù)塊的“重放”是用此前某個(gè)時(shí)間點(diǎn)在一個(gè)數(shù)據(jù)塊的地址上有效的值取代該數(shù)據(jù)塊。數(shù)據(jù)塊的“重定位”是用在另一個(gè)地址有效的塊替代一個(gè)數(shù)據(jù)塊)。加密方案使用加密算法,例如DES或者AES。
圖2圖解了用于從存儲(chǔ)應(yīng)用設(shè)備讀取數(shù)據(jù)的加密方案40,以及用于從服務(wù)器向存儲(chǔ)設(shè)備寫(xiě)數(shù)據(jù)的方案30。如圖2所示,由明文塊形成存儲(chǔ)密文90的加密是明文數(shù)據(jù)32,加密密鑰34以及“白化(whitening)”值36的函數(shù),“白化”值36是白化密鑰50,塊“地址”52以及“版本號(hào)”值54的函數(shù),“版本號(hào)”值54是計(jì)數(shù)器的值,其中在每次寫(xiě)塊時(shí)遞增該計(jì)數(shù)器。在白化值中使用塊“地址”52防止重定位,使用版本號(hào)54防止重放。在此方案的一個(gè)變化中,如圖2所示,白化值是在伽羅瓦(Galois)域中的有限域乘法(finite field multiplication)60,其對(duì)應(yīng)于版本號(hào)和白化值的多項(xiàng)式乘法模AES的128次不可約多項(xiàng)式或DES的64次不可約多項(xiàng)式(參見(jiàn)例如文獻(xiàn)“差錯(cuò)控制碼的原理和實(shí)踐”,第4章-伽羅瓦域的算術(shù)學(xué),Richard E.Blahut)。在參照?qǐng)D2描述的方案的變形中,白化包括對(duì)數(shù)據(jù)和在異或55a之前應(yīng)用于數(shù)據(jù)的白化應(yīng)用異或55a,并且在55b之后,對(duì)盤(pán)寫(xiě)入應(yīng)用DES或AES加密,以及在55d之前和55c之后,對(duì)盤(pán)讀取應(yīng)用DES或AES解密。每當(dāng)塊被寫(xiě)出到存儲(chǔ)應(yīng)用時(shí),也計(jì)算出完整性值63并將其存儲(chǔ)在客戶(hù)機(jī)上。完整性值可以是在盤(pán)塊中全部明文的和(例如,“異或”)。如下面將要詳細(xì)解釋的,圖2表明,對(duì)于盤(pán)塊讀取操作,計(jì)算此塊的有效性(validity)73,并且對(duì)比此塊的所保存的完整性值檢查該有效性,并響應(yīng)此比較針對(duì)該塊產(chǎn)生通過(guò)/失敗指示74。
圖3根據(jù)本發(fā)明圖解了數(shù)據(jù)存儲(chǔ)完整性方案75。如圖3所示,如果要保護(hù)盤(pán)塊本身,還需要保護(hù)盤(pán)塊D0 76的完整性值。因?yàn)檫€需要維護(hù)和保護(hù)版本號(hào),針對(duì)給定塊76保存<完整性值,版本號(hào)>對(duì)80。將此對(duì)與其他(附近)盤(pán)塊的相似對(duì)結(jié)合,并將其寫(xiě)到“元數(shù)據(jù)”盤(pán)塊86中。結(jié)果也必須保護(hù)“元數(shù)據(jù)”盤(pán)塊86。在圖3所示的這個(gè)數(shù)據(jù)存儲(chǔ)完整性方案75的一個(gè)變化中,將此元數(shù)據(jù)盤(pán)塊的<完整性值,版本號(hào)>對(duì)與其他附近的元數(shù)據(jù)塊的<完整性值,版本號(hào)>對(duì)結(jié)合,并將其寫(xiě)到更高級(jí)元數(shù)據(jù)塊96中,于是也需要保護(hù)元數(shù)據(jù)塊96。此過(guò)程以這種方式繼續(xù),使得形成包括各個(gè)塊的元數(shù)據(jù)塊層次結(jié)構(gòu),所述各個(gè)塊包括形成了被稱(chēng)為完整性樹(shù)的數(shù)據(jù)結(jié)構(gòu)的更高級(jí)元數(shù)據(jù)塊96,完整性樹(shù)具有保護(hù)整個(gè)虛擬盤(pán)的完整性的根數(shù)據(jù)結(jié)構(gòu)99。雖然在圖3中示出了一個(gè)特定的完整性樹(shù)設(shè)計(jì),然而可以理解,也可以有可選的設(shè)計(jì)。例如,可以可選地使用例如在共同擁有的共同待審美國(guó)專(zhuān)利申請(qǐng)__號(hào)(檔案號(hào)YOR820020283),“隨機(jī)訪(fǎng)問(wèn)存儲(chǔ)的可并行化認(rèn)證樹(shù)”中所述的完整性樹(shù),在此完整地參考引用了該申請(qǐng)的內(nèi)容和公開(kāi)。其他完整性樹(shù)設(shè)計(jì)也是可以的。
完整性樹(shù)的根99和加密及白化密鑰被存儲(chǔ)在使用存儲(chǔ)應(yīng)用的“客戶(hù)”(客戶(hù)機(jī)或服務(wù)器)計(jì)算機(jī)上。此外,在客戶(hù)計(jì)算機(jī)上更新和驗(yàn)證元數(shù)據(jù)完整性樹(shù)的內(nèi)容。這意味著雖然應(yīng)用能備份并恢復(fù)用戶(hù)數(shù)據(jù),在磁帶上存檔并從磁帶恢復(fù),然而應(yīng)用看不到用戶(hù)數(shù)據(jù)。這還意味著用戶(hù)能檢測(cè)任何對(duì)數(shù)據(jù)的意外或故意的修改,這種修改可能已發(fā)生在存儲(chǔ)應(yīng)用上,包括任何“重放”或“重定位”數(shù)據(jù)??梢岳斫猓坝脩?hù)”和“存儲(chǔ)應(yīng)用”不需要屬于分別的企業(yè)。存儲(chǔ)應(yīng)用可以由企業(yè)內(nèi)的IT組織提供,但是按照提供數(shù)據(jù)“分區(qū)”的方式,使得IT組織管理的任何數(shù)據(jù)只對(duì)“擁有”數(shù)據(jù)的一方是“可見(jiàn)的”。
圖4圖解了向存儲(chǔ)應(yīng)用寫(xiě)盤(pán)塊時(shí)所涉及的步驟。在第一步驟401中,數(shù)據(jù)塊被寫(xiě)到存儲(chǔ)應(yīng)用。在步驟402,更新版本的數(shù)據(jù)塊的校驗(yàn)和以及版本號(hào)被保存在數(shù)據(jù)塊的“元數(shù)據(jù)”塊中。在步驟403,確定此元數(shù)據(jù)塊是否對(duì)應(yīng)于完整性樹(shù)的根。如果元數(shù)據(jù)塊是完整性樹(shù)的根,則處理在步驟404結(jié)束。另一方面,如果元數(shù)據(jù)塊不是完整性樹(shù)的根,則象在步驟401中那樣,元數(shù)據(jù)塊被寫(xiě)出到存儲(chǔ)應(yīng)用中,并且在步驟402,在次更高級(jí)元數(shù)據(jù)塊中保存此元數(shù)據(jù)塊的校驗(yàn)和以及版本號(hào)。如前所述,如果這個(gè)更高級(jí)元數(shù)據(jù)塊對(duì)應(yīng)于根,如在步驟403中所確定的,則處理在步驟404結(jié)束。否則,元數(shù)據(jù)塊需要被寫(xiě)出到存儲(chǔ)應(yīng)用中,并且處理繼續(xù),直到更高級(jí)元數(shù)據(jù)塊對(duì)應(yīng)于根,此時(shí)處理中止于步驟404??梢岳斫?,在此過(guò)程中,使用參照?qǐng)D2描述的加密和完整性方案保護(hù)所有被寫(xiě)出到存儲(chǔ)應(yīng)用的數(shù)據(jù)。
圖5圖解了從存儲(chǔ)應(yīng)用讀盤(pán)塊過(guò)程中所涉及的步驟。在步驟501,從存儲(chǔ)應(yīng)用讀取在從完整性樹(shù)的根到期望數(shù)據(jù)或葉盤(pán)塊的路徑上的第一盤(pán)塊。在步驟502,用來(lái)自完整性樹(shù)的根的校驗(yàn)和以及版本信息檢查塊的有效性。如果完整性檢查失敗,則在步驟503通知完整性失敗狀態(tài)。另一方面,如果確定塊有效,則在步驟504執(zhí)行檢查,以確定塊是否是所期望的數(shù)據(jù)或“葉”塊。如果塊是所期望的,則在步驟505,將數(shù)據(jù)返回給用戶(hù)。如果塊不是所期望的,在步驟501,讀取從根到所期望數(shù)據(jù)塊的路徑上的下一個(gè)盤(pán)塊。如前所述,在步驟502中檢查此塊的完整性。如前所述,如果完整性檢查失敗,則在步驟503通知完整性失敗狀態(tài)。如前所述,如果塊被確定有效,則在步驟504執(zhí)行檢查,以確定塊是否是所期望的數(shù)據(jù)塊。如果塊是所期望的,則在步驟505,將數(shù)據(jù)返回給用戶(hù)。如果不是,則在步驟503,讀取路徑上的下一個(gè)盤(pán)塊,并且如此繼續(xù),直到完整性檢測(cè)失敗(在此情況下在步驟503通知完整性失敗狀態(tài))或到達(dá)所期望的數(shù)據(jù)塊,并且在步驟505將數(shù)據(jù)返回給用戶(hù)??梢岳斫?,如參照?qǐng)D2所述,解密從存儲(chǔ)應(yīng)用中讀出的所有塊并且檢查其完整性。
注意,可以緩存從根到數(shù)據(jù)盤(pán)塊的路徑上的盤(pán)塊以增強(qiáng)性能。還注意,利用修改的完整性樹(shù),例如在共同待決專(zhuān)利申請(qǐng)YOR820020483,“隨機(jī)訪(fǎng)問(wèn)存儲(chǔ)的可并行化認(rèn)證樹(shù)”中所描述的,可以并行檢查從根到所期望數(shù)據(jù)的路徑上的盤(pán)塊的完整性,從而進(jìn)一步提高性能。
根據(jù)本發(fā)明的一個(gè)方面,安全存儲(chǔ)應(yīng)用按需(on-demand)操作,由此,用戶(hù)可以“按需”具有其根據(jù)使用情況而付費(fèi)的任意數(shù)量的存儲(chǔ)。例如,用戶(hù)將接收虛擬盤(pán),其包括任意數(shù)量的盤(pán)塊(例如,用戶(hù)可經(jīng)由如圖1中所示的SAN或iSCSI連接訪(fǎng)問(wèn)這些盤(pán)塊)。盤(pán)塊的數(shù)目可以非常大,并且盤(pán)塊可以遍布在大量物理盤(pán)上。以如上所述的方式保護(hù)存儲(chǔ)在此虛擬盤(pán)上的任何數(shù)據(jù)的機(jī)密性和完整性。應(yīng)用的操作者可以執(zhí)行數(shù)據(jù)備份(例如,在盤(pán)上或在磁帶上)并且能在必要的時(shí)候恢復(fù)數(shù)據(jù),以及因?yàn)榭煽啃?,?zāi)難恢復(fù)和/或者性能原因,能在多個(gè)位置復(fù)制數(shù)據(jù)。然而,根據(jù)本發(fā)明,操作者不能“看見(jiàn)”和修改(即,操作者不能修改數(shù)據(jù)而不被發(fā)現(xiàn))任何數(shù)據(jù)。這樣就保護(hù)了存儲(chǔ)在存儲(chǔ)應(yīng)用中數(shù)據(jù)的保密性和完整性,無(wú)論數(shù)據(jù)是在盤(pán)上還是在磁帶上。這是因?yàn)樗褂玫募用?完整性方案保護(hù)了數(shù)據(jù)的機(jī)密性和完整性。根據(jù)本發(fā)明,主加密密鑰在用戶(hù)計(jì)算機(jī)中,存儲(chǔ)應(yīng)用的操作者不必訪(fǎng)問(wèn)此密鑰。
因此,在操作中,當(dāng)數(shù)據(jù)被寫(xiě)出到存儲(chǔ)應(yīng)用時(shí),在用戶(hù)計(jì)算機(jī)上加密數(shù)據(jù),并且當(dāng)數(shù)據(jù)從存儲(chǔ)應(yīng)用讀回進(jìn)用戶(hù)計(jì)算機(jī)時(shí),解密數(shù)據(jù)。解密步驟包括完整性檢查,以便保護(hù)數(shù)據(jù)的完整性??梢岳斫?,所述安全性是端到端的,因?yàn)樵跀?shù)據(jù)離開(kāi)用戶(hù)地點(diǎn)之前加密數(shù)據(jù),并且只在數(shù)據(jù)回到用戶(hù)地點(diǎn)之后解密數(shù)據(jù)。于是,在存儲(chǔ)應(yīng)用上沒(méi)有給“中間攻擊的人”提供機(jī)會(huì),即使存儲(chǔ)應(yīng)用是單獨(dú)企業(yè)的一部分。存儲(chǔ)應(yīng)用還可以由企業(yè)內(nèi)的IT組織提供,并且所述的存儲(chǔ)應(yīng)用硬件和軟件可以提供“分區(qū)”,使得IT組織存儲(chǔ)的數(shù)據(jù)只能被適當(dāng)?shù)姆矫嬖L(fǎng)問(wèn)。除了在存儲(chǔ)應(yīng)用上提供硬件和軟件之外,可以在用戶(hù)端提供“虛擬盤(pán)驅(qū)動(dòng)器”軟件,其在存儲(chǔ)應(yīng)用上讀和寫(xiě)(以及加密,解密和驗(yàn)證)要寫(xiě)到虛擬盤(pán)和從虛擬盤(pán)讀出的數(shù)據(jù)。為了增強(qiáng)性能,可以在用戶(hù)端提供加密硬件(在處理器自身中或者在網(wǎng)絡(luò)適配器中),以便增強(qiáng)寫(xiě)到虛擬盤(pán)或從虛擬盤(pán)讀取的密碼和完整性操作的性能。在所述模型中,應(yīng)用端不需要象發(fā)生在用戶(hù)端上的大批加密以及完整性檢查那樣多的處理。為進(jìn)一步增強(qiáng)性能,可以在用戶(hù)端緩存完整性樹(shù)或部分完整性樹(shù)。
雖然結(jié)合附圖和其中的優(yōu)選實(shí)施例已經(jīng)特別示出和描述了本發(fā)明,然而可以理解,對(duì)于那些本領(lǐng)域的技術(shù)人員,可以在不違背本發(fā)明精神和范圍的情況下,在形式上和具體上作出以上和其他的改變,本發(fā)明應(yīng)只受限于附加權(quán)利要求中的范圍。
權(quán)利要求
1.一種用于安全數(shù)據(jù)存儲(chǔ)和檢索的系統(tǒng),包括用于存儲(chǔ)加密數(shù)據(jù)的存儲(chǔ)設(shè)備;在客戶(hù)設(shè)備上用于在向所述存儲(chǔ)設(shè)備寫(xiě)入數(shù)據(jù)塊之前加密數(shù)據(jù)的裝置,所述加密裝置使用能保護(hù)單獨(dú)數(shù)據(jù)塊的加密,以防止對(duì)被寫(xiě)到所述存儲(chǔ)設(shè)備的每個(gè)數(shù)據(jù)塊進(jìn)行修改,重定位和重放;用于產(chǎn)生對(duì)應(yīng)于一個(gè)或多個(gè)數(shù)據(jù)塊的完整性值的裝置,所述完整性值包括用于防止對(duì)寫(xiě)入所述存儲(chǔ)設(shè)備的每個(gè)數(shù)據(jù)塊進(jìn)行數(shù)據(jù)修改的信息;用于存儲(chǔ)所述寫(xiě)入數(shù)據(jù)塊的所述完整性值的裝置;在所述客戶(hù)設(shè)備上用于解密從所述存儲(chǔ)設(shè)備訪(fǎng)問(wèn)的所述加密數(shù)據(jù)的裝置;以及用于使用對(duì)應(yīng)于所訪(fǎng)問(wèn)的存儲(chǔ)數(shù)據(jù)塊的完整性值在所述客戶(hù)設(shè)備上執(zhí)行完整性檢查的裝置,其中所述完整性檢查保護(hù)存儲(chǔ)在所述存儲(chǔ)設(shè)備中內(nèi)容的完整性。
2.如權(quán)利要求1所述的系統(tǒng),其中所述加密裝置產(chǎn)生加密密文數(shù)據(jù)塊,所述加密密文數(shù)據(jù)塊是包括在所述數(shù)據(jù)塊中的明文數(shù)據(jù)和第一加密密鑰的函數(shù)。
3.如權(quán)利要求2所述的系統(tǒng),其中所述加密裝置實(shí)現(xiàn)白化值,該白化值是第二加密密鑰,所述存儲(chǔ)塊的地址位置,以及指示塊寫(xiě)入遞增的版本號(hào)的函數(shù),所述加密裝置還產(chǎn)生密文數(shù)據(jù)塊,該密文數(shù)據(jù)塊是所述白化值的函數(shù)。
4.如權(quán)利要求2所述的系統(tǒng),其中所述加密裝置使用的算法包括從DES或AES加密方案中選擇的算法。
5.如權(quán)利要求3所述的系統(tǒng),其中用于存儲(chǔ)寫(xiě)入數(shù)據(jù)塊的所述完整性值的所述裝置還包括用于產(chǎn)生完整性樹(shù)結(jié)構(gòu)的裝置,所述完整性樹(shù)結(jié)構(gòu)存儲(chǔ)對(duì)應(yīng)于寫(xiě)入所述存儲(chǔ)設(shè)備的每個(gè)盤(pán)塊的完整性值。
6.如權(quán)利要求5所述的系統(tǒng),其中所述完整性樹(shù)包括層次數(shù)據(jù)結(jié)構(gòu),所述層次數(shù)據(jù)結(jié)構(gòu)包括兩個(gè)或更多層的完整性數(shù)據(jù)結(jié)構(gòu),完整性數(shù)據(jù)結(jié)構(gòu)的每個(gè)相繼層包括用于保護(hù)位于緊臨在前的層上的數(shù)據(jù)的完整性的元數(shù)據(jù)。
7.如權(quán)利要求6所述的系統(tǒng),其中所述層次數(shù)據(jù)結(jié)構(gòu)包括在第一層上的所述寫(xiě)入加密數(shù)據(jù)塊,以及相繼層的元數(shù)據(jù)塊,每個(gè)元數(shù)據(jù)塊包括表示在所述第一層上寫(xiě)入的多個(gè)盤(pán)塊的數(shù)據(jù)結(jié)構(gòu),每個(gè)元數(shù)據(jù)塊數(shù)據(jù)結(jié)構(gòu)包括所述多個(gè)盤(pán)塊中的每個(gè)的完整性值與版本號(hào)對(duì)。
8.如權(quán)利要求7所述的系統(tǒng),其中所述完整性樹(shù)包括更高級(jí)元數(shù)據(jù)塊的相繼層,用于保護(hù)下面的元數(shù)據(jù)塊層,每個(gè)更高級(jí)元數(shù)據(jù)塊包括表示多個(gè)元數(shù)據(jù)塊的數(shù)據(jù)結(jié)構(gòu),每個(gè)更高級(jí)元數(shù)據(jù)塊數(shù)據(jù)結(jié)構(gòu)包括針對(duì)所述多個(gè)元數(shù)據(jù)塊中的每個(gè)產(chǎn)生的完整性值和版本號(hào)對(duì)。
9.如權(quán)利要求6所述的系統(tǒng),其中所述層次數(shù)據(jù)結(jié)構(gòu)的最高層包括根數(shù)據(jù)結(jié)構(gòu),用于保護(hù)所有寫(xiě)入所述存儲(chǔ)設(shè)備的內(nèi)容的完整性。
10.如權(quán)利要求9所述的系統(tǒng),還包括用于寫(xiě)入數(shù)據(jù)塊到所述存儲(chǔ)設(shè)備的裝置,所述寫(xiě)入裝置包括用于在相關(guān)元數(shù)據(jù)塊中更新寫(xiě)入數(shù)據(jù)塊的版本號(hào)和校驗(yàn)和的裝置,其中在對(duì)應(yīng)于所述寫(xiě)入數(shù)據(jù)塊的每個(gè)相繼元數(shù)據(jù)層上執(zhí)行對(duì)校驗(yàn)和與版本號(hào)值的更新,包括在所述根數(shù)據(jù)結(jié)構(gòu)上執(zhí)行的更新。
11.如權(quán)利要求9所述的系統(tǒng),其中用于執(zhí)行完整性檢查的所述裝置包括用于比較要在一路徑上讀取的數(shù)據(jù)塊的完整性的裝置,該路徑是從所述根數(shù)據(jù)結(jié)構(gòu)經(jīng)由相繼更高元數(shù)據(jù)塊和元數(shù)據(jù)塊層,直到讀取第一層上的期望數(shù)據(jù)塊。
12.如權(quán)利要求1所述的系統(tǒng),其中所述存儲(chǔ)設(shè)備包括非易失性或易失性存儲(chǔ)設(shè)備。
13.如權(quán)利要求1所述的系統(tǒng),其中所述存儲(chǔ)設(shè)備遠(yuǎn)離所述客戶(hù)設(shè)備,所述加密塊通過(guò)網(wǎng)絡(luò)鏈路寫(xiě)入。
14.一種用于安全數(shù)據(jù)存儲(chǔ)和檢索的方法,包括步驟a)加密從客戶(hù)設(shè)備寫(xiě)到存儲(chǔ)設(shè)備的數(shù)據(jù),所述存儲(chǔ)設(shè)備用于存儲(chǔ)加密數(shù)據(jù),所述加密使用能保護(hù)單獨(dú)數(shù)據(jù)塊的加密方案,以防止對(duì)被寫(xiě)到所述存儲(chǔ)設(shè)備的每個(gè)數(shù)據(jù)塊進(jìn)行修改,重定位和重放;b)產(chǎn)生對(duì)應(yīng)于一個(gè)或多個(gè)寫(xiě)入數(shù)據(jù)塊的完整性值,所述完整性值包括用于防止對(duì)寫(xiě)入所述存儲(chǔ)設(shè)備的每個(gè)數(shù)據(jù)塊進(jìn)行數(shù)據(jù)修改的信息;c)存儲(chǔ)所述寫(xiě)入數(shù)據(jù)塊的所述完整性值;d)解密從所述存儲(chǔ)設(shè)備訪(fǎng)問(wèn)的所述加密數(shù)據(jù);以及e)使用對(duì)應(yīng)于所訪(fǎng)問(wèn)的存儲(chǔ)數(shù)據(jù)塊的完整性值執(zhí)行完整性檢查,其中所述完整性檢查保護(hù)存儲(chǔ)在所述存儲(chǔ)設(shè)備中內(nèi)容的完整性。
15.如權(quán)利要求14所述的方法,其中所述加密數(shù)據(jù)步驟a)包括產(chǎn)生加密密文數(shù)據(jù)塊,所述加密密文數(shù)據(jù)塊是包括在所述數(shù)據(jù)塊中的明文數(shù)據(jù)和第一加密密鑰的函數(shù)。
16.如權(quán)利要求15所述的方法,其中所述加密數(shù)據(jù)步驟a)還包括產(chǎn)生白化值,該白化值是第二加密密鑰,所述存儲(chǔ)塊的地址位置,以及指示塊寫(xiě)入的版本號(hào)的函數(shù),以及是所述白化值的函數(shù)的密文數(shù)據(jù)塊的產(chǎn)生。
17.如權(quán)利要求15所述的方法,其中所述加密步驟a)還使用包括從DES或AES加密方案中選出的算法。
18.如權(quán)利要求14所述的方法,其中所述存儲(chǔ)步驟c)還包括步驟產(chǎn)生完整性樹(shù)結(jié)構(gòu),用于存儲(chǔ)對(duì)應(yīng)于寫(xiě)入所述存儲(chǔ)設(shè)備的每個(gè)盤(pán)塊的完整性值。
19.如權(quán)利要求18所述的方法,其中所述完整性樹(shù)包括層次數(shù)據(jù)結(jié)構(gòu),所述層次數(shù)據(jù)結(jié)構(gòu)包括兩個(gè)或更多層的完整性數(shù)據(jù)結(jié)構(gòu),完整性數(shù)據(jù)結(jié)構(gòu)的每個(gè)相繼層包括用于保護(hù)位于緊臨在前的層上的數(shù)據(jù)的完整性的元數(shù)據(jù)。
20.如權(quán)利要求19所述的方法,還包括步驟在所述層次數(shù)據(jù)結(jié)構(gòu)的第一層上的寫(xiě)入加密數(shù)據(jù)塊,以及寫(xiě)入相繼層的元數(shù)據(jù)塊,每個(gè)元數(shù)據(jù)塊包括表示在所述第一層上寫(xiě)入的多個(gè)盤(pán)塊的數(shù)據(jù)結(jié)構(gòu),每個(gè)元數(shù)據(jù)塊數(shù)據(jù)結(jié)構(gòu)包括所述多個(gè)盤(pán)塊中的每個(gè)的完整性值與版本號(hào)對(duì)。
21.如權(quán)利要求20所述的方法,還包括步驟寫(xiě)入更高級(jí)元數(shù)據(jù)塊的相繼層,用于保護(hù)下面的元數(shù)據(jù)塊層,每個(gè)更高級(jí)元數(shù)據(jù)塊包括表示多個(gè)元數(shù)據(jù)塊的數(shù)據(jù)結(jié)構(gòu),每個(gè)更高級(jí)元數(shù)據(jù)塊數(shù)據(jù)結(jié)構(gòu)包括所述多個(gè)元數(shù)據(jù)塊中的每個(gè)的完整性值和版本號(hào)對(duì)。
22.如權(quán)利要求21所述的方法,還包括步驟在所述層次數(shù)據(jù)結(jié)構(gòu)的最高層產(chǎn)生根數(shù)據(jù)結(jié)構(gòu),用于保護(hù)寫(xiě)入到所述存儲(chǔ)設(shè)備的全部?jī)?nèi)容的完整性。
23.如權(quán)利要求22所述的方法,還包括步驟寫(xiě)入數(shù)據(jù)塊到所述存儲(chǔ)設(shè)備,所述寫(xiě)入包括在相關(guān)元數(shù)據(jù)塊中更新寫(xiě)入數(shù)據(jù)塊的版本號(hào)和校驗(yàn)和,其中在對(duì)應(yīng)于所述寫(xiě)入數(shù)據(jù)塊的每個(gè)相繼元數(shù)據(jù)層上執(zhí)行對(duì)校驗(yàn)和與版本號(hào)值的更新,包括在所述根數(shù)據(jù)結(jié)構(gòu)上執(zhí)行的更新。
24.如權(quán)利要求22所述的方法,還包括步驟從所述存儲(chǔ)裝置讀取數(shù)據(jù)塊,所述執(zhí)行完整性檢查的步驟e)包括比較要在一路徑上讀取的數(shù)據(jù)塊的完整性,該路徑是從所述根數(shù)據(jù)結(jié)構(gòu)經(jīng)由相繼更高元數(shù)據(jù)塊,直到從所述層次數(shù)據(jù)結(jié)構(gòu)的所述第一層讀取期望數(shù)據(jù)塊。
25.一種機(jī)器可讀取的程序存儲(chǔ)設(shè)備,其以可觸知的方式體現(xiàn)可由機(jī)器執(zhí)行以實(shí)施用于安全存儲(chǔ)和訪(fǎng)問(wèn)數(shù)據(jù)的方法步驟的指令程序,所述方法步驟包括步驟a)加密從客戶(hù)設(shè)備寫(xiě)到存儲(chǔ)設(shè)備的數(shù)據(jù),所述存儲(chǔ)設(shè)備用于存儲(chǔ)加密數(shù)據(jù),所述加密使用能保護(hù)單獨(dú)數(shù)據(jù)塊的加密方案,以防止對(duì)被寫(xiě)到所述存儲(chǔ)設(shè)備的每個(gè)數(shù)據(jù)塊進(jìn)行修改,重定位和重放;b)產(chǎn)生對(duì)應(yīng)于一個(gè)或多個(gè)寫(xiě)入數(shù)據(jù)塊的完整性值,所述完整性值包括用于防止對(duì)寫(xiě)入所述存儲(chǔ)設(shè)備的每個(gè)數(shù)據(jù)塊進(jìn)行數(shù)據(jù)修改的信息;c)存儲(chǔ)所述寫(xiě)入數(shù)據(jù)塊的所述完整性值;d)解密從所述存儲(chǔ)設(shè)備訪(fǎng)問(wèn)的所述加密數(shù)據(jù);以及e)使用對(duì)應(yīng)于所訪(fǎng)問(wèn)的存儲(chǔ)數(shù)據(jù)塊的完整性值執(zhí)行完整性檢查,其中所述完整性檢查保護(hù)存儲(chǔ)在所述存儲(chǔ)設(shè)備中內(nèi)容的完整性。
26.如權(quán)利要求25所述的機(jī)器可讀取程序存儲(chǔ)設(shè)備,其中所述加密數(shù)據(jù)步驟a)包括產(chǎn)生加密密文數(shù)據(jù)塊,所述加密密文數(shù)據(jù)塊是包括在所述數(shù)據(jù)塊中的明文數(shù)據(jù)和第一加密密鑰的函數(shù)。
27.如權(quán)利要求25所述的機(jī)器可讀取程序存儲(chǔ)設(shè)備,其中所述加密數(shù)據(jù)步驟a)還包括產(chǎn)生白化值,該白化值是第二加密密鑰,所述存儲(chǔ)塊的地址位置,以及指示塊寫(xiě)入遞增的版本號(hào)的函數(shù),所述加密步驟產(chǎn)生是所述白化值的函數(shù)的密文數(shù)據(jù)塊。
28.如權(quán)利要求27所述的機(jī)器可讀取程序存儲(chǔ)設(shè)備,其中所述存儲(chǔ)步驟c)還包括步驟產(chǎn)生完整性樹(shù)結(jié)構(gòu),用于存儲(chǔ)對(duì)應(yīng)于寫(xiě)入所述存儲(chǔ)設(shè)備的每個(gè)盤(pán)塊的完整性值,所述完整性樹(shù)包括層次數(shù)據(jù)結(jié)構(gòu),所述層次數(shù)據(jù)結(jié)構(gòu)包括兩個(gè)或更多層的完整性數(shù)據(jù)結(jié)構(gòu),完整性數(shù)據(jù)結(jié)構(gòu)的每個(gè)相繼層包括用于保護(hù)位于緊臨在前的層上的數(shù)據(jù)的完整性的元數(shù)據(jù)。
29.如權(quán)利要求28所述的機(jī)器可讀取程序存儲(chǔ)設(shè)備,還包括步驟在所述層次數(shù)據(jù)結(jié)構(gòu)的第一層上的寫(xiě)入加密數(shù)據(jù)塊,以及寫(xiě)入相繼層的元數(shù)據(jù)塊,每個(gè)元數(shù)據(jù)塊包括表示在所述第一層上寫(xiě)入的多個(gè)盤(pán)塊的數(shù)據(jù)結(jié)構(gòu),每個(gè)元數(shù)據(jù)塊數(shù)據(jù)結(jié)構(gòu)包括所述多個(gè)盤(pán)塊中的每個(gè)的完整性值與版本號(hào)對(duì)。
30.如權(quán)利要求29所述的機(jī)器可讀取程序存儲(chǔ)設(shè)備,還包括步驟寫(xiě)入更高級(jí)元數(shù)據(jù)塊的相繼層,用于保護(hù)下面的元數(shù)據(jù)塊層,每個(gè)更高級(jí)元數(shù)據(jù)塊包括表示多個(gè)元數(shù)據(jù)塊的數(shù)據(jù)結(jié)構(gòu),每個(gè)更高級(jí)元數(shù)據(jù)塊數(shù)據(jù)結(jié)構(gòu)包括所述多個(gè)元數(shù)據(jù)塊中的每個(gè)的完整性值和版本號(hào)對(duì);以及在所述層次數(shù)據(jù)結(jié)構(gòu)的最高層產(chǎn)生根數(shù)據(jù)結(jié)構(gòu),用于保護(hù)寫(xiě)入到所述存儲(chǔ)設(shè)備的全部?jī)?nèi)容的完整性。
31.如權(quán)利要求30所述的機(jī)器可讀取程序存儲(chǔ)設(shè)備,還包括步驟寫(xiě)入數(shù)據(jù)塊到所述存儲(chǔ)設(shè)備,所述寫(xiě)入包括在相關(guān)元數(shù)據(jù)塊中更新寫(xiě)入數(shù)據(jù)塊的版本號(hào)和校驗(yàn)和,其中在對(duì)應(yīng)于所述寫(xiě)入數(shù)據(jù)塊的每個(gè)相繼元數(shù)據(jù)層上執(zhí)行對(duì)校驗(yàn)和與版本號(hào)值的更新,包括在所述根數(shù)據(jù)結(jié)構(gòu)上執(zhí)行的更新。
32.如權(quán)利要求30所述的機(jī)器可讀取程序存儲(chǔ)設(shè)備,還包括步驟從所述存儲(chǔ)裝置讀取數(shù)據(jù)塊,所述執(zhí)行完整性檢查的步驟e)包括比較要在一路徑上讀取的數(shù)據(jù)塊的完整性,該路徑是從所述根數(shù)據(jù)結(jié)構(gòu)經(jīng)由相繼更高元數(shù)據(jù)塊,直到從所述層次數(shù)據(jù)結(jié)構(gòu)的所述第一層讀取期望數(shù)據(jù)塊。
全文摘要
實(shí)現(xiàn)先進(jìn)的密碼技術(shù)保護(hù)發(fā)送到或者接收自存儲(chǔ)系統(tǒng)或存儲(chǔ)應(yīng)用的數(shù)據(jù)的機(jī)密性和完整性的方法和系統(tǒng)。尤其,該方法和系統(tǒng)提供了所存儲(chǔ)數(shù)據(jù)的私密性和完整性。所使用的完整性保護(hù)方案防止數(shù)據(jù)的修改以及數(shù)據(jù)的“重放”和“重定位”,因?yàn)槊艽a完整性值不僅是明文數(shù)據(jù)和密碼密鑰的函數(shù),而且還是盤(pán)塊“地址”和“白化”值的函數(shù),其保護(hù)數(shù)據(jù)免受“重放攻擊”。完整性方案在容許增量地,隨機(jī)地訪(fǎng)問(wèn)更新虛擬盤(pán)上的塊的同時(shí),保護(hù)整個(gè)虛擬盤(pán)的完整性。
文檔編號(hào)G06F21/00GK1581110SQ20041005632
公開(kāi)日2005年2月16日 申請(qǐng)日期2004年8月6日 優(yōu)先權(quán)日2003年8月13日
發(fā)明者理查德·H·伯維, 威廉·埃里克·霍爾 申請(qǐng)人:國(guó)際商業(yè)機(jī)器公司