i-NVMM:實時加密技術 |
發(fā)布時間: 2012/8/31 17:24:53 |
電腦內存中存儲著大量非加密信息。幸運的是,一旦停電,內存中的這些信息就隨之消失了。不過,這種情況在下一代內存中將不會出現。 動態(tài)隨機訪問存儲器(DRAM)也就是我們常說的內存,其動態(tài)性就體現在它必須借助外部電力保持芯片中的電容狀態(tài)。一旦停電,芯片中的電容就會放電,所有數據隨之消失。 早在2008年,普林斯頓大學的研究人員就發(fā)現,通過“冷凍”DRAM芯片,可以將其中存儲的內容在斷電后繼續(xù)保持足夠長的時間,從而從中讀取信息。所幸是,這種冷凍技術并不簡單,因此也沒有成為黑客獲取信息的主流方案。 在已經過去的2011年中:研究人員打算嘗試將DRAM替換為更有效率同時也對電源依賴度更低的非易失性主內存(Non-VolatileMainMemory,NVMM)。在硬件開發(fā)人員眼里,NVMM有如下幾個特性: ·維持存儲內容不需要供電 ·即時恢復睡眠或冬眠狀態(tài) ·使用現有技術,NVMM能在相同的空間下實現更大的存儲容量 但是有利就有弊,對于NVMM來說存儲內容不需要電力維持,那就意味著在存儲過程中一旦電力喪失,數據會繼續(xù)保留在NVMM內存中。這就達成了當初普林斯頓大學研究人員,甚至是所有黑客的預期。一旦黑客獲得了你的筆記本,就可以有足夠的時間將內存中的非加密數據提取出來。 解決方案 本文很高興向大家推薦了i-NVMM,這是由Intel的SiddharthaChhabra博士和北卡羅來納州立大學YanSolihin博士共同研究的一種針對上文提到的風險解決方案。在這兩位開發(fā)者的論文《i-NVMM:帶增量加密的非易失性主內存系統(tǒng)》中,對于i-NVMM的解釋是這樣的:“針對NVMM的數據隱私保護系統(tǒng)。I-NVMM基于一種內存端的加密引擎對電腦主內存進行加密,因此不受操作系統(tǒng)和硬件架構限制。” 這段話聽上去很簡單,但實際上并不簡單。首先讓我們先看一下下面這個結構圖: 下面是這兩位開發(fā)者的解釋: “圖中顯示的是在NVMM上添加的一個硬件組件。其中一個組件是頁面狀態(tài)表PageStatusTable(PST),即通過一個SRAM結構隨時跟蹤每個頁面的狀態(tài): ·1-bit表示當前頁面是否處于加密狀態(tài)(Enc-Status) ·該頁面的最后訪問時間(LastAcc) ·該頁面被訪問的總次數(numAcc) ·本頁之后的下一個訪問頁(NextPage) ·1-bit表示一個頁面是否正處在加密/解密過程中(Pending) LastAcc被用于InertPagePrediction(IPP)技術,用來預測一個非活動頁面并進行加密。NumAcc是用來記錄某個已加密數據頁已經收到了多少訪問請求,進而判斷是否要將這個加密頁進行解密。” 這樣看來似乎還是不夠明白,于是作者決定直接打電話聯系這個技術的研發(fā)人員。Dr.Chhabra同意回答作者有關i-NVMM的一些問題。下面是作者對Dr.Chhabra的電話采訪記錄供讀者參考: Kassner:首先要說一下,我對非易失性存儲器(NVM)比較熟悉,但是之前沒有聽說過非易失性主存儲器(NVMM)。這兩者有什么區(qū)別嗎? Chhabra:你可以把NVM看作是電腦中的存儲系統(tǒng),可以在斷電后繼續(xù)保持其中的存儲內容不發(fā)生改變,目前的U盤還有硬盤等,都可以看作是NVM。因此NVM并不是什么新概念,早在上世紀60年代就已經出現了。而NVMM是一個新的概念。你可以把它想象成目前DRAM的替代品。在其它方面,NVMM包含了NVM的各種技術,類似于相變內存(PCM)或者磁阻RAM(MRAM)等技術。 Kassner:NVM的非易失性特性可以說是一把雙刃劍,對于電腦存儲來說是好事,但是對于安全來說不見得是好事。我猜上世紀60年代,人們在推出NVM這個概念時沒有過多的考慮過安全性問題。你和Solihin博士在這方面給出了解決方案:i-NVMM。你能不能大致的介紹一下i-NVMM的技術原理呢? Chhabra:我們意識到對于存儲來說,不論是否安全,主內存的非易失性都是一個相當重要的特性。因此我們決定找出一種解決方案,能夠在既保證規(guī)避安全風險,又能讓非易失性這個特性在當今的電腦系統(tǒng)中充分發(fā)揮作用。 作為一種新出現的技術,非易失性主內存(NVMM)系統(tǒng)存在一個安全隱患,即存儲在其中的數據在斷電后仍然長時間留存,使得黑客可以在獲取物理硬件設備后進行數據提取,獲得主內存中的非加密敏感數據。此次研究工作的目的就是要找到一種安全解決方案,避免上述安全隱患。 根據我們的研究,我們推出了i-NVMM,這是一種針對NVMM的數據隱私保護方案,主內存中的數據采用增量(incrementally)方式被加密,即不同的數據在內存中被加密的時間不同,加密時間的選擇則是根據其是否還會被處理器使用而定。 之所以采用增量加密方式,是因為每個應用程序在執(zhí)行過程中,同一時刻需要處理的數據體積遠小于程序進入主內存的體積。因此,只要判斷出正在接受處理的數據,并把那些暫時不需要處理的數據進行加密,i-NVMM就可以確保內存中的大部分數據都處于加密保護狀態(tài),同時也不會對性能造成明顯影響。 我們的實驗證明這個想法是可行的。根據SPEC2006benchmarks統(tǒng)計i-NVMM保證了主內存中78%的數據處于加密保護狀態(tài),同時程序延遲只比非加密狀態(tài)多了3.7%,對于NVMM寫入次數的影響更是微不足道。所有加密機制都是在內存模塊中通過簡單的硬件結構實現的。 Kassner:當你在談論NVMM和i-NVMM時,你是否建議大家將DRAM替換為NVMM? Chhabra:NVMM目前還處于研究中,未來有很多種可能。 從物理接口來說,很久前就出現的NVM技術完全可以取代DRAM,但是NVM的讀寫速度一般來說要比DRAM慢,而且寫入次數也不如DRAM。這兩大問題,迫使計算機的存儲系統(tǒng)成為如今這種混合型的系統(tǒng)。即為了利用DRAM的高速性能和更高的讀寫耐久度,在主內存系統(tǒng)中使用DRAM,而在對速度要求不高的環(huán)境下使用諸如PCM這樣的非易失性存儲器。 而在我們的加密研究中,我們所說的NVMM是可以完全取代DRAM的。不過這種安全結局方案也可以應用于我上面所說的目前這種混合型的存儲系統(tǒng)。 Kassner:在論文中,您涉及到了i-NVMM在加密和解密數據時,對數據是否需要被加密有一個選擇過程。這種選擇可靠嗎? Chhabra:i-NVMM通過預測來判斷某段數據是否會被程序使用。實際上,一個程序涉及的數據要比他實際運行時需要的數據多很多。程序涉及的數據,我們可以稱其為常駐集,而程序在穩(wěn)定狀態(tài)下會使用到數據我們稱其為工作集。 如果加密方案無法區(qū)分程序數據的這種不同,就會將整個內存數據都進行加密。這將導致程序運行效率大大降低,因為程序用到的所有數據都需要隨時進行解密供程序使用,然后再被加密存放,有的數據可能因此被反復加密解密。 通過檢測不活躍的內存頁面(通過內存模塊的硬件計數功能),內存端的加密引擎可以預測哪些內存頁面數據不屬于常駐集(或者叫惰性頁面)。一旦某個頁面被判斷為惰性頁面,就會被內存端的加密引擎進行加密。 Kassner:你是怎么設計i-NVMM的?是通過增加固件的方式,還是在內存模塊附加輔助硬件? Chhabra:我們認為i-NVMM的實現應該完全在內存模塊內部,不需要在內存模塊外增加額外的硬件、軟件、固件支持等。 Kassner:除了加密數據外,i-NVMM在安全性方面還做了哪些改進呢?我想既然i-NVMM帶有內存預測能力,是否表示它能預防緩沖溢出? Chhabra:這個不行,i-NVMM并不是設計用來防止你提到的這種軟件攻擊的。它只是用來保護NVMM中的非易失數據?磥砦覒撛谌藗冞x擇NVMM時明確說明,i-NVMM并不能保護系統(tǒng)數據不被攻擊。 Kassner:當電腦關機時會怎么樣呢?內存會徹底清空?或者i-NVMM會將內存中的全部數據都加密儲存?這方面的問題才是人們選擇i-NVMM時最關心的吧? Chhabra:我們不希望在電腦關閉時,內存中的數據出于安全考慮而全部被清空,因為這樣就沒有必要選擇NVM存儲技術了。實際上,當電腦關機時,i-NVMM會將內存中未加密的數據進行加密(這些數據是程序正在使用的數據)。 在攻擊情節(jié)中,攻擊者會竊取一個正在運行的系統(tǒng)上的內存,而我們要做的就是確保攻擊者無法從該內存中獲取任何有用數據。i-NVMM內存中帶有一個小型CMOS電池,確保一旦斷電后,內存模塊有足夠的電力維持將其中的未加密數據進行加密。 Kassner:未來i-NVMM會有什么發(fā)展嗎? Chhabra:目前我們正在尋找對這種技術感興趣的廠商,對技術進行專利化并生產處原型i-NVMM內存。 總結 本文讓我們看到了存儲領域的進步,尤其是針對安全實踐硬件技術的進步。由此可見,安全已經成為了如今軟硬件開發(fā)過程中都必須考慮的環(huán)節(jié)。 本文出自:億恩科技【1tcdy.com】 |