◆李志峰 高玉琢
基于高速緩存的側(cè)信道攻擊方法研究
◆李志峰 高玉琢
(寧夏大學(xué)信息工程學(xué)院 寧夏 750000)
基于高速緩存的側(cè)信道攻擊由于其高隱蔽性、高傳輸性、甚至無(wú)須物理接觸等特點(diǎn)打破了設(shè)備的隔離保護(hù)機(jī)制,對(duì)當(dāng)今的信息安全產(chǎn)生了重大的威脅,開(kāi)展側(cè)信道攻擊的研究具有重要的國(guó)家和社會(huì)意義。本文進(jìn)行了基于高速緩存的側(cè)信道攻擊的研究。該攻擊所用到的信息包括cache訪問(wèn)軌跡、整體加密時(shí)間或者cache訪問(wèn)模式。根據(jù)攻擊者對(duì)目標(biāo)系統(tǒng)的攻擊手段和擁有的權(quán)限能力可以將攻擊歸為三大類:軌跡驅(qū)動(dòng)攻擊、時(shí)間驅(qū)動(dòng)攻擊和訪問(wèn)驅(qū)動(dòng)攻擊。本文首先研究cache信息的泄露原理及三大類攻擊方法,并指出該類攻擊方法的優(yōu)勢(shì),最后對(duì)cache側(cè)信道攻擊的通用架構(gòu)及具體的攻擊步驟進(jìn)行詳細(xì)研究。
高速緩存;側(cè)信道攻擊;漏洞;信息泄露
在硬件設(shè)備實(shí)際應(yīng)用中,會(huì)泄漏出能量、電磁等多種類型的物理信息,這些信息被稱為側(cè)信息。側(cè)信息在密碼計(jì)算過(guò)程中是無(wú)法避免總會(huì)產(chǎn)生的,攻擊者通過(guò)直接或間接的方式獲取密碼算法運(yùn)算過(guò)程中的中間值信息,對(duì)算法進(jìn)行攻擊,進(jìn)而恢復(fù)出算法密鑰,這一類攻擊方法統(tǒng)稱為側(cè)信道攻擊技術(shù)。側(cè)信道攻擊對(duì)信息安全有著重大的安全威脅,對(duì)于側(cè)信道攻擊的研究具有重要的國(guó)家和社會(huì)意義?;诟咚倬彺妫–ache)的側(cè)信道攻擊方法[1]是在2002年第一次提出的,其利用了密碼運(yùn)算過(guò)程中對(duì)cache資源訪問(wèn)時(shí)泄露的信息來(lái)對(duì)密碼算法實(shí)現(xiàn)進(jìn)行攻擊從而獲得算法的密鑰[2-4]。Cache是CPU內(nèi)部集成的高速緩存存儲(chǔ)器件,CPU通過(guò)使用Cache緩存數(shù)據(jù)來(lái)對(duì)訪問(wèn)內(nèi)存進(jìn)行加速。當(dāng)CPU讀取數(shù)據(jù)時(shí),訪問(wèn)Cache的速度與訪問(wèn)內(nèi)存的速度相差約兩個(gè)數(shù)量級(jí)[3],從而造成訪問(wèn)數(shù)據(jù)時(shí)由于數(shù)據(jù)所在位置不同(Cache命中與否)出現(xiàn)顯著的時(shí)間差異。攻擊者通過(guò)觀察密碼系統(tǒng)運(yùn)行時(shí)Cache數(shù)據(jù)訪問(wèn)時(shí)間、密碼運(yùn)算執(zhí)行時(shí)間的差異,分析獲取Cache訪問(wèn)狀態(tài)與密鑰數(shù)據(jù)的關(guān)系,進(jìn)而獲取部分或全部密鑰信息,是一種非常有效的攻擊方法。相比于其他類型側(cè)信道攻擊,Cache側(cè)信道攻擊無(wú)須專用硬件設(shè)備,攻擊者甚至無(wú)須物理接觸目標(biāo)對(duì)象,僅通過(guò)測(cè)量密碼運(yùn)算執(zhí)行時(shí)間或在目標(biāo)對(duì)象上執(zhí)行攻擊程序以獲取Cache訪問(wèn)模式,即可獲取全部或部分密鑰信息,因此Cache側(cè)信道要比其他側(cè)信道的威脅更大,危害更嚴(yán)重。Cache側(cè)信道攻擊技術(shù)發(fā)展至今,已有多種針對(duì)不同環(huán)境和場(chǎng)景的攻擊方法,可以對(duì)不同運(yùn)行環(huán)境中的不同密碼算法發(fā)起攻擊。本文將針對(duì)當(dāng)前主流的Cache側(cè)信道攻擊方法進(jìn)行研究,并對(duì)攻擊的思路和方法進(jìn)行探究,抽象出Cache側(cè)信道攻擊通用的框架模型。
Cache是位于CPU與主存之間的靜態(tài)存儲(chǔ)器,用以解決CPU與主存之間讀取速度不匹配的問(wèn)題[5]。具有高速存儲(chǔ)性質(zhì)的Cache造價(jià)昂貴,因此,現(xiàn)代計(jì)算機(jī)的Cache大多采用多層次結(jié)構(gòu),通常為三層。其特點(diǎn)就是越靠近CPU的模塊,存儲(chǔ)速度越快。當(dāng)CPU讀取數(shù)據(jù)時(shí),首先查看Cache中是否存在所需數(shù)據(jù)。如果存在,則直接從Cache中讀取數(shù)據(jù),即Cache 命中,此時(shí)讀取速度較快;如果不存在,則需要從內(nèi)存中讀取數(shù)據(jù)并將數(shù)據(jù)加載到Cache中,即Cache失效,此時(shí)讀取速度較慢。Cache和內(nèi)存在存取速度上存在較大差異,內(nèi)存的存取速度遠(yuǎn)小于Cache的存取速度,兩者相差約兩個(gè)數(shù)量級(jí),故CPU 訪問(wèn)內(nèi)存所需的時(shí)間遠(yuǎn)大于訪問(wèn)Cache所需的時(shí)間。根據(jù)該時(shí)間差異,可以判斷出數(shù)據(jù)是否被訪問(wèn)過(guò),如果訪問(wèn)過(guò),則會(huì)在Cache 中留下痕跡。
Cache側(cè)信道攻擊可以獲取Cache信息從而實(shí)現(xiàn)攻擊的另一個(gè)重要原理是共享內(nèi)存。為防止內(nèi)存中出現(xiàn)冗余數(shù)據(jù),操作系統(tǒng)使用共享內(nèi)存為不同的程序進(jìn)程提供共享數(shù)據(jù)。共享數(shù)據(jù)的內(nèi)容包括二進(jìn)制文件或者程序段,每個(gè)程序都能訪問(wèn)共享內(nèi)存,如果程序?qū)蚕頂?shù)據(jù)進(jìn)行修改,原有的共享內(nèi)容將繼續(xù)在各進(jìn)程中進(jìn)行共享。因?yàn)楹芏喑绦驌碛泄残?,比如輸入、顯示以及一些程序代碼。通過(guò)以上的方法和過(guò)程,能夠解決內(nèi)存數(shù)據(jù)冗余的問(wèn)題,同時(shí)降低Cache競(jìng)爭(zhēng)并提高運(yùn)行速度,但這種共享內(nèi)存使得Cache計(jì)時(shí)攻擊成為可能。操作系統(tǒng)通過(guò)將同一個(gè)物理地址空間映射到不同程序的虛擬地址空間,以實(shí)現(xiàn)內(nèi)存共享,其中,不同程序?qū)蚕頂?shù)據(jù)的打開(kāi)與讀取操作互不影響。利用間諜程序?qū)⑹芎Τ绦虻囊欢喂蚕矶M(jìn)制映射到內(nèi)存中,當(dāng)受害程序運(yùn)行時(shí),則會(huì)直接從物理內(nèi)存中獲取數(shù)據(jù),且訪問(wèn)的數(shù)據(jù)將會(huì)停留在Cache中。因?yàn)檫@段共享二進(jìn)制文件的物理地址對(duì)間諜程序透明,間諜程序遍歷所有固定地址范圍,通過(guò)訪問(wèn)數(shù)據(jù)時(shí)的Cache 命中與失效差異,以判斷受害程序訪問(wèn)的數(shù)據(jù),從而實(shí)現(xiàn)對(duì)Cache信息獲取。
自2002年P(guān)age[1]提出了基于高速緩存的側(cè)信道攻擊方法以來(lái),研究者們分析Cache訪問(wèn)時(shí)所能利用到的不同信息:Cache訪問(wèn)軌跡、整體加密時(shí)間或者Cache訪問(wèn)模式,提出了各種各樣的攻擊方法,這些方法根據(jù)攻擊者對(duì)目標(biāo)系統(tǒng)的攻擊手段和擁有的權(quán)限能力可以分為三大類,分別是:軌跡驅(qū)動(dòng)(trace-driven)的攻擊、時(shí)間驅(qū)動(dòng)(time-driven)的攻擊和訪問(wèn)驅(qū)動(dòng)(access-driven)的攻擊。
(1)軌跡驅(qū)動(dòng)(trace-driven)攻擊。攻擊者有能力接觸到目標(biāo)物理機(jī)器硬件,通過(guò)在密碼運(yùn)算時(shí)對(duì)Cache和內(nèi)存的能量、電磁輻射等變化進(jìn)行物理監(jiān)聽(tīng),分析每次密碼運(yùn)算時(shí)查找表訪問(wèn)中Cache命中(即查找表在Cache中)與否,對(duì)多組不同明文進(jìn)行監(jiān)測(cè),通過(guò)分析Cache命中與否的序列,獲取密鑰信息。軌跡驅(qū)動(dòng)Cache側(cè)信道攻擊最早由Page[1]提出,通過(guò)對(duì)DES算法的查找表進(jìn)行監(jiān)控,成功降低了DES密鑰查找空間。2005年,Bertoni等人成功獲取了AES第一輪的Cache命中序列,分析序列得到48bit的AES密鑰。2006年,Bonneau將攻擊擴(kuò)展到AES最后一輪,成功獲取AES完整密鑰。Gallias等人在2010年對(duì)軌跡驅(qū)動(dòng)Cache攻擊進(jìn)行了改進(jìn),對(duì)AES第一輪攻擊即可獲取98bit的密鑰。
(2)時(shí)間驅(qū)動(dòng)(time-driven)攻擊。攻擊者僅能測(cè)量密碼運(yùn)算的整體時(shí)間,通過(guò)統(tǒng)計(jì)由Cache命中和未命中所造成的密碼運(yùn)算時(shí)間差異,獲取密鑰信息。對(duì)于不同明文輸入,由于Cache命中數(shù)不同會(huì)導(dǎo)致計(jì)算時(shí)間有明顯差異,攻擊者通過(guò)測(cè)量密碼運(yùn)算整體執(zhí)行時(shí)間,統(tǒng)計(jì)分析不同明文對(duì)應(yīng)的加密時(shí)間可獲取密鑰信息。時(shí)間驅(qū)動(dòng)Cache攻擊主要分為兩類:內(nèi)部碰撞攻擊[6]和Bernstein攻擊[7]。內(nèi)部碰撞攻擊利用同一個(gè)Cache line中查找表?xiàng)l目的訪問(wèn)會(huì)產(chǎn)生內(nèi)部碰撞,內(nèi)部碰撞的發(fā)生導(dǎo)致更多的Cache命中,使得執(zhí)行時(shí)間更短,攻擊者通過(guò)控制輸入的明文信息,根據(jù)執(zhí)行時(shí)間即可推斷出密鑰部分比特信息。Bernstein攻擊通過(guò)在與目標(biāo)機(jī)器完全相同的機(jī)器上運(yùn)行相同的密碼算法實(shí)現(xiàn),針對(duì)查找表的每個(gè)輸入,在學(xué)習(xí)機(jī)器上獲取加密時(shí)間的極值點(diǎn)對(duì)應(yīng)的輸入值,以確定目標(biāo)機(jī)器上的密鑰信息。
(3)訪問(wèn)驅(qū)動(dòng)(access-driven)攻擊。訪問(wèn)驅(qū)動(dòng)攻擊要求攻擊者能夠在目標(biāo)機(jī)器中運(yùn)行程序以控制Cache并獲取Cache訪問(wèn)的精確時(shí)間,進(jìn)而能夠獲取相應(yīng)的Cache是否被訪問(wèn),并分析獲取密鑰信息。訪問(wèn)驅(qū)動(dòng)攻擊的攻擊者在目標(biāo)機(jī)器中運(yùn)行的間諜進(jìn)程和密碼運(yùn)算進(jìn)程共享部分Cache資源,間諜進(jìn)程監(jiān)控訪問(wèn)自身數(shù)據(jù)所需的時(shí)間,根據(jù)訪問(wèn)時(shí)間長(zhǎng)短判斷相應(yīng)數(shù)據(jù)是否在Cache中,從而推斷出密碼運(yùn)算所訪問(wèn)的Cache line。通過(guò)連續(xù)的監(jiān)控,攻擊者得到密碼運(yùn)算的Cache訪問(wèn)模式序列,并結(jié)合算法特性分析得到密鑰的信息。典型的訪問(wèn)驅(qū)動(dòng)攻擊包括Prime+Probe和Flush+Reload等[8-10]。
相比于其他類型的攻擊,基于Cache 的側(cè)信道攻擊擁有以下優(yōu)勢(shì):
(1)相比于傳統(tǒng)的密碼分析,基于Cache 的側(cè)信道攻擊在算法實(shí)現(xiàn)運(yùn)行時(shí)Cache的使用進(jìn)行監(jiān)控,避免了復(fù)雜的理論分析,且能夠有效獲取密碼運(yùn)算關(guān)鍵步驟的信息,進(jìn)而對(duì)密鑰信息進(jìn)行恢復(fù)。例如對(duì)128位的AES算法,使用Cache側(cè)信道攻擊只需要6-7個(gè)加密周期就能成功恢復(fù)出其密鑰。
(2)相比于其他類型的側(cè)信道攻擊,Cache側(cè)信道攻擊不需要額外的設(shè)備對(duì)目標(biāo)系統(tǒng)進(jìn)行監(jiān)控。比如能量攻擊需要使用設(shè)備對(duì)目標(biāo)系統(tǒng)的能量功耗進(jìn)行測(cè)量,電磁泄漏側(cè)信道攻擊需要使用特定設(shè)備對(duì)目標(biāo)系統(tǒng)散發(fā)的電磁信息進(jìn)行測(cè)量。而Cache本身是計(jì)算機(jī)結(jié)構(gòu)的一部分,攻擊者可以直接通過(guò)指令獲取Cache的訪問(wèn)時(shí)間,并不需要特定的裝置來(lái)測(cè)量。
(3)Cache側(cè)信道攻擊可以實(shí)施跨平臺(tái)、跨CPU、跨虛擬機(jī)的遠(yuǎn)程攻擊,并且攻擊程序利用的是對(duì)Cache的正常訪問(wèn)機(jī)制,攻擊過(guò)程就是正常的緩存訪問(wèn)過(guò)程,在系統(tǒng)中并不會(huì)產(chǎn)生異常信息,因此Cache側(cè)信道攻擊具有很高的隱蔽性,不易被檢測(cè)。
基于緩存的側(cè)信道攻擊模型討論需攻擊者具備以下的條件,而在現(xiàn)代計(jì)算機(jī)系統(tǒng)中這些條件基本都能夠滿足:
(1)攻擊者要與受害者存在共享的硬件資源,包括緩存、總線等等;
(2)攻擊者可以隨意訪問(wèn)受害者空間中的內(nèi)存;
(3)攻擊者可以測(cè)量訪問(wèn)內(nèi)存的時(shí)間。
一般而言,基于緩存的側(cè)信道攻擊可以根據(jù)攻擊目標(biāo)及受害者分為針對(duì)主機(jī)的攻擊和針對(duì)虛擬機(jī)的攻擊;根據(jù)攻擊對(duì)象可以分為針對(duì)加密算法的攻擊、針對(duì)操作系統(tǒng)的攻擊等。本文后續(xù)討論按照攻擊者在實(shí)施攻擊時(shí)對(duì)緩存的利用方式區(qū)別,把攻擊分為基于沖突的緩存?zhèn)刃诺拦艉突趶?fù)用的緩存?zhèn)刃诺拦?。基于沖突的緩存?zhèn)刃诺拦羰侵?,攻擊者與受害者不存在共享內(nèi)存,或有可能存在共享內(nèi)存,但是“漏洞”不存在于共享內(nèi)存中,攻擊者只能通過(guò)對(duì)自己的地址空間中的內(nèi)容訪問(wèn),影響正常受害者進(jìn)程中對(duì)緩存的使用,從而推斷出受害者對(duì)某物理地址的訪問(wèn)模式。其中,這里提到的“漏洞”是指可執(zhí)行程序的某一部分區(qū)域,它可以位于代碼段,也可以位于數(shù)據(jù)段,這段代碼或數(shù)據(jù)本身邏輯和設(shè)計(jì)沒(méi)有什么問(wèn)題,但是這部分內(nèi)存區(qū)域與受害者敏感信息相關(guān),攻擊者可以利用這段代碼的執(zhí)行情況或數(shù)據(jù)的訪問(wèn)情況判斷出受害者信息,從而造成受害者信息泄露[11-12]?;趶?fù)用的緩存?zhèn)刃诺拦?,指攻擊者與受害者可以共享內(nèi)存,例如共享的庫(kù)、文件等等,且攻擊者利用的“漏洞”存在于共享內(nèi)存中,攻擊者可以獲取到該區(qū)域的內(nèi)存訪問(wèn)模式。
根據(jù)攻擊者實(shí)施基于緩存?zhèn)刃诺拦羲枰扇〉木唧w操作,攻擊過(guò)程可以分為以下幾個(gè)步驟:
(1)確定“漏洞”
攻擊者在攻擊過(guò)程中,首先要確定出“漏洞”源,才能對(duì)“漏洞”確定的地址進(jìn)行監(jiān)視從而獲取信息。漏洞主要包括基于指令執(zhí)行的漏洞和基于數(shù)據(jù)訪問(wèn)的漏洞。基于指令執(zhí)行的漏洞是指受害者程序在執(zhí)行過(guò)程中,存在與受害者信息相關(guān)的指令控制流,例如轉(zhuǎn)移條件中的分支跳轉(zhuǎn)指令。通過(guò)對(duì)這些指令的監(jiān)控,攻擊者可以分析出受害者的指令執(zhí)行過(guò)程,之后對(duì)獲得的信息進(jìn)行推斷;基于數(shù)據(jù)訪問(wèn)的漏洞是指程序訪問(wèn)的數(shù)據(jù)與受害者信息相關(guān),例如查找某個(gè)地址的數(shù)據(jù)內(nèi)容時(shí)把受害者信息作為索引。攻擊者只需通過(guò)觀察內(nèi)存的訪問(wèn)情況,便可以獲取出受害者信息。
(2)確定“沖突域”
根據(jù)攻擊者和受害者共享的層面不同,攻擊可以分為跨虛擬機(jī)攻擊、跨進(jìn)程攻擊、跨處理器核攻擊。與其他的攻擊方式相比,跨虛擬機(jī)的攻擊首先要進(jìn)行“虛擬機(jī)同駐”的判斷,即判斷攻擊者和受害者所在的虛擬機(jī)之間的關(guān)系是處于同一個(gè)處理器核,還是在同一個(gè)處理器中不同的處理器核上;或者不同的虛擬機(jī)運(yùn)行于不同的處理器上。通過(guò)“虛擬機(jī)同駐”判斷,可以分析出攻擊者與受害者之間的共享結(jié)構(gòu),從而就可以把問(wèn)題轉(zhuǎn)化為跨進(jìn)程攻擊或者跨處理器核攻擊??邕M(jìn)程攻擊是指攻擊者和受害者運(yùn)行于同一個(gè)處理器核之上,可以共享的資源包括緩存、內(nèi)存、內(nèi)存控制器等資源;跨處理器核攻擊是指當(dāng)攻擊者和受害者運(yùn)行于不同的處理器核之上時(shí),可以共享的資源包括最后一級(jí)緩存(LLC,Last Level Cache)、內(nèi)存等。當(dāng)攻擊者所要利用的“漏洞”存在于共享內(nèi)存中時(shí),攻擊者便可以通過(guò)對(duì)該“漏洞”對(duì)應(yīng)地址進(jìn)行直接訪問(wèn),影響“漏洞”對(duì)應(yīng)內(nèi)容在緩存中的狀態(tài);而假如“漏洞”不存在于共享內(nèi)存中時(shí),攻擊者則需要首先分析出一組“虛擬地址集合”,攻擊者通過(guò)這個(gè)集合影響“漏洞”對(duì)應(yīng)的代碼或數(shù)據(jù)在緩存中的狀態(tài),這個(gè)虛擬地址集合被稱為“沖突域”。具體來(lái)講,沖突域是一組虛擬地址的集合,攻擊者可以訪問(wèn)這個(gè)集合中的地址。一般來(lái)說(shuō),通過(guò)沖突域的訪問(wèn)可以得到目標(biāo)地址對(duì)應(yīng)的狀態(tài)變化,且攻擊者需根據(jù)緩存的關(guān)聯(lián)程度選擇合適大小的沖突域以得到更為精準(zhǔn)的受害者信息。
(3)獲取信息
攻擊者通過(guò)“沖突域”對(duì)“漏洞”的位置進(jìn)行監(jiān)視,從而獲得相關(guān)區(qū)域的裝填變化信息,即攻擊者竊取的信息,這些信息包括以下幾種類別:
1)訪問(wèn)執(zhí)行時(shí)間的差異信息。數(shù)據(jù)或代碼位于不同的存儲(chǔ)器層次結(jié)構(gòu)時(shí),訪問(wèn)時(shí)間會(huì)存在較大的差異。通常訪問(wèn)內(nèi)存的時(shí)間和訪問(wèn)高速緩存的時(shí)間相差約兩個(gè)數(shù)量級(jí),通過(guò)對(duì)執(zhí)行時(shí)間的測(cè)量,可以獲取到受害者的訪存情況信息。
2)引發(fā)中斷的事件信息。當(dāng)檢測(cè)到緩存被驅(qū)逐的時(shí)候,會(huì)引起事務(wù)中斷,攻擊者可以捕捉這些事件,從而對(duì)受害者行為進(jìn)行分析,獲取受害者的信息。
3)硬件資源使用情況信息。程序在執(zhí)行過(guò)程中,有可能對(duì)硬件單元獨(dú)占或者鎖定,從而導(dǎo)致別的程序不能使用。攻擊者可以通過(guò)對(duì)這些硬件資源的使用情況進(jìn)行檢測(cè),從而分析出受害者正在執(zhí)行的部分操作。
(3)還原信息
攻擊者獲取到受害者相關(guān)狀態(tài)信息的變化后,需要根據(jù)已有的先驗(yàn)知識(shí)同時(shí)結(jié)合獲得的信息進(jìn)行受害者信息的還原。在還原前需要對(duì)獲取到的信息進(jìn)行一些處理,包括噪聲消除、控制流信息還原、內(nèi)存訪問(wèn)情況還原等。通過(guò)這些操作及分析,攻擊者便可以獲取到密鑰、受害者行為,內(nèi)核空間的分布等信息。
基于緩存的側(cè)信道攻擊利用Cache相關(guān)活動(dòng)泄露的信息對(duì)受害者的信息進(jìn)行竊取,相比于其他類型側(cè)信道攻擊,Cache側(cè)信道攻擊無(wú)須專用硬件設(shè)備,攻擊者甚至無(wú)須物理接觸目標(biāo)對(duì)象,即可獲取部分或者全部的受害者信息,因此Cache側(cè)信道要比其他側(cè)信道的威脅更大,危害更嚴(yán)重,對(duì)當(dāng)今的信息安全產(chǎn)生了重大的威脅。本文從Cache信息的泄露原理以及目前主流的Cache側(cè)信道攻擊方法及原理進(jìn)行研究,并針對(duì)主流的攻擊方法進(jìn)行分析和與傳統(tǒng)的攻擊方法進(jìn)行優(yōu)勢(shì)對(duì)比,最后總結(jié)出Cache側(cè)信道攻擊的通用架構(gòu),包括攻擊模型和具體的攻擊步驟。該研究對(duì)針對(duì)基于緩存的側(cè)信道攻擊的防御方法的研究具有重要的意義。
[1]Dan P.Theoretical Use of Cache Memory as a Cryptanalytic Side-Channel. cryptology eprint archive,2002.
[2]Trace-Driven Cache Attacks on AES (Short Paper)[C]// Information and Communications Security,8th International Conference,ICICS 2006,Raleigh,NC,USA,December 4-7, 2006,Proceedings. Springer,Berlin,Heidelberg,2006.
[3]Bonneau J,Mironov I . Cache-Collision Timing Attacks Against AES[J].International Workshop on Cryptographic Hardware and Embedded Systems,2006.
[4]Yarom Y,F(xiàn)alkner K E . FLUSH+RELOAD:a high resolution,low noise,L3 Cache side-channel attack.2014.
[5]程志煒,陳財(cái)森,邱雪歡. 基于Flush+Reload的DES算法Cache計(jì)時(shí)攻擊[J]. 計(jì)算機(jī)工程,2018,495(12):169-173.
[6]Bonneau J,Mironov I . Cache-Collision Timing Attacks Against AES[J]. International Workshop on Cryptographic Hardware and Embedded Systems,2006.
[7]Bernstein D J. Cache-timing attacks on AES[J]. 2005.
[8]Yarom Y,F(xiàn)alkner K E . FLUSH+RELOAD:a high resolution,low noise,L3 Cache side-channel attack. 2014.
[9]Liu F,Yarom Y,Ge Q,et al. Last-Level Cache Side-Channel Attacks are Practical. IEEE Computer Society,2015.
[10]Tromer E,Osvik D A,Shamir A . Efficient Cache Attacks on AES, and Countermeasures[J]. Journal of Cryptology,2010.
[11]王崇,魏帥,張帆,宋克.緩存?zhèn)刃诺婪烙芯烤C述[J].計(jì)算機(jī)研究與發(fā)展,2021,58(04):794-810.
[12]苗新亮,蔣烈輝,常瑞.訪問(wèn)驅(qū)動(dòng)下的Cache側(cè)信道攻擊研究綜述[J].計(jì)算機(jī)研究與發(fā)展,2020,57(04):824-835.