專利名稱:一種抗時(shí)間驅(qū)動(dòng)緩存攻擊的硬件改進(jìn)結(jié)構(gòu)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明屬于信息安全技術(shù)領(lǐng)域,具體涉及一種能抗時(shí)間驅(qū)動(dòng)緩存攻擊的硬件防御 方案及模塊設(shè)計(jì)。
背景技術(shù):
石馬胃 fe (Advanced Encryption Standard, AES) ^ 由 NIST (National Institute ofStandards and Technology)提出的一種常用的對稱密碼算法。采用該算法 的密碼芯片廣泛應(yīng)用于智能卡、電子商務(wù)、網(wǎng)上銀行等領(lǐng)域,極大地保證了系統(tǒng)的安全。但 是最近幾年,一類通過共享硬件資源獲得旁道信息并分析得到敏感信息的攻擊吸引了眾多 研究者,并被稱之為基于處理器微體系結(jié)構(gòu)分析的旁道攻擊。特別地,多種利用數(shù)據(jù)緩存攻 擊Openssl中實(shí)現(xiàn)的AES算法已被研究證明切實(shí)可行,并且有多種攻擊方法提出。基于緩存的時(shí)間攻擊(Cache Based Timing Attack,CBTA)根本上基于如下事實(shí) 半導(dǎo)體工藝技術(shù)的發(fā)展中處理器的性能提升與內(nèi)存的訪問速度不一致,處理器性能要快于 主存儲(chǔ)器且兩者之間的性能鴻溝越來越大。為了解決這個(gè)矛盾,處理器架構(gòu)研究者在處理 器與主存儲(chǔ)器之間引入了緩存,這樣可以利用程序執(zhí)行時(shí)的空間和時(shí)間局部性提升系統(tǒng)性 能。由于緩存容量有限,主存儲(chǔ)器在緩存中數(shù)據(jù)拷貝由于沖突會(huì)被替換出緩存,所以處理器 進(jìn)行訪存操作時(shí)會(huì)出現(xiàn)緩存缺失和緩存命中。在發(fā)生緩存缺失后數(shù)據(jù)將通過系統(tǒng)總線從主 存儲(chǔ)器中讀取,一般的,這跟緩存命中間有幾十甚至幾百倍的速度差異。所以,處理器訪存 操作在時(shí)間上存在不一致性,并且這種差異是可以測量的。AES的軟件實(shí)現(xiàn)廣泛采用的查找表以避免復(fù)雜的有限域運(yùn)算,從而獲得較高的運(yùn) 行速度。如上所述,AES查表操作不具有時(shí)間一致性,研究分析表明這種時(shí)間不一致性強(qiáng)烈 依賴于AES密鑰值。所以,攻擊者可以通過獲得的時(shí)間信息反推出密鑰值,并且這種推斷可 按字節(jié)進(jìn)行,大大減少了攻擊者的密鑰搜索空間。針對AES的CBTA可以分為三類訪問驅(qū) 動(dòng)攻擊,軌跡驅(qū)動(dòng)攻擊和時(shí)間驅(qū)動(dòng)攻擊。時(shí)間攻擊驅(qū)動(dòng)首先測量整個(gè)AES加解密時(shí)間得到 采樣數(shù)據(jù),然后通過與攻擊者猜測的數(shù)據(jù)作相關(guān)性分析。正確的猜測會(huì)出現(xiàn)相關(guān)峰,攻擊者 可以據(jù)此得到密鑰值。本發(fā)明針對時(shí)間驅(qū)動(dòng)的攻擊提出了相應(yīng)的硬件方案,利用IPMG技術(shù) 動(dòng)態(tài)調(diào)整緩存的缺失率屏蔽了 AES加解密內(nèi)在的時(shí)間波動(dòng),從而達(dá)到防御目的。同時(shí),IPMG 屬于緩存缺失率微調(diào)技術(shù),所以不會(huì)引入很大的性能損耗。由于無需改動(dòng)原有緩存的內(nèi)在 結(jié)構(gòu),所以實(shí)現(xiàn)簡單且硬件代價(jià)小。
發(fā)明內(nèi)容
本發(fā)明的目的在于提出一種能實(shí)時(shí)測量緩存缺失率并產(chǎn)生偽缺失的抗時(shí)間驅(qū)動(dòng) 緩存攻擊的硬件結(jié)構(gòu),使AES加解密時(shí)間不會(huì)呈現(xiàn)出由缺失率波動(dòng)造成的不一致性,使通 過測量加解密時(shí)間推測密鑰不再可行,并且防御方案引入的性能損失要盡量小。本發(fā)明提出的抗時(shí)間驅(qū)動(dòng)緩存攻擊的硬件結(jié)構(gòu),與原有緩存整體架構(gòu)如圖2所 示。原數(shù)據(jù)緩存維持原來的結(jié)構(gòu)無需改變,但是在其外圍加入了若干部件,包括緩存缺失數(shù)實(shí)時(shí)檢測模塊、數(shù)據(jù)預(yù)取模塊、多路選擇器、IPMG(Induced Pseudo Miss-rate Generation, 偽缺失應(yīng)激生成)模塊、兩個(gè)與門和仲裁模塊。其中緩存缺失數(shù)實(shí)時(shí)檢測模塊,其輸入為緩存命中信號(hào),是一個(gè)計(jì)數(shù)器,每當(dāng)緩存發(fā)生 缺失時(shí),計(jì)數(shù)器值就增加一。數(shù)據(jù)預(yù)取模塊1,見圖2中虛線框所示。該模塊內(nèi)一個(gè)預(yù)取控制模塊和一個(gè)4條緩 存行大小的數(shù)據(jù)暫存區(qū),用來存放預(yù)取的數(shù)據(jù)。預(yù)取由緩存缺失觸發(fā),預(yù)取地址為發(fā)生缺失 行的接下來四個(gè)緩存行。預(yù)取機(jī)制可以根椐應(yīng)用需求打開和關(guān)閉。多路選擇器2,其輸入為原數(shù)據(jù)緩存的輸出和預(yù)取數(shù)據(jù)模塊的輸出。IPMG模塊為本發(fā)明的核心功能模塊,該模塊主要輸入為內(nèi)存訪問信號(hào)和缺失數(shù)實(shí) 時(shí)檢測模塊的輸出,根據(jù)當(dāng)前的緩存缺失率,該模塊根據(jù)歷史統(tǒng)計(jì)所得的閾值和當(dāng)前的缺 失率來產(chǎn)生強(qiáng)制缺失信號(hào)。在通常情況下該信號(hào)維持高電平,不會(huì)影響數(shù)據(jù)緩存和預(yù)取單 元的命中信號(hào)。當(dāng)IPMG產(chǎn)生偽缺失時(shí),輸出拉低使得兩個(gè)與門3輸出為低,這樣屏蔽了預(yù) 取單元和數(shù)據(jù)緩存的信號(hào)。無論該次訪問結(jié)果如何。處理器將接收到緩存缺失信號(hào)。同時(shí) 預(yù)取單元將被觸發(fā)工作,去內(nèi)存中讀取訪問行。當(dāng)預(yù)取完成時(shí),IPMG將輸出拉高,與門3將 接受數(shù)據(jù)緩存和預(yù)取單元的信號(hào)判斷輸出。仲裁模塊4用于解決數(shù)據(jù)緩存和預(yù)取單元沖突情形。本發(fā)明中IPMG模塊內(nèi)部結(jié)構(gòu)如圖3所示,該模塊的輸入為當(dāng)前缺失數(shù)和訪問總 數(shù),根據(jù)公式(1),該模塊生成輸出反饋信號(hào)。并且該模塊對歷史緩存缺失率進(jìn)行平均值統(tǒng) 計(jì)用以估計(jì)調(diào)整閾值,若把一次AES運(yùn)算的緩存缺失率記作m,并且將若干次AES運(yùn)算的緩 存缺率數(shù)據(jù)視作一個(gè)統(tǒng)計(jì)單元塊。當(dāng)前統(tǒng)計(jì)單元塊AES運(yùn)算的閾值為上一個(gè)統(tǒng)計(jì)單元塊平 均值。統(tǒng)計(jì)單元塊大小根據(jù)應(yīng)用需求可配置為2的整數(shù)次方冪,這樣做有利于硬件實(shí)現(xiàn) 除法運(yùn)算。在計(jì)算統(tǒng)計(jì)單元塊內(nèi)數(shù)據(jù)平均值時(shí)可通過移位運(yùn)算實(shí)現(xiàn)對樣本的算術(shù)平均。閾 值寄存器用來存放用以比較的閾值。判決公式如下
撤_緩存缺失數(shù)
調(diào)整閾值> 士方、士勹船
內(nèi)存訪問數(shù)由于除法在硬件實(shí)現(xiàn)會(huì)影響系統(tǒng)性能,所以將如上公式調(diào)整用乘加單元實(shí)現(xiàn)判 決調(diào)整閾值X內(nèi)存訪問數(shù)-緩存缺失數(shù)>0(1)緩存缺失率求和寄存器保存了本次統(tǒng)計(jì)單元塊內(nèi)缺失率總和,當(dāng)本次統(tǒng)計(jì)單元塊 完成時(shí),計(jì)數(shù)器輸出飽和信號(hào),缺失率求和寄存器清零,同時(shí)更新閾值寄存器。本發(fā)明利用硬件模塊來實(shí)時(shí)測量所關(guān)心區(qū)段的緩存缺失率,通過與閾值比較來產(chǎn) 生偽缺失,使不同明文輸入的AES加密運(yùn)算呈現(xiàn)出相同的加解密時(shí)間。在無該硬件防御機(jī) 制下,AES加解密運(yùn)算的缺失率接近正態(tài)分布,如果在該防御機(jī)制下,AES運(yùn)算的缺失率基 本穩(wěn)定在無保護(hù)模式下的上限水平。根據(jù)本發(fā)明的硬件結(jié)構(gòu)與原有緩存的融合架構(gòu),其基本特征是(1)原有緩存的 內(nèi)部結(jié)構(gòu)無需改動(dòng),所提出的硬件防御方案在原緩存外圍實(shí)現(xiàn)。(2)原有緩存命中信號(hào)邏輯 發(fā)生改變,預(yù)取命中和緩存命中皆可使命中信號(hào)有效,同時(shí)該兩信號(hào)可通過與邏輯被IPMG模塊輸出屏蔽。 本發(fā)明中IPMG模塊,能夠統(tǒng)計(jì)歷史平均缺失率,并且根據(jù)當(dāng)前缺失率水平進(jìn)行偽 缺失產(chǎn)生判決。閾值的產(chǎn)生是基于統(tǒng)計(jì)單元塊進(jìn)行的,即對以往一塊數(shù)據(jù)進(jìn)行統(tǒng)計(jì)平均。偽 缺失產(chǎn)生信號(hào)中使用了乘加單元,從而避免使用了除法器。統(tǒng)計(jì)單元塊大小可以根據(jù)應(yīng)用 需求由編程人員設(shè)定。
圖1有保護(hù)和無保護(hù)情形下緩存缺失率分布圖。圖2安全緩存整體架構(gòu)圖。圖3IPMG模塊結(jié)構(gòu)圖。圖4程序?qū)崿F(xiàn)示意圖。圖5無保護(hù)情形下相關(guān)性分析結(jié)果。圖6有保護(hù)情形下相關(guān)性分析結(jié)果。圖7性能比較直方圖。圖中標(biāo)號(hào)1為數(shù)據(jù)預(yù)取模塊,2為多路選擇器,3為邏輯與門,4為仲裁模塊,5為 緩存缺失數(shù)實(shí)時(shí)檢測模塊,6為IPMG模塊,7為原數(shù)據(jù)緩存。
具體實(shí)施例方式本發(fā)明是對處理器數(shù)據(jù)緩存的安全加強(qiáng),集成安全模塊時(shí)不需要對原緩存進(jìn)行任 何內(nèi)部結(jié)構(gòu)的修改,具體的集成方法如下。本發(fā)明中原緩存對系統(tǒng)總線接口改為仲裁器與系統(tǒng)總線接口,原緩存的總線接口 與所加入的預(yù)取單元的總線接口輸入至仲裁器。訪問內(nèi)存時(shí),處理器核輸出的虛擬地址需要同時(shí)輸入至原緩存和添加的預(yù)取單 元。緩存輸出的數(shù)據(jù)和預(yù)取單元輸出的數(shù)據(jù)需要經(jīng)過多路選擇器選擇輸出給處理器核。緩 存命中信號(hào)不再是原數(shù)據(jù)緩存命中信號(hào),而是經(jīng)過安全模塊處理后的模塊。本發(fā)明中提出的方案在MIPS 4kc處理器上實(shí)現(xiàn),為了對不需要安全保護(hù)的程 序不產(chǎn)生影響,編程人員可以配置數(shù)據(jù)緩存的工作模式,所以處理器需要增加兩條指令 CacheProEnter和CacheProLeave。同時(shí)為了支持統(tǒng)計(jì)單元塊的可配置性,需要處理器支持 緩存配置指令CacheConfig。執(zhí)行CacheProEnter指令數(shù)據(jù)緩存進(jìn)入安全工作模式并且缺失數(shù)計(jì)數(shù)模塊清零, 即開始一次新的測量計(jì)數(shù)。執(zhí)行CacheProLeave指令數(shù)據(jù)緩存離開安全工作模式進(jìn)入正常工作模式,此時(shí) IPMG模塊計(jì)數(shù)器增一,即表明該次測量結(jié)束。如果計(jì)數(shù)器達(dá)到飽和值表明統(tǒng)計(jì)單元塊結(jié)束, 此時(shí)該計(jì)數(shù)器清零開始下一輪統(tǒng)計(jì)單元塊計(jì)數(shù)。執(zhí)行CacheConfig指令可以對統(tǒng)計(jì)數(shù)據(jù)塊大小進(jìn)行配置,IPMG模塊支持如下2的 整數(shù)次方冪大小2,4,8,16,32,64,128。具體的程序編寫如圖4所示,代碼行1記錄當(dāng)前時(shí)間戳,代碼行2開啟緩存安全工 作模式,代碼行3執(zhí)行AES加解密程序,代碼行4加解密臨界區(qū)結(jié)束關(guān)閉緩存安全工作模 式,代碼行5記錄當(dāng)前時(shí)間戳并計(jì)算加解密時(shí)間。
本發(fā)明中提出的安全方案實(shí)現(xiàn)后在FPGA開發(fā)板上驗(yàn)證實(shí)現(xiàn),使用的FPGA開發(fā)板 是Altera Stratix II EP2S180F1020C3。在沒有實(shí)施本發(fā)明中提出的安全方案前,隨機(jī)產(chǎn) 生單數(shù)據(jù)塊明文,并測量加密時(shí)間獲得2,000, 000個(gè)時(shí)間樣本。通過時(shí)間驅(qū)動(dòng)相關(guān)性分析, 可以得到相關(guān)峰如圖5所示。同樣在加入防御措施之后,測量獲得2,000, 000個(gè)時(shí)間樣本。通過同樣的攻擊方 法分析,可以得到圖6。圖5中的相關(guān)峰掩蓋在其他密鑰猜測值當(dāng)中,不能通過觀察得到。本發(fā)明中缺失率調(diào)整技術(shù)屬于微調(diào)技術(shù),所以進(jìn)入安全模式后程序性能的損失很 小,圖7給出了在不同緩存配置下性能比較直方圖。一般情況下,性能損失不到10%。
權(quán)利要求
一種抗時(shí)間驅(qū)動(dòng)緩存攻擊的硬件改進(jìn)結(jié)構(gòu),其特征在于,原數(shù)據(jù)緩存維持原來結(jié)構(gòu),在其外圍加入若干部件,包括緩存缺失數(shù)實(shí)時(shí)檢測模塊、數(shù)據(jù)預(yù)取模塊、多路選擇器、偽缺失應(yīng)激生成模塊、兩個(gè)與門和仲裁模塊;其中緩存缺失數(shù)實(shí)時(shí)檢測模塊,其輸入為緩存命中信號(hào),是一個(gè)計(jì)數(shù)器,每當(dāng)緩存發(fā)生缺失時(shí),計(jì)數(shù)器值就增加一;數(shù)據(jù)預(yù)取模塊,該模塊內(nèi)含有一個(gè)預(yù)取控制模塊和一個(gè)4條緩存行大小的數(shù)據(jù)暫存區(qū),用來存放預(yù)取的數(shù)據(jù),預(yù)取由緩存缺失觸發(fā),預(yù)取地址為發(fā)生缺失行的接下來四個(gè)緩存行;預(yù)取機(jī)制根椐應(yīng)用需求打開和關(guān)閉;多路選擇器,其輸入為原數(shù)據(jù)緩存的輸出和數(shù)據(jù)預(yù)取模塊的輸出;偽缺失應(yīng)激生成模塊,其輸入為內(nèi)存訪問信號(hào)和缺失數(shù)實(shí)時(shí)檢測模塊的輸出;根據(jù)當(dāng)前的緩存缺失率,該模塊根據(jù)歷史統(tǒng)計(jì)所得的閾值和當(dāng)前的缺失率來產(chǎn)生強(qiáng)制缺失信號(hào);當(dāng)產(chǎn)生偽缺失時(shí),該模塊輸出拉低使得兩個(gè)與門輸出為低,以屏蔽數(shù)據(jù)預(yù)取模塊和數(shù)據(jù)緩存的信號(hào);同時(shí)數(shù)據(jù)預(yù)取模塊被觸發(fā)工作,去內(nèi)存中讀取訪問行;當(dāng)預(yù)取完成時(shí),該模塊將輸出拉高,與門將接受數(shù)據(jù)緩存和數(shù)據(jù)預(yù)取模塊的信號(hào)判斷輸出;仲裁模塊用于解決數(shù)據(jù)緩存和數(shù)據(jù)預(yù)取模塊沖突情形。
2.根據(jù)權(quán)利要求1所述的抗時(shí)間驅(qū)動(dòng)緩存攻擊的硬件改進(jìn)結(jié)構(gòu),其特征在于,偽缺失 應(yīng)激生成模塊產(chǎn)生強(qiáng)制缺失信號(hào)的方法如下對歷史緩存缺失率進(jìn)行平均值統(tǒng)計(jì)用以估計(jì)調(diào)整閾值,若把一次AES運(yùn)算的緩存缺失 率記作m,把若干次AES運(yùn)算的緩存缺率數(shù)據(jù)視作一個(gè)統(tǒng)計(jì)單元塊,當(dāng)前統(tǒng)計(jì)單元塊AES運(yùn) 算的閾值作為上一個(gè)統(tǒng)計(jì)單元塊平均值;其中,統(tǒng)計(jì)單元塊大小配置為2的整數(shù)次方冪,在計(jì)算統(tǒng)計(jì)單元塊內(nèi)數(shù)據(jù)平均值時(shí)通 過移位運(yùn)算實(shí)現(xiàn)對樣本的算術(shù)平均,設(shè)置閾值寄存器,用來存放用以比較的閾值;判決公式 如下調(diào)整閾值X內(nèi)存訪問數(shù)-緩存缺失數(shù)> 0(1)緩存缺失率求和寄存器保存了本次統(tǒng)計(jì)單元塊內(nèi)缺失率總和,當(dāng)本次統(tǒng)計(jì)單元塊完成 時(shí),計(jì)數(shù)器輸出飽和信號(hào),缺失率求和寄存器清零,同時(shí)更新閾值寄存器。
全文摘要
本發(fā)明屬于信息安全技術(shù)領(lǐng)域,具體為一種抗時(shí)間驅(qū)動(dòng)緩存攻擊的硬件改進(jìn)結(jié)構(gòu)。本發(fā)明維持處理器原數(shù)據(jù)緩存結(jié)構(gòu),只在其外圍加入若干部件,包括緩存缺失數(shù)實(shí)時(shí)檢測模塊、數(shù)據(jù)預(yù)取模塊、多路選擇器、偽缺失應(yīng)激生成模塊、兩個(gè)與門和仲裁模塊;使得其能抵抗針對AES的時(shí)間驅(qū)動(dòng)的緩存攻擊。本發(fā)明提出的cache改進(jìn)方案在MIPS 4kc處理器上實(shí)現(xiàn),并通過FPGA測試驗(yàn)證其能有效抵抗各種類型的時(shí)間驅(qū)動(dòng)緩存攻擊。本發(fā)明方案消耗很少的硬件代價(jià),而AES加解密算法運(yùn)行性能損失不到10%。
文檔編號(hào)G06F11/00GK101887397SQ201010191648
公開日2010年11月17日 申請日期2010年6月3日 優(yōu)先權(quán)日2010年6月3日
發(fā)明者盧仕聽, 張隨欲, 曾曉洋, 韓軍 申請人:復(fù)旦大學(xué)