專利名稱:具有對(duì)抗重放攻擊的保護(hù)的用于存儲(chǔ)器加密的可調(diào)加密模式的制作方法
具有對(duì)抗重放攻擊的保護(hù)的用于存儲(chǔ)器加密的可調(diào)加密模式技術(shù)領(lǐng)域
本公開涉及對(duì)數(shù)據(jù)的密碼保護(hù),并且特別涉及對(duì)存儲(chǔ)器中的存儲(chǔ)區(qū)中存儲(chǔ)的軟件應(yīng)用的加密。
背景技術(shù):
需要保護(hù)由安全軟件應(yīng)用所使用的系統(tǒng)中的易失性存儲(chǔ)器的區(qū)免受未授權(quán)的實(shí)體的惡意修改。這些惡意修改(也稱作“攻擊”)可以是軟件攻擊或硬件攻擊。針對(duì)安全軟件應(yīng)用提供機(jī)密性和完整性保護(hù)的一種方法是,將大的易失性存儲(chǔ)器集成在中央處理單元(CPU)封裝中以被安全軟件應(yīng)用用作“專用存儲(chǔ)器”。然而,將大的易失性存儲(chǔ)器集成在CPU封裝中是昂貴的。
因此,安全軟件應(yīng)用典型地被存儲(chǔ)在外部(也就是在CPU外部)存儲(chǔ)器中。存儲(chǔ)安全軟件應(yīng)用的外部存儲(chǔ)器中的存儲(chǔ)區(qū)(區(qū)域)可以對(duì)系統(tǒng)中的操作系統(tǒng)(OS)來說可見或不可見。如果這些存儲(chǔ)區(qū)對(duì)OS來說可見,則需要保護(hù)這些存儲(chǔ)區(qū)免受軟件攻擊。如果這些存儲(chǔ)區(qū)對(duì)OS來說不可見(稱為“被竊存儲(chǔ)區(qū)域”)并且存在某種訪問控制機(jī)制,則需要保護(hù)這些存儲(chǔ)區(qū)免受硬件攻擊,也就是來自對(duì)外部存儲(chǔ)器具有物理訪問的攻擊者。
隨著下列詳細(xì)描述的進(jìn)行以及在參照附圖時(shí),要求保護(hù)的主題的實(shí)施例的特征將變得顯而易見,在附圖中相似的附圖標(biāo)記描繪相似的部分,以及在附圖中: 圖1示出包括被竊存儲(chǔ)區(qū)的系統(tǒng)存儲(chǔ)器; 圖2A示出擴(kuò)展調(diào)柄(tweak)的一個(gè)實(shí)施例; 圖2B不出擴(kuò)展調(diào)柄的另一實(shí)施例; 圖3是包括用于執(zhí)行存儲(chǔ)器加密的存儲(chǔ)器加密引擎的系統(tǒng)的框圖; 圖4是存儲(chǔ)要加密的數(shù)據(jù)的圖3中所示的外部存儲(chǔ)器中的存儲(chǔ)區(qū)的一部分的框圖; 圖5示出供應(yīng)用使用圖4中所示的外部存儲(chǔ)器中的存儲(chǔ)區(qū)的部分中的分區(qū)的方法; 圖6示出將可信應(yīng)用存儲(chǔ)在存儲(chǔ)器中的方法的一個(gè)實(shí)施例;以及 圖7示出將存儲(chǔ)器的附加分配添加至可信應(yīng)用的方法的一個(gè)實(shí)施例。
盡管下列詳細(xì)描述將在參照要求保護(hù)的主題的說明性實(shí)施例的情況下進(jìn)行,但是其許多替換、修改和變型將對(duì)本領(lǐng)域技術(shù)人員來說顯而易見。因此,意圖是要求保護(hù)的主題應(yīng)當(dāng)被寬泛地考慮,并且僅如所附權(quán)利要求中闡述的那樣來限定。
具體實(shí)施方式
圖1示出包括被竊存儲(chǔ)區(qū)域102的系統(tǒng)存儲(chǔ)器100的一個(gè)實(shí)施例。被竊存儲(chǔ)區(qū)域102是對(duì)操作系統(tǒng)(OS)來說不可見的存儲(chǔ)區(qū)(存儲(chǔ)部分)。系統(tǒng)存儲(chǔ)器100是“外部”存儲(chǔ)器,也就是與系統(tǒng)中的中央處理單元(CPU)分離。被竊存儲(chǔ)區(qū)域102包括多個(gè)物理頁106。三個(gè)軟件應(yīng)用104-1,104-2, 104-3駐留在跨越被竊存儲(chǔ)區(qū)域102中的一個(gè)或多個(gè)物理頁106的存儲(chǔ)區(qū)內(nèi)部。每個(gè)軟件應(yīng)用104-1,104-2,104-3跨越在系統(tǒng)(外部)存儲(chǔ)器100中的被竊存儲(chǔ)區(qū)域102的多個(gè)物理頁106上。
保護(hù)由安全軟件應(yīng)用所使用的存儲(chǔ)區(qū)的一種方法是,對(duì)系統(tǒng)存儲(chǔ)器100中的存儲(chǔ)區(qū)中存儲(chǔ)的數(shù)據(jù)進(jìn)行加密。使用在CPU內(nèi)部生成和存儲(chǔ)的密鑰,在CPU中執(zhí)行對(duì)存儲(chǔ)區(qū)中存儲(chǔ)的數(shù)據(jù)的加密和解密。然而,數(shù)據(jù)本身的加密被設(shè)計(jì)成僅提供數(shù)據(jù)的機(jī)密性。對(duì)存儲(chǔ)區(qū)中存儲(chǔ)的數(shù)據(jù)的加密有助于保護(hù)數(shù)據(jù)的機(jī)密性免受可以被動(dòng)地讀取外部存儲(chǔ)器或者可以在數(shù)據(jù)在CPU與系統(tǒng)存儲(chǔ)器100之間傳送時(shí)窺探該數(shù)據(jù)的攻擊者。
然而,對(duì)外部存儲(chǔ)器100中的存儲(chǔ)區(qū)中存儲(chǔ)的數(shù)據(jù)的加密未提供完整性檢驗(yàn)。將數(shù)據(jù)的加密形式存儲(chǔ)在外部存儲(chǔ)器100中的被竊存儲(chǔ)區(qū)域102中的存儲(chǔ)區(qū)中并未進(jìn)行保護(hù)以對(duì)抗可以主動(dòng)地修改或重放外部存儲(chǔ)器100中的被竊存儲(chǔ)區(qū)域102中存儲(chǔ)的存儲(chǔ)圖像的部分的攻擊者。
惡意攻擊者(敵方)可以從外部存儲(chǔ)器100中的一個(gè)存儲(chǔ)位置進(jìn)行拷貝,并寫入到外部存儲(chǔ)器中的不同存儲(chǔ)位置。例如,攻擊者可以將在地址a處的頁X的內(nèi)容拷貝到在地址b處的頁y上。對(duì)加密存儲(chǔ)區(qū)具有讀/寫訪問的敵方可以通過下述操作來執(zhí)行重放攻擊:觀察加密存儲(chǔ)區(qū)何時(shí)被修改(例如在時(shí)間2 (t2)處);以及通過拷貝在時(shí)間I (tl)處寫入的加密區(qū)的內(nèi)容來重置存儲(chǔ)區(qū)。執(zhí)行重放攻擊的攻擊者可以具有對(duì)可以在不同時(shí)間駐留在相同存儲(chǔ)區(qū)域處的兩個(gè)不同應(yīng)用(上下文)之一的控制。例如,攻擊者可以使用應(yīng)用中的一個(gè)來攻擊另一應(yīng)用。
減輕重放攻擊的一種方法是,將具有加密數(shù)據(jù)的認(rèn)證標(biāo)簽安全地存儲(chǔ)在外部存儲(chǔ)器100中。然而,這需要昂貴的附加存儲(chǔ)器。
本發(fā)明的一個(gè)實(shí)施例通過將這種攻擊的影響減小至僅僅是能夠引起對(duì)存儲(chǔ)圖像的隨機(jī)(不可預(yù)測且不可控制的)改變來減輕重放攻擊。
具有調(diào)柄和密文竊取的XEX加密模式(XTS) —高級(jí)加密標(biāo)準(zhǔn)(AES)可調(diào)塊密碼(IEEE標(biāo)準(zhǔn)1619-2007)是在國家標(biāo)準(zhǔn)與技術(shù)研究院(NIST)聯(lián)邦信息處理標(biāo)準(zhǔn)(FIPS)140-2下的操作模式,所述FIPS 140-2定義用于對(duì)恒定長度塊中存儲(chǔ)的數(shù)據(jù)進(jìn)行密碼保護(hù)的架構(gòu)的元件。在一個(gè)實(shí)施例中,提供了增強(qiáng)標(biāo)準(zhǔn)XTS-AES操作模式以及用于在將XTS-AES操作模式用于塊密碼時(shí)實(shí)施存儲(chǔ)器加密的方法和設(shè)備的針對(duì)塊密碼的新操作模式。
XTS-AES操作模式適用于對(duì)被劃分成連續(xù)相等大小的數(shù)據(jù)單元的數(shù)據(jù)流的加密,除了該數(shù)據(jù)流的最后數(shù)據(jù)單元可以小于其他數(shù)據(jù)單元之外。每個(gè)數(shù)據(jù)單元在密鑰范圍內(nèi)具有128個(gè)或更多個(gè)數(shù)據(jù)位。密鑰范圍是由特定密鑰加密的、被劃分成相等大小的數(shù)據(jù)單元的數(shù)據(jù)。密鑰范圍由下述三個(gè)非負(fù)整數(shù)來標(biāo)識(shí):對(duì)應(yīng)于第一數(shù)據(jù)單元的調(diào)柄值、數(shù)據(jù)單元大小、以及數(shù)據(jù)的長度。調(diào)柄值是用來表示利用XTS-AES加密或解密的數(shù)據(jù)流中的數(shù)據(jù)的邏輯位置的128位值。每個(gè)數(shù)據(jù)單元被指派作為非負(fù)整數(shù)的調(diào)柄值。以任意非負(fù)整數(shù)開始連續(xù)地指派調(diào)柄值。
XTS-AES操作模式是“可調(diào)窄塊加密”,并且是用于盤加密(靜態(tài)數(shù)據(jù)加密)的標(biāo)準(zhǔn)模式。它可以被視為電子碼本(ECB)模式中的加密,其中該加密使用作為其“索引”位置的函數(shù)對(duì)數(shù)據(jù)塊的加密進(jìn)行修改的調(diào)柄值(調(diào)柄)。在ECB模式中,每個(gè)明文塊利用塊密碼被獨(dú)立地加密。對(duì)于盤加密,在XTS-AES操作模式中,該調(diào)柄被用于將加密綁定至所加密的盤驅(qū)動(dòng)器(存儲(chǔ)介質(zhì))上的扇區(qū)。
在一個(gè)實(shí)施例中,存儲(chǔ)器加密單元使用XTS-AES操作模式以用于將加密綁定至經(jīng)處理的數(shù)據(jù)塊的(物理)存儲(chǔ)地址。使用AES-XTS在很大程度上幫助對(duì)抗下述攻擊者:所述攻擊者可以物理地操控經(jīng)加密的存儲(chǔ)圖像,并且通過交換加密塊的位置或者通過利用其他加密塊蓋寫加密塊來進(jìn)行攻擊。由于AES-XTS調(diào)柄是物理存儲(chǔ)地址的函數(shù),因此這種攻擊變?yōu)榈刃в谝鸸粽卟豢深A(yù)測且不可控制的隨機(jī)改變的弱得多的攻擊。換言之,攻擊者從交換/蓋寫中獲得不多于攻擊者可以從“盲目地”改變存儲(chǔ)器中所獲得的東西。
然而,由于XTS-AES調(diào)柄是物理地址的函數(shù),因此它不進(jìn)行保護(hù)以對(duì)抗重放攻擊,在重放攻擊中攻擊者利用先前寫入到相同地址的加密塊來蓋寫塊。為了說明這種攻擊的潛在嚴(yán)重性,考慮在時(shí)間I (tl)處將經(jīng)加密的圖像寫入到存儲(chǔ)器中的頁X的軟件應(yīng)用。攻擊者使用對(duì)存儲(chǔ)器的硬件訪問來保存該經(jīng)加密的圖像。然后,攻擊者經(jīng)由軟件方法來驅(qū)逐該軟件應(yīng)用,并加載惡意軟件應(yīng)用以占據(jù)相同存儲(chǔ)區(qū)。攻擊者然后物理地重放經(jīng)加密的圖像的拷貝至頁X,并且此時(shí),惡意軟件應(yīng)用獲得圖像的全部所有權(quán)。例如,惡意軟件應(yīng)用可以將秘密解密為明文并將其轉(zhuǎn)儲(chǔ)至該惡意軟件應(yīng)用所選擇的任何存儲(chǔ)位置。即使CPU針對(duì)存儲(chǔ)加密單元使用有限數(shù)目的密鑰,也可以發(fā)動(dòng)該攻擊,這是因?yàn)槠鋬H需要重復(fù)攻擊過程足夠的次數(shù)以耗盡密鑰可能性。這種攻擊可以被用來從CPU獲得任何秘密(例如增強(qiáng)隱私標(biāo)識(shí)符(EPID))或者從敏感代碼獲得任何秘密。
在用于盤加密的標(biāo)準(zhǔn)XTS模式中,通過首先生成調(diào)柄值并且然后使用該調(diào)柄值從明文生成密文來執(zhí)行其在單元(U)中的索引為(j)的數(shù)據(jù)塊P的AES-XTS。
例如,使用塊標(biāo)識(shí)符(單元(U),該單元(U)中單元的位置(j))上的16字節(jié)密鑰值(Kl)以及多項(xiàng)式(Poly) x128+x7+x2+x+l來生成調(diào)柄值(X),如下所不: X = AES (Kl, u) * 2J mod Poly等式 I 其中:“*”表示無進(jìn)位乘法。
已生成調(diào)柄值(X),則使用該調(diào)柄值(X)和另一 16字節(jié)密鑰值(K2)從明文(P)生成密文(C),如下所示: C = AES (K2, P+X) +X等式 2AES-XTS針對(duì)單元(U)的值預(yù)留64位(8個(gè)字節(jié))。由于AES加密在16字節(jié)塊上操作,因此將塊(16個(gè)字節(jié))(=“u”)的如等式I所示加密的64個(gè)剩余位(8個(gè)字節(jié))定義為O。
可以通過將“單元”定義為64字節(jié)高速緩存線并定義索引j=0,I, 2,3以指示該高速緩存線中的16字節(jié)數(shù)據(jù)塊的位置,來將AES-XTS應(yīng)用于存儲(chǔ)器加密。在這種情況下,“u”的值是高速緩存線的(物理)地址。典型地使用48位來對(duì)物理地址進(jìn)行編碼。
在本發(fā)明的一個(gè)實(shí)施例中,提供了基于擴(kuò)展標(biāo)準(zhǔn)AES-XTS模式以使用調(diào)柄中的更多信息(擴(kuò)展調(diào)柄)的新操作模式。擴(kuò)展調(diào)柄除包括標(biāo)準(zhǔn)信息(例如高速緩存線地址和塊位置)外,還包括時(shí)間戳值。在另一實(shí)施例中,擴(kuò)展調(diào)柄包括例如至少一個(gè)附加標(biāo)簽。在一個(gè)實(shí)施例中,附加標(biāo)簽是在系統(tǒng)中正在運(yùn)行的軟件應(yīng)用的版本號(hào)。將版本號(hào)添加至該調(diào)柄防止了從軟件應(yīng)用的舊版本拷貝高速緩存線并在軟件應(yīng)用的較新版本上的相同地址處重放該高速緩存線以在運(yùn)行舊版本的同時(shí)獲得較新版本的特權(quán)。
在一個(gè)實(shí)施例中,擴(kuò)展調(diào)柄中的存儲(chǔ)附加信息的位駐留在擴(kuò)展調(diào)柄的頭(最高有效)64位中。如較早所討論的,在標(biāo)準(zhǔn)AES-XTS模式中將最高有效位設(shè)置為O。在另一實(shí)施例中,附加信息駐留在被保證為O的其他位中。因此,擴(kuò)展AES-XTS是標(biāo)準(zhǔn)AES-XTS的推廣,這是因?yàn)槿绻懈郊有畔⑽煌嘶罯,則加密是標(biāo)準(zhǔn)XTS模式。
在一個(gè)實(shí)施例中,如下所示在等式3中生成擴(kuò)展調(diào)柄: X = AES (Kl, L I T I u) * 2j mod Poly等式 3 其中,P是在由T指示的時(shí)間處加密并且具有標(biāo)簽L的單元u中的索引為j的數(shù)據(jù)塊,并且符號(hào)“I”表示級(jí)聯(lián)。
在另一實(shí)施例中,不使用標(biāo)簽,以及使用高速緩存線地址和時(shí)間來生成擴(kuò)展調(diào)柄。生成擴(kuò)展調(diào)柄,使得該調(diào)柄描述在時(shí)間0,I,…,2~ (32)-1處對(duì)區(qū)的地址進(jìn)行計(jì)數(shù)的連續(xù)整數(shù)。針對(duì) CL [j](在時(shí)間 ΜΕ 處)(其中,j =0, I, 2,m_l,以及 ΜΕ=0,I, 2,…,2 (32)-1)的調(diào)柄是: TffEAK = 00—0 [127: 55] | (ACL [j] 6) [33: n+14] | TIME [31:0] | (ACL[j] 6) [n+13: 0] 其中:單元=高速緩存線(CL);每個(gè)CL是作為(4 X 128位(2~ (20))個(gè)塊)的64個(gè)字節(jié); 每個(gè)CL具有40位基地址ACL [39: O],其中ACL [5:0] =
;分區(qū)具有2~n個(gè)MB ;m (分區(qū)中CL的數(shù)目)=2~(n+14);j是數(shù)據(jù)流中的 m個(gè)CL之一; 在不同時(shí)間處,該數(shù)據(jù)流是m個(gè)CL,即CL [j](在時(shí)間t處),如下: CL [O], CL[1],…,CL [m-1]在時(shí)間 t=0 處 CL [O], CL[1],…,CL [m-1]在時(shí)間 t=l 處 CL [O], CL [I],…,CL [m-Ι]在時(shí)間 t=2~ (32)-1 處以及,針對(duì)CL [j]的基地址由ACL [j]表示(其中j = O, I, 2,…,m-1)。
當(dāng)仔細(xì)檢查數(shù)據(jù)流的CL (單元)(按照上面指定的順序)時(shí),TffEAK在下述所有正整數(shù)上連續(xù)運(yùn)行: 開始于正整數(shù) 00 …O [127: 55] I (ACL [O] 6) [33: n+14] | 00—0 [31:0](ACL [O] 6) [n+13: O] 并且結(jié)束于 00…O [127: 55] I (ACL[m-Ι] 6) [33: n+14] | 11— I [31:0](ACL [m-1] 6) [n+13: 0] 例如: 考慮2 MB分區(qū),其中n=l和m=15。
針對(duì)CL [j]的、在時(shí)間 ΜΕ (32位)處的調(diào)柄被定義如下: 00—0 [127: 55] I (ACL[j] 6) [33: 15] | TIME [31:0] | (ACL[j] 6) [14:0]。
圖2A示出擴(kuò)展調(diào)柄200的一個(gè)實(shí)施例。圖2A中所示的擴(kuò)展調(diào)柄200是128位值。針對(duì)地址(U)預(yù)留擴(kuò)展調(diào)柄200的最低有效48位(位47:0) 206,并針對(duì)時(shí)間戳(T)預(yù)留剩余80個(gè)最高有效位(位127:48) 204。
圖2B示出擴(kuò)展調(diào)柄202的另一實(shí)施例。在圖2B中所示的擴(kuò)展調(diào)柄202的實(shí)施例中,針對(duì)地址(U) 212預(yù)留擴(kuò)展調(diào)柄202的最低有效64位[位63:0],針對(duì)時(shí)間戳(T) 214預(yù)留接下來32位[位95:64],并針對(duì)標(biāo)簽(L) 208預(yù)留最高有效32位[位127:96]。
對(duì)利用圖2B中所示的擴(kuò)展AES-XTS的實(shí)施例加密的塊進(jìn)行解密需要密文C、地址U、索引j、以及還有時(shí)間戳T和標(biāo)簽L。在一個(gè)實(shí)施例中,時(shí)間戳(T)和標(biāo)簽(L)的值不是秘密的,但是該值是以可信方式存儲(chǔ)的。
擴(kuò)展AES-XTS調(diào)柄的優(yōu)點(diǎn)是下列“時(shí)間隔離”特性:如果在地址Al上重放在時(shí)間tl處向地址Al加密的密文C,但是在時(shí)間t2處對(duì)密文C進(jìn)行解密,則將其解密成不可預(yù)測的串,這是因?yàn)檎{(diào)柄值由于不同時(shí)間戳值而不同。
該“時(shí)間隔離”特性進(jìn)行保護(hù)以對(duì)抗類型2重放攻擊,這是因?yàn)楣粽邚摹爸胤胖料嗤刂贰敝械玫讲欢嘤诠粽呖梢詮膶?duì)存儲(chǔ)圖像的隨機(jī)(不可預(yù)測且不可控制)改變中所得到的任何東西。類似地,擴(kuò)展AES-XTX調(diào)柄模式還實(shí)現(xiàn)了由其標(biāo)簽(L)區(qū)分的上下文之間的隔離。
已經(jīng)針對(duì)XTS-AES描述了一個(gè)實(shí)施例,然而,擴(kuò)展調(diào)柄模式不限于XTS-AES,并且可以在其他實(shí)施例中被應(yīng)用于其他可調(diào)加密方案。例如,在LRW (M.Liskov,R.Rivest和D.Wagner)可調(diào)塊密碼的一個(gè)實(shí)施例中,可以以類似的方式將LRW增強(qiáng)至增強(qiáng)的LRW模式。
圖3是包括用于執(zhí)行存儲(chǔ)器加密的存儲(chǔ)器加密引擎303的系統(tǒng)300的框圖。系統(tǒng)300包括處理器301、存儲(chǔ)控制器集線器(MCH)302和輸入/輸出(I/O)控制器集線器(ICH)304。MCH 302包括控制在處理器301與外部存儲(chǔ)器100之間的通信的存儲(chǔ)控制器306。處理器301和MCH 302通過系統(tǒng)總線316進(jìn)行通信。
處理器301可以是多個(gè)處理器中的任一個(gè):例如單核Intel Pentium IV⑧處理器、單核Intel Celeron處理器、Intel XScale處理器,或者多核處理器,例如Intel Pentium D、Intel Xeon 處理器或Intel Core Duo處理器,或者任何其他類型的處理器。
處理器301中的存儲(chǔ)器加密引擎303可以對(duì)可以被存儲(chǔ)在存儲(chǔ)器100中和/或被存儲(chǔ)在存儲(chǔ)設(shè)備312中的數(shù)據(jù)執(zhí)行加密和解密。存儲(chǔ)器加密引擎303提供了機(jī)密性以對(duì)抗可以讀取存儲(chǔ)器308的內(nèi)容的被動(dòng)攻擊者。存儲(chǔ)器加密引擎303還提供了保護(hù)以對(duì)抗主動(dòng)攻擊者,該主動(dòng)攻擊者可以利用在16個(gè)字節(jié)上操作的密碼、以16個(gè)字節(jié)的粒度讀取和寫入存儲(chǔ)器中的存儲(chǔ)區(qū),并且存儲(chǔ)器308中的高速緩存線具有64個(gè)字節(jié)。例如,如果64字節(jié)高速緩存線中的16字節(jié)段中的一位被修改,則該16字節(jié)段對(duì)攻擊者來說“隨機(jī)”且不可預(yù)測。
存儲(chǔ)器100可以是動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器(DRAM)、靜態(tài)隨機(jī)存取存儲(chǔ)器(SRAM)、同步動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器(SDRAM)、雙數(shù)據(jù)速率2 (DDR2)RAM或Rambus動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器(RDRAM)或者任何其他類型的存儲(chǔ)器。
可以使用高速芯片到芯片互連314 (例如直接媒體接口(DMI))將ICH 304耦合至MCH 302。DMI經(jīng)由兩個(gè)單向通道來支持2千兆比特/秒同時(shí)傳送速率。
ICH 304可以包括用于控制與耦合至ICH 304的至少一個(gè)存儲(chǔ)設(shè)備312的通信的存儲(chǔ)I/O控制器310。存儲(chǔ)設(shè)備可以是例如盤驅(qū)動(dòng)器、數(shù)字視頻盤(DVD)驅(qū)動(dòng)器、光盤(⑶)驅(qū)動(dòng)器、獨(dú)立盤冗余陣列(RAID)、磁帶驅(qū)動(dòng)器或其他存儲(chǔ)設(shè)備。ICH 304可以使用串行存儲(chǔ)協(xié)議(例如串行附著小型計(jì)算機(jī)系統(tǒng)接口( SAS )或串行高級(jí)技術(shù)附著(SATA))、通過存儲(chǔ)協(xié)議互連318來與存儲(chǔ)設(shè)備312進(jìn)行通信。
將針對(duì)存儲(chǔ)器100中的地址范圍的保護(hù)來描述一個(gè)實(shí)施例。
圖4是存儲(chǔ)加密數(shù)據(jù)的圖3中所示的外部存儲(chǔ)器100中的存儲(chǔ)區(qū)402的一部分的框圖。存儲(chǔ)區(qū)402在邏輯上被劃分成N個(gè)“分區(qū)”。返回至圖3,在處理器301中存在N個(gè)計(jì)數(shù)器350,在圖4中所示的存儲(chǔ)區(qū)402的部分中每邏輯分區(qū)一個(gè)計(jì)數(shù)器。
圖5示出供應(yīng)用使用圖4中所示的外部存儲(chǔ)器100中的存儲(chǔ)區(qū)402的部分中的分區(qū)的方法。結(jié)合圖4來描述圖5。
在框500處,將存儲(chǔ)區(qū)402的部分劃分成N個(gè)分區(qū)404_1,…,404-N。將計(jì)數(shù)器406-1,…,406-N指派給每個(gè)分區(qū)404-1,…,404-N。將所有計(jì)數(shù)器406-1,…,406-N初始重置為O。處理 繼續(xù)至框502。
在框502處,當(dāng)將軟件應(yīng)用存儲(chǔ)在(寫入到)存儲(chǔ)器100中時(shí),軟件應(yīng)用410,412,414填充一個(gè)或多個(gè)邏輯分區(qū)404-1,…,404-N中的一個(gè)或多個(gè)高速緩存線。在一個(gè)實(shí)施例中,每個(gè)高速緩存線具有64個(gè)字節(jié),并且操作系統(tǒng)以存儲(chǔ)頁的粒度進(jìn)行操作,該粒度可以是4096個(gè)字節(jié)。如果應(yīng)用被加載至存儲(chǔ)器100中,則處理繼續(xù)至框504。如果已被加載至存儲(chǔ)器100的應(yīng)用被驅(qū)逐,并且另一應(yīng)用(可能是惡意的)被加載至相同地址空間中,則處理繼續(xù)至框504。如果否的話,則處理繼續(xù)至框502。
在框504處,每當(dāng)(由某個(gè)高速緩存線)第一次填充分區(qū)404-1,…,404-N時(shí),處理器都遞增該分區(qū)的對(duì)應(yīng)計(jì)數(shù)器406-1,…,406-N。另外,作為驅(qū)逐和/或加載過程的一部分,處理器自動(dòng)地遞增對(duì)應(yīng)分區(qū)404-1,…,404-N的計(jì)數(shù)器值。處理繼續(xù)至框502。
返回至圖4,在不同時(shí)間上,將每個(gè)應(yīng)用410,412,414置于具有可以在由該應(yīng)用填充的邏輯分區(qū)上不同的不同計(jì)數(shù)器值的邏輯分區(qū)404-1,…,404-N中。處理器301中的存儲(chǔ)器加密引擎303實(shí)施XTS-AES增強(qiáng)調(diào)柄操作模式,其中,T是計(jì)數(shù)器值,u是物理地址,以及j是塊的索引。這樣,調(diào)柄值(X)不僅受存儲(chǔ)器中的邏輯分區(qū)的地址約束,而且受在應(yīng)用410,412,414被加載至存儲(chǔ)器100中時(shí)CPU所存儲(chǔ)的計(jì)數(shù)器值約束。
“計(jì)數(shù)器”以及對(duì)該“計(jì)數(shù)器”進(jìn)行初始化和遞增的方法可以變化。在一個(gè)實(shí)施例中,計(jì)數(shù)器可以是線性反饋移位寄存器(LFSR),其被初始化為固定或隨機(jī)化的且使用時(shí)鐘輸入而遞增的非零值。在另一實(shí)施例中,計(jì)數(shù)器可以是包括隨機(jī)地或確定性地初始化的遞增邏輯的寄存器。在又一實(shí)施例中,計(jì)數(shù)器可以是從隨機(jī)位發(fā)生器中采樣的值??梢砸韵率龇绞酱_定計(jì)數(shù)器的長度(輸出位的數(shù)目):使得嘗試在相同計(jì)數(shù)器值處重放拷貝的圖像是不切實(shí)際的。
在圖4中所示的實(shí)例中,存在三個(gè)應(yīng)用410,412,414,它們被存儲(chǔ)在存儲(chǔ)器100的不同分區(qū)404-1,…,404-N中,使得沒有兩個(gè)應(yīng)用410,412,414被存儲(chǔ)在相同分區(qū)404-1,…,404-N中。向每個(gè)邏輯分區(qū)404-1,…,404-N指派不同計(jì)數(shù)器。應(yīng)用412使用兩個(gè)分區(qū)404-2,404-3中的頁,這些分區(qū)中的每一個(gè)具有相應(yīng)計(jì)數(shù)器406-2,406-3。如果向該應(yīng)用指派的處理器內(nèi)部的計(jì)數(shù)器不遞增,則對(duì)邏輯分區(qū)中存儲(chǔ)的應(yīng)用的解密正確地工作。計(jì)數(shù)器值不遞增,除非首先從相應(yīng)分區(qū)中驅(qū)逐該應(yīng)用。
當(dāng)一個(gè)應(yīng)用被驅(qū)逐并且另一應(yīng)用(可能是惡意的)被加載至相同地址空間中時(shí),作為驅(qū)逐和/或加載過程的一部分,CPU自動(dòng)地遞增(一個(gè)或多個(gè))對(duì)應(yīng)分區(qū)的計(jì)數(shù)器值。在類型2攻擊中,攻擊者拷貝屬于前一應(yīng)用的存儲(chǔ)圖像,并在攻擊代碼正在填充相關(guān)存儲(chǔ)區(qū)域時(shí)將其重放至相同地址。如果利用標(biāo)準(zhǔn)XTS-AES加密來對(duì)存儲(chǔ)器進(jìn)行加密,則該攻擊成功,并且攻擊者可以讀取在存儲(chǔ)圖像中存儲(chǔ)的秘密。然而,對(duì)于XTS-AES增強(qiáng)調(diào)柄模式,攻擊者沒有得到結(jié)果,這是因?yàn)橛?jì)數(shù)器值不匹配。使用計(jì)數(shù)器值好于隨機(jī)修改,這是因?yàn)閄TS-AES增強(qiáng)調(diào)柄在解密中使用不同計(jì)數(shù)器值。
優(yōu)點(diǎn)在于:該方法僅使用具有調(diào)柄的加密,并且存儲(chǔ)器讀和寫轉(zhuǎn)換為單個(gè)存儲(chǔ)器訪問。此外,分區(qū)的數(shù)目可以由實(shí)施來確定,以作為計(jì)數(shù)器的附加硬件成本與存儲(chǔ)器利用效率之間的折衷,即更多的分區(qū)提供更好的粒度。
圖6示出將可信應(yīng)用存儲(chǔ)在存儲(chǔ)器中的方法的一個(gè)實(shí)施例。首先初始化可信應(yīng)用,并且然后,可信應(yīng)用以要求附加物理頁的形式請(qǐng)求針對(duì)其自身的存儲(chǔ)器分配。
在框600處,接收要被存儲(chǔ)在存儲(chǔ)器中的應(yīng)用。接收到的應(yīng)用與應(yīng)用標(biāo)識(shí)符相關(guān)聯(lián),并且包括應(yīng)用的第一頁。針對(duì)該應(yīng)用分配邏輯分區(qū)。處理繼續(xù)至框602。
在框602處,將應(yīng)用的標(biāo)識(shí)符存儲(chǔ)在邏輯分區(qū)中,將與所分配的邏輯分區(qū)相關(guān)聯(lián)的標(biāo)識(shí)符設(shè)置為應(yīng)用的標(biāo)識(shí)符。將與所分配的邏輯分區(qū)相關(guān)聯(lián)的頁號(hào)存儲(chǔ)在與所分配的邏輯分區(qū)相關(guān)聯(lián)的頁號(hào)中。遞增與所分配的邏輯分區(qū)相關(guān)聯(lián)的分區(qū)計(jì)數(shù)器。處理繼續(xù)至框604。
在框604處,將應(yīng)用的第一頁中的數(shù)據(jù)存儲(chǔ)在所分配的邏輯分區(qū)的第一頁中。
圖7示出將存儲(chǔ)器的(一個(gè)或多個(gè))頁的附加分配添加至可信應(yīng)用的方法的一個(gè)實(shí)施例。
在框700處,在接收到將數(shù)據(jù)存儲(chǔ)在針對(duì)應(yīng)用的存儲(chǔ)器中的請(qǐng)求時(shí),確定最后邏輯分區(qū)從該最后邏輯分區(qū)中針對(duì)該應(yīng)用分配了頁。處理繼續(xù)至框702。
在框702處,如果當(dāng)前頁號(hào)是所分配的邏輯分區(qū)中的最后頁,則處理繼續(xù)至框704。如果否的話,則處理繼續(xù)至框706。
在框704處,在當(dāng)前頁是該應(yīng)用的當(dāng)前分配的邏輯分區(qū)的最后頁時(shí),針對(duì)該應(yīng)用分配另一邏輯分區(qū),并將該應(yīng)用的頁拷貝至新分配的邏輯分區(qū)的第一頁中。
在框706處,在當(dāng)前頁不是該應(yīng)用的當(dāng)前分配的邏輯分區(qū)的最后頁時(shí),將在當(dāng)前邏輯分區(qū)中分配給該應(yīng)用的頁的號(hào)碼遞增至下一頁,并將該應(yīng)用的頁拷貝至當(dāng)前分配的邏輯分區(qū)的下一頁中。
對(duì)本領(lǐng)域普通技術(shù)人員來說將顯而易見的是,在本發(fā)明的實(shí)施例中所涉及的方法可以體現(xiàn)在包括計(jì)算機(jī)可用介質(zhì)的計(jì)算機(jī)程序產(chǎn)品中。例如,這種計(jì)算機(jī)可用介質(zhì)可以由只讀存儲(chǔ)設(shè)備(例如光盤只讀存儲(chǔ)器(CD ROM)盤或常規(guī)ROM設(shè)備)或者其上存儲(chǔ)有計(jì)算機(jī)可讀程序代碼的計(jì)算機(jī)磁盤構(gòu)成。
盡管已經(jīng)參照本發(fā)明的實(shí)施例特別地示出和描述了本發(fā)明的實(shí)施例,但是本領(lǐng)域技術(shù)人員將理解,在不脫離由所附權(quán)利要求包含的本發(fā)明的實(shí)施例的范圍的情況下,可以在本發(fā)明的實(shí)施例中進(jìn)行形式和細(xì)節(jié)上的各種改變。
權(quán)利要求
1.一種方法,包括: 由處理器對(duì)與應(yīng)用相關(guān)聯(lián)的數(shù)據(jù)塊進(jìn)行加密,所述數(shù)據(jù)塊是使用調(diào)柄來加密的,所述調(diào)柄包括與所述處理器分離的存儲(chǔ)器的高速緩存線標(biāo)識(shí)符和要加密的數(shù)據(jù)塊在所標(biāo)識(shí)的高速緩存線中的位置;以及 分配所述存儲(chǔ)器中的邏輯分區(qū)以存儲(chǔ)經(jīng)加密的數(shù)據(jù)塊。
2.根據(jù)權(quán)利要求1所述的方法,還包括: 當(dāng)經(jīng)加密的數(shù)據(jù)被加載至所分配的邏輯分區(qū)時(shí)以及當(dāng)從所分配的邏輯分區(qū)中驅(qū)逐經(jīng)加密的數(shù)據(jù)時(shí),由所述處理器將與所分配的邏輯分區(qū)相關(guān)聯(lián)的時(shí)間戳值存儲(chǔ)在所述調(diào)柄中,所述時(shí)間戳值將被遞增。
3.根據(jù)權(quán)利要求2所述的方法,其中,所述時(shí)間戳值被存儲(chǔ)在所述處理器中的計(jì)數(shù)器中,并且所述計(jì)數(shù)器被分配給所述邏輯分區(qū)。
4.根據(jù)權(quán)利要求3所述的方法,其中,所述計(jì)數(shù)器在所述處理器中自主地遞增。
5.根據(jù)權(quán)利要求2所述的方法,還包括: 將與所分配的邏輯分區(qū)相關(guān)聯(lián)的標(biāo)簽存儲(chǔ)在所述調(diào)柄中。
6.根據(jù)權(quán)利要求1所述的方法,其中,所述應(yīng)用是安全應(yīng)用。
7.根據(jù)權(quán)利要求1所述的方法,其中,所述調(diào)柄是XTS-AES調(diào)柄。
8.根據(jù)權(quán)利要求1所述的方法,其中,所述調(diào)柄是LRW調(diào)柄。
9.一種設(shè)備,包括: 處理器中的邏輯,所述邏輯對(duì)與應(yīng)用相關(guān)聯(lián)的數(shù)據(jù)塊進(jìn)行加密,所述數(shù)據(jù)塊是使用調(diào)柄來加密的,所述調(diào)柄包括與所述處理器分離的存儲(chǔ)器的高速緩存線標(biāo)識(shí)符和要加密的數(shù)據(jù)塊在所標(biāo)識(shí)的高速緩存線中的位置,所述邏輯分配所述存儲(chǔ)器中的邏輯分區(qū)以存儲(chǔ)經(jīng)加密的數(shù)據(jù)塊。
10.根據(jù)權(quán)利要求9所述的設(shè)備,其中,所述邏輯用于:當(dāng)經(jīng)加密的數(shù)據(jù)被加載至所分配的邏輯分區(qū)時(shí)以及當(dāng)從所分配的邏輯分區(qū)中驅(qū)逐經(jīng)加密的數(shù)據(jù)時(shí),由所述處理器將與所分配的邏輯分區(qū)相關(guān)聯(lián)的時(shí)間戳值存儲(chǔ)在所述調(diào)柄中,所述時(shí)間戳值將被遞增。
11.根據(jù)權(quán)利要求10所述的設(shè)備,其中,所述時(shí)間戳值被存儲(chǔ)在所述處理器中的計(jì)數(shù)器中,并且所述計(jì)數(shù)器被分配給所述邏輯分區(qū)。
12.根據(jù)權(quán)利要求11所述的設(shè)備,其中,所述計(jì)數(shù)器在所述處理器中自主地遞增。
13.根據(jù)權(quán)利要求10所述的設(shè)備,其中,所述邏輯將與所分配的邏輯分區(qū)相關(guān)聯(lián)的標(biāo)簽存儲(chǔ)在所述調(diào)柄中。
14.根據(jù)權(quán)利要求9所述的設(shè)備,其中,所述應(yīng)用是安全應(yīng)用。
15.根據(jù)權(quán)利要求9所述的設(shè)備,其中,所述調(diào)柄是XTS-AES調(diào)柄。
16.根據(jù)權(quán)利要求9所述的設(shè)備,其中,所述調(diào)柄是LRW調(diào)柄。
17.—種包括具有關(guān)聯(lián)信息的機(jī)器可訪問介質(zhì)的物品,其中所述信息在被訪問時(shí)導(dǎo)致機(jī)器執(zhí)行下述操作: 由處理器對(duì)與應(yīng)用相關(guān)聯(lián)的數(shù)據(jù)塊進(jìn)行加密,所述數(shù)據(jù)塊是使用調(diào)柄來加密的,所述調(diào)柄包括與所述處理器分離的存儲(chǔ)器的高速緩存線標(biāo)識(shí)符和要加密的數(shù)據(jù)塊在所標(biāo)識(shí)的高速緩存線中的位置;以及 分配所述存儲(chǔ)器中的邏輯分區(qū)以存儲(chǔ)經(jīng)加密的數(shù)據(jù)塊。
18.根據(jù)權(quán)利要求17所述的物品,還包括: 當(dāng)經(jīng)加密的數(shù)據(jù)被加載至所分配的邏輯分區(qū)時(shí)以及當(dāng)從所分配的邏輯分區(qū)中驅(qū)逐經(jīng)加密的數(shù)據(jù)時(shí),由所述處理器將與所分配的邏輯分區(qū)相關(guān)聯(lián)的時(shí)間戳值存儲(chǔ)在所述調(diào)柄中,所述時(shí)間戳值將被遞增。
19.根據(jù)權(quán)利要求17所述的物品,其中,所述時(shí)間戳值被存儲(chǔ)在所述處理器中的計(jì)數(shù)器中,并且所述計(jì)數(shù)器被分配給所述邏輯分區(qū)。
20.—種系統(tǒng),包括: 存儲(chǔ)應(yīng)用的大容量存儲(chǔ)設(shè)備;以及 處理器,包括: 對(duì)與所述應(yīng)用相關(guān)聯(lián)的數(shù)據(jù)塊進(jìn)行加密的邏輯,所述數(shù)據(jù)塊是使用調(diào)柄來加密的,所述調(diào)柄包括與所述處理器分離的存儲(chǔ)器的高速緩存線標(biāo)識(shí)符和要加密的數(shù)據(jù)塊在所標(biāo)識(shí)的高速緩存線中的位置,所述邏輯分配所述存儲(chǔ)器中的邏輯分區(qū)以存儲(chǔ)經(jīng)加密的數(shù)據(jù)塊。
21.根據(jù)權(quán)利要求20所述的系統(tǒng),其中,所述邏輯用于:當(dāng)經(jīng)加密的數(shù)據(jù)被加載至所分配的邏輯分區(qū)時(shí)以及當(dāng)從所分配的邏輯分區(qū)中驅(qū)逐經(jīng)加密的數(shù)據(jù)時(shí),由所述處理器將與所分配的邏輯分區(qū)相關(guān)聯(lián)的時(shí)間戳值存儲(chǔ)在所述調(diào)柄中,所述時(shí)間戳值將被遞增。
22.根據(jù)權(quán)利要求21所述的系統(tǒng),其中,所述時(shí)間戳值被存儲(chǔ)在所述處理器中的計(jì)數(shù)器中,并且所述計(jì)數(shù)器被分配給所述邏輯分區(qū)。
全文摘要
提供用于進(jìn)行保護(hù)以對(duì)抗系統(tǒng)存儲(chǔ)器上的硬件攻擊的方法和設(shè)備。用于塊密碼的操作模式通過擴(kuò)展調(diào)柄以包括“時(shí)間戳”指示符來增強(qiáng)執(zhí)行存儲(chǔ)器加密的標(biāo)準(zhǔn)XTS-AES操作模式。使用“時(shí)間戳”指示符的遞增機(jī)制生成分離在不同時(shí)間上的不同上下文的調(diào)柄,從而減輕“類型2重放攻擊”的影響。
文檔編號(hào)G06F21/64GK103109296SQ201180045831
公開日2013年5月15日 申請(qǐng)日期2011年9月24日 優(yōu)先權(quán)日2010年9月24日
發(fā)明者S.蓋倫, G.格宗, I.安娜蒂, J.多維克, M.毛爾 申請(qǐng)人:英特爾公司