用于減少存儲器信息泄漏的系統(tǒng)和方法
【技術領域】
[0001]本發(fā)明的系統(tǒng)和方法涉及在安全計算方面減少存儲器訪問模式的信息泄漏。
【背景技術】
[0002]計算機安全性是應用于計算設備(如計算機和智能手機)和計算機網絡(如專用網絡和公用網絡,包括互聯網)的信息安全性。計算機安全性能夠覆蓋過程與機制,通過該過程與機制,基于計算機的設備、信息和服務免受無意識或未授權訪問、改變或破壞。當前的安全計算系統(tǒng)易遭受信息竊取,這是經由存儲器訪問模式的分析執(zhí)行的。一種簡單的方法是通過增加虛假訪問(如,通過與真實加密并行,執(zhí)行虛擬加密),增加噪聲到存儲器訪問模式。噪聲減少攻擊者可見的信號,并且因此需要更多樣本,但是不能消除非故意或未授權訪問。
【發(fā)明內容】
[0003]根據一個方面,本發(fā)明的系統(tǒng)和方法能夠提供與存儲器連接的處理單元,其被配置為訪問來自存儲器的數據。存儲器事務單元與處理單元和存儲器連接。存儲器事務單元被配置為,在處理單元真實訪問存儲器之前,在隨機存儲器位置處執(zhí)行虛擬讀取操作和寫入操作隨機次數和/或插入隨機延遲。
[0004]基于下列附圖和詳細說明書的審查,其他系統(tǒng)、方法、特征和優(yōu)點會是或會變得明顯。所有這種附加的系統(tǒng)、方法、特征和優(yōu)點旨在包含于此說明書之內并由附權利要求書保護。
【附圖說明】
[0005]結合下列詳細說明書,對附圖進行參考,其中,在不同的附圖中的相同的附圖標記能夠指代相同元素。
[0006]圖1是一個不例安全存儲器事務單元(secure memory transact1n unit, SMTU)的框圖,其插入在中央處理單元(CPU)/直接存儲器訪問(direct memory access,DMA)和存儲器之間。
[0007]圖2是用于混淆存儲器訪問模式的一個示例過程的流程圖。
【具體實施方式】
[0008]所描述的系統(tǒng)和方法用于提高安全計算系統(tǒng)的安全性,如當攻擊者試圖獲得對附接到安全處理器的隨機存取存儲器(RAM)的無限制訪問時。存儲器總線分析儀可以實現這種訪問,攻擊者將存儲器總線分析儀安裝在目標機器中,以記錄其對RAM的存儲器訪問相關的信息。記錄的數據包括地址、傳送數據和存儲器訪問發(fā)生的時間。該系統(tǒng)和方法可以減少因攻擊者觀察的時序模式和地址模式的信息泄露以協助提供安全計算系統(tǒng)。
[0009]圖1是一個示例計算系統(tǒng)100的框圖,該系統(tǒng)包括安全存儲器事務單元(SMTU) 102,其位于中央處理單元(CPU) /直接存儲器訪問(DMA) 104和存儲器106之間。2014年9月23日發(fā)布的、題目為“SECURE MEMORY TRANSACT1N UNIT(安全存儲器事務單元)”的共同受讓美國專利號8,843,767中對示例SMTU 102進行描述,該專利全文并入本文。SMTU 102可以被如本文所描述的那樣操作的其他存儲器事務單元取代。計算系統(tǒng)100通常需要外部存儲器106 (如DRAM、閃存、ROM、RAM、SSD、磁硬盤等)存儲長期使用的數據和短期使用的數據。為滿足安全性規(guī)定,存儲器106的數據內容被保護。物理保護可能昂貴而不可靠。因此,加密類型和算法類型保護是優(yōu)選的。通過在將數據存儲在存儲器106中之前對數據加密,以及在使用受保護的電路系統(tǒng)和已證實安全性的密碼算法的隱藏的高熵密鑰恢復之后解密數據,能夠為安全微處理器(如CPU/DMA 104)提供充分的保密性。
[0010]安全數據認證標簽通常附加于加密后的數據。如果存儲的數據已經被改變,它們向CPU/DMA 104顯示。然而,剩余的安全性問題包括信息泄露,其在加密和數據認證之后發(fā)生。信息泄露的源頭可能是存儲器訪問模式、CPU/DMA 104執(zhí)行的某些操作的特性以及控制這些操作的軟件的特性。
[0011]在計算系統(tǒng)100中的CPU/DMA 104和存儲器106之間增加SMTU 102,其加密并且認證存儲在存儲器106中的數據。除了其他方面,當攻擊者控制計算系統(tǒng)100的功能(如通過提供輸入),并且觀察對這些激勵作出回應時的存儲器訪問模式時,通過觀察存儲器訪問模式,產生高信息損失的攻擊會發(fā)生。通常稱之為剖析(profiling)。隨后當所學知識用于現實生活環(huán)境中時,其能夠用于從計算系統(tǒng)100獲取信息。存儲器訪問中的模式可以顯示給攻擊者,此外,下列信息可以顯示給攻擊者:在計算系統(tǒng)100中運行的軟件版本,其可以包含已知的可開發(fā)的漏洞;在剖析軟件的功能部件之后,在任意已知時間執(zhí)行的動作/功能;當使用大的查詢表((如加密(AES、DES等)緩存丟失事件的軟件實施方式)時,它們能夠顯示密鑰的位(歸根結底為秘密密鑰);以及計算系統(tǒng)100在已知時間執(zhí)行的功能等。
[0012]為了減少數據泄露,SMTU 102可以在真實存儲器訪問(如其由CPU/DMA 104或輸入/輸出(I/O)操作啟動)之前,在隨機存儲器位置處執(zhí)行虛擬讀取操作和寫入操作隨機次數和/或插入隨機延遲。虛擬讀取操作和寫入操作隱藏潛在的存儲器訪問模式。通過插入到計算系統(tǒng)100中的存儲器104 (如加密RAM控制器)和CPU/DMA 104和/或軟件任務之間的SMTU 102同時與真實應用程序運行,能夠執(zhí)行這些虛擬操作。無論哪種方式,虛擬存儲器訪問功能性對于在計算系統(tǒng)100上運行的軟件是透明的。
[0013]此外或替代地,通過跟蹤真實存儲器訪問以及以較低的頻率虛擬訪問這些位置,可以進一步改進虛擬存儲器訪問對策。在查詢表的情況下,虛擬存儲器訪問被引導至查詢表的隨機頁面。在硬件實施方式中,硬編碼算法可以用來識別重復的真實存儲器訪問是否到達存儲器訪問的限制范圍,以及那些地址隨后以更高的可能性用于虛擬訪問。在軟件實施方式中,程序可以為后臺虛擬存儲器訪問任務提供提示,指示何時處理查詢表。這樣能夠代替自動查詢表識別,或者除它之外另外執(zhí)行。當結合動態(tài)存儲器地址重映射時,所描述的對策可以最好地工作,但是即使沒有地址重映射,安全計算的安全性也會提高。
[0014]虛擬存儲器訪問減少真實存儲器訪問的地址和時序二者的信息泄露。當在計算系統(tǒng)100中使用動態(tài)地址重映射時,不需要由虛擬寫入操作引入地址混淆(只混淆存儲器訪問時序的模式),但是由于SMTU 102而使安全性的總體改善比只是隱藏計算系統(tǒng)100的存儲器訪問時序信息更明顯。當攻擊者能夠觀察并且分析對存儲器106的訪問時,SMTU 102提高計算系統(tǒng)100的安全性。計算系統(tǒng)100包括飛行計算機、軍事計劃和太空計劃、公司網絡、個人電腦和筆記本電腦、智能移動設備等。當SMTU 102與傳統(tǒng)加密和算法存儲器保護方法一同應用時,幾乎能夠防止來自存儲器訪問模式的所有的信息泄露,并且能夠檢測惡意數據變化。
[0015]圖2是用于混淆存儲器訪問模式的一個示例過程200的流程圖。CPU/DMA 104生成存儲器106的訪問請求(202)。SMTU 102提供存儲在存儲器106中的數據的隊列訪問(204)。為了容納安全隊列訪問,SMTU 102建立并且升級真實存儲器訪問的統(tǒng)計(206)。統(tǒng)計管理虛擬存儲器訪問產生,以模擬處理器的行為或隱藏(如無保護系統(tǒng)的)處理器的訪問模式。生成虛擬事務是一種向真實事務增加噪聲以混淆任何可用于存儲器事務的時序分析的方式。虛擬事務匹配CPU/DMA 104在此環(huán)境下自然地執(zhí)行但是在那些約束內被隨機化的事務。不匹配正常輸出模式的虛擬事務可以容易地過濾掉從而對于混淆時序信息不起作用。統(tǒng)計還能夠用來管理真實存儲器訪問的延遲。
[0016]與存儲器106交互的CPU/DMA 104可以通過CPU/DMA 104的緩存系統(tǒng)實現,所以要理解緩存系統(tǒng)的行為。緩存行為在處理器之間變化,所以在具體問題具體分析的基礎上可以實現詳細的交互。緩存單元通常基于緩存線與存儲器交互,因此,將理解這種大小用于每個所支持的處理器,如通過建立/更新統(tǒng)計(206)。一般來說,緩存單元以兩種不同寫入模式操作。一個模式稱為通寫,而另一個常常稱為回寫。在通寫模式中,所有寫入立即轉到存儲器106同時修改緩存線。通寫寫入在SMTU 102中生成讀取-修改-寫入的循環(huán)。當使用回寫模式時,實時修改緩存線。當緩存在回寫式模式(隨時存在緩存缺失(cache miss))時,如果要被清除的緩存線接收到寫入,就會發(fā)生緩存清除(cache flush)?;貙懩J街械目赡茼樞蚴蔷彺婢€清除,接著是緩存線讀取或只有緩存線讀取。當緩存在通寫模式中時,緩存缺失僅生成緩存線讀取。
[0017]出于效率考慮,緩存線大小匹配SMTU 102塊大小。這也使通過SMTU 102的通寫模式寫入顯得就像是在回寫式模式時獲得的緩存清除寫入。移除這種差別簡化了混淆時序信息的工作量。SMTU 102計劃