




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