專利名稱:對地址的加擾和對需存儲于存儲設(shè)備中的寫入數(shù)據(jù)的加密的制作方法
對地址的加擾和對需存儲于存儲設(shè)備中的寫入數(shù)據(jù)的加密
背景技術(shù):
電子設(shè)備通常包括存儲設(shè)備以存儲數(shù)據(jù)。存儲設(shè)備可以是用于暫時存儲包括用戶數(shù)據(jù)或應(yīng)用程序數(shù)據(jù)、機器可讀指令等各種類型的數(shù)據(jù)的易失性內(nèi)存設(shè)備??商娲?,存儲設(shè)備可以是諸如基于磁盤的存儲設(shè)備或非易失性內(nèi)存設(shè)備的持久性存儲設(shè)備。存儲于存儲設(shè)備中的數(shù)據(jù)可以包括敏感數(shù)據(jù)或機密數(shù)據(jù),諸如安全密鑰、用戶憑證、金融信息、個人信息等。如果電子設(shè)備被盜或者以未經(jīng)授權(quán)的方式進行訪問,則黑客可以試圖獲取存儲設(shè)備的內(nèi)容以獲得存儲于存儲設(shè)備中的敏感信息或機密信息。
結(jié)合以下附圖描述一些實施例:圖1和圖2是包含一些實施例的示例性布置的框圖;以及圖3和圖4是根據(jù)一些實施例對存儲設(shè)備的內(nèi)容進行保護的過程的流程圖。
具體實施例方式根據(jù)一些實施方式,提供技術(shù)或機理來保護電子設(shè)備中的存儲設(shè)備的內(nèi)容,電子設(shè)備可以是計算機、個人數(shù)字助理、電子電器、存儲服務(wù)器、移動電話或其他類型的電子設(shè)備。在一些示例中,存儲設(shè)備可以是使用動態(tài)隨機存取內(nèi)存(DRAM)技術(shù)或靜態(tài)隨機存取內(nèi)存(SRAM)技術(shù)實施的易失性內(nèi)存設(shè)備。在替代示例中,存儲設(shè)備可以是諸如快閃內(nèi)存設(shè)備的非易失性內(nèi)存設(shè)備。作為又一個示例,存儲設(shè)備可以是基于磁盤的存儲設(shè)備,諸如硬盤驅(qū)動器或光盤驅(qū)動器。在其他示例中,可以使用其他類型的存儲設(shè)備。圖1描述包括存儲設(shè)備請求者102、存儲設(shè)備控制器104 (提供有根據(jù)一些實施方式的數(shù)據(jù)保護機理)和存儲設(shè)備106的示例性布置。存儲設(shè)備請求者102能夠通過存儲設(shè)備控制器104訪問(讀取或?qū)懭?存儲設(shè)備106的內(nèi)容。存儲設(shè)備請求者102的示例包括處理器、輸入/輸出(I/O)控制器或者其他類型的請求者。存儲設(shè)備總線108將存儲設(shè)備控制器104和存儲設(shè)備106互相連接。存儲設(shè)備總線108包括控制部分(用于承載控制信號)、地址部分(用于承載地址信號)和數(shù)據(jù)部分(用于承載從存儲設(shè)備106讀取的或?qū)懭氪鎯υO(shè)備106的數(shù)據(jù))??偩€108的控制部分、地址部分和數(shù)據(jù)部分作為示例被單獨示出。各種實施方式可以以獨立的連接擁有這些部分,但是這些部分也可以以公用總線信號復(fù)用或發(fā)送,等等。同樣,控制部分、地址部分和/或數(shù)據(jù)部分可以被實現(xiàn)為有線或無線連接。在無線實施方式中,使用無線協(xié)議來發(fā)送控制部分、地址部分和/或數(shù)據(jù)部分。如圖1所示,存儲設(shè)備控制器104可以提供存儲設(shè)備地址110以訪問存儲設(shè)備106的位置。針對寫入操作,可以提供寫入數(shù)據(jù)112至存儲設(shè)備106,并且針對讀取操作,可以從存儲設(shè)備106獲取讀取數(shù)據(jù)114。為了保護存儲設(shè)備106的內(nèi)容,從存儲設(shè)備控制器104發(fā)送到存儲設(shè)備106的寫入數(shù)據(jù)112包括加密的寫入數(shù)據(jù)。如果從由加密所保護的存儲設(shè)備106的位置讀取數(shù)據(jù),則對應(yīng)的讀取數(shù)據(jù)114是加密的讀取數(shù)據(jù)。
為了進一步保護存儲設(shè)備106的內(nèi)容,存儲設(shè)備地址110可以是加擾的地址。注意,不是存儲設(shè)備106中的所有位置都必須通過數(shù)據(jù)加密和地址加擾來保護,在一些示例中,存儲設(shè)備106的某些位置不用進行數(shù)據(jù)加密和/或地址加擾。例如,針對特定的存儲位置,數(shù)據(jù)加密和/或地址加擾可以被選擇性地啟用或禁用。數(shù)據(jù)加密和/或地址加擾的選擇性啟用/禁用可以通過包括命令字段來實現(xiàn),其中命令字段具有用于指定對應(yīng)的存儲位置是否通過數(shù)據(jù)加密和/或地址加擾進行保護的存儲訪問命令??商娲模渌麢C理可以被用于針對特定存儲位置選擇性地啟用/禁用數(shù)據(jù)加密和/或地址加擾,諸如通過使用配置信息、應(yīng)用程序接口(API)等。使用地址加擾和數(shù)據(jù)加密兩者提高了存儲于存儲設(shè)備106中的數(shù)據(jù)的保護級別。通過這種方法,降低了黑客能夠獲取存儲設(shè)備中的受保護數(shù)據(jù)的內(nèi)容的可能性。在試圖從存儲設(shè)備106獲取數(shù)據(jù)的過程中,黑客可能盜走電子設(shè)備,從該電子設(shè)備拆下存儲設(shè)備106,或者以其他方式獲得對存儲設(shè)備106的未經(jīng)授權(quán)的訪問(或者物理的或電子的)。雖然圖1僅僅示出具有數(shù)據(jù)保護機理以保護存儲于存儲設(shè)備106中的數(shù)據(jù)的一個存儲設(shè)備控制器104,但是要注意的是可以存在具有針對其他存儲設(shè)備的類似數(shù)據(jù)保護機理的另外的存儲設(shè)備控制器。存儲設(shè)備控制器104包括對(未加密的)寫入數(shù)據(jù)進行加密的加密模塊116和對加密的讀取數(shù)據(jù)114進行解密的解密模塊118。解密模塊118輸出解密后的讀取數(shù)據(jù)。加密模塊116和解密模塊118中的每一個被供給有執(zhí)行相應(yīng)的加密或解密的密鑰。密鑰可以是存儲于密鑰存儲122中的數(shù)據(jù)密鑰120。可替代的,提供給加密模塊116和解密模塊118的密鑰可以是由密鑰混合器124輸出的混合密鑰。密鑰混合器124將來自密鑰存儲122的數(shù)據(jù)密鑰120與地址信息混合在一起輸出混合密鑰。數(shù)據(jù)密鑰與地址信息的混合可以是數(shù)據(jù)密鑰和地址信息的異或。在其他實施方式中,可以使用數(shù)據(jù)密鑰和地址信息的混合的其他類型。注意,在圖1中,以虛線輪廓描繪密鑰混合器124,意味著在一些示例中,存儲設(shè)備控制器104中未提供密鑰混合器124。由加密模塊116應(yīng)用的加密方式可以是各種加密方式中的一種。例如,快速加密技術(shù)可以是其中加密密鑰與寫入數(shù)據(jù)進行異或(XOR)的XOR技術(shù)。使用基于XOR的加密技術(shù)的好處是,基于XOR的加密技術(shù)相對快速,并且可以支持存儲設(shè)備106的較快的訪問速度,而不需要在寫入路徑和讀取路徑中加入延遲。因此,加密模塊116可以應(yīng)用以下異或操作:A K = C,其中A表示需與加密密鑰K (數(shù)據(jù)密鑰120或混合密鑰)進行XOR以產(chǎn)生加密的寫入數(shù)據(jù)(C)的輸入明文數(shù)據(jù)(寫入數(shù)據(jù))。為了執(zhí)行解密,根據(jù)C I< = A,加密的讀取數(shù)據(jù)(C)可以與加密密鑰K進行X0R,以恢復(fù)初始明文(A)。在替代實施方式中,可以取代使用基于XOR的加密技術(shù),使用更高級別的加密技術(shù)。例如,更高級別的加密方式可以是高級加密標準(AES)加密。比起用于XOR加密方式的密鑰,AES加密密鑰更加難于侵入。然而,AES加密方式會伴隨增加的電路復(fù)雜性一起發(fā)生(因為必須使用更多電路來實施AES加密),這可能增加訪問時間,或增加解決執(zhí)行AES加密時涉及的訪問時間增加的問題時的復(fù)雜度。在其它示例中,可以使用其他類型的更高級別的加密方式。
在密鑰混合器124中,與數(shù)據(jù)密鑰120混合的地址信息可以包括以下的一個或組合:(I)由存儲設(shè)備請求者102提供的初始(未加擾)物理地址的至少一部分,(2)加擾的物理地址的至少一部分,以及(3)虛擬地址信息(加擾的虛擬地址或未加擾的虛擬地址)的至少一部分。“虛擬地址”指邏輯地址,邏輯地址是通常由電子設(shè)備的更高級別部件(諸如操作系統(tǒng)或文件系統(tǒng))使用的虛擬地址空間的部分。虛擬地址空間通常大于定義存儲設(shè)備106中的實際有效存儲位置的物理地址空間。存儲于密鑰存儲122中的每個數(shù)據(jù)密鑰120可以是隨機生成的密鑰,其可以由存儲設(shè)備控制器104本身生成或者由存儲設(shè)備控制器104外部的部件生成。例如,數(shù)據(jù)密鑰可以由在首次啟動電子設(shè)備時執(zhí)行各種初始化功能的系統(tǒng)啟動代碼(諸如基本輸入/輸出系統(tǒng)(BIOS)代碼)生成??商娲?,數(shù)據(jù)密鑰可以由作為電子設(shè)備芯片組的一部分的管理引擎生成。作為又一個替代例,數(shù)據(jù)密鑰可以基于用戶輸入而生成。作為另一個示例,數(shù)據(jù)密鑰可以由處理器、可信平臺模塊或其他部件生成。數(shù)據(jù)密鑰還可以通過電子設(shè)備所連接的網(wǎng)絡(luò)連接或者管理總線接收。通常,在不使用通過對電子設(shè)備中的部件進行逆向工程能夠發(fā)現(xiàn)的數(shù)據(jù)的情況下生成數(shù)據(jù)密鑰。隨機數(shù)據(jù)密鑰可以基于隨機數(shù)生成器生成。同樣或可替代的,隨機數(shù)據(jù)密鑰可以基于日期和/或時間而生成。為了提高安全性,用于分別由加密模塊116和解密模塊118執(zhí)行加密和解密的數(shù)據(jù)密鑰隨著每次系統(tǒng)復(fù)位或重啟而改變。可替代的,在電子設(shè)備從低功率狀態(tài)(諸如待機狀態(tài)、休眠狀態(tài)或其他低功率狀態(tài))恢復(fù)時,可以生成不同的數(shù)據(jù)密鑰。作為又一個替代例,可以采用加密刷新周期,在每個新的加密刷新周期中生成新的數(shù)據(jù)密鑰。密鑰存儲122是一旦損失或移除電力就丟失其內(nèi)容的易失性存儲設(shè)備。例如,密鑰存儲122可以是存儲設(shè)備控制器104中的寄存器,或者可替代的,密鑰存儲122可以是存儲設(shè)備106的一部分。密鑰存儲122可以是響應(yīng)于預(yù)定事件(諸如電子設(shè)備關(guān)閉、復(fù)位、進入低功率狀態(tài)、啟動新的加密刷新周期等)而復(fù)位的只寫/寫入一次的存儲設(shè)備(例如寄存器)。只寫存儲意味著密鑰存儲122不能由存儲設(shè)備控制器104外部的部件讀取,而寫入一次存儲意味著密鑰存儲122在每個預(yù)定時間間隔期間(例如,電子設(shè)備在復(fù)位周期、重啟周期或功率周期之間的工作時間期間;特定的刷新周期時間間隔期間等)只能被寫入一次。如上所述,由存儲設(shè)備控制器104提供以訪問存儲設(shè)備106中的位置的存儲設(shè)備地址110可以是加擾的地址。采用地址加擾允許在由存儲于存儲設(shè)備106中的加密數(shù)據(jù)所提供的保護上提供保護附加層。在一些實例中,地址加擾可以由存儲設(shè)備控制器104中的地址加擾器126執(zhí)行。在替代示例中,代替提供存儲設(shè)備控制器104中的地址加擾器126,地址加擾器128可以被提供為存儲設(shè)備請求者102的一部分,或者可替代的,地址加擾器128可以被提供在存儲設(shè)備請求者102和存儲設(shè)備控制器104之間(換句話說,地址加擾器可以被提供在獨立于存儲設(shè)備請求者102和存儲設(shè)備控制器104的部件中)。對初始地址進行加擾可以使用各種技術(shù)中的任何一種來執(zhí)行。例如,初始地址的地址位可以被變換位置??商娲?,初始地址可以通過使用諸如隨機生成密鑰的密鑰來加擾。用于對地址進行加擾的密鑰可以是數(shù)據(jù)密鑰120 (存儲于密鑰存儲122中)或不同的密鑰。密鑰可以與初始地址混合或者應(yīng)用于初始地址以生成加擾的地址。可替代的,地址加擾可以通過對初始地址進行散列以產(chǎn)生表示加擾后地址的散列值來執(zhí)行。作為又一個替代例,可以存儲諸如表格的數(shù)據(jù)結(jié)構(gòu),以將輸入初始地址映射到輸出地址,其中輸出地址被認為是加擾的地址。在其他實施方式中,可以使用其他技術(shù)。在密鑰被用于對地址進行加擾的實施方式中,可以存在各種可能的情況(以下闡述其中的一些情況)。在第一種情況中,地址加擾器126或128可以使用數(shù)據(jù)密鑰120對初始物理地址進行加擾以形成加擾的地址。密鑰混合器124將初始物理地址與數(shù)據(jù)密鑰120混合以形成混合密鑰,并且混合密鑰可以分別由加密模塊116和解密模塊118使用以加密或解密數(shù)據(jù)。第二種情況涉及使用不同于數(shù)據(jù)密鑰120的地址密鑰對初始物理地址進行加擾的地址加擾器128或128。初始物理地址由密鑰混合器124與數(shù)據(jù)密鑰120混合,以形成用于加密或解密數(shù)據(jù)的混合密鑰。在第三種情況中,地址加擾器126或128可以使用與用于加密數(shù)據(jù)的技術(shù)不同的技術(shù)來加擾初始物理地址。例如,第一加密技術(shù)被用于使用密鑰(數(shù)據(jù)密鑰或不同于數(shù)據(jù)密鑰的地址密鑰)對初始物理地址進行加擾以形成加擾的地址,而第二加密技術(shù)被用于使用數(shù)據(jù)密鑰(代替混合密鑰)來加密寫入數(shù)據(jù)以輸出加密的寫入數(shù)據(jù)。在第四種情況中,加擾的地址可以使用不同于數(shù)據(jù)密鑰的地址密鑰而生成。加擾的地址與數(shù)據(jù)密鑰混合以形成混合密鑰來加密寫入數(shù)據(jù)。在第五種情況中,加擾的地址可以使用數(shù)據(jù)密鑰而生成。加擾的地址與數(shù)據(jù)密鑰混合以形成混合密鑰來加密寫入數(shù)據(jù)。在第六種情況中,加擾的地址可以使用不同于用于加密寫入數(shù)據(jù)的加密技術(shù)的加密技術(shù)而生成。在這種情況下,數(shù)據(jù)密鑰被用于代替混合密鑰來加密數(shù)據(jù)。在第七種情況中,初始物理地址可以被加擾以形成加擾的地址,但是虛擬地址(或者加擾的虛擬地址)可以與數(shù)據(jù)密鑰混合,以提供用于加密寫入數(shù)據(jù)的混合密鑰。這種情況的變體是將虛擬地址(或加擾的虛擬地址)用作加密寫入數(shù)據(jù)的數(shù)據(jù)密鑰??梢源嬖谠S多其他情況。另外,一些情況可以涉及以上情況中多種情況的組合。圖2示出另一個示例性布置,其包括被連接至內(nèi)存設(shè)備204的內(nèi)存控制器202(注意在不同的示例中,可以使用存儲設(shè)備控制器代替內(nèi)存控制器202,同時使用存儲設(shè)備代替內(nèi)存設(shè)備204)。內(nèi)存控制器202實施內(nèi)存保護機理(類似于以上所述)以保護存儲在內(nèi)存設(shè)備204中的數(shù)據(jù)。內(nèi)存設(shè)備204可以表示單個設(shè)備或者多個設(shè)備的組合(例如單個內(nèi)存芯片或多個內(nèi)存芯片,或者單個內(nèi)存模塊或多個內(nèi)存模塊)。注意根據(jù)圖2的實施方式不使用密鑰混合將數(shù)據(jù)密鑰與地址信息混合以形成混合密鑰來加密寫入數(shù)據(jù)。在替代實施方式中,諸如圖1的密鑰混合器124的密鑰混合器可以被加到圖2的內(nèi)存控制器202上。由內(nèi)存控制器202實施的內(nèi)存保護機理包括對需存儲在內(nèi)存設(shè)備204中的寫入數(shù)據(jù)進行加密的數(shù)據(jù)加密機理。內(nèi)存控制器202的內(nèi)存保護機理還包括地址加擾機理,以對指定內(nèi)存設(shè)備204中的位置的地址進行加擾。圖2進一步示出耦接至內(nèi)存控制器202的請求者206 (例如處理器、I/O控制器等)。請求者206能夠?qū)⒆x取或?qū)懭胝埱蟀l(fā)給內(nèi)存控制器202以在內(nèi)存設(shè)備204中讀取或?qū)懭霐?shù)據(jù)。針對寫入操作,如圖2所示,內(nèi)存控制器202包括寫入數(shù)據(jù)緩存區(qū)210以存儲傳入的寫入數(shù)據(jù)。加密模塊212將對來自寫入數(shù)據(jù)緩存區(qū)210的寫入數(shù)據(jù)應(yīng)用加密,并且提供加密的寫入數(shù)據(jù)以通過內(nèi)存總線214存儲在內(nèi)存設(shè)備204上。內(nèi)存總線214包括控制部分(具有控制信號)、地址部分(包含地址)和數(shù)據(jù)部分(包含需在內(nèi)存控制器202和內(nèi)存設(shè)備204之間傳送的數(shù)據(jù))。針對讀取操作,讀取數(shù)據(jù)從內(nèi)存設(shè)備204獲取并且被提供至解密模塊216。注意從內(nèi)存設(shè)備204讀取的數(shù)據(jù)可以是加密的數(shù)據(jù),使得解密模塊216向加密的讀取數(shù)據(jù)應(yīng)用解密,從而將解密的讀取數(shù)據(jù)輸出至讀取數(shù)據(jù)緩沖區(qū)218,在讀取數(shù)據(jù)緩沖區(qū)218中,讀取數(shù)據(jù)可以被提供至請求者206。由加密模塊212和解密模塊216應(yīng)用的加密或解密可以基于存儲在內(nèi)存控制器202中的密鑰存儲220中的數(shù)據(jù)密鑰。如圖2所述,密鑰存儲220可以存儲多個數(shù)據(jù)密鑰(表示為“數(shù)據(jù)密鑰I”……“數(shù)據(jù)密鑰n”,其中η彡2)。在一些實施方式中,內(nèi)存設(shè)備204的不同內(nèi)存區(qū)域可以使用不同的數(shù)據(jù)密鑰加密。如圖2所述,內(nèi)存設(shè)備具有多個內(nèi)存區(qū)域(“內(nèi)存區(qū)域I”……“內(nèi)存區(qū)域η”)。不同的內(nèi)存區(qū)域可以表示特定內(nèi)存設(shè)備的不同部分。多個內(nèi)存區(qū)域可以可替代地表示不同內(nèi)存設(shè)備。因此,在具有多個內(nèi)存設(shè)備的電子設(shè)備中,第一數(shù)據(jù)密鑰可以被用于保護第一內(nèi)存設(shè)備中的數(shù)據(jù),第二數(shù)據(jù)密鑰可以被用于保護第二內(nèi)存設(shè)備中的數(shù)據(jù),等等。在進一步的示例中,電子設(shè)備中可以存在不同類型的內(nèi)存設(shè)備,在這種情況下,不同的數(shù)據(jù)密鑰被用于保護存儲于不同類型的內(nèi)存設(shè)備中的數(shù)據(jù)。因此,例如,第一數(shù)據(jù)密鑰被用于保護第一類型的內(nèi)存設(shè)備(例如基于DRAM的內(nèi)存設(shè)備)中的數(shù)據(jù),第二數(shù)據(jù)密鑰被用于保護第二類型 的內(nèi)存設(shè)備(例如快閃內(nèi)存設(shè)備)中的數(shù)據(jù),等等。還要注意的是,電子設(shè)備中可以存在高速緩沖內(nèi)存,使得另一個數(shù)據(jù)密鑰被用于保護高速緩沖內(nèi)存。另外,還要注意的是,不同的數(shù)據(jù)密鑰可以根據(jù)怎樣使用不同的內(nèi)存區(qū)域而被用于相應(yīng)的內(nèi)存區(qū)域。例如,內(nèi)存區(qū)域中的一個可以是用于存儲與操作系統(tǒng)(OS)相關(guān)聯(lián)的數(shù)據(jù)或指令的操作系統(tǒng)區(qū)。另一個內(nèi)存區(qū)域可以存儲與非OS程序相關(guān)聯(lián)的數(shù)據(jù),諸如用戶數(shù)據(jù)和應(yīng)用程序數(shù)據(jù)??商娲模陔娮釉O(shè)備的操作的不同模式期間可以使用不同的數(shù)據(jù)密鑰,其中不同模式可以是指例如不同的安全級別。在其他實施方式中,不同級別的保護可以被應(yīng)用于不同的內(nèi)存區(qū)域。例如,基于XOR的加密方式可以被應(yīng)用于第一內(nèi)存區(qū)域,而AES加密方式或一些其他更高級別的加密方式被應(yīng)用于不同的內(nèi)存區(qū)域。另外,在一些實施方式中,不同的地址加擾被用于不同的內(nèi)存區(qū)域。例如,可以應(yīng)用不同的密鑰(數(shù)據(jù)密鑰或不同于數(shù)據(jù)密鑰的地址密鑰)以生成不同的地址加擾??商娲模梢詰?yīng)用不同的加密級別以給不同的內(nèi)存區(qū)域提供不同的地址加擾。被應(yīng)用于不同內(nèi)存區(qū)域的不同密鑰和/或不同加密級別和/或不同地址加擾可以在電子設(shè)備建立的時候或者在電子設(shè)備操作期間由用戶或管理員進行配置。內(nèi)存控制器202還包括事務(wù)地址緩沖區(qū)222以存儲與特定事務(wù)(讀取事務(wù)或?qū)懭胧聞?wù))相關(guān)聯(lián)的地址。地址加擾器224將地址加擾應(yīng)用到來自事務(wù)地址緩沖區(qū)222的地址上。加擾的地址從地址加擾器224被提供至地址控制和定時模塊226,地址控制和定時模塊226通過內(nèi)存總線214的地址部分輸出加擾的地址。注意,可以針對內(nèi)存設(shè)備中不同的內(nèi)存區(qū)域執(zhí)行不同的地址加擾。因此,例如,訪問第一內(nèi)存區(qū)域的地址以第一方式加擾,而訪問第二內(nèi)存區(qū)域的地址以不同的第二方式加擾。例如,對地址進行加擾的不同方式可以基于使用對不同內(nèi)存區(qū)域的不同地址進行加擾的不同密鑰??商娲?,不同的散列函數(shù)可以被用于加擾不同內(nèi)存區(qū)域的地址。同樣,不同的地址加擾技術(shù)可以針對存儲諸如用戶數(shù)據(jù)、圖形數(shù)據(jù)、OS數(shù)據(jù)等的不同類型數(shù)據(jù)的內(nèi)存區(qū)域而執(zhí)行。通過針對不同內(nèi)存區(qū)域使用不同的數(shù)據(jù)密鑰和/或不同的地址加擾,恢復(fù)可能包含敏感或保密數(shù)據(jù)的內(nèi)存區(qū)域的密鑰或具體地址加擾技術(shù)會變得更加困難。注意,某個OS數(shù)據(jù)可以是已知數(shù)據(jù),以使黑客可以基于已知的OS數(shù)據(jù),相對容易地對OS內(nèi)存區(qū)域的密鑰或具體地址加擾技術(shù)進行逆向工程。然而,如果不同的數(shù)據(jù)密鑰和/或地址加擾技術(shù)被用于包含非OS數(shù)據(jù)(例如,諸如用戶數(shù)據(jù)和應(yīng)用程序數(shù)據(jù))的內(nèi)存區(qū)域,則即使黑客針對OS內(nèi)存區(qū)域確定了數(shù)據(jù)密鑰和/或地址加擾技術(shù),黑客也不能訪問這種其他內(nèi)存區(qū)域的內(nèi)容。在一些實施方式中,注意OS數(shù)據(jù)和非OS數(shù)據(jù)可以分散在內(nèi)存設(shè)備204上。如果針對包含OS數(shù)據(jù)的內(nèi)存區(qū)域和針對包含非OS數(shù)據(jù)的內(nèi)存區(qū)域應(yīng)用不同的地址加擾,則地址加擾被設(shè)計為使得非OS內(nèi)存區(qū)域的最終的加擾后地址不會最終成為和針對OS內(nèi)存區(qū)域的最終加擾后地址一樣。圖3是由控制系統(tǒng)執(zhí)行的過程的流程圖。如這里所用,控制系統(tǒng)(或者相當于“控制子系統(tǒng)”)包括能夠執(zhí)行預(yù)定任務(wù)的處理電路。例如,控制系統(tǒng)可以包括以下中的任意一個或組合:圖1的存儲設(shè)備請求者102、圖1的存儲設(shè)備控制器104、圖2的請求者206以及圖2的內(nèi)存控制器202。控制系統(tǒng)接收(在302)地址位,在圖3的上下文中,地址位是與寫入存儲設(shè)備的請求相關(guān)聯(lián)的地址的一部分。控制系統(tǒng)然后對地址位進行加擾(在304)。然后,使用加密密鑰加密(在306)寫入數(shù)據(jù),加密密鑰是數(shù)據(jù)密鑰和地址信息的組合,其中地址信息可以包括以下的一個或組合:(I)初始(未加擾)物理地址的至少一部分,(2)加擾的物理地址的至少一部分,以及(3)虛擬地址信息(加擾的虛擬地址或未加擾的虛擬地址)的至少一部分。提供(在308)加密的寫入數(shù)據(jù)以存儲在存儲設(shè)備中。圖4是根據(jù)替代實施方式由控制系統(tǒng)執(zhí)行的過程的流程圖??刂葡到y(tǒng)接收(在402)與寫入多個存儲區(qū)域的多個請求相關(guān)聯(lián)的地址。對地址進行加擾(在404),其中對每個地址進行加擾是指對地址的至少一部分進行加擾。使用相應(yīng)的不同加密方式來加密(在406)與各個寫入請求相關(guān)聯(lián)的寫入數(shù)據(jù)段,其中不同的加密方式可以使用不同的加密密鑰(例如不同的數(shù)據(jù)密鑰)來實現(xiàn),或者使用不同的加密技術(shù)(例如基于XOR的加密方式、AES加密方式等)來實現(xiàn)。然后提供(在408)加密的寫入數(shù)據(jù)段以存儲于相應(yīng)的存儲區(qū)域中。用于實施圖3或圖4的過程的控制系統(tǒng)可以僅使用硬件或者使用硬件與被加載以在處理電路(處理電路可以是圖1或圖2中的請求者102或206的一部分或者存儲設(shè)備控制器104或內(nèi)存控制器202的一部分)上執(zhí)行的機器可讀指令的組合來實現(xiàn)。處理電路可以包括微處理器、微控制器、處理器模塊或子系統(tǒng)、可編程集成電路、可編程門陣列或另一個控制或計算設(shè)備。數(shù)據(jù)和指令被存儲在被實施為一個或多個計算機可讀或機器可讀存儲介質(zhì)的相應(yīng)存儲設(shè)備中。存儲介質(zhì)包括不同形式的內(nèi)存,包括諸如動態(tài)或靜態(tài)隨機存取內(nèi)存(DRAM或SRAM)的半導(dǎo)體內(nèi)存設(shè)備,可擦除可編程只讀內(nèi)存(EPROM),電可擦除可編程只讀內(nèi)存(EEPROM)以及快閃內(nèi)存;諸如硬盤、軟盤和可移動磁盤的磁盤;包括磁帶的其他磁性媒介質(zhì);諸如光盤(CD)或數(shù)字視頻光盤(DVD)的光學(xué)介質(zhì);或者其他類型的存儲設(shè)備。注意,以上討論的指令可以被提供在一個計算機可讀或機器可讀存儲介質(zhì)上,或者可替代的可以被提供在分布于具有可能的復(fù)數(shù)個節(jié)點的大系統(tǒng)中的多個計算機可讀或機器可讀存儲介質(zhì)上。這樣的計算機可讀或機器可讀存儲介質(zhì)被認為是物品的一部分(或成品)。物品或成品可以指任何制造的單個部件或多個部件。在上文中,闡述了許多細節(jié)以提供對這里公開的主題的理解。然而,實施方式可以在沒有這些細節(jié)的一些或全部的情況下被實踐。其他的實施方式可以包括從以上所討論的細節(jié)進行的修改和變形。所附權(quán)利要求旨在覆蓋這樣的修改和變形。
權(quán)利要求
1.一種方法,包括: 由控制系統(tǒng)接收(302)定義用于訪問存儲設(shè)備中的位置的地址的地址位; 由所述控制系統(tǒng)對所述地址位進行加擾(304); 使用加密密鑰對寫入數(shù)據(jù)進行加密,其中所述加密密鑰包括第一密鑰和地址信息的組合,其中所述地址信息是基于以下的一個或組合:所接收的地址位的至少一部分,加擾后的地址位的至少一部分,和虛擬地址信息的至少一部分;以及 由所述控制系統(tǒng)提供(308)加密后的寫入數(shù)據(jù),以存儲在所述存儲設(shè)備中由加擾后的地址位所指定的位置處。
2.根據(jù)權(quán)利要求1所述的方法,其中所述存儲設(shè)備中的由加擾之前的地址位所指定的位置不同于所述存儲設(shè)備中的由加擾后的地址位所指定的位置。
3.根據(jù)權(quán)利要求1的所述方法,其中所述第一密鑰和所述地址信息的組合包括所述第一密鑰和所述地址信息的異或。
4.根據(jù)權(quán)利要求1所述的方法,其中所述存儲設(shè)備具有復(fù)數(shù)個區(qū)域,并且其中不同的加密密鑰被用于對存儲于所述復(fù)數(shù)個區(qū)域中的各區(qū)域的數(shù)據(jù)進行加密。
5.根據(jù)權(quán)利要求1所述的方法,其中所述存儲設(shè)備具有復(fù)數(shù)個區(qū)域,所述方法進一步包括對所述復(fù)數(shù)個區(qū)域中的各區(qū)域應(yīng)用不同的加密級別。
6.根據(jù)權(quán)利要求1所述的方法,其中所述存儲設(shè)備具有復(fù)數(shù)個區(qū)域,所述方法進一步包括針對所述復(fù)數(shù)個區(qū)域中的各區(qū)域應(yīng)用不同的地址加擾。
7.根據(jù)權(quán)利要求1所述的方法,其中對所述地址位進行加擾是基于使用從所述第一密鑰和不同于所述第一密鑰的第二密鑰中選擇的密鑰。
8.根據(jù)權(quán)利要求1所述的方法,其中對所述地址位進行加擾包括選自以下中的一個:(I)基于對所述地址位應(yīng)用散列函數(shù)來加擾所述地址位,以及(2)基于使用將輸入地址映射至加擾后的輸出地址的數(shù)據(jù)結(jié)構(gòu)來加擾所述地址位。
9.根據(jù)權(quán)利要求1所述的方法,進一步包括: 從所述存儲設(shè)備中讀取加密的讀取數(shù)據(jù);并且 使用所述加密密鑰來解密所述加密的讀取數(shù)據(jù)。
10.一種系統(tǒng),包括: 至少一個存儲設(shè)備(204);以及 控制子系統(tǒng)(202、206),用于: 對用于訪問所述至少一個存儲設(shè)備的不同存儲區(qū)域的地址進行加擾,以形成相應(yīng)的加擾后地址; 使用不同的加密方式對對應(yīng)的復(fù)數(shù)個寫入數(shù)據(jù)段進行加密;以及 提供加密后的寫入數(shù)據(jù) 段,以存儲在由相應(yīng)的加擾后地址所指定的相應(yīng)存儲區(qū)域中。
11.根據(jù)權(quán)利要求10所述的系統(tǒng),其中所述不同的加密方式是基于對應(yīng)的不同加密密鑰的使用。
12.根據(jù)權(quán)利要求11所述的系統(tǒng),其中所述加密密鑰中的至少一個是數(shù)據(jù)密鑰和包含用于訪問所述至少一個存儲設(shè)備中的位置的地址的地址信息的混合。
13.根據(jù)權(quán)利要求10所述的系統(tǒng),其中所述不同的加密方式是基于對應(yīng)的不同加密技術(shù)的使用。
14.根據(jù)權(quán)利要求10所述的系統(tǒng),其中所述不同的存儲區(qū)域包括:(1)一個存儲設(shè)備的不同的存儲區(qū)域,或者(2)不同的存儲設(shè)備的不同的存儲區(qū)域。
15.根據(jù)權(quán)利要求10所述的系統(tǒng),其中所述不同的存儲區(qū)域用于存儲相應(yīng)的不同類型的數(shù)據(jù)。
16.根據(jù)權(quán)利要求10所述的系統(tǒng),其中所述控制子系統(tǒng)被配置為將地址信息、控制信息和數(shù)據(jù)信息中的至少 一個以無線方式發(fā)送至所述存儲設(shè)備。
全文摘要
接收訪問存儲設(shè)備(106、204)中的位置的地址,并且加擾所述地址。使用加密密鑰加密寫入數(shù)據(jù)。加密后的寫入數(shù)據(jù)存儲在所述存儲設(shè)備中由加擾后的地址所指定的位置處。
文檔編號G06F13/14GK103154963SQ201080069489
公開日2013年6月12日 申請日期2010年10月5日 優(yōu)先權(quán)日2010年10月5日
發(fā)明者克雷格·A·沃爾拉思 申請人:惠普發(fā)展公司,有限責任合伙企業(yè)