用于促進計算系統(tǒng)處的存儲數(shù)據(jù)的無加密完整性保護的機制的制作方法
【專利摘要】描述了根據(jù)一個實施例用于促進計算系統(tǒng)處的存儲數(shù)據(jù)的無加密完整性保護的機制。本發(fā)明實施例的方法包括從計算設(shè)備處的軟件應(yīng)用接收讀取請求以執(zhí)行與存儲在耦合到所述計算設(shè)備的存儲設(shè)備處的數(shù)據(jù)的第一數(shù)據(jù)塊有關(guān)的讀取任務(wù)。所述讀取任務(wù)可以包括讀取所述第一數(shù)據(jù)塊。所述方法可以進一步包括訪問與所述第一數(shù)據(jù)塊相關(guān)聯(lián)的第一元數(shù)據(jù)高速緩存處的第一參考加密代碼,計算與所述第一數(shù)據(jù)塊有關(guān)的第一新加密代碼,對所述第一新加密代碼與所述第一參考加密代碼進行比較,并且如果所述第一新加密代碼與所述第一參考加密代碼相匹配則接受所述讀取請求。所述接受可以進一步包括促進所述讀取任務(wù)。
【專利說明】用于促進計算系統(tǒng)處的存儲數(shù)據(jù)的無加密完整性保護的機 制
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明的實施例涉及安全系統(tǒng)。更具體地說,本發(fā)明的實施例涉及用于促進計算 系統(tǒng)處的存儲數(shù)據(jù)的無加密完整性保護的機制。
【背景技術(shù)】
[0002] 數(shù)據(jù)安全是計算機安全的公知分支,數(shù)據(jù)安全為存儲數(shù)據(jù)提供安全以防盜竊、破 壞、自然災(zāi)害等等。然而,用于提供數(shù)據(jù)安全的常規(guī)系統(tǒng)是受限且低效的。例如,許多常規(guī) 系統(tǒng)依賴于數(shù)據(jù)加密來簡單地隱藏數(shù)據(jù),該數(shù)據(jù)會被攔截,并且它們的完整性會例如經(jīng)過 離線修改被攻擊。此外,這些常規(guī)系統(tǒng)是資源低效且消耗功率的,并且還不為存儲數(shù)據(jù)的任 何未加密部分提供保護。
【專利附圖】
【附圖說明】
[0003] 在附圖的圖示中通過示例而非限制的方式說明了本發(fā)明的實施例,其中相似的附 圖標(biāo)記指代類似的元件。
[0004] 圖1說明了根據(jù)一個實施例用于在計算系統(tǒng)處使用的存儲數(shù)據(jù)的無加密保護的 基于映射框架的機制。
[0005] 圖2說明了根據(jù)一個實施例用于計算系統(tǒng)處的存儲數(shù)據(jù)的無加密保護的基于映 射框架的機制。
[0006] 圖3說明了根據(jù)一個實施例用于促進完整性存儲數(shù)據(jù)的安全和保護的事務(wù)序列。
[0007] 圖4A說明了根據(jù)一個實施例用于在處理讀取操作時促進完整性存儲數(shù)據(jù)的安全 和保護的方法。
[0008] 圖4B說明了根據(jù)一個實施例用于在處理寫入操作時促進完整性存儲數(shù)據(jù)的安全 和保護的方法。
[0009] 圖5說明了根據(jù)本發(fā)明一個實施例適合于實現(xiàn)本公開的實施例的計算機系統(tǒng)。
【具體實施方式】
[0010] 在下面的描述中,闡述了各種具體細(xì)節(jié)。然而,本發(fā)明的實施例可以在沒有這些具 體細(xì)節(jié)的情況下實施。在其它實例中,沒有詳細(xì)地示出公知的電路、結(jié)構(gòu)和技術(shù),以便不混 淆對本描述的理解。
[0011] 實施例促進提供存儲數(shù)據(jù)的安全并且維護該存儲數(shù)據(jù)的完整性以防例如由于黑 客攻擊、盜竊、破壞、自然或人為災(zāi)害等等引起的任何無意或者有意修改。實施例可以提供 用于促進計算系統(tǒng)處的存儲數(shù)據(jù)的無加密完整性保護的機制,其中該機制可以是基于映射 框架的或者可以被實現(xiàn)為塊設(shè)備驅(qū)動器等等,其可以例如幫助存儲基于散列的消息認(rèn)證代 碼(HMAC)。例如,實施例經(jīng)過安全的內(nèi)部計算和驗證機制(例如HMAC)提供存儲數(shù)據(jù)(例 如由操作系統(tǒng)訪問的數(shù)據(jù))的基于設(shè)備映射器的安全和完整性以防任何修改(例如離線修 改等等),而不必例如移動或改變存儲硬件,對存儲數(shù)據(jù)進行加密/解密,等等。通過促進存 儲數(shù)據(jù)的安全和完整性而不必對數(shù)據(jù)進行加密,允許存儲數(shù)據(jù)保持未加密,并且因而在需 要時促進數(shù)據(jù)的更容易的訪問和恢復(fù)。而且,不必對存儲數(shù)據(jù)進行加密提供了更好的資源 效率和低功耗。
[0012] 存儲設(shè)備上的數(shù)據(jù)可以被組織在扇區(qū)中,例如512字節(jié),并且被視為讀取和寫入 操作的最小單位。扇區(qū)指代塊中的組,例如4K塊可以包括8個扇區(qū)。設(shè)想扇區(qū)和/或塊尺 寸可以改變。進而,文件系統(tǒng)典型地以塊進行操作,并且可以發(fā)出讀取/寫入請求,例如,在 單個塊的情況下,用于讀取一個或多個塊的讀取請求典型地轉(zhuǎn)換到例如讀取數(shù)據(jù)4K塊的 所有8個扇區(qū)。關(guān)于存儲設(shè)備(SD),整個存儲裝置可以被劃分為分區(qū),其中每一個分區(qū)可 以由幾個塊組成;例如,存儲設(shè)備SDA可以被劃分為諸如 Sdal、sda2、sda3等等的分區(qū)。這 些分區(qū)可以被格式化到不同的文件系統(tǒng),例如ext4、文件分配表(FAT)、Microsoft?公司 的新技術(shù)文件系統(tǒng)(NTFS)等等,例如sdal可以是ext4,sda2可以是NTFS,等等。進而,文 件系統(tǒng)可以調(diào)用一個或多個塊層以便讀取數(shù)據(jù)塊,例如當(dāng)讀取請求被發(fā)出時,文件系統(tǒng)可 以立即調(diào)用塊層,而當(dāng)寫入請求被發(fā)出時,頁可以被更新,但它們可能不被立即寫入到塊設(shè) 備。這樣的頁可以被稱為頁高速緩存。頁高速緩存可以在寫回操作期間被寫回到塊設(shè)備, 并且在該寫回操作期間,文件系統(tǒng)可以將寫入請求發(fā)送到塊層。
[0013] 實施例提供如在整篇文檔中描述的映射框架中實現(xiàn)的用于促進存儲數(shù)據(jù)的無加 密完整性保護的機制,但是設(shè)想這些實施例并不局限于該映射框架,以使得塊設(shè)備驅(qū)動器 可以被替代地用于實現(xiàn)該機制。
[0014] 圖1說明了根據(jù)一個實施例用于在計算設(shè)備處使用的存儲數(shù)據(jù)的無加密保護的 基于映射框架的機制。計算設(shè)備100用作主機以便使用用于存儲數(shù)據(jù)的無加密保護的基于 映射框架的機制("完整性保護機制")110來促進存儲在一個或多個存儲設(shè)備處的數(shù)據(jù)的 安全和完整性。在一個實施例中,存儲數(shù)據(jù)保護機制110可以被提供為映射框架116 (也被 稱為"設(shè)備映射器")的插件模塊,該映射框架116是操作系統(tǒng)內(nèi)核114(例如Linux?內(nèi) 核)的一部分。內(nèi)核114可以用作用于管理系統(tǒng)資源的操作系統(tǒng)106的部件,例如用作橋, 或者促進軟件應(yīng)用(例如經(jīng)由用戶空間112提供)和在硬件級(例如硬件存儲設(shè)備)處完 成的任何數(shù)據(jù)處理之間的通信。映射框架116可以用作框架或映射器以便將一個塊設(shè)備映 射到另一塊設(shè)備,或者將一個設(shè)備處的塊映射到相同或其它設(shè)備處的塊,用作企業(yè)卷管理 系統(tǒng)(EVMS)、邏輯卷管理器(LVM)、dm-crypt等等的基礎(chǔ)。
[0015] 計算設(shè)備100可以包括例如蜂窩電話的移動計算設(shè)備,包括智能電話(例如 Apple? 的 iPhone? 、Research in Motion? 的 BlackBerry? 等等)、個人數(shù)字助理 (PDA)等等、平板計算機(例如 Apple? 的 iPad?、Samsung? 的 Galaxy Tab?'等等)、 膝上型計算機(例如筆記本計算機、上網(wǎng)本計算機、ultrabook?等等)、電子閱讀器(例如 Amazon?的Kindle?、Barnes和Nobles?的Nook?等等)等等。計算設(shè)備100可以 進一步包括機頂盒(例如,基于互聯(lián)網(wǎng)的有線電視機頂盒等等)、電視機、車內(nèi)娛樂系統(tǒng)和 較大的計算設(shè)備,例如桌上型計算機、服務(wù)器計算機等等。
[0016] 計算設(shè)備100包括操作系統(tǒng)(0S) 106,用作計算設(shè)備100的任何硬件或物理資源與 用戶之間的接口。計算設(shè)備100進一步包括一個或多個處理器102、存儲器設(shè)備104、網(wǎng)絡(luò) 設(shè)備、驅(qū)動器等等以及諸如觸摸屏、觸控面板、觸摸板、虛擬或常規(guī)鍵盤、虛擬或常規(guī)鼠標(biāo)等 等的輸入/輸出(I/O)源108。應(yīng)該注意,類似"計算設(shè)備"、"節(jié)點"、"計算節(jié)點"、"客戶端"、 "主機"、"服務(wù)器"、"存儲器服務(wù)器"、"機器"、"設(shè)備"、"計算設(shè)備"、"計算機"、"計算系統(tǒng)"等 等的詞語可以在整個文檔中可互換地使用。
[0017] 圖2說明了根據(jù)一個實施例用于計算設(shè)備處的存儲數(shù)據(jù)的無加密保護的基于映 射框架的機制。在一個實施例中,數(shù)據(jù)完整性保護機制110包括多個部件,例如接收邏輯 202、提交邏輯204、參考邏輯206、計算邏輯208、比較邏輯210、更新邏輯212和決定邏輯 214。如前面參照圖1描述的,數(shù)據(jù)完整性保護邏輯110可以作為操作系統(tǒng)的一部分而存在, 并且可以維護任何數(shù)量和類型的軟件應(yīng)用222和與諸如圖1的計算設(shè)備100的計算設(shè)備相 關(guān)聯(lián)的任何數(shù)量和類型的存儲設(shè)備232之間的通信。在整個文檔中,詞語"邏輯"可以被可 互換地稱為"處理邏輯"、"部件"或"模塊",并且可以通過示例的方式包括軟件、硬件和/或 軟件和硬件的任何組合,例如固件。
[0018] 在一個實施例中,數(shù)據(jù)完整性保護機制110提供與計算設(shè)備耦合的一個或多個存 儲設(shè)備232處的數(shù)據(jù)的安全和完整性保護。存儲數(shù)據(jù)可以由操作系統(tǒng)和/或在計算設(shè)備處 運行的一個或多個軟件應(yīng)用222訪問和使用。例如,數(shù)據(jù)可以包括軟件代碼、軟件代碼的相 關(guān)部分和/或任何其它相關(guān)信息,例如可以由軟件應(yīng)用222和/或操作系統(tǒng)訪問和使用的 元數(shù)據(jù)高速緩存。存儲設(shè)備232的示例可以包括任何數(shù)量和類型的存儲系統(tǒng),例如隨機存 取存儲器(RAM)、獨立磁盤冗余陣列(RAID)、非一致存儲器存?。∟UMA)存儲器系統(tǒng)、存儲區(qū) 域網(wǎng)絡(luò)、處理器寄存器、存儲器通道、磁盤、光盤、磁帶、網(wǎng)絡(luò)附接的存儲(NAS)設(shè)備、網(wǎng)絡(luò)文 件系統(tǒng)、關(guān)系數(shù)據(jù)庫等等。
[0019] 在一個實施例中,數(shù)據(jù)完整性保護機制110的接收邏輯202可以用于從軟件應(yīng)用 222接收對諸如數(shù)據(jù)讀取或數(shù)據(jù)寫入的任務(wù)的調(diào)用或請求。讀取請求指代當(dāng)嘗試讀取存儲 設(shè)備232處的數(shù)據(jù)的任何部分(例如一個或多個數(shù)據(jù)塊)時由應(yīng)用222促進的讀取命令 (例如sys_read,例如軟件應(yīng)用可以使用read()庫函數(shù),其接著調(diào)用系統(tǒng)調(diào)用sys_read)。 相較而言,寫入請求指代用于將一個或多個數(shù)據(jù)塊進一步寫入到存儲設(shè)備232處的現(xiàn)有數(shù) 據(jù)的寫入命令(例如sys_write,例如軟件應(yīng)用可以使用write ()庫函數(shù),其接著調(diào)用系統(tǒng) 調(diào)用syS_Write),該寫入包括修改數(shù)據(jù),例如軟件管理員或程序員改變現(xiàn)有的存儲數(shù)據(jù)。提 交邏輯204接著提交或傳輸所接收的請求,以使得所請求的任務(wù)(例如讀取、寫入等等)可 以針對該存儲數(shù)據(jù)的一個或多個相關(guān)數(shù)據(jù)塊被執(zhí)行,例如讀取或?qū)懭肴缭谒邮盏恼埱笾?闡述的一個或多個數(shù)據(jù)塊。
[0020] 在一個實施例中,參考邏輯206訪問與相關(guān)的數(shù)據(jù)塊相關(guān)聯(lián)的完整性元數(shù)據(jù)高速 緩存以便確定任何數(shù)據(jù)塊是否具有存儲在元數(shù)據(jù)高速緩存中的相對應(yīng)的HMAC。完整性元數(shù) 據(jù)高速緩存可以被組織為完整性元數(shù)據(jù)數(shù)據(jù)塊的集合,其中每一個塊被預(yù)期保持幾個完整 性元數(shù)據(jù)記錄,例如保持HMAC。完整性元數(shù)據(jù)數(shù)據(jù)塊可以被存儲在其中存在真實的數(shù)據(jù)塊 的相同的分區(qū)(塊設(shè)備)上,或者可以被存儲在存在于相同或不同的存儲設(shè)備上的專用分 區(qū)上。如果包含參考HMAC的完整性元數(shù)據(jù)數(shù)據(jù)塊從高速緩存遺漏,則它可以從適當(dāng)?shù)奈恢?被讀取。
[0021] 同時,計算邏輯208使用加密密鑰來計算每一個相關(guān)數(shù)據(jù)塊的新HMAC。設(shè)想用于 計算HMAC的加密密鑰的使用被提供作為示例,并且本發(fā)明實施例不局限于任何特定的過 程或技術(shù)。加密密鑰可以使用任意的一個或多個已知的過程被接收,例如在初始化時、在啟 動時,或者可以使用任何數(shù)量的已知方法在過程期間的任何點處被提供。進而,使用加密密 鑰和任何已知加密函數(shù)(例如消息摘要算法5(MD5)、安全散列算法l(SHA-l)等等)的組 合,可以為諸如HMAC-MD5、HMAC-SHA1等等的每一個相關(guān)數(shù)據(jù)塊計算HMAC。例如,可以使用 下式計算 HMAC:HMAC(K,m) =H((K ? opad) //H((K ? ipad) //m)),其中 Η 指代加密散列 函數(shù),Κ指代在右邊用額外的零填補到散列函數(shù)的輸入塊尺寸或者原始密鑰的散列(如果 它比該塊尺寸長)的秘密密鑰,m指代待認(rèn)證的消息(數(shù)據(jù)塊、請求的內(nèi)容等等),| |表示并 置,Φ表不異或(XOR),〇pad指代外填補(例如0x5c5c5c…5c5c,一個塊長十六進制常數(shù)), 并且ipad指代內(nèi)填補(例如0x363636…3636, 一個塊長十六進制常數(shù))。例如,如果塊尺 寸是4K并且HMAC-SHA256尺寸是32字節(jié),則單個塊可以具有保持128個HMAC的能力。完 整性元數(shù)據(jù)高速緩存可以包括特定數(shù)據(jù)塊的完整性元數(shù)據(jù)(例如一個或多個HMAC等等)。 例如,數(shù)據(jù)的一個4K塊可以包含128個HMAC-SHA256。完整性元數(shù)據(jù)高速緩存可以指代包 含在隨機存取存儲器中可用的完整性元數(shù)據(jù)(HMAC)的塊(例如4K塊等等)的集合。
[0022] 當(dāng)所述請求是讀取請求時,在一個實施例中,與由計算邏輯208使用的HMAC計算 方法無關(guān),一旦新HMAC對于每一個數(shù)據(jù)塊被計算,它就接著通過比較邏輯210與該數(shù)據(jù)塊 的參考HAMC進行比較。在進行比較時,通過決定塊214做出關(guān)于請求是被許可還是被拒絕 的決定。例如,在進行成功的比較時,例如當(dāng)在新計算的HMAC和所參考的HMAC之間存在匹 配時,讀取請求被許可并且被轉(zhuǎn)發(fā)到上層,并且所請求的任務(wù)可以被執(zhí)行,例如相關(guān)的數(shù)據(jù) 塊被讀取。相較而言,在進行不成功的比較時,這樣在所計算的HMAC和所參考的HMAC之間 存在不匹配時,讀取請求被拒絕,并且錯誤消息被發(fā)出并且被轉(zhuǎn)發(fā)到上層,并且所請求的任 務(wù)未被執(zhí)行,例如相關(guān)的數(shù)據(jù)塊被丟棄并且未被讀取。
[0023] 當(dāng)所述請求是寫入請求時,在一個實施例中,與由計算邏輯208使用的HMAC計算 方法無關(guān),一旦新HMAC對于將被寫入到存儲數(shù)據(jù)的每一個數(shù)據(jù)塊被計算,每一個數(shù)據(jù)塊的 相對應(yīng)的參考HMAC就使用更新邏輯212用該數(shù)據(jù)塊的新計算的HMAC進行更新或者代替。 完整性元數(shù)據(jù)高速緩存中的這些新放置的HMAC可以接著對任何未來的讀取請求做出響應(yīng) 而被參考和比較。
[0024] 設(shè)想任何數(shù)量和類型的部件可以被添加到數(shù)據(jù)完整性保護機制110和/或從該數(shù) 據(jù)完整性保護機制110移除以便促進本發(fā)明的各種實施例,包括添加、移除和/或增強某些 特征。為了數(shù)據(jù)完整性保護機制110的理解的簡潔、清楚和容易,許多標(biāo)準(zhǔn)和/或已知的部 件,例如計算設(shè)備的那些標(biāo)準(zhǔn)和/或部件,沒有在這里被顯示或討論。設(shè)想本發(fā)明實施例不 局限于任何特定的技術(shù)、拓?fù)洹⑾到y(tǒng)、架構(gòu)和/或標(biāo)準(zhǔn),并且是足夠動態(tài)的以便采取并且適 合任何未來的改變。
[0025] 圖3說明了根據(jù)一個實施例用于促進完整性存儲數(shù)據(jù)的安全和保護的事務(wù)序列。 事務(wù)序列300可以由可以包括硬件(例如電路、專用邏輯、可編程邏輯等等)、軟件(例如在 處理設(shè)備上運行的指令)或其組合的處理邏輯執(zhí)行。在一個實施例中,方法300可以由圖 1的數(shù)據(jù)完整性保護機制110執(zhí)行。
[0026] 事務(wù)序列300以用戶空間112處的軟件應(yīng)用222促進對事務(wù)(例如讀取事務(wù)(例 如sys_read)、寫入事務(wù)(例如sys_write)等等)的調(diào)用開始。接著通過使操作系統(tǒng)的內(nèi) 核114處的系統(tǒng)調(diào)用接口 302在虛擬文件系統(tǒng)(VFS)層304上進行調(diào)用(例如vfs_read、 vfs_write等等),經(jīng)過該系統(tǒng)調(diào)用接口 302將該請求傳遞到VFS。VFS層304在文件系統(tǒng) 層306上進行調(diào)用以便讀取該請求并且將它轉(zhuǎn)發(fā)到塊設(shè)備層308。文件系統(tǒng)層306將該請 求(例如塊I/O讀取請求)提交到塊設(shè)備層308,該塊設(shè)備層308接著對該請求進行排隊以 便在映射框架或設(shè)備映射器116處被接收。
[0027] 在一個實施例中,映射框架116可以將該請求轉(zhuǎn)發(fā)到數(shù)據(jù)完整性保護機制110或 者經(jīng)過該數(shù)據(jù)完整性保護機制110映射該請求,該數(shù)據(jù)完整性保護機制110可以被提供作 為映射框架116的插件模塊。在一個實施例中,數(shù)據(jù)完整性保護機制110處理該請求并且 將它提交到塊設(shè)備層310。在一個實施例中,塊設(shè)備層310可以包括數(shù)據(jù)塊設(shè)備和相對應(yīng)的 完整性塊設(shè)備。數(shù)據(jù)塊設(shè)備可以包括真實存儲數(shù)據(jù),而完整性塊設(shè)備可以包括相關(guān)的完整 性元數(shù)據(jù)(例如參考HMAC)。在一個實施例中,如前面提到的,在讀取請求的情況下,數(shù)據(jù)完 整性保護機制110可以計算HMAC并且將它與參考HMAC進行比較,而在寫入請求的情況下, 計算HMAC并且將它存儲在完整性塊設(shè)備中以便在未來用作參考HMAC。塊設(shè)備層310接著 將該請求排隊到塊設(shè)備驅(qū)動器312,因此在所述請求中闡述的所請求的任務(wù)可以被執(zhí)行。塊 設(shè)備驅(qū)動器312接著執(zhí)行與在相關(guān)的硬件320處的存儲數(shù)據(jù)的一個或多個數(shù)據(jù)塊有關(guān)的所 請求的任務(wù),該相關(guān)的硬件例如是包括sda和/或sdb的存儲設(shè)備232。
[0028] 圖4A說明了根據(jù)一個實施例用于當(dāng)處理讀取操作時促進完整性存儲數(shù)據(jù)的安全 和保護的方法。方法400可以由可以包括硬件(例如電路、專用邏輯、可編程邏輯等等)、 軟件(例如在處理設(shè)備上運行的指令)或其組合的處理邏輯執(zhí)行。在一個實施例中,方法 400可以由圖1的數(shù)據(jù)完整性保護機制110執(zhí)行。
[0029] 方法400以在塊405處從在計算系統(tǒng)處運行的軟件應(yīng)用(例如操作系統(tǒng)或者任何 其它軟件應(yīng)用)接收請求以便訪問并且讀取存儲在與所述計算系統(tǒng)通信的存儲設(shè)備處的 數(shù)據(jù)的數(shù)據(jù)塊開始。設(shè)想不存在關(guān)于多少或什么類型的數(shù)據(jù)塊可以被讀取的所強加的限 制。換句話說,請求可以被接收以便讀取任何數(shù)量和類型的數(shù)據(jù)塊。在塊410處,讀取請求 被提交用于處理,以使得所請求的數(shù)據(jù)塊可以被讀取。在塊415處,與數(shù)據(jù)塊相關(guān)聯(lián)的完整 性元數(shù)據(jù)高速緩存被訪問以便訪問存儲在該完整性元數(shù)據(jù)高速緩存處的參考HMAC,其中參 考HMAC與所請求的數(shù)據(jù)塊相對應(yīng)或者參考該所請求的數(shù)據(jù)塊。如果包含HMAC的數(shù)據(jù)塊遺 漏或者不存在于完整性元數(shù)據(jù)高速緩存中,則圖2的參考邏輯206可以將該讀取請求提交 到相關(guān)的塊層以便從該塊設(shè)備讀取數(shù)據(jù)塊。
[0030] 在塊420處,使用加密密鑰和任意一個或多個已知的計算過程來計算與所請求的 數(shù)據(jù)塊相對應(yīng)的新HMAC。在塊425處,在一個實施例中,將新計算的HMAC與從完整性元數(shù) 據(jù)高速緩存獲得的參考HMAC進行比較。在決定塊430處,做出關(guān)于所計算的HMAC是否與 參考HMAC相匹配的確定。如果它們相匹配,則在塊435處,該過程通過許可該請求并且將 它轉(zhuǎn)發(fā)到上層繼續(xù)到促進該讀取請求的軟件應(yīng)用(在用戶空間處)來繼續(xù),例如所請求的 數(shù)據(jù)塊被讀取。如果沒有相匹配,則在塊440處,該過程終止并且錯誤消息被發(fā)出且被轉(zhuǎn)發(fā) 到上層。
[0031] 圖4B說明了根據(jù)一個實施例用于在處理寫入操作時促進完整性存儲數(shù)據(jù)的安全 和保護的方法。方法450可以由可以包括硬件(例如電路、專用邏輯、可編程邏輯等等)、 軟件(例如在處理設(shè)備上運行的指令)或其組合的處理邏輯執(zhí)行。在一個實施例中,方法 450可以由圖1的數(shù)據(jù)完整性保護機制110執(zhí)行。
[0032] 方法450以在塊455處從在計算系統(tǒng)處運行的軟件應(yīng)用(例如操作系統(tǒng)或任何其 它軟件應(yīng)用)接收請求以便將數(shù)據(jù)塊寫入到與所述計算系統(tǒng)通信的存儲設(shè)備處的現(xiàn)有數(shù) 據(jù)開始。設(shè)想不存在關(guān)于多少或什么類型的數(shù)據(jù)塊可以被讀取的所強加的限制。換句話說, 該請求可以被接收以便讀取任何數(shù)量和類型的數(shù)據(jù)塊。在塊460處,寫入請求被提交用于 處理,以使得所請求的數(shù)據(jù)塊可以被寫入。在塊465處,與數(shù)據(jù)塊相關(guān)聯(lián)的完整性元數(shù)據(jù)高 速緩存被訪問以便訪問存儲在完整性元數(shù)據(jù)高速緩存處的參考HMAC,其中參考HMAC與該 數(shù)據(jù)塊相對應(yīng)或者參考該數(shù)據(jù)塊。
[0033] 在塊470處,使用加密密鑰和任意一個或多個已知的計算過程來計算與所請求的 數(shù)據(jù)塊相對應(yīng)的新HMAC。在塊475,在一個實施例中,通過使用新計算的HMAC代替現(xiàn)有的 參考HMAC來更新完整性元數(shù)據(jù)高速緩存。進而,圖2的更新邏輯212可以更新HMAC,但是 可能不立即發(fā)送寫入請求以便將完整性塊寫入到塊設(shè)備。在塊480處,該過程通過許可所 述寫入請求繼續(xù),其中數(shù)據(jù)塊被寫入到存儲數(shù)據(jù)。在塊485處,被寫入的數(shù)據(jù)塊的確認(rèn)被發(fā) 送到上層。
[0034] 圖5說明了計算系統(tǒng)500的實施例。計算系統(tǒng)500代表一系列計算和電子設(shè)備 (有線或無線),例如包括桌上型計算系統(tǒng)、膝上型計算系統(tǒng)、蜂窩電話、包括啟用蜂窩的個 人數(shù)字助理(PDA)的PDA、機頂盒、智能電話、平板計算機等等??蛇x的計算系統(tǒng)可以包括更 多、更少和/或不同的部件。
[0035] 計算系統(tǒng)500包括總線505 (或者鏈路、互連或用于傳遞信息的另一類型的通信設(shè) 備或接口)和耦合到總線505的可以處理信息的處理器510。盡管計算系統(tǒng)500被說明為 具有單個處理器,但是電子系統(tǒng)500可以包括多個處理器和/或協(xié)處理器,例如中央處理 器、圖形處理器和物理處理器等等中的一個或多個。計算系統(tǒng)500可以進一步包括耦合到 總線505并且可以存儲可以由處理器510執(zhí)行的信息和指令的隨機存取存儲器(RAM)或者 其它動態(tài)存儲設(shè)備520 (被稱為主存儲器)。主存儲器520還可以用于在由處理器510執(zhí)行 指令期間存儲臨時變量或其它中間信息。
[0036] 計算系統(tǒng)500還可以包括耦合到總線505的可以存儲處理器510的靜態(tài)信息和指 令的只讀存儲器(ROM)和/或其它存儲設(shè)備530。數(shù)據(jù)存儲設(shè)備540可以耦合到總線505 以便存儲信息和指令。諸如磁盤或光盤以及相對應(yīng)的驅(qū)動器的數(shù)據(jù)存儲設(shè)備540可以耦合 到計算系統(tǒng)500。
[0037] 計算系統(tǒng)500還可以經(jīng)由總線505耦合到顯示設(shè)備550以便向用戶顯示信息,該 顯示設(shè)備例如是陰極射線管(CRT)、液晶顯示器(LCD)或者有機發(fā)光二極管(0LED)陣列。 包括字母數(shù)字和其它鍵的用戶輸入設(shè)備560可以耦合到總線505以便將信息和命令選擇傳 遞到處理器510。另一類型的用戶輸入設(shè)備560是諸如鼠標(biāo)、軌跡球或光標(biāo)方向鍵的光標(biāo)控 制裝置570,以便將方向信息和命令選擇傳遞到處理器510并且控制顯示器550上的光標(biāo)移 動。計算機系統(tǒng)500的相機和麥克風(fēng)陣列590可以耦合到總線505以便觀察姿勢、記錄音 頻和視頻并且接收和傳輸視覺和音頻命令。
[0038] 計算系統(tǒng)500可以進一步包括網(wǎng)絡(luò)接口 580以便提供對諸如局域網(wǎng)(LAN)、廣域網(wǎng) (WAN)、城域網(wǎng)(MAN)、個人域網(wǎng)(PAN)、藍牙、云網(wǎng)絡(luò)、移動網(wǎng)絡(luò)(例如第三代(3G)等等)、內(nèi) 聯(lián)網(wǎng)、互連網(wǎng)等等的網(wǎng)絡(luò)的訪問。網(wǎng)絡(luò)接口 580可以例如包括具有天線585的無線網(wǎng)絡(luò)接 口,天線585可以代表一個或多個天線。網(wǎng)絡(luò)接口 580還可以例如包括有線網(wǎng)絡(luò)接口以便 經(jīng)由網(wǎng)絡(luò)電纜587與遠程設(shè)備進行通信,網(wǎng)絡(luò)電纜587可以例如是以太網(wǎng)電纜、同軸電纜、 光纖電纜、串行電纜或并行電纜。
[0039] 網(wǎng)絡(luò)接口 580可以例如通過符合IEEE802. lib和/或IEEE802. llg標(biāo)準(zhǔn)來提供對 LAN的接入,和/或無線網(wǎng)絡(luò)接口可以例如通過符合藍牙標(biāo)準(zhǔn)來提供對個人域網(wǎng)的接入。也 可以支持包括標(biāo)準(zhǔn)的以前和隨后版本的其它無線網(wǎng)絡(luò)接口和/或協(xié)議。
[0040] 除了或代替經(jīng)由無線LAN標(biāo)準(zhǔn)的通信,網(wǎng)絡(luò)接口 580可以使用例如時分多址 (TDMA)協(xié)議、全球移動通信系統(tǒng)(GSM)協(xié)議、碼分多址(CDMA)協(xié)議和/或任何其它類型的 無線通信協(xié)議來提供無線通信。
[0041] 網(wǎng)絡(luò)接口 580可以包括一個或多個通信接口,例如調(diào)制解調(diào)器、網(wǎng)絡(luò)接口卡或其 它公知的接口設(shè)備,例如用于耦合到以太網(wǎng)的接口設(shè)備、令牌環(huán)或用于提供通信鏈路以便 支持諸如LAN或WAN的目的的其它類型的物理有線或無線附件。按照這一方式,計算機系 統(tǒng)也可以經(jīng)由例如包括內(nèi)聯(lián)網(wǎng)或者互聯(lián)網(wǎng)的常規(guī)網(wǎng)絡(luò)基礎(chǔ)設(shè)施耦合到多個外圍設(shè)備、客戶 端、控制表面、控制臺或服務(wù)器。
[0042] 應(yīng)該認(rèn)識到,比上面描述的示例更少或更多配備的系統(tǒng)可能對于某些實現(xiàn)是優(yōu)選 的。因此,計算系統(tǒng)500的配置可以取決于各種因素而在實現(xiàn)之間變化,該各種因素例如是 價格約束、性能要求、技術(shù)改進或其它情況。電子設(shè)備或計算機系統(tǒng)500的示例可以沒有限 制地包括移動設(shè)備、個人數(shù)字助理、移動計算設(shè)備、智能電話、蜂窩電話、手持設(shè)備、單向?qū)?呼機、雙向?qū)ず魴C、消息傳送設(shè)備、計算機、個人計算機(PC)、桌上型計算機、膝上型計算機、 筆記本計算機、手持計算機、平板計算機、服務(wù)器、服務(wù)器陣列或服務(wù)器場、網(wǎng)頁服務(wù)器、網(wǎng) 絡(luò)服務(wù)器、互聯(lián)網(wǎng)服務(wù)器、工作站、微型計算機、大型計算機、超級計算機、網(wǎng)絡(luò)電器、網(wǎng)頁電 器、分布式計算系統(tǒng)、多處理器系統(tǒng)、基于處理器的系統(tǒng)、消費電子設(shè)備、可編程消費電子設(shè) 備、電視機、數(shù)字電視機、機頂盒、無線接入點、基站、用戶站、移動用戶中心、無線網(wǎng)絡(luò)控制 器、路由器、集線器、網(wǎng)關(guān)、橋、交換機、機器或其組合。
[0043] 實施例可以被實現(xiàn)為下列部件中的任意一個或組合:使用母版互連的一個或多個 微芯片或者集成電路、硬連線邏輯、由存儲器設(shè)備存儲并且由微處理器執(zhí)行的軟件、固件、 專用集成電路(ASIC)和/或現(xiàn)場可編程門陣列(FPGA)。詞語"邏輯"可以通過示例的方式 包括軟件或硬件和/或軟件和硬件的組合。
[0044] 實施例可以被例如提供為可以包括具有存儲在其上的機器可執(zhí)行指令的一個或 多個機器可讀介質(zhì)的計算機程序產(chǎn)品,該機器可執(zhí)行指令當(dāng)由諸如計算機、計算機的網(wǎng)絡(luò) 或其它電子設(shè)備的一個或多個機器執(zhí)行時可以導(dǎo)致該一個或多個機器執(zhí)行根據(jù)本發(fā)明實 施例的操作。機器可讀介質(zhì)可以包括但不局限于軟盤、光盤、CD-ROM(壓縮盤只讀存儲器) 和磁-光盤、R0M、RAM、EPR0M(可擦除可編程只讀存儲器)、EEPR0M(電可擦除可編程只讀存 儲器)、磁卡或光學(xué)卡、閃存或適合于存儲機器可執(zhí)行指令的其它類型的介質(zhì)/機器可讀介 質(zhì)。
[0045] 而且,實施例可以被下載為計算機程序產(chǎn)品,其中該程序可以通過體現(xiàn)在載波或 其它傳播介質(zhì)中和/或由該載波或其它傳播介質(zhì)調(diào)制的一個或多個數(shù)據(jù)信號經(jīng)由通信鏈 路(例如調(diào)制解調(diào)器和/或網(wǎng)絡(luò)連接)被從遠程計算機(例如服務(wù)器)傳輸?shù)秸埱笥嬎銠C (例如客戶端)。因此,如本文使用的,機器可讀介質(zhì)可以包括但不被要求包括這樣的載波。
[0046] 對"一個實施例"、"實施例"、"示例實施例"、"各種實施例"等等的提及指示這樣描 述的本發(fā)明實施例可以包括特定的特征、結(jié)構(gòu)、特性,但是不必每一個實施例都包括該特定 的特征、結(jié)構(gòu)、特性。進而,一些實施例可以具有針對其它實施例描述的特征中的一些、全部 或沒有一個。
[0047] 在下面的描述和權(quán)利要求中,可以使用詞語"耦合"連同其派生詞。"耦合"用于指 示兩個或更多個元件彼此協(xié)作或交互作用,但是它們可以具有或不具有位于它們之間的中 間物理或電氣部件。
[0048] 如在權(quán)利要求中使用的,除非以其它方式表明,用于描述公共元件的順序形容詞 "第一"、"第二"、"第三"等等的使用僅指示類似元件的不同實例被參照,并且不打算暗示這 樣描述的元件必須在時間上、空間上、等級上或者以任何其它方式按照給定順序。
[0049] 下面的款項和/或示例屬于進一步實施例或示例。該示例中的細(xì)節(jié)可以在一個或 多個實施例中的任何地方使用。不同實施例或示例的各種特征可以與所包括的一些特征和 沒有包括的其它特征不同地進行組合以便適合各種不同的應(yīng)用。一些實施例涉及一種方 法,包括:從計算設(shè)備處的軟件應(yīng)用接收讀取請求以便執(zhí)行與存儲在耦合到所述計算設(shè)備 的存儲設(shè)備處的數(shù)據(jù)的第一數(shù)據(jù)塊有關(guān)的讀取任務(wù),其中,所述讀取任務(wù)包括讀取所述第 一數(shù)據(jù)塊;訪問與所述第一數(shù)據(jù)塊相關(guān)聯(lián)的第一元數(shù)據(jù)高速緩存處的第一參考加密代碼; 計算與所述第一數(shù)據(jù)塊有關(guān)的第一新加密代碼;將所述第一新加密代碼與所述第一參考加 密代碼進行比較;并且如果所述第一新加密代碼與所述第一參考加密代碼相匹配,則接受 所述讀取請求,其中接受包括促進所述讀取任務(wù)。
[0050] 實施例或示例包括上述方法中的任意一個,其中進一步包括如果所述第一新加密 代碼與所述第一參考加密代碼不匹配,則拒絕所述讀取請求,其中,拒絕包括對所述讀取請 求做出響應(yīng)而發(fā)出錯誤消息,其中,如果包含所述第一參考加密代碼的數(shù)據(jù)塊從所述第一 元數(shù)據(jù)高速緩存遺漏,則所述讀取請求被提交以便促進對遺漏的數(shù)據(jù)塊的讀取任務(wù)。
[0051] 實施例或示例包括上述方法中的任意一個,其中所述第一參考加密代碼和新加密 代碼包括基于散列的消息認(rèn)證代碼(HMAC)。
[0052] 實施例或示例包括上述方法中的任意一個,其中所述軟件應(yīng)用包括在所述計算設(shè) 備處運行的操作系統(tǒng)。
[0053] 實施例或示例包括上述方法中的任意一個,進一步包括從計算設(shè)備處的軟件應(yīng)用 接收寫入請求以便執(zhí)行與第二數(shù)據(jù)塊有關(guān)的寫入任務(wù),其中所述寫入任務(wù)包括將所述第二 數(shù)據(jù)塊寫入到存儲在所述存儲設(shè)備處的數(shù)據(jù);訪問與所述第二數(shù)據(jù)塊相關(guān)聯(lián)的第二元數(shù)據(jù) 高速緩存處的第二參考加密代碼;計算與所述第二數(shù)據(jù)塊有關(guān)的第二新加密代碼;在所述 第二元數(shù)據(jù)高速緩存中由所述第二新加密代碼代替所述第二參考加密代碼;并且接受所述 寫入請求,其中接受包括促進所述寫入任務(wù)。
[0054] 實施例或示例包括上述方法中的任意一個,其中所述第二元數(shù)據(jù)高速緩存維護所 述第二新加密代碼,以使得所述第二新加密代碼用作參考加密代碼用于未來的讀取請求。
[0055] 實施例或示例包括上述方法中的任意一個,其中所述第二參考加密代碼和新加密 代碼包括基于散列的消息認(rèn)證代碼(HMAC)。
[0056] 實施例或示例包括上述方法中的任意一個,其中所述軟件應(yīng)用包括在所述計算設(shè) 備處運行的操作系統(tǒng)。
[0057] 在另一實施例或示例中,一種裝置包括:第一邏輯,用于從計算設(shè)備處的軟件應(yīng)用 接收讀取請求以便執(zhí)行與存儲在耦合到所述計算設(shè)備的存儲設(shè)備處的數(shù)據(jù)的第一數(shù)據(jù)塊 有關(guān)的讀取任務(wù),其中,所述讀取任務(wù)包括讀取所述第一數(shù)據(jù)塊;第二邏輯,用于訪問與所 述第一數(shù)據(jù)塊相關(guān)聯(lián)的第一元數(shù)據(jù)高速緩存處的第一參考加密代碼;第三邏輯,用于計算 與所述第一數(shù)據(jù)塊有關(guān)的第一新加密代碼;第四邏輯,用于將所述第一新加密代碼與所述 第一參考加密代碼進行比較;以及第五邏輯,用于如果所述第一新加密代碼與所述第一參 考加密代碼相匹配則接受所述讀取請求,其中接受包括促進所述讀取任務(wù)。
[0058] 實施例或示例包括上述裝置,其中所述第五邏輯進一步用于如果所述第一新加密 代碼與所述第一參考加密代碼不相匹配則拒絕所述讀取請求,其中,拒絕包括對所述讀取 請求做出響應(yīng)而發(fā)出錯誤消息,其中,如果包含所述第一參考加密代碼的數(shù)據(jù)塊從所述第 一元數(shù)據(jù)高速緩存遺漏,則所述讀取請求被提交以便促進對遺漏的數(shù)據(jù)塊的讀取任務(wù)。
[0059] 實施例或示例包括上述裝置,其中所述第一參考加密代碼和新加密代碼包括基于 散列的消息認(rèn)證代碼(HMAC)。
[0060] 實施例或示例包括上述裝置,其中所述軟件應(yīng)用包括在計算設(shè)備處運行的操作系 統(tǒng)。
[0061] 實施例或示例包括上述裝置,其中所述第一邏輯進一步用于從計算設(shè)備處的軟件 應(yīng)用接收寫入請求以便執(zhí)行與第二數(shù)據(jù)塊有關(guān)的寫入任務(wù),其中,所述寫入任務(wù)包括將第 二數(shù)據(jù)塊寫入到存儲在所述存儲設(shè)備處的數(shù)據(jù);所述第二邏輯進一步用于訪問與所述第二 數(shù)據(jù)塊相關(guān)聯(lián)的第二元數(shù)據(jù)高速緩存處的第二參考加密代碼;所述第三邏輯進一步用于計 算與所述第二數(shù)據(jù)塊有關(guān)的第二新加密代碼;所述第四邏輯進一步用于在所述第二元數(shù)據(jù) 高速緩存中由所述第二新加密代碼代替所述第二參考加密代碼;并且所述第五邏輯進一步 用于接受所述寫入請求,其中接受包括促進所述寫入任務(wù)。
[0062] 實施例或示例包括上述裝置,其中所述第二元數(shù)據(jù)高速緩存用于維護所述第二新 加密代碼,以使得所述第二新加密代碼用作參考加密代碼用于未來的讀取請求。
[0063] 實施例或示例包括上述裝置,其中所述第二參考加密代碼和新加密代碼包括基于 散列的消息認(rèn)證代碼(HMAC)。
[0064] 實施例或示例包括上述裝置,其中所述軟件應(yīng)用包括在所述計算設(shè)備處運行的操 作系統(tǒng)。
[0065] 在另一實施例或示例中,一種系統(tǒng)包括:具有用于存儲指令的存儲器以及用于執(zhí) 行所述指令的處理設(shè)備的計算設(shè)備,所述計算設(shè)備進一步具有一種機制以便執(zhí)行下列操 作:從計算設(shè)備處的軟件應(yīng)用接收讀取請求以便執(zhí)行與存儲在耦合到所述計算設(shè)備的存 儲設(shè)備處的數(shù)據(jù)的第一數(shù)據(jù)塊有關(guān)的讀取任務(wù),其中所述讀取任務(wù)包括讀取所述第一數(shù)據(jù) 塊;訪問與所述第一數(shù)據(jù)塊相關(guān)聯(lián)的第一元數(shù)據(jù)高速緩存處的第一參考加密代碼;計算與 所述第一數(shù)據(jù)塊有關(guān)的第一新加密代碼;將所述第一新加密代碼與所述第一參考加密代碼 進行比較;并且如果所述第一新加密代碼與所述第一參考加密代碼相匹配,則接受所述讀 取請求,其中接受包括促進所述讀取任務(wù)。
[0066] 實施例或示例包括上述系統(tǒng),其中所述第五邏輯進一步用于如果所述第一新加密 代碼與所述第一參考加密代碼不相匹配則拒絕所述讀取請求,其中拒絕包括對所述讀取請 求做出響應(yīng)而發(fā)出錯誤消息,其中如果包含所述第一參考加密代碼的數(shù)據(jù)塊從所述第一元 數(shù)據(jù)高速緩存遺漏,則所述讀取請求被提交以便促進對遺漏的數(shù)據(jù)塊的讀取任務(wù)。
[0067] 實施例或示例包括上述系統(tǒng),其中所述第一參考加密代碼和新加密代碼包括基于 散列的消息認(rèn)證代碼(HMAC)。
[0068] 實施例或示例包括上述系統(tǒng),其中所述軟件應(yīng)用包括在所述計算設(shè)備處運行的操 作系統(tǒng)。
[0069] 實施例或示例包括上述系統(tǒng),其中所述第一邏輯進一步用于從計算設(shè)備處的軟件 應(yīng)用接收寫入請求以便執(zhí)行與第二數(shù)據(jù)塊有關(guān)的寫入任務(wù),其中所述寫入任務(wù)包括將所述 第二數(shù)據(jù)塊寫入到存儲在所述存儲設(shè)備處的數(shù)據(jù);所述第二邏輯進一步用于訪問與所述第 二數(shù)據(jù)塊相關(guān)聯(lián)的第二元數(shù)據(jù)高速緩存處的第二參考加密代碼;所述第三邏輯進一步用于 計算與所述第二數(shù)據(jù)塊有關(guān)的第二新加密代碼;所述第四邏輯進一步用于在所述第二元數(shù) 據(jù)高速緩存中由所述第二新加密代碼代替所述第二參考加密代碼;并且所述第五邏輯進一 步用于接受所述寫入請求,其中接受包括促進所述寫入任務(wù)。
[0070] 實施例或示例包括上述系統(tǒng),其中所述第二元數(shù)據(jù)高速緩存用于維護所述第二新 加密代碼,以使得所述第二新加密代碼用作參考加密代碼用于未來的讀取請求。
[0071] 實施例或示例包括上述系統(tǒng),其中所述第二參考加密代碼和新加密代碼包括基于 散列的消息認(rèn)證代碼(HMAC)。
[0072] 實施例或示例包括上述系統(tǒng),其中所述軟件應(yīng)用包括在所述計算設(shè)備處運行的操 作系統(tǒng)。
[0073] 在另一實施例或示例中,一種裝置包括用于執(zhí)行上面提到的操作中的任意一個或 多個的模塊。
[0074] 在又一實施例或示例中,至少一個機器可讀介質(zhì)包括多個指令,所述指令對在計 算設(shè)備上被執(zhí)行做出響應(yīng)而使所述計算設(shè)備執(zhí)行根據(jù)上面提到的操作中的任意一個或多 個的方法。
[0075] 在又一實施例或示例中,至少一個非暫態(tài)或有形機器可讀介質(zhì)包括多個指令,所 述指令對在計算設(shè)備上被執(zhí)行做出響應(yīng)而使所述計算設(shè)備執(zhí)行根據(jù)上面提到的操作中的 任意一個或多個的方法。
[0076] 在又一實施例或示例中,一種計算設(shè)備被布置為執(zhí)行根據(jù)上面提到的操作中的任 意一個或多個的方法。
[0077] 附圖和前面的描述給出了實施例的示例。本領(lǐng)域中的技術(shù)人員將認(rèn)識到,所描述 的元件中的一個或多個可以被很好地組合為單個功能元件。可選地,某些元件可以被劃分 為多個功能元件。來自一個實施例的元件可以被添加到另一實施例。例如,本文描述的過 程的順序可以被改變,并且不局限于本文描述的方式。而且,任何流程圖的動作不需要以所 示的順序?qū)崿F(xiàn);所有動作也不一定都需要被執(zhí)行。并且,不取決于其它動作的那些動作可以 被與其它動作并行地執(zhí)行。實施例的范圍決不由這些具體示例限制。很多變形是可能的, 無論是否在說明書中明確給出,例如在結(jié)構(gòu)、尺寸和材料使用方面。實施例的范圍至少與下 面的權(quán)利要求所給出的范圍一樣廣泛。
【權(quán)利要求】
1. 一種方法,包括: 從計算設(shè)備處的軟件應(yīng)用接收讀取請求以便執(zhí)行與存儲在耦合到所述計算設(shè)備的存 儲設(shè)備處的數(shù)據(jù)的第一數(shù)據(jù)塊有關(guān)的讀取任務(wù),其中,所述讀取任務(wù)包括讀取所述第一數(shù) 據(jù)塊; 訪問與所述第一數(shù)據(jù)塊相關(guān)聯(lián)的第一元數(shù)據(jù)高速緩存處的第一參考加密代碼; 計算與所述第一數(shù)據(jù)塊有關(guān)的第一新加密代碼; 將所述第一新加密代碼與所述第一參考加密代碼進行比較;并且 如果所述第一新加密代碼與所述第一參考加密代碼相匹配,則接受所述讀取請求,其 中接受包括促進所述讀取任務(wù)。
2. 如權(quán)利要求1所述的方法,進一步包括如果所述第一新加密代碼與所述第一參考加 密代碼不相匹配,則拒絕所述讀取請求,其中拒絕包括對所述讀取請求做出響應(yīng)而發(fā)出錯 誤消息,其中,如果包含所述第一參考加密代碼的數(shù)據(jù)塊從所述第一元數(shù)據(jù)高速緩存遺漏, 則所述讀取請求被提交以便促進針對遺漏的數(shù)據(jù)塊的所述讀取任務(wù)。
3. 如權(quán)利要求1所述的方法,其中,所述第一參考加密代碼和所述第一新加密代碼包 括基于散列的消息認(rèn)證代碼(HMAC)。
4. 如權(quán)利要求1所述的方法,其中,所述軟件應(yīng)用包括在所述計算設(shè)備處運行的操作 系統(tǒng)。
5. 如權(quán)利要求1所述的方法,進一步包括: 從所述計算設(shè)備處的軟件應(yīng)用接收寫入請求以便執(zhí)行與第二數(shù)據(jù)塊有關(guān)的寫入任務(wù), 其中,所述寫入任務(wù)包括將所述第二數(shù)據(jù)塊寫入到存儲在所述存儲設(shè)備處的所述數(shù)據(jù); 訪問與所述第二數(shù)據(jù)塊相關(guān)聯(lián)的第二元數(shù)據(jù)高速緩存處的第二參考加密代碼; 計算與所述第二數(shù)據(jù)塊有關(guān)的第二新加密代碼; 在所述第二元數(shù)據(jù)高速緩存中由所述第二新加密代碼代替所述第二參考加密代碼;并 且 接受所述寫入請求,其中接受包括促進所述寫入任務(wù)。
6. 如權(quán)利要求5所述的方法,其中,所述第二元數(shù)據(jù)高速緩存維護所述第二新加密代 碼,以使得所述第二新加密代碼用作參考加密代碼,用于未來的讀取請求。
7. 如權(quán)利要求5所述的方法,其中,所述第二參考加密代碼和所述第二新加密代碼包 括基于散列的消息認(rèn)證代碼(HMAC)。
8. 如權(quán)利要求5所述的方法,其中,所述軟件應(yīng)用包括在所述計算設(shè)備處運行的操作 系統(tǒng)。
9. 一種裝置,包括: 第一邏輯,用于從計算設(shè)備處的軟件應(yīng)用接收讀取請求以便執(zhí)行與存儲在耦合到所述 計算設(shè)備的存儲設(shè)備處的數(shù)據(jù)的第一數(shù)據(jù)塊有關(guān)的讀取任務(wù),其中,所述讀取任務(wù)包括讀 取所述第一數(shù)據(jù)塊; 第二邏輯,用于訪問與所述第一數(shù)據(jù)塊相關(guān)聯(lián)的第一元數(shù)據(jù)高速緩存處的第一參考加 密代碼; 第三邏輯,用于計算與所述第一數(shù)據(jù)塊有關(guān)的第一新加密代碼; 第四邏輯,用于將所述第一新加密代碼與所述第一參考加密代碼進行比較;以及 第五邏輯,用于如果所述第一新加密代碼與所述第一參考加密代碼相匹配則接受所述 讀取請求,其中接受包括促進所述讀取任務(wù)。
10. 如權(quán)利要求9所述的裝置,其中,所述第五邏輯進一步用于如果所述第一新加密 代碼與所述第一參考加密代碼不相匹配則拒絕所述讀取請求,其中,拒絕包括對所述讀取 請求做出響應(yīng)而發(fā)出錯誤消息,其中,如果包含所述第一參考加密代碼的數(shù)據(jù)塊從所述第 一元數(shù)據(jù)高速緩存遺漏,則所述讀取請求被提交以便促進針對遺漏的數(shù)據(jù)塊的所述讀取任 務(wù)。
11. 如權(quán)利要求9所述的裝置,其中,所述第一參考代碼和所述第一新加密代碼包括基 于散列的消息認(rèn)證代碼(HMAC)。
12. 如權(quán)利要求9所述的裝置,其中,所述軟件應(yīng)用包括在所述計算設(shè)備處運行的操作 系統(tǒng)。
13. 如權(quán)利要求9所述的裝置,其中: 所述第一邏輯進一步用于從所述計算設(shè)備處的軟件應(yīng)用接收寫入請求以便執(zhí)行與第 二數(shù)據(jù)塊有關(guān)的寫入任務(wù),其中,所述寫入任務(wù)包括將所述第二數(shù)據(jù)塊寫入到存儲在所述 存儲設(shè)備處的所述數(shù)據(jù); 所述第二邏輯進一步用于訪問與所述第二數(shù)據(jù)塊相關(guān)聯(lián)的第二元數(shù)據(jù)高速緩存處的 第二參考加密代碼; 所述第三邏輯進一步用于計算與所述第二數(shù)據(jù)塊有關(guān)的第二新加密代碼; 所述第四邏輯進一步用于在所述第二元數(shù)據(jù)高速緩存中由所述第二新加密代碼代替 所述第二參考加密代碼;以及 所述第五邏輯進一步用于接受所述寫入請求,其中接受包括促進所述寫入任務(wù)。
14. 如權(quán)利要求13所述的裝置,其中,所述第二元數(shù)據(jù)高速緩存維護所述第二新加密 代碼,以使得所述第二新加密代碼用作參考加密代碼,用于未來的讀取請求。
15. 如權(quán)利要求13所述的裝置,其中,所述第二參考加密代碼和所述第二新加密代碼 包括基于散列的消息認(rèn)證代碼(HMAC)。
16. 如權(quán)利要求13所述的裝置,其中,所述軟件應(yīng)用包括在所述計算設(shè)備處運行的操 作系統(tǒng)。
17. -種系統(tǒng),包括: 計算設(shè)備,具有用于存儲指令的存儲器和用于執(zhí)行所述指令的處理設(shè)備,所述計算設(shè) 備還具有一種機制以便執(zhí)行下列操作: 從計算設(shè)備處的軟件應(yīng)用接收讀取請求以便執(zhí)行與存儲在耦合到所述計算設(shè)備的存 儲設(shè)備處的數(shù)據(jù)的第一數(shù)據(jù)塊有關(guān)的讀取任務(wù),其中,所述讀取任務(wù)包括讀取所述第一數(shù) 據(jù)塊; 訪問與所述第一數(shù)據(jù)塊相關(guān)聯(lián)的第一元數(shù)據(jù)高速緩存處的第一參考加密代碼; 計算與所述第一數(shù)據(jù)塊有關(guān)的第一新加密代碼; 將所述第一新加密代碼與所述第一參考加密代碼進行比較;以及 如果所述第一新加密代碼與所述第一參考加密代碼相匹配,則接受所述讀取請求,其 中,接受包括促進所述讀取任務(wù)。
18. 如權(quán)利要求17所述的系統(tǒng),其中,所述機制進一步用于如果所述第一新加密代碼 與所述第一參考加密代碼不相匹配則拒絕所述讀取請求,其中,拒絕包括對所述讀取請求 做出響應(yīng)而發(fā)出錯誤消息,其中,如果包含所述第一參考加密代碼的數(shù)據(jù)塊從所述第一元 數(shù)據(jù)高速緩存遺漏,則所述讀取請求被提交以便促進針對遺漏的數(shù)據(jù)塊的所述讀取任務(wù)。
19. 如權(quán)利要求17所述的系統(tǒng),其中,所述第一參考加密代碼和所述第一新加密代碼 包括基于散列的消息認(rèn)證代碼(HMAC)。
20. 如權(quán)利要求17所述的系統(tǒng),其中,所述軟件應(yīng)用包括在所述計算設(shè)備處運行的操 作系統(tǒng)。
21. 如權(quán)利要求17所述的系統(tǒng),其中,所述機制進一步用于: 從所述計算設(shè)備處的軟件應(yīng)用接收寫入請求以執(zhí)行與第二數(shù)據(jù)塊有關(guān)的寫入任務(wù),其 中,所述寫入任務(wù)包括將所述第二數(shù)據(jù)塊寫入到存儲在所述存儲設(shè)備處的所述數(shù)據(jù); 訪問與所述第二數(shù)據(jù)塊相關(guān)聯(lián)的第二元數(shù)據(jù)高速緩存處的第二參考加密代碼; 計算與所述第二數(shù)據(jù)塊有關(guān)的第二新加密代碼; 在所述第二元數(shù)據(jù)高速緩存中由所述第二新加密代碼代替所述第二參考加密代碼;以 及 接受所述寫入請求,其中接受包括促進所述寫入任務(wù)。
22. 如權(quán)利要求21所述的系統(tǒng),其中,所述第二元數(shù)據(jù)高速緩存維護所述第二新加密 代碼,以使得所述第二新加密代碼用作參考加密代碼,用于未來的讀取請求。
23. 包括多個指令的至少一個機器可讀存儲介質(zhì),所述指令對在計算設(shè)備上被執(zhí)行做 出響應(yīng)而使所述計算設(shè)備執(zhí)行根據(jù)一個或多個操作的方法,所述一個或多個操作包括: 從計算設(shè)備處的軟件應(yīng)用接收讀取請求以便執(zhí)行與存儲在耦合到所述計算設(shè)備的存 儲設(shè)備處的數(shù)據(jù)的第一數(shù)據(jù)塊有關(guān)的讀取任務(wù),其中,所述讀取任務(wù)包括讀取所述第一數(shù) 據(jù)塊; 訪問與所述第一數(shù)據(jù)塊相關(guān)聯(lián)的第一元數(shù)據(jù)高速緩存處的第一參考加密代碼; 計算與所述第一數(shù)據(jù)塊有關(guān)的第一新加密代碼; 將所述第一新加密代碼與所述第一參考加密代碼進行比較;以及 如果所述第一新加密代碼與所述第一參考加密代碼相匹配,則接受所述讀取請求,其 中,接受包括促進所述讀取任務(wù)。
24. 如權(quán)利要求23所述的機器可讀存儲介質(zhì),其中,所述一個或多個操作進一步包括: 如果所述第一新加密代碼與所述第一參考加密代碼不相匹配,則拒絕所述讀取請求,其中, 拒絕包括對所述讀取請求做出響應(yīng)而發(fā)出錯誤消息,其中,如果包含所述第一參考加密代 碼的數(shù)據(jù)塊從所述第一元數(shù)據(jù)高速緩存遺漏,則所述讀取請求被提交以便促進針對遺漏的 數(shù)據(jù)塊的所述讀取任務(wù)。
25. 如權(quán)利要求23所述的機器可讀存儲介質(zhì),其中,所述第一參考加密代碼和所述第 一新加密代碼包括基于散列的消息認(rèn)證代碼(HMAC)。
26. 如權(quán)利要求23所述的機器可讀存儲介質(zhì),其中,所述軟件應(yīng)用包括在所述計算設(shè) 備處運行的操作系統(tǒng)。
27. 如權(quán)利要求23所述的機器可讀存儲介質(zhì),其中,所述一個或多個操作進一步包括: 從所述計算設(shè)備處的軟件應(yīng)用接收寫入請求以便執(zhí)行與第二數(shù)據(jù)塊有關(guān)的寫入任務(wù), 其中,所述寫入任務(wù)包括將所述第二數(shù)據(jù)塊寫入到存儲在所述存儲設(shè)備處的所述數(shù)據(jù); 訪問與所述第二數(shù)據(jù)塊相關(guān)聯(lián)的第二元數(shù)據(jù)高速緩存處的第二參考加密代碼; 計算與所述第二數(shù)據(jù)塊有關(guān)的第二新加密代碼; 在所述第二元數(shù)據(jù)高速緩存中由所述第二新加密代碼代替所述第二參考加密代碼;以 及 接受所述寫入請求,其中,接受包括促進所述寫入任務(wù)。
28. 如權(quán)利要求27所述的機器可讀存儲介質(zhì),其中,所述第二元數(shù)據(jù)高速緩存維護所 述第二新加密代碼,以使得所述第二新加密代碼用作參考加密代碼,用于未來的讀取請求。
29. 如權(quán)利要求27所述的機器可讀存儲介質(zhì),其中,所述第二參考加密代碼和所述第 二新加密代碼包括基于散列的消息認(rèn)證代碼(HMAC)。
30. 如權(quán)利要求27所述的機器可讀存儲介質(zhì),其中,所述軟件應(yīng)用包括在所述計算設(shè) 備處運行的操作系統(tǒng)。
【文檔編號】G06F21/60GK104067287SQ201380006289
【公開日】2014年9月24日 申請日期:2013年8月12日 優(yōu)先權(quán)日:2012年8月31日
【發(fā)明者】D·卡薩特金 申請人:英特爾公司