




版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
中國科學:信息科學2025年第55卷第2期:297–325SCIENTIASINICAInformationis論文論文SCIENCECHINAPRESScrossMark現(xiàn)代處理器低功耗漏洞發(fā)現(xiàn)與利用1.可信分布式計算與服務教育部重點實驗室(北京郵電大學),北京1008762.哈爾濱工業(yè)大學計算機科學與技術系,哈爾濱1500063.清華大學計算機科學與技術系,北京100084*通信作者.E-mail:wds@收稿日期:2024–09–03;修回日期:2024–10–24;接受日期:2024–11–30;網(wǎng)絡出版日期:2025–01–22北京市自然科學基金面上項目(批準號:4242026)、國家自然科學基金面上項目(批準號:62072263,62372258)和中央高校基本科研業(yè)務費專項資金(批準號:2023RC71)資助摘要低功耗是現(xiàn)代處理器設計的重要目標之一,為了降低功耗,現(xiàn)代處理器廣泛應用了動態(tài)電壓頻率調(diào)節(jié)(dynamicvoltageandfrequencyscaling,DVFS)技術.本文聚焦DVFS技術的安全性開展研究工作,發(fā)現(xiàn)主流處理器的DVFS單元在電壓和頻率管理方面存在安全缺陷,由此造成3個硬件漏洞:通用處理器的低電壓故障注入漏洞、圖形處理器(graphicsprocessingunit,GPU)的低電壓故障注入漏洞和通用處理器的頻率隱藏通道漏洞.基于此,提出軟件控制的低電壓故障注入攻擊和頻率隱藏通道攻擊兩種新的攻擊方法,整個攻擊過程完全使用軟件實現(xiàn)但是不利用任何軟件漏洞.通過4個攻擊實例驗證了所提出的方法的有效性,實現(xiàn)了攻破主流可信執(zhí)行環(huán)境ARMTrustZone和Intel軟件防護擴展(softwareguardextensions,SGX)、使GPU上的人工智能模型失效以及構建數(shù)據(jù)秘密傳送通道等目標.本文分別從硬件和軟件兩個角度提出防御措施,可助力處理器設計人員設計新一代安全低功耗技術.關鍵詞處理器安全,漏洞挖掘與利用,動態(tài)電壓頻率調(diào)節(jié),故障注入攻擊,隱藏通道攻擊處理器是計算機系統(tǒng)的根基,如果處理器安全無法得到保障,整個計算機系統(tǒng)將不安全,與之緊密關聯(lián)的網(wǎng)絡空間安全更無從談起.高性能和低功耗是現(xiàn)代處理器設計的重要目標,處理器設計人員使用了大量的優(yōu)化技術來實現(xiàn)這些目標,但是在應用這些優(yōu)化技術時,往往缺少從安全的角度進行審視和驗證,從而可能引發(fā)大量的安全問題.2018年初爆出的由處理器高性能技術造成的“熔斷”[1]和“幽靈”[2]漏洞及其變種可以跨權限泄露私密數(shù)據(jù),影響了大量當時已應用的處理器.隨后,處理器高性能技術的安全性引起了研究人員的廣泛關注,多種新的基于高性能技術的漏洞[3~7]也相繼被發(fā)現(xiàn).但是,現(xiàn)代處理器廣泛使用的低功耗技術的安全性目前仍缺少比較充分的研究.引用格式:邱朋飛,孫日輝,王春露,等.現(xiàn)代處理器低功耗漏洞發(fā)現(xiàn)與利用.中國科學:信息科學,2025,55:297–325,doi:10.1360/SSI-2024-0266QiuPF,SunRH,WangCL,etal.Exploringandexploitingthehardwarevulnerabilitiesinthelow-powerunitsofmodernprocessors.SciSinInform,2025,55:297–325,doi:10.1360/SSI-2024-0266?2025《中國科學》雜志社/doi/10.1360邱朋飛等中國科學:信息科學2025年第55卷第2期298降低處理器的頻率和電壓可以有效降低處理器的功耗,因此,現(xiàn)代處理器廣泛應用了動態(tài)電壓頻率調(diào)節(jié)(dynamicvoltageandfrequencyscaling,DVFS)[8~11]技術以實現(xiàn)低功耗目標.DVFS在滿足用戶對性能的需求下根據(jù)處理器的負載狀態(tài)動態(tài)改變電壓和頻率.為了支持DVFS,處理器的硬件頻率和電壓管理器的輸出被設計成是可調(diào)的,操作系統(tǒng)的DVFS驅(qū)動可以通過調(diào)用處理器的頻率和電壓管理接口動態(tài)調(diào)節(jié)處理器的頻率和電壓.由于DVFS技術使得處理器的頻率和電壓均可通過軟件調(diào)整,如果沒有從硬件層面設計安全的頻率和電壓管理機制,則可能造成安全問題.本文聚焦現(xiàn)代處理器低功耗技術的安全性開展研究工作,發(fā)現(xiàn)了3個安全漏洞.漏洞一:通用處理器的低電壓故障注入漏洞(CNVD-2024-03408),可使處理器可信區(qū)“不可信”.Intel和ARM并沒有在公開文檔中說明如何修改處理器的電壓.對于Intel處理器,本文基于對“處理器的工作狀態(tài)主要通過模式寄存器(modelspeci?cregister,MSR)[12]進行配置”的觀察,遍歷了所有可用的MSR,發(fā)現(xiàn)編號為0x150的MSR可以被用于修改處理器的電壓.對于ARM處理器,本文對處理器廠商提供的電壓管理驅(qū)動程序的代碼和函數(shù)調(diào)用過程進行了深入的分析,發(fā)現(xiàn)可以通過配置子系統(tǒng)電源管理器(subsystempowermanager,SPM)[13]中的寄存器修改處理器的電壓.基于此,本文對Intel和ARM等主流處理器的電壓進行了測試,發(fā)現(xiàn)主流處理器并沒有從硬件層面對電壓進行安全管理,攻擊者可以通過惡意降低處理器的電壓,向處理器中注入硬件故障,實現(xiàn)故障注入攻擊,由此形成了低電壓故障注入漏洞.該漏洞可以被用于攻擊處理器的可信執(zhí)行環(huán)境,使得可信區(qū)“不可信”.漏洞二:圖形處理器的低電壓故障注入漏洞(CNVD-2023-16144),可使人工智能模型“失效”.工業(yè)界和學術界廣泛使用圖形處理器(graphicsprocessingunit,GPU)來加速人工智能(arti?cialintelligence,AI)模型的訓練和推理過程.在這個過程中,GPU通常被認為是可信的,這實際上使得目前運行在其上的大量AI模型暴露在由硬件漏洞引起的潛在攻擊風險中.為了減少能耗,目前的GPU也使用DVFS技術來動態(tài)調(diào)節(jié)頻率和電壓[14].本文通過研究發(fā)現(xiàn),GPU并沒有對頻率和電壓的對應關系(頻率–電壓對)進行硬件限制,攻擊者可以通過使電壓不能支持當前頻率,向GPU中注入硬件故障,由此形成了GPU的低電壓故障注入漏洞.該漏洞可以被用于攻擊運行在GPU上的AI模型,使其分類精度下降或輸出攻擊者預期的分類結果.漏洞三:通用處理器的頻率隱藏通道漏洞,可用于“秘密”傳送數(shù)據(jù).隱藏通道攻擊通過共享資源而不是合法的數(shù)據(jù)傳輸方式在發(fā)送程序和接收程序之間建立數(shù)據(jù)傳輸通道[15~18],可以繞過各種訪問控制機制.目前有一些頻率隱藏通道攻擊方法被提出[19~21],但是這些攻擊假設發(fā)送程序具有管理員權限,并且需要直接修改頻率以實現(xiàn)信息的傳送.本文對Linux系統(tǒng)的DVFS驅(qū)動程序進行了分析,發(fā)現(xiàn)該驅(qū)動程序會將處理器的頻率保存到一個文件中,且沒有對該文件的訪問權限進行限制,這使得普通的用戶程序也能讀取到處理器的頻率信息,由此導致頻率隱藏通道漏洞.這是DVFS驅(qū)動程序的一個漏洞,因為處理器的頻率沒有必要讓用戶空間的應用程序獲取.該漏洞可以被用于構建隱蔽信道,實現(xiàn)不同進程之間的隱蔽信息傳輸.基于發(fā)現(xiàn)的上述3個漏洞,本文提出兩種新的攻擊方法并在真實處理器上進行驗證.軟件控制的低電壓硬件故障注入攻擊.在該攻擊中,攻擊者使用軟件代碼創(chuàng)建低電壓毛刺,造成處理器出現(xiàn)硬件故障,進而修改被攻擊程序的運行時數(shù)據(jù),實現(xiàn)硬件故障注入攻擊,整個攻擊過程完全利用軟件實現(xiàn)但不依賴于任何軟件漏洞.本文成功使用該方法竊取運行在ARMTrustZone[22,23]和IntelSGX[24,25]等主流可信執(zhí)行環(huán)境中的AES加密密鑰,并使運行在可信執(zhí)行環(huán)境中的RSA解密函數(shù)輸出預期明文.此外,本文使用該方法成功降低運行在GPU上的AI模型的準確率以及使AI模型輸出預期的分類結果.由于AI模型具有一定的容錯能力,隨機注入故障不能實現(xiàn)好的攻擊效果.本文設計了一種基于梯度下降分析的敏感目標搜索算法,以找出對AI模型的輸出影響比較大的元素,在攻擊時,向這些元素中注入硬件故障.為了獲得更加有效的攻擊參數(shù),本文采用遺傳算法對參數(shù)進行優(yōu)化.這是首次對GPU實施的軟件控制的低電壓故障注入攻擊./doi/10.1360邱朋飛等中國科學:信息科學2025年第55卷第2期299頻率隱藏通道攻擊.在該攻擊中,攻擊程序基于要發(fā)送的信息向處理器提供不同的工作負載.由于DVFS的工作特性,DVFS驅(qū)動程序會自動根據(jù)處理器的負載情況調(diào)整處理器核的頻率,從而實現(xiàn)信息的編碼.接收程序利用DVFS驅(qū)動程序的漏洞獲取處理器的頻率,經(jīng)過解碼后獲得發(fā)送程序發(fā)送的數(shù)據(jù).該攻擊可以用于在低權限程序中傳輸數(shù)據(jù),且能實現(xiàn)信息的雙向傳遞.本文成功在Intel等主流處理器上實現(xiàn)了該攻擊,并對該攻擊的數(shù)據(jù)傳輸率及錯誤率進行了實驗探究.本文的主要貢獻如下.(1)發(fā)現(xiàn)現(xiàn)代處理器低功耗技術的3個安全漏洞.本文對現(xiàn)代處理器(包括通用處理器和GPU)的低功耗技術的安全性進行了研究,發(fā)現(xiàn)現(xiàn)代處理器的電壓可以通過軟件代碼進行修改,由此造成了低電壓故障注入漏洞,這是處理器的硬件漏洞,廣泛存在于已部署的處理器中.此外,本文發(fā)現(xiàn)通用處理器的頻率信息可以被非特權用戶獲取,由此造成了頻率隱藏通道漏洞.本文針對這些漏洞分別提出了針對性的緩解措施,可以增強處理器的安全能力.(2)提出兩種新的攻擊方法.基于發(fā)現(xiàn)的3個漏洞,本文提出了軟件控制的低電壓硬件故障注入攻擊方法,這是首個針對成熟商業(yè)處理器的軟件控制的低電壓故障注入攻擊方法,攻擊過程完成使用軟件實現(xiàn)但不利用任何軟件漏洞.此外,本文提出了頻率隱藏通道攻擊方法,與現(xiàn)有的頻率隱藏通道攻擊需要高權限的發(fā)送程序直接修改處理器的頻率不同,該攻擊對信息發(fā)送方和接收方的權限沒有任何要求且不需要直接修改頻率.(3)在真實處理器上實現(xiàn)攻擊.本文利用提出的攻擊方法成功竊取運行在ARMTrustZone和IntelSGX等主流處理器可信執(zhí)行環(huán)境中的AES的加密密鑰,并通過使RSA解密函數(shù)輸出預期明文,實現(xiàn)將不可信應用程序加載到TrustZone中的效果.此外,本文成功對運行在NvidiaGPU上的AI模型進行了攻擊,在沒有對抗樣本的情況下誤導AI模型輸出預期的分類結果.本文也在Intel處理器上驗證了頻率隱藏通道攻擊方法的有效性,實現(xiàn)了平均每秒28.41位的數(shù)據(jù)傳輸率.漏洞披露.本文已將發(fā)現(xiàn)的通用處理器的低電壓故障注入漏洞和GPU的低電壓故障注入漏洞提交到國家信息安全漏洞共享平臺(ChinaNationalVulnerabilityDatabase,CNVD),這兩個漏洞目前均已被收錄,CNVD號分別為CNVD-2024-03408和CNVD-2023-16144.本文后續(xù)章節(jié)的安排如下.第2節(jié)介紹與本文研究相關的背景知識與相關工作,包括動態(tài)電壓頻率調(diào)節(jié)、故障注入攻擊和低電壓故障注入的原理;第3節(jié)介紹本文發(fā)現(xiàn)的3個安全漏洞及提出的兩種攻擊方法;第4和5節(jié)分別介紹本文針對主流可信執(zhí)行環(huán)境ARMTrustZone和IntelSGX進行故障注入攻擊的實驗過程及結果;第6節(jié)介紹本文針對GPU上的AI模型進行故障注入攻擊的實驗過程及結果;第7節(jié)介紹本文實現(xiàn)頻率隱藏通道攻擊的過程及實驗結果;第8節(jié)從硬件和軟件兩個角度介紹可能的修復本文發(fā)現(xiàn)的3個漏洞的方法;最后,第9節(jié)對本文的研究內(nèi)容進行總結并展望未來的研究工作.2背景知識與相關工作本節(jié)介紹與本文研究相關的背景知識及工作,包括DVFS、故障注入攻擊和低電壓故障注入原理.2.1動態(tài)電壓頻率調(diào)節(jié)處理器的能耗由靜態(tài)能耗和動態(tài)能耗組成,動態(tài)能耗ET是動態(tài)功耗Pt在時間上的卷積1).Pt由負載電容C、電壓Vt和頻率Ft共同決定,其關系如式(1)[26~29]所示.可以看出,動態(tài)功耗與電壓、頻率成正比,因此,降低電壓和頻率可以有效減少處理器的動態(tài)功耗,進而減少能耗.不過降低處理器的電壓和頻率也會降低性能.為了在性能和功耗之間折中,現(xiàn)代處理器廣泛應用了DVFS技術[8,26].DVFS允許操作系統(tǒng)以滿足用戶對性能和功耗的要求為目的,根據(jù)處理器的負載狀態(tài)動態(tài)改變電壓和 1)從時間0到時間T內(nèi)的ET可表示為ET=∫Ptdt./doi/10.1360邱朋飛等中國科學:信息科學2025年第55卷第2期300頻率.為了實現(xiàn)DVFS,向處理器核提供頻率和電壓的硬件管理器的輸出被設計為基礎頻率和基礎電壓的倍數(shù),倍數(shù)大小由相應的操作系統(tǒng)內(nèi)核驅(qū)動配置.PtⅨVt2FtC.(1)為了更好地對處理器的電壓和頻率進行管理,可設定的電壓和頻率的值被固定在離散元組的集合(operatingperformancepoints,OPP)中2).每個頻率值對應一個電壓值,該電壓值是由處理器廠商確定的,可以安全地驅(qū)動處理器在對應的頻率下正常工作.2.2故障注入攻擊電路只有在合適的溫度、電壓、頻率和電磁等工作環(huán)境下才能正常工作,故障注入攻擊通過提供異常的工作環(huán)境向運行中的電路注入硬件故障,獲得故障輸出.結合差分故障分析技術[30,31],攻擊者可以實現(xiàn)多種特定的攻擊目的.差分故障分析技術通過數(shù)學方法分析程序的正確輸出和錯誤輸出的差異,進而推測程序的私密數(shù)據(jù),是一種比較成熟的分析方法.AES[32],RSA[33],DES[34],3G-SNOW[35],ECC[36],SMS4[37]以及Grain[38]等加密算法均受到差分故障分析技術的影響.根據(jù)采取的故障注入方式的不同,故障注入攻擊可以分為三類.(1)基于硬件的故障注入攻擊:使用特殊的硬件設備更改系統(tǒng)的工作參數(shù)實現(xiàn)故障注入,包括更改頻率[39,40]、電壓[33,41]、溫度[42]、光強[43]、聲音環(huán)境[44]和電磁環(huán)境[45]等.(2)基于軟件的故障注入攻擊:使用軟件代碼改變系統(tǒng)的工作參數(shù)實現(xiàn)硬件故障注入.例如,CLKscrew攻擊通過對處理器進行超頻實現(xiàn)高頻率故障注入攻擊[13]、RowHammer攻擊[46]通過頻繁訪問某個內(nèi)存單元更改臨近內(nèi)存單元的數(shù)據(jù).(3)基于模擬的故障注入攻擊:通過改變電路的內(nèi)部邏輯值實現(xiàn)故障注入[47,48],主要用在計算機的模擬測試中.基于硬件的故障注入攻擊實現(xiàn)簡單,成功率比較高,但是該類攻擊需要特殊的外部硬件設備輔助,無法實現(xiàn)遠程攻擊,因而影響范圍有限.基于軟件的故障注入攻擊不需要被攻擊設備的物理訪問權限,完全使用程序指令觸發(fā)硬件故障以及控制故障注入的整個過程,可以對計算機系統(tǒng)構成比較嚴重的威脅.本文提出的故障注入攻擊方法屬于基于軟件的故障注入攻擊方法.2.3低電壓故障注入的原理時序電路需要滿足一定的時間約束才能保證各個電子元件的協(xié)調(diào)運行.圖1展示了一個時序電路的信號傳輸過程和時序關系.該時序電路由一個時序電子元件(觸發(fā)器)開始,并由另一個時序電子元件(觸發(fā)器)結束.中間的邏輯單元對第一個時序電子元件的輸出進行處理,并將處理后的結果作為最后一個時序電子元件的輸入.為了更好地理解該時序電路需要滿足的時間約束,本文做以下定義:?Tclk表示一個時鐘周期,是兩個時鐘上升沿的間隔,也反映了電路的頻率;?Tsetup表示最后一個時序電子元件在處理輸入數(shù)據(jù)時,輸入數(shù)據(jù)必須要保持穩(wěn)定的時間;?Tsrc表示第一個時序電子元件的輸入和輸出之間的延時;?Ttransfer表示第一個時序電子元件的輸出到中間邏輯單元的輸出之間的時間間隔.為了保證最后一個時序電子元件的輸入在下一個時鐘上升沿到來之前保持穩(wěn)定,從而確保該電路的正確性,該電路需要滿足如式(2)所示的時間約束[13,27~29],Tsrc+Ttransfer≤Tclk?Tsetup?T?,(2)其中T?表示一個微小的時間常量.t時刻門電路的延時Gt為 Gt=k(Vt/(Vt?Vr)2),(3) 2)ThesourcecodesofkraitpmicfrequencydriverprovidedbyQualcomm./kernel/msm/+/android-msm-shamu-3.10-lollipop-mr1/drivers/clk/qcom/clock-krait.c,2015./doi/10.1360邱朋飛等中國科學:信息科學2025年第55卷第2期301圖1(網(wǎng)絡版彩圖)低電壓故障注入的原理:黑線波形表示電路正常工作時的信號傳輸過程及時間約束,紅線波形表示電壓過低時的信號傳輸過程及時間關系(低電壓會破壞電路的時間約束,在該電路中,會導致輸出結果出錯).Figure1(Coloronline)Principleoflowvoltage-basedfaultinjection:thewaveformoftheblacklinerepresentsthesignaltransferprocessandthetimingconstraintwhenthecircuitisworkingnormally,andthewaveformoftheredlineillustratesthesignaltransferprocessandthechangesofthesignals’timingwhenthevoltageistoolow.Alowvoltagemaydestroythecircuit’stimingconstraint.Inthiscircuit,itwillcauseanerroroutput.其中,k是一個常數(shù),Vt是電路在t時刻的電壓,Vr是電路的額定電壓.從式(3)可以看出,Gt與Vt成反比,降低電壓會使門電路的輸入和輸出之間的延時變長.在電路的時鐘頻率不變的情況下,Tclk是固定的,此外,Tsetup由時序電子元件的特性決定,與電路的電壓和頻率無關.如果提供給上述時序電路的電壓降低,Tsrc和Ttransfer會增加,式(2)中的時間約束就有可能被破壞.圖1的紅線部分展示了電壓過低時的信號傳輸過程,最后一個時序電子元件會在還沒有收到中間邏輯單元的穩(wěn)定輸出之前處理數(shù)據(jù),此時使用的輸入是之前的輸入,電路的輸出與預期輸出不一致,從而出現(xiàn)硬件故障.3處理器低功耗技術安全分析及攻擊方法本文對處理器低功耗技術的安全性進行了詳細的分析,發(fā)現(xiàn)3個安全漏洞.基于此,本文提出兩種新的攻擊方法.本節(jié)介紹本文發(fā)現(xiàn)的3個漏洞以及提出的兩種攻擊方法.3.1處理器電壓配置接口研究為了支持DVFS,現(xiàn)代處理器會在硬件上提供電壓配置接口以供系統(tǒng)軟件調(diào)用,實現(xiàn)電壓的動態(tài)調(diào)節(jié),但是這些接口并沒有在公開文檔中描述,本文通過多種方法獲取不同處理器的電壓配置接口.Intel處理器電壓配置接口研究.Intel處理器的工作參數(shù)通過MSR進行配置,但是Intel并沒有在其官方文檔中描述控制電壓的MSR.本文對處理器中所有可用的MSR進行了測試,發(fā)現(xiàn)編號為0x150的MSR是處理器的電壓配置接口,本文進一步分析了該MSR每一位的功能(如圖2所示).第[42:40]位表示被尋址的設備(0x0表示處理器);第[31:21]位表示對應于當前電壓的電壓偏移;位[19:8]表示要配置的處理器電壓的大小.因此,我們有兩種方法來更改處理器電壓,即更改電壓偏移或直接配置/doi/10.1360邱朋飛等中國科學:信息科學2025年第55卷第2期302圖2(網(wǎng)絡版彩圖)Intel處理器的電壓配置寄存器各個位的功能.有兩種方法可以設置處理器的電壓:(1)修改相對于當前電壓的電壓偏移(通過位[32:21]);(2)直接設置處理器的電壓(通過位[19:8]).Figure2(Coloronline)Functionsofeachbitinthevoltagecon?gurationregisterofIntelprocessors.Therearetwomethodstosettheprocessor’svoltage:(1)modifyingthevoltageo?setcorrespondingtothecurrentvoltage(viabits[32:21]);(2)directlysettingtheprocessor’svoltage(viabits[19:8]).電壓.盡管每個核都有其MSR,但是大多數(shù)Intel處理器各個核的頻率/電壓都由同一個頻率/電壓硬件管理器進行管理,因此,各個核的頻率和電壓都是相同的.ARM處理器電壓配置接口研究.在攻擊ARM處理器時,本文使用的實驗設備為GoogleNexus6手機(處理器是高通公司的APQ8084AB).本文并沒有在官方文檔中找到該處理器的電壓調(diào)節(jié)方式,不過高通公司提供了一個名為krait-regulator3)的電壓調(diào)節(jié)驅(qū)動程序,本文對該電壓調(diào)節(jié)驅(qū)動程序的代存器的值實現(xiàn)對電壓的管理.通過進一步的分析,本文發(fā)現(xiàn)該寄存器的第[15:8]位代表了要設置的處理器電壓的大小.與Intel處理器不同,為了實現(xiàn)更加精細的電源管理,ARM處理器每個核的頻率可以設置成不一樣,但是每個核的電壓都是一樣的.NVIDIAGPU電壓配置接口研究.NvidiaGPU通常由PCIe端口/連接器供電,GPU上的電壓控制器負責將來自PCIe端口/連接器的電壓轉換成合適的電壓給GPU核.電壓控制器的輸出可以通過通用輸入/輸出(general-purposeinput/output,GPIO)引腳進行控制(在某些高端GPU設備上,可以通過I2C適配器進行控制).Nvidia提供的驅(qū)動程序Nvidia-smi允許管理員修改和查詢GPU的電壓大小.在頻率管理方面,NvidiaGPU上有兩個時鐘源,PCIe參考時鐘(100MHz)和片上晶振(通常為27MHz)[49,50],使用哪個時鐘源由選擇器確定.GPU的頻率可以通過鎖相環(huán)(phase-lockedloop,PLL)進行提高或通過時鐘分頻器進行降低,其工作參數(shù)可以通過Nvidia-smi驅(qū)動程序配置.3.2通用處理器頻率測量方法本文對通用處理器的頻率信息獲取方式進行了研究,共發(fā)現(xiàn)4種方法可以獲得處理器的頻率.(1)測量具有固定迭代次數(shù)的空循環(huán)所花費的時間或者統(tǒng)計某個時間間隔內(nèi)空指令的執(zhí)行次數(shù);(2)讀取控制頻率的寄存器(在Intel處理器中,控制頻率的MSR為IA32PERFCTL,在ARM處(3)讀取系統(tǒng)監(jiān)控模塊輸出的處理器頻率信息,例如,在Linux系統(tǒng)中,內(nèi)核模塊cpuinfo會將處理器的頻率寫入到文件cpuinfocurfreq中[51];(4)讀取DVFS驅(qū)動CPUfreq創(chuàng)建的名為scalingcurfreq的文件,該文件記錄了DVFS設置的處理器頻率.此外,普通用戶可以利用CPUfreq提供的命令cpufreq-info來獲取頻率,該命令也 3)ThesourcecodesofkraitpmicvoltageregulatorprovidedbyQualcomm./kernel/msm/+/android-msm-shamu-3.10-lollipop-mr1/arch/arm/mach-msm/krait-regulator.c,2014./doi/10.1360邱朋飛等中國科學:信息科學2025年第55卷第2期303是通過讀取scalingcurfreq的內(nèi)容得到處理器的頻率.方法(1)在頻率固定時能很好地判斷頻率大小,并且也是之前的頻率隱藏通道攻擊[19~21]使用的方法.但是,由于空循環(huán)或空指令會增加處理器的負載,這使得在開啟DVFS的情況下,DVFS驅(qū)動程序會提高處理器的頻率.因此,已有的頻率隱藏通道攻擊都假設數(shù)據(jù)發(fā)送程序具有管理員權限,以能直接配置處理器的頻率并禁止DVFS驅(qū)動程序修改處理器的頻率.方法(2)和(3)要求接收程序具有管理員權限以能訪問頻率寄存器或相應文件.方法(4)對接收程序的權限沒有任何要求,這是DVFS驅(qū)動設計的一個缺陷,因為處理器的頻率沒有必要讓用戶空間的應用程序獲取.3.3處理器低功耗技術的安全漏洞發(fā)現(xiàn)本文通過實驗發(fā)現(xiàn)Intel處理器中配置頻率的MSR被添加了基于硬件的限制機制,因此,無法在這些處理器上實現(xiàn)基于超頻的故障注入攻擊.但是本文研究發(fā)現(xiàn)Intel處理器的電壓可以通過軟件代碼修改且可被降低到不能支持處理器正常工作的電壓.對于ARM處理器,雖然Tang等[13]認為對ARM處理器進行低電壓故障注入攻擊是不可行的,因為處理器會在電壓被非法更改后立即重啟.但是本文研究發(fā)現(xiàn)ARM處理器的電壓也可以通過軟件代碼修改且可以通過對電壓管理程序的修改使得處理器在電壓過低時不會立即重啟.由此,導致了通用處理器的低電壓故障注入漏洞(漏洞一).此外,本文研究發(fā)現(xiàn)GPU的頻率和電壓也可以通過軟件代碼修改且GPU沒有對頻率–電壓的對應關系做硬件限制,由此導致了圖形處理器的故障注入漏洞(漏洞二).最后,本文發(fā)現(xiàn)用戶程序也可以獲得處理器的頻率信息,由此導致了頻率隱藏通道漏洞(漏洞三).3.4攻擊假設和威脅模型為了利用上述3個漏洞,本文提出了兩種新的攻擊方法(軟件控制的低電壓硬件故障注入攻擊和頻率隱藏通道攻擊),并在真實處理器上進行了驗證.在這些攻擊方法中,本文做出以下兩個假設:(1)本文假設目標處理器具有DVFS技術.DVFS是一種廣泛應用在當前處理器中的低功耗技術,因此該假設適用于大多數(shù)處理器.(2)在軟件控制的低電壓故障注入攻擊中,本文假設攻擊者具有管理員權限,以具有修改處理器電壓的能力.該假設在攻擊可信執(zhí)行環(huán)境時符合實際攻擊場景,具體攻擊目標描述在3.5.3小節(jié).在以上兩個假設的基礎上,特取用戶可以使用本文提出的低電壓故障注入攻擊方法對IntelSGX,ARMTrustZone和GPU等進行低電壓故障注入攻擊,以攻破處理器的可信執(zhí)行環(huán)境或使AI模型失效.此外,非特取用戶可以使用本文提出的頻率隱藏通道攻擊進行秘密信息傳送.需要說明的是,頻率隱藏通道攻擊不需要假設攻擊者具有管理員權限,該假設主要用于軟件控制的低電壓故障注入攻擊中.3.5軟件控制的低電壓故障注入攻擊圖3展示了本文提出的軟件控制的低電壓故障注入攻擊方法.攻擊程序在攻擊核上運行,被攻擊程序在被攻擊核或GPU上運行,攻擊程序在特定時間點創(chuàng)建低電壓毛刺,觸發(fā)被攻擊核或GPU的硬件故障,從而改變被攻擊程序的運行時數(shù)據(jù).結合差分故障分析技術,攻擊者就能實現(xiàn)很多攻擊目的.3.5.1攻擊過程攻擊程序通過以下4個步驟實現(xiàn)對被攻擊程序的故障注入,這4個步驟都是通過軟件實現(xiàn)的.(1)設置攻擊環(huán)境.攻擊程序主要從3個方面準備合適的攻擊環(huán)境.首先,固定處理器各個核的頻率,以減少DVFS產(chǎn)生的頻率變化對攻擊的不利影響.其次,將處理器的電壓設置為一個能保證所有核都能正常工作的安全電壓.最后,清除處理器的剩余狀態(tài),因為處理器的剩余狀態(tài)會影響被攻擊程序的執(zhí)行速度,進而影響故障注入的準確性./doi/10.1360邱朋飛等中國科學:信息科學2025年第55卷第2期304圖3(網(wǎng)絡版彩圖)軟件控制的低電壓故障注入攻擊方法概覽.攻擊程序主要通過4個步驟實現(xiàn)攻擊:設置攻擊環(huán)境、等待故障注入點、更改處理器電壓和恢復處理器電壓.Figure3(Coloronline)Overviewoftheproposedsoftware-controlledlowvoltage-basedfaultinjectionattack.Theattackerprocedureimplementstheattackmainlythroughfoursteps:settingtheattackenvironment,waitingforthefaultinjectionpoint,reducingtheprocessor’svoltage,andrecoveringtheprocessor’svoltage.(2)等待故障注入點.故障注入點的選擇由差分故障分析方法決定,在攻擊通用處理器時,一般只需要一個故障注入點,但是在攻擊AI系統(tǒng)時,故障注入點一般有多個.由于被攻擊程序往往是已公開的加密函數(shù)或AI模型,因此,等待故障注入點所需的時間可以事先計算出來.(3)更改處理器電壓.在被攻擊程序運行到故障注入點時,攻擊程序降低處理器的電壓以實現(xiàn)硬件故障注入.為了確保硬件故障不會對被攻擊程序的其他部分產(chǎn)生較大影響,攻擊者需要準確控制低電壓持續(xù)時間,以減少注入的硬件故障對被攻擊程序中其他部分代碼的影響.(4)恢復處理器電壓.攻擊程序需要在注入故障后恢復處理器電壓為安全電壓,以使被攻擊程序可以繼續(xù)使用故障后的數(shù)據(jù)執(zhí)行.由于注入的硬件故障已經(jīng)導致了被攻擊程序執(zhí)行時的中間數(shù)據(jù)修改,并且修改會被傳播到最終輸出,因此攻擊者可以通過差分故障分析技術對故障輸出進行分析.3.5.2攻擊參數(shù)為了注入可控的故障,攻擊者需要為以下7個參數(shù)找到合適的值:Ffault={Fa;Fv;Vc;Vg;Tw;Vl;Td};其中每個參數(shù)的意義如表1所示.在攻擊GPU上的AI模型時,由于需要注入多個硬件故障,因此等待時間Tw是一個集合,集合的大小等于預期的硬件故障注入點的數(shù)量.3.5.3攻擊目標程序該攻擊假設攻擊者已經(jīng)獲得了管理員權限.首先,有許多方法可以被用來實現(xiàn)普通用戶的提權[52].其次,IntelSGX,ARMTrustZone以及GPUTEE(例如,HypSec[53],Graviton[54]和HIX[55])等可信執(zhí)行環(huán)境都是在假設管理員是不可信的基礎上構建的,因此,攻擊可信執(zhí)行環(huán)境并不違反攻擊假設.注入的故障是發(fā)生在被攻擊核或GPU上的硬件故障,在被攻擊核或GPU上運行的任何函數(shù)都可能成為被攻擊函數(shù).但是,相比于破壞被攻擊函數(shù)的正常執(zhí)行過程,攻擊者可能更希望有目的地實施攻擊.差分故障分析技術通過分析程序的正常輸出和故障輸出的不同,可以有效攻擊各種加密算法./doi/10.1360邱朋飛等中國科學:信息科學2025年第55卷第2期305表1低電壓故障注入攻擊參數(shù)描述.Table1Meaningoftheparametersoftheproposedlowvoltage-basedfaultinjectionattack.ParameterParametermeaningFaThefrequencyoftheattackercore,whichcansupporttheattackercoretoworknormallyandisunchangedthroughouttheentireattackprocess.FvThefrequencyofthevictimcoreorGPU,whichissu?cienttomakethevictimcoreorGPUworkcorrectlyandremainsunchangedduringthewholeattackprocess.VcThesafevoltageforprocessor,whichistheworkingvoltageofprocessorbeforeandafterthefaultinjectionprocesses.VgThesafevoltageforGPU,whichistheworkingvoltageofGPUbeforeandafterthefaultinjectionprocesses.TwThetimethattheattackerprocedurewaitsforthevictimproceduretoexecutetothefaultinjectionpoint,whichcanbedeterminedbymeasuringtheexecutionprocessofthevictimprocedureinadvance.VlThelowvoltagethatcanintroducehardwarefaultsintothevictimcoreofprocessororGPU,whichisdeterminedthroughexperiments.TdThedurationofVl.Duringthistime,thevictimcoreofprocessororGPUwillexecuteinstructionsincorrectlybutwillnotcrashorreboot.同時,加密技術已在ARMTrustZone和IntelSGX等可信執(zhí)行環(huán)境中被廣泛采用,以支持完整性度量、數(shù)據(jù)封裝、頁面交換和Enclave認證等[56].因此,在攻擊SGX和TrustZone時,加密函數(shù)可以成為攻擊目標,在攻擊GPU時,運行在GPUTEE中的AI模型可以成為攻擊目標.此外,在某些云環(huán)境中,管理程序被認為是不可信的,在這種場景下,云租戶的程序也可以成為攻擊目標.3.6頻率隱藏通道攻擊本文發(fā)現(xiàn)DVFS會將處理器的頻率信息泄露給用戶空間程序.基于此,本文提出一種對發(fā)送程序權限無要求且接收程序不需要運行額外負載的頻率隱藏通道攻擊方法.3.6.1攻擊過程圖4展示了本文提出的頻率隱藏通道攻擊方法的概覽.發(fā)送程序使用一個執(zhí)行大量計算工作的輔助線程來調(diào)整處理器的負載,由于DVFS的工作特點,處理器的頻率會隨著負載的變化而變化.如果發(fā)送程序需要提高處理器的頻率,它會激活輔助線程以增加處理器的負載,如果發(fā)送程序需要降低頻率,它將不會激活輔助線程或殺死正在運行的輔助線程,以使處理器工作在較少的負載下.接收程序判斷輔助線程是否被激活的一種方法是通過處理器提供的運行時平均功耗(runningaveragepowerlimit,RAPL)接口獲知處理器的功耗.然而,Lipp等[57]最近的研究發(fā)現(xiàn)RAPL可以被用來實現(xiàn)功耗側通道攻擊.為了緩解該漏洞,RAPL的訪問被限制在了特權級軟件中.本文發(fā)現(xiàn)的DVFS驅(qū)動程序的設計缺陷使得攻擊者可以直接使用頻率而不是功耗作為隱藏通道的信號.3.6.2編碼和解碼協(xié)議發(fā)送程序和接收程序需要確定如何傳輸一個比特位“1”以及如何傳輸一個比特位“0”.因此,應該設計合適的編碼和解碼協(xié)議.為了識別處理器頻率與輔助線程不同狀態(tài)之間的關系,本文使發(fā)送程序交替激活和不激活輔助線程,并讓接收程序每10ms檢測一次處理器的頻率.圖5展示了處理器的頻率隨著時間的變化情況.可以看出,當輔助線程被激活時,處理器工作在一個高頻率狀態(tài)下,否則處理器工作在一個低頻率狀態(tài)下.在圖5的基礎上,本文設計編碼和解碼協(xié)議如下.(1)對于編碼,如果發(fā)送程序需要發(fā)送“1”,它會激活輔助線程,如果需要發(fā)送“0”,它不會激活或終止正在運行的輔助線程.如果需要發(fā)送相同的值,發(fā)送程序不改變輔助線程的當前狀態(tài)./doi/10.1360邱朋飛等中國科學:信息科學2025年第55卷第2期306圖4(網(wǎng)絡版彩圖)頻率隱藏通道攻擊方法概覽.發(fā)送程序通過輔助線程改變處理器的負載,接收程序通過讀取處理器的頻率信息推測發(fā)送程序發(fā)送的數(shù)據(jù).Figure4(Coloronline)Overviewoftheproposedfrequency-basedcovertchannelattack.Thesenderprocedurechangestheprocessor’sworkloadbasedonthedatathroughanauxiliarythread,andthereceiverprocedureinfersthedatasentbythesenderprocedurebyidentifyingtheprocessor’sfrequency.圖5(網(wǎng)絡版彩圖)發(fā)送程序每隔10ms激活輔助線程情況下,處理器的頻率隨著輔助線程不同狀態(tài)的變化情況.基于此,我們可以設計編碼和解碼協(xié)議.Figure5(Coloronline)Changesofprocessor’sfrequencywiththedi?erentstatesoftheauxiliarythreadwhenthesenderprocedureactivatestheauxiliarythreadevery10ms.Basedonthis,wecandesigntheencodinganddecodingprotocolforthecovertchannel.(2)對于解碼,如果接收程序讀取到高頻率,它輸出比特位“1”,否則,比特位“0”被解碼.由于數(shù)據(jù)傳輸時可能會出現(xiàn)一些不可控的噪聲,本文將漢明(Hamming)碼嵌入到傳輸?shù)臄?shù)據(jù)中以實現(xiàn)錯誤的檢測和糾正.當然,可以使用其他的糾刪碼方法以實現(xiàn)一次發(fā)現(xiàn)更多的位錯誤,例如,/doi/10.1360邱朋飛等中國科學:信息科學2025年第55卷第2期307表2頻率隱藏通道攻擊參數(shù)描述.Table2Meaningoftheparametersoftheproposedfrequency-basedcovertchannelattack.ParameterParametermeaningTsThetimeslice,whichreferstothetimerequiredforadatatransmission.Withinatimeslice,thesenderproceduretransfersonebitofdatatothereceiverprocedure.TiThedatasendwindow.Atthebeginningofeachdatasendwindow,thesenderprocedureupdatestheprocessor’sworkloadaccordingtoonebitofthedata.TmThefrequencymonitorwindow,whichisalsothewaitingtimeofthereceiverprocedurebetweentwofrequencydetections.VThetotalvotes,whichisthenumberthatthereceiverprocedureprobestheprocessor’sfrequencywithinTi.SThethresholdfrequency.Iftheprocessor’sfrequencyisgreaterthanS,itmeansthata“1”issent,otherwise,a“0”issent.Bose-Chaudhuri-Hocquenghem(BCH)碼[58]和二進制戈萊碼(Golay)[59]等,不過這會帶來更高的實現(xiàn)和執(zhí)行復雜性.除了檢錯和糾錯,本文還通過創(chuàng)建時間片并利用投票機制來緩解噪聲的影響.在一個時間片內(nèi),接收程序多次測量處理器的頻率.在每次頻率測量中,如果接收程序發(fā)現(xiàn)處理器的頻率超出了預定義的閾值,則增加表示比特位為“1”的計數(shù)器,否則,增加表示比特位為“0”的計數(shù)器.該時間片內(nèi)的解碼數(shù)據(jù)是通過比較兩個計數(shù)器值的大小來決定的.發(fā)送程序需要通知接收程序數(shù)據(jù)傳輸事件的開始和結束.共享內(nèi)存、信號量和套接字等傳統(tǒng)的進程同步方式會將數(shù)據(jù)傳輸過程暴露給OS.本文使用一個特殊的字節(jié)序列來表示數(shù)據(jù)傳送的開始和結束(####表示數(shù)據(jù)傳輸?shù)拈_始,$$$$表示數(shù)據(jù)傳輸?shù)慕Y束).3.6.3攻擊參數(shù)在進行秘密信息傳送時,需要為以下5個參數(shù)選擇合適的值:Fchannel={Ts,Ti,Tm,V,S},其中每個參數(shù)的意義如表2所示.4攻擊實例1:攻破ARMTrustZoneTang等[13]發(fā)現(xiàn)通過ARM處理器的頻率接口可以實現(xiàn)高頻率故障注入攻擊,該攻擊命名為CLKscrew.然而,Tang等認為對ARM處理器進行低電壓故障注入攻擊是不可行的,因為處理器會在電壓被非法更改后立即重啟.本文在ARM處理器上實現(xiàn)了第3.5小節(jié)所提出的軟件控制的低電壓故障注入攻擊方法,成功獲取了由TrustZone保護的AES加密程序的密鑰,并繞過TrustZone加載應用程序時的安全驗證機制.本節(jié)介紹實施攻擊時面臨的挑戰(zhàn)以及實驗結果.4.1實驗設置本實驗的設備為GoogleNexus6移動手機,手機的處理器是高通公司的APQ8084AB,系統(tǒng)版本號是LMY48M.差分分析過程是在一個DELLXPS電腦中的Ubuntu16.04虛擬機上實現(xiàn)的.在執(zhí)行被攻擊程序之前,本文首先刷新Cache以清除Cache中的現(xiàn)有數(shù)據(jù),然后多次執(zhí)行被攻擊程序,實現(xiàn)使用被攻擊程序相關的數(shù)據(jù)填充Cache的目標,此時,處理器的狀態(tài)寄存器和分支預測表也與被攻擊程序相關.此外,本文還在更改電壓過程中屏蔽針對被攻擊核的中斷,以減少中斷對被攻擊程序執(zhí)行時間的影響./doi/10.1360邱朋飛等中國科學:信息科學2025年第55卷第2期3084.2實現(xiàn)攻擊時面臨的挑戰(zhàn)4.2.1克服電壓保護機制閾值電壓.高通在其提供的電壓管理驅(qū)動中增加了低壓線性穩(wěn)壓器(lowdropoutlinearregulator,LDO)模式,當請求的電壓低于一個事先定義的閾值電壓時,電壓驅(qū)動程序會將電壓的管理模式設置成LDO模式,此時,處理器的電壓會被設置成閾值電壓,而不是請求的較低電壓,從而避免低電壓觸發(fā)硬件故障.本文通過修改電壓管理驅(qū)動程序中電壓探測步驟的代碼更改閾值電壓的大小.電壓選擇.為了確保具有高頻率的處理器核在調(diào)整電壓時不會出現(xiàn)故障,電壓管理驅(qū)動程序會檢查請求的電壓是否能支持最高頻率處理器核的正常運行,如果請求的電壓低于最高頻率核所能接受的最低電壓,則將處理器的電壓設置為該最高頻率核所能接受的最低電壓.也就是說,除非降低頻率,否則直接調(diào)節(jié)處理器電壓是不能成功的.本文通過修改電壓管理驅(qū)動程序來取消該限制.4.2.2監(jiān)控被攻擊程序由于注入的硬件故障不一定會造成預期的數(shù)據(jù)更改,需要較多次數(shù)的嘗試才能分析出結果.如果攻擊者能獲得故障注入位置或者能檢測到注入的硬件故障是否實現(xiàn)了預期的數(shù)據(jù)更改,則私密數(shù)據(jù)的搜索空間能被大大降低.本文使用Cache側通道攻擊來推測被攻擊程序的執(zhí)行數(shù)據(jù).Lipp等[60]驗證了Cache側通道攻擊對TrustZone有效,并成功讀取了執(zhí)行在TrustZone中的AES程序的狀態(tài)矩陣.本文使用Prime+ProbeCache側通道攻擊方法監(jiān)視被攻擊程序的執(zhí)行過程.4.2.3精確計時Tw和Td都是時間敏感參數(shù),在實際攻擊時,它們一般是若干個時鐘周期.因此,操作系統(tǒng)提供的計時函數(shù)4)不能滿足時間精度的要求.本文使用特定循環(huán)次數(shù)的空指令(NOP)實現(xiàn)計時功能.一般情況下,一個NOP指令除了花費一個時鐘周期外什么也不做,是一個能在時鐘周期粒度計時的很好的指令.本文直接將計時指令嵌入到所需計時的位置處,以消除函數(shù)調(diào)用過程對計時的影響.4.2.4提高故障注入成功率在進行攻擊時,觸發(fā)的硬件故障可能會導致系統(tǒng)重啟,此外,某些注入嘗試可能會失敗.本文使用以下技術避免系統(tǒng)重啟并提高攻擊的效率和可靠性.讓無關處理器核處在忙狀態(tài).本文將除了攻擊核和被攻擊核外的其他核稱為無關核,無關核的工作狀態(tài)對攻擊電壓持續(xù)時間會有影響.本文分別將無關核的狀態(tài)設置為空閑(關閉)、正常(利用率在30%到50%之間)和繁忙(利用率在90%以上),然后測試為了成功注入故障,攻擊電壓需要持續(xù)的最短時間,實驗結果如圖6所示.當無關核處于繁忙狀態(tài)時,所需要的攻擊電壓持續(xù)時間是最少的,這是因為無關核會消耗更多的能量.因此,為了降低攻擊電壓持續(xù)時間,本文讓無關核工作在繁忙狀態(tài)下.降低Vc.從圖6可以看出,較低的攻擊電壓可縮短低電壓持續(xù)時間.但是,如果Vc過高,從Vc降到一個較低的Vl的電壓降幅會很大,容易造成系統(tǒng)的重啟.本文發(fā)現(xiàn)減少電壓降幅會使從Vc到Vl的切換更容易成功.因此,在攻擊之前,本文將Vc設置為能保證所有處理器核正常工作所需的最低電壓.4.2.5保護攻擊程序由于各個核的電壓都是一樣的,在降低電壓時,所有核的電壓都會受到影響.幸運的是,ARM處理器各個核的頻率可以被單獨設置.由于電子特性,一個核的頻率越高,其所需要的最低電壓也越高. 4)在Linux內(nèi)核中,udelay,mdelay,ndelay和msleep被廣泛用來實現(xiàn)計時功能./doi/10.1360邱朋飛等中國科學:信息科學2025年第55卷第2期309圖6(網(wǎng)絡版彩圖)不同電壓和不同無關核狀態(tài)(空閑、正常、繁忙)下產(chǎn)生硬件故障的最小持續(xù)時間(NOP指令執(zhí)行次數(shù)).Figure6(Coloronline)Minimumduration(loopnumberofNOPinstruction)toinduceahardwarefaultatdi?erentvoltagesanddi?erentstatesofirrelevantcores(idle,normal,andbusy).圖7(網(wǎng)絡版彩圖)被攻擊核處于不同狀態(tài)(繁忙和空閑)時,在不同頻率下保證處理器正常工作所需的最低電壓.Figure7(Coloronline)Voltageboundaryrequiredtoensurethattheprocessorperformsinstructionscorrectlyatdi?erentfrequencieswhenthevictimcoreisindi?erentstates(busyandidle).因此,攻擊者可以將運行攻擊程序的攻擊核和其他無關核的頻率設置為一個合法但是比較低的值,同時將運行被攻擊程序的被攻擊核的頻率設置為合法但是比較高的值.然后攻擊程序在特定時刻從高頻率和低頻率所需的最低電壓之間選擇一個合適的電壓作為攻擊電壓并持續(xù)一個較短時間.攻擊電壓對攻擊核是安全的,但是對被攻擊核是不安全的,因此,硬件故障會被注入到被攻擊核中.4.3攻擊電壓選擇本文首先獲得被攻擊核處于不同頻率下的默認電壓,然后獲得在被攻擊核處于空閑狀態(tài)時保證處理器正常工作的最低電壓,最后本文在被攻擊核上運行一個無限循環(huán)程序以讓被攻擊核繁忙并獲得保證處理器正常工作的最低電壓,實驗結果如圖7所示.對于一個固定頻率,黑線和藍線之間的電壓(綠色區(qū)域)是安全的,藍線和棕線之間的電壓(黃色區(qū)域)可能會注入故障,棕線以下的電壓(紅色及以下區(qū)域)有很大的可能會注入故障.所以我們可以選擇棕線以下的電壓作為故障電壓.4.4等待時間Tw決定著故障注入點,它主要由3個因素決定:(1)被攻擊程序的實現(xiàn)代碼;(2)被攻擊核的頻率;(3)攻擊核的頻率.不失一般性,本文使用的差分故障分析方法建立在AES第八輪的輸入出現(xiàn)單字節(jié)故障[61]以及RSA程序的公鑰模被篡改成易被質(zhì)因數(shù)分解的基礎上[13].因此,本文對一個公開的基于S-box的128位AES加密函數(shù)和基于Android加密庫mincrypt5)的2048位RSA解密函數(shù)進行分析,獲得了從AES開始執(zhí)行到第7輪列混合操作開始執(zhí)行的時間間隔,以及從RSA開始執(zhí)行到將大端表示的公鑰模轉換為小端表示的公鑰模的代碼開始執(zhí)行的時間間隔,如表3所示.4.5故障電壓和持續(xù)時間本文首先固定處理器各個核的頻率,然后對處理器施加不同的攻擊電壓,并將攻擊電壓持續(xù)不同的時間.對每一個電壓–持續(xù)時間對,本文測試了5次.最后,本文獲得128位AES的第8輪輸入和2048位RSA解密程序的公鑰模出現(xiàn)的平均故障字節(jié)數(shù),并將實驗結果放到圖8和9中.5)Mincryptlibrary./platform/system/core.git/+/android-6.0.1r1/libmincrypt,2015./doi/10.1360邱朋飛等中國科學:信息科學2025年第55卷第2期310表3攻擊ARMTrustZone時的故障注入等待時間(Tw)(NOP指令執(zhí)行次數(shù)).對于AES,Tw為從AES開始執(zhí)行到第7輪列混合操作開始執(zhí)行的時間間隔(NOP指令執(zhí)行次數(shù)),對于RSA,Tw為從RSA開始執(zhí)行到將大端表示的公鑰模轉換為小端表示的公鑰模的代碼開始執(zhí)行的時間間隔.Table3Waitingtimeforfaultinjection(Tw)(thenumberofexecutionsoftheNOPinstruction)whenattackingARMTrustZone.ForAES,TwisthetimeintervalfromthestartofAES’sexecutiontothestartofthecolumnmixingoperationoftheseventhround.ForRSA,TwisthetimeintervalfromthestartofRSA’sexecutiontothestartofthecodethatconvertsthepublickeymodulusrepresentedinthebigendiantothepublickeymodulusrepresentedinthelittleendian.Frequency(MHz)300422652729883960103611901267149715741728195822652457249625722649TwofAES(×103)62.6245.2931.8227.6123.821.1319.4517.115.6713.5712.5110.759.178.478.027.857.717.68TwofRSA(×105)26.0918.8712.910.969.518.537.766.96.365.514.914.574.083.713.53.353.193.11圖8(網(wǎng)絡版彩圖)不同攻擊電壓和持續(xù)時間下TrustZone中的AES第8輪輸入出現(xiàn)的故障字節(jié)數(shù).Figure8(Coloronline)NumberoffaultybytesintheinputoftheAES’seighthroundinTrustZoneunderdi?erentglitchvoltagesanddurations.圖9(網(wǎng)絡版彩圖)不同攻擊電壓和持續(xù)時間下TrustZone中的RSA整數(shù)模出現(xiàn)的故障字節(jié)數(shù).Figure9(Coloronline)NumberoffaultybytesinthepublickeymodulusofRSAdecryptionfunctioninTrustZoneatdi?erentglitchvoltagesanddurations.4.6攻擊TrustZone中的AES程序由于用戶不能在TrustZone中執(zhí)行自定義應用程序,為了實現(xiàn)對運行在TrustZone中的AES程序的攻擊,本文利用可信操作系統(tǒng)的接口漏洞將AES放到TrustZone中,然后使用本文提出的軟件控制的低電壓硬件故障注入攻擊方法獲取被TrustZone保護的AES密鑰.4.6.1將AES插入到TrustZone中高通公司提供了一個安全環(huán)境操作系統(tǒng)(qualcommsecureenvironmentoperatingsystem,QSEOS).QSEOS始終會對外部程序提供的參數(shù)進行驗證,但是,QSEOS的接口存在安全漏洞6),攻擊者可以使用該漏洞實現(xiàn)TrustZone權限的獲取.本文對該漏洞的利用代碼進行了修改,使之能在數(shù)字版權管理可信應用程序Widewine中創(chuàng)建一個代碼空間并將AES加密程序放到該代碼空間中.漏洞利用代碼運行時,TrustZone的執(zhí)行流會被引導到代碼空間中執(zhí)行AES加密程序.4.6.2攻擊成功率本文從圖8中選擇9個平均會產(chǎn)生單字節(jié)故障的攻擊參數(shù)對TrustZone中的AES進行攻擊.在 此攻擊中,攻擊核的頻率為0.42GHz,被攻擊核的頻率為2.65GHz.對于每個參數(shù),本文進行100次 6)Theexploitcodesofcve-2016-2431./laginimaineb/cve-2016-2431,2016./doi/10.1360邱朋飛等中國科學:信息科學2025年第55卷第2期311表4攻擊TrustZone中的AES加密程序的成功率.Table4AttacksuccessratewhenbreakingAESencryptionfunctionexecutedinTrustZone.Voltage(V)Duration0.5037000.5539000.6041000.6542000.7042000.7541000.8044000.8545000.904800AverageNumberoffaultybytes48375162285830464244.7Numberofsinglefaultybytes3125321212.2Attacksuccessrate(%)3125321212.2攻擊,并使用攻擊成功率評估該參數(shù)的效果,實驗結果如表4所示.可以看出,當攻擊參數(shù)為{Fa=0.42GHz,Fv=2.65GHz,Vc=1.055V,Tw=7680,Vl=0.65V,Td=4200}時(Tw和Td的單位為一條NOP指令的執(zhí)行時間,一般是一個時鐘周期,下同),攻擊成功率大概為5%.4.6.3密鑰恢復本文使用以上參數(shù)進行200次成功攻擊,并獲得故障出現(xiàn)的位置.如圖10所示,狀態(tài)矩陣的第10個和15個字節(jié)更容易出現(xiàn)故障.當故障位置為10時,差分故障分析程序7)使用926s生成3623個可能的密鑰,當故障位置為15時,差分故障分析程序使用1121s生成4248個可能的密鑰.這兩組可能的密鑰只有一個共同元素,即AES的加密密鑰.4.7加載不可信應用程序到TrustZone中TrustZone會對加載的應用程序進行4次基于RSA解密的簽名驗證.本文在TrustZone進行最后一次簽名認證時向安全核注入故障,更改RSA解密程序的公鑰模,并使用構造的輸入密文替換Widevine的最后一級簽名.在加載更改后的Widevine程序時,使用同樣的攻擊參數(shù)在TrustZone進行最后一次簽名認證時注入硬件故障,進而通過TrustZone的最后一級簽名認證,加載更改后的不可信Widevine程序.4.7.1攻擊參數(shù)簽名認證過程中RSA的加載地址是固定的.此外,簽名認證過程中最后一輪RSA解密函數(shù)的整數(shù)模N也被加載到固定的內(nèi)存地址0x0FC8952C處,這為使用Cache側通道攻擊讀取更改后的N提供了可能.本文使用不同的攻擊參數(shù)對TrustZone中的RSA實施攻擊.通過控制攻擊電壓和攻擊電壓持續(xù)時間,可以得到較多的Nm,每個可質(zhì)因數(shù)分解的Nm都可以使用.由于實驗的可重復性,使用相同的攻擊參數(shù)進行攻擊,很容易產(chǎn)生相同的硬件故障.根據(jù)是否把公鑰模N故障成Nm,可以判斷攻擊是否成功.4.7.2實現(xiàn)攻擊根據(jù)本文的實驗,當參數(shù)為{Fa=0.42GHz,Fv=2.65GHz,Vc=1.055V,Tw=311000,Vl=0.65V,Td=3800}時,200次實驗中,73次成功注入故障,其中21次產(chǎn)生了可質(zhì)因數(shù)分解的Nm,在這23個中有15個是一樣的(故障后的Nm如圖11所示).本文使用該參數(shù)加載不可信應用程序時,平均94次嘗試中有一次可以成功.4.8攻擊成功率分析在對TrustZone中的AES加密程序和RSA解密程序進行攻擊時,攻擊成功率只有5%和1.1%.這是因為在攻擊AES加密程序時,注入的硬件故障只有將第8輪的輸入產(chǎn)生單字節(jié)錯誤才算攻擊成功,在攻擊RSA解密程序時,注入的故障只有將RSA的公鑰模改成與采用同一攻擊參數(shù)得到的結果 7)Di?erentialfaultanalysisframeworkforaes128./Daeinar/dfa-aes,2013./doi/10.1360邱朋飛等中國科學:信息科學2025年第55卷第2期312圖10(網(wǎng)絡版彩圖)對TrustZone中AES第8輪的輸入實現(xiàn)200次單字節(jié)故障注入后,每個字節(jié)出現(xiàn)的故障次數(shù).Figure10(Coloronline)Occurrencenumberofdi?erentfaultinjectionlocationsafter200single-bytefaultinjectionsintotheeighthroundofAESperformedinTrustZone.圖11(網(wǎng)絡版彩圖)Widev
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025-2030年中國鋁棒市場運行態(tài)勢及發(fā)展可行性分析報告
- 2025-2030年中國聚氨酯慢回彈海綿女性內(nèi)衣市場運營狀況及發(fā)展規(guī)劃分析報告
- 2025-2030年中國美體塑身衣行業(yè)市場運行狀況及發(fā)展趨勢分析報告
- 2025-2030年中國經(jīng)濟型轎車市場運行動態(tài)與發(fā)展戰(zhàn)略分析報告
- 2025-2030年中國硅酸鈣板行業(yè)發(fā)展趨勢及前景調(diào)研分析報告
- 防火門進戶門制作安裝承包合同
- 電子商務平臺技術研發(fā)合作框架協(xié)議
- 電商平臺推廣服務及收益分享協(xié)議
- 互聯(lián)網(wǎng)廣告投放與效果評估協(xié)議
- 環(huán)境衛(wèi)生保潔承包合同
- 自然科學基金項目申報書(模板)
- 文學類文本閱讀(語言賞析類)-2025年北京高考語文一輪總復習(解析版)
- 2024年政工職稱考試題庫(含答案)
- 香港(2024年-2025年小學二年級語文)部編版綜合練習試卷(含答案)
- 專題18 圓的相關性質(zhì)及計算證明(34題)2024年中考數(shù)學真題分類匯編(解析版)
- 2024羽毛球教案36課時
- 1.1區(qū)域及其類型-課件
- 小學生衛(wèi)生知識健康教育精課件
- 小學生課程表模板可編輯78
- 政府招商大使合作協(xié)議書
- 營養(yǎng)科專業(yè)知識考核試卷
評論
0/150
提交評論