亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        SGX 側(cè)信道攻擊綜述

        2018-05-16 13:20:18程越強(qiáng)
        中國教育網(wǎng)絡(luò) 2018年4期
        關(guān)鍵詞:頁表攻擊者噪音

        文/程越強(qiáng)

        Intel SGX 技術(shù)是一種新的基于硬件的可信計(jì)算技術(shù)。該技術(shù)通過CPU的安全擴(kuò)展,對用戶空間運(yùn)行環(huán)境(enclave)提供機(jī)密性和完整性保護(hù)。即使是攻擊者獲得 OS、hypervisor、BIOS 和 SMM 等權(quán)限,也無法直接攻擊enclave。因此,攻擊者不得不通過側(cè)信道的攻擊方法來間接獲取數(shù)據(jù)(比如隱私數(shù)據(jù),加密密鑰等)。得益于enclave 的強(qiáng)安全假設(shè)和工作模型,攻擊者有大量的側(cè)信道攻擊面可以選擇,比如頁表、Cache 、DRAM 等。這項(xiàng)工作是對側(cè)信道攻擊面進(jìn)行一個(gè)全面的總結(jié),并討論一些可能的防御和檢測方法。

        當(dāng)我們不能夠完全相信某個(gè)計(jì)算平臺(比如公有云和可能被攻破的操作系統(tǒng))的時(shí)候,建立一個(gè)可信的運(yùn)行環(huán)境(TEE)是非常重要的安全要求。近些年研究人員提出了很多TEE 系統(tǒng)用于保護(hù)應(yīng)用程序,使其能夠抵御來自操作系統(tǒng)的攻擊。

        Enclave 的運(yùn)行環(huán)境有大量的資源和外面non-enclave 公用,比如Cache 、頁表、DRAM 和分支預(yù)測器等,這就給攻擊者提供了豐富的側(cè)信道攻擊面。而且,不可信的操作系統(tǒng)還仍然負(fù)責(zé)管理系統(tǒng)的資源,比如頁表、內(nèi)存、中斷、進(jìn)程調(diào)度等,這就進(jìn)一步方便攻擊者減小側(cè)信道攻擊過程中的噪音,從而提高側(cè)信道攻擊的成功率。

        本文主要調(diào)研和總結(jié)目前已有的側(cè)信道攻擊。根據(jù)攻擊面的不同,將從頁表、TLB、Cache 、DRAM 和分支預(yù)測器等幾個(gè)面進(jìn)行側(cè)信道攻擊的介紹。SGX 的側(cè)信道攻擊十分難以防御。目前還沒有一種防御策略可以防御以上所有攻擊。本文最后對可能的側(cè)信道防御攻擊方法進(jìn)行簡要的總結(jié),希望讀者能夠在某些方面受到啟發(fā)。

        SGX 背景介紹

        Intel SGX 是一種基于硬件的TEE系統(tǒng)。該功能已經(jīng)集成在Intel Sky-Lake 系列。區(qū)別以往的TEE 系統(tǒng)有著較大的可信計(jì)算基(TCB),SGX 的可信計(jì)算基非常小,僅僅包含CPU 和enclave 本身。任何的特權(quán)軟件,比如OS、hypervisor、BIOS、SMM等都不包含在可信計(jì)算基內(nèi)。Enclave有SGX 硬件專門預(yù)留的EPC(Enclave Page Cache )內(nèi)存。EPC是PRM(processor reserved memory)的子集,并被系統(tǒng)軟件按照4KB粒度進(jìn)行分頁管理。每一個(gè)EPC 頁面只能分配給一個(gè)enclave。CPU 阻止任何nonenclave 去訪問PRM,任何non-enclave 的訪問都會(huì)導(dǎo)致一個(gè)失敗的事務(wù)(aborted transaction)。在目前SkyLake 的處理器上面,失敗的寫操作被忽略,失敗的讀操作直接返回一個(gè)全1的值。

        每個(gè)enclave 的程序指定一段ELRANGE(Enclave Linear AddressRange)的虛擬空間供自身運(yùn)行。頁表負(fù)責(zé)把虛擬地址映射為EPC所在的物理地址。頁表的工作原理和以往的頁表一樣,比如會(huì)進(jìn)行權(quán)限的檢測、會(huì)設(shè)置access bit和dirty bit等等。Enclave 和 non-enclave 可以通過EENTER 和EEXIT 來主動(dòng)切換工作模式。Enclave 運(yùn)行時(shí)可能會(huì)被中斷或者異常打斷,這個(gè)時(shí)候enclave 會(huì)通過AEX(Asynchronous EnclaveExit)機(jī)制退出,切換到non-enclave工作模式。在模式切換過程中,運(yùn)行狀態(tài)會(huì)保存到SSA(State Save Area )結(jié)構(gòu)體里面,同時(shí)清除TLB以保證enclave 的安全。

        圖1是 Intel SGX 內(nèi)存分布和隔離機(jī)制。Enclave 跑在EPC 上面。Enclave的數(shù)據(jù)僅可以被enclave 自己訪問,任何外界代碼的訪問都會(huì)被拒絕。

        圖1 Intel SGX 內(nèi)存分布和隔離機(jī)制

        SGX 側(cè)信道攻擊

        威脅模型

        側(cè)信道攻擊主要目標(biāo)是攻擊enclave數(shù)據(jù)的機(jī)密性(confidentiality)。攻擊者來自non-enclave 部分,包括應(yīng)用程序和系統(tǒng)軟件。系統(tǒng)軟件包括OS、hypervisor、SMM、BIOS 等特權(quán)級軟件。

        側(cè)信道攻擊一般假設(shè)攻擊者知道enclave 初始化時(shí)的代碼和數(shù)據(jù),并且知道內(nèi)存布局。內(nèi)存布局包括虛擬地址,物理地址以及他們之間的映射關(guān)系。側(cè)信道攻擊還假設(shè)攻擊者知道運(yùn)行enclave 平臺的硬件配置、特性和性能,比如CPU、TLB、Cache 、DRAM、頁表、中斷以及異常等各種系統(tǒng)底層機(jī)制。

        圖2 Intel SGX 側(cè)信道的攻擊面

        側(cè)信道的攻擊面

        enclave和non-enclave共享大量的系統(tǒng)資源,這就給側(cè)信道攻擊留下了非常大的攻擊面。經(jīng)過對現(xiàn)有資料的總結(jié)和系統(tǒng)結(jié)構(gòu)的分析,我們把SGX的攻擊總結(jié)在圖2中。如圖2所示,enclave 的運(yùn)行過程中會(huì)用到:

        1. CPU 內(nèi)部結(jié)構(gòu)。比如pipeline,branch prediction Buffer(BPB)等,這些結(jié)構(gòu)不能夠直接訪問,但是如果可以間接利用,仍然可能泄露enclave的控制流或數(shù)據(jù)流。

        2.TLB。TLB 有包括iTLB、dTLB和L2 TLB。如果HyperThreading打開,兩個(gè)邏輯核共享一個(gè)物理核,這個(gè)時(shí)候會(huì)大大增加側(cè)信道的可能。

        3.Cache 。Cache包 括 L1 instruction Cache 、L1 data Cache 、L2Cache和 L3 Cache (又叫 LLC Cache )。

        4. DRAM。DRAM 包含 channels、DIMMs、ranks、banks。每個(gè) banks又包含rows、columns 和 row buffer。

        5.Pagetable(頁表)。頁表可以通過權(quán)限控制來觸發(fā)缺頁異常,也可以通過頁表的狀態(tài)位來表明CPU 的某些操作。對于不同的攻擊面,攻擊者需要了解具體的細(xì)節(jié)和工作原理。其中比較重要的參考的文檔就是Intel 的手冊。目前SGX 已經(jīng)部署在SkyLake 的機(jī)器上面。因此我們需要對SkyLake 的一些硬件和性能細(xì)節(jié)重點(diǎn)掌握。

        側(cè)信道攻擊

        側(cè)信道攻擊主要手段是通過攻擊面獲取數(shù)據(jù),推導(dǎo)獲得控制流和數(shù)據(jù)流信息,最終獲取被enclave的代碼和數(shù)據(jù)的信息,比如加密密鑰、隱私數(shù)據(jù)等等。在此一一列舉具體的工作,而是試圖從攻擊面的角度,全面的介紹側(cè)信道攻擊。本章節(jié)下面的內(nèi)容,就從典型的攻擊面,包括頁表、TLB、Cache、DRAM以及CPU內(nèi)部結(jié)構(gòu),描述目前已知的側(cè)信道攻擊。

        1. 基于頁表的攻擊

        最早的SGX側(cè)信道攻擊就是基于頁表的攻擊。這類利用頁表對enclave頁面的訪問控制權(quán),設(shè)置enclave頁面為不可訪問。這個(gè)時(shí)候任何訪問都會(huì)觸發(fā)缺頁異常,從而能夠區(qū)分enclave訪問了哪些頁面。按照時(shí)間順序把這些信息組合,就能夠反推出enclave的某些狀態(tài)和保護(hù)的數(shù)據(jù)。該類典型的攻擊包括controlledchannel attack和pigeonholeattack。這類攻擊的缺點(diǎn)就是精度只能達(dá)到頁粒度,無法區(qū)分更細(xì)粒度的信息。但是在某些場景下,這類攻擊已經(jīng)能夠獲得大量有用信息。

        后來,基于頁表的攻擊有了新的變種。這些側(cè)信道攻擊主要利用頁表的狀態(tài)位。一個(gè)頁表項(xiàng)有很多位,有些是用來做訪問控制,比如P, RW, US, XD,有些則標(biāo)識狀態(tài),比如D(dirty bit)和A(accessbit)。如果A bit 被設(shè)置,則表明該頁表項(xiàng)指向的頁面已經(jīng)被訪問;如果Dbit被設(shè)置,則表明該頁表項(xiàng)指向的頁面發(fā)生了寫操作。通過監(jiān)控觀察這些狀態(tài)位,攻擊者就可以獲取和controlled-channel/pigeonhole 攻擊類似的信息。

        2.基于 TLB 的攻擊

        目前還沒有完全基于TLB 的攻擊,但是已經(jīng)出現(xiàn)TLB 作為輔助手段的側(cè)信道攻擊。關(guān)于TLB的兩點(diǎn)重要信息,我們需要了解,希望對提出新的基于TLB 的側(cè)信道攻擊和防御有所幫助。

        TLB 的層次結(jié)構(gòu):目前SkyLake 的機(jī)器,分為L1 和L2 兩層。不同層次出現(xiàn)的TLB miss 的時(shí)間代價(jià)不同。

        TLB 對代碼和數(shù)據(jù)的區(qū)分:L1 區(qū)分代碼(iTLB)和數(shù)據(jù)(dTLB)。兩者直接有Cache coherence 的保證。L2 不區(qū)分代碼和數(shù)據(jù)。

        3.基于 Cache 的攻擊

        傳統(tǒng)側(cè)信道有很多基于Cache 的攻擊在SGX的環(huán)境里面,這些側(cè)信道技術(shù)仍然適用,而且可以做的更好。原因在于,在SGX 環(huán)境里面攻擊者可以控制整個(gè)系統(tǒng)的資源。因此,攻擊者可以有針對性地調(diào)度資源,減小側(cè)信道的噪音,增加側(cè)信道的成功率。降低噪音的策略大體可以有以下幾種。

        Core Isolation(核隔離)。這個(gè)方法的主要目標(biāo)就是讓enclave 獨(dú)自占有一個(gè)核(不允許其他程序運(yùn)行在該核上面)。

        Cache Isolation(緩存隔離)。盡量使用L1 或者L2 級別的Cache進(jìn)行側(cè)信道攻擊。L3 的Cache被所有的核共用,會(huì)引入不必要的噪音。

        Uninterupted Execution(不間斷運(yùn)行)。也就是不觸發(fā)或盡量少觸發(fā)AEX,因?yàn)锳EX 和后續(xù)的ISR(Interrupt Sevice Rountine) 都會(huì)使用Cache ,從而引入不必要噪音。少觸發(fā)AEX 就是要使用中斷綁定(Interrupt Affinity)和將時(shí)鐘頻率。不觸發(fā)AEX 基本上就是讓系統(tǒng)軟件(比如OS)屏蔽所有中斷。

        除了降低噪音,攻擊者還可以提高攻擊的精度,大體策略有:一是高精度時(shí)鐘??梢圆捎肁PIC 提供的高精度時(shí)鐘和硬件TSC;二是放大時(shí)間差異。比如攻擊者可以配置側(cè)信道攻擊代碼所在的CPU 以最高頻率運(yùn)行,而對enclave 所在的CPU 進(jìn)行降頻處理。

        基于Cache的側(cè)信道攻擊可以進(jìn)行細(xì)粒度的監(jiān)控。最小粒度可以做到一個(gè)Cache line,即64 個(gè)字節(jié)。由于粒度更小,基于Cache的側(cè)信道可以比基于頁表的側(cè)信道(以及后面介紹的基于DRAM的側(cè)信道)獲得更多的信息。

        4.基于DRAM 的攻擊

        RAM 一 般 由 channel、DIMM、rank、bank等部分構(gòu)成。每個(gè)bank又有columns 和rows 組成。每個(gè)bank里面還有一個(gè)row buffer 用來緩存最近訪問過的一個(gè)row。在訪問DRAM 的時(shí)候,如果訪問地址已經(jīng)被緩存在row buffer當(dāng)中(情況A),就直接從buffer 里面讀取,否則需要把訪問地址對應(yīng)的整個(gè)row都加載到row buffer 當(dāng)中(情況B)。當(dāng)然,如果row buffer 之前緩存了其他row的內(nèi)容,還需要先換出row buffer 的內(nèi)容再加載新的row(情況C)。A、B、C 對應(yīng)的三種情況,訪問速度依次遞減(情況A 最快,情況C 最慢)。這樣,通過時(shí)間上的差異,攻擊者就可以了解當(dāng)前訪問的內(nèi)存地址是否在row buffer 里面,以及是否被換出。

        基于DRAM的側(cè)信道攻擊有一些不足:第一,enclave 使用的內(nèi)存通常都在緩存里面,只有少部分需要從DRAM里面去??;第二,DRAM的精度不夠。例如,一個(gè)頁面(4KB) 通常分布在4 個(gè)DRAM row 上面。這樣,基于DRAM的側(cè)信道攻擊的精度就是1KB。僅僅比基于頁表的側(cè)信道攻擊好一些,遠(yuǎn)遠(yuǎn)不及基于Cache 的側(cè)信道攻擊的精度;第三,DRAM里面存在很難避免的噪音干擾,因?yàn)橐粋€(gè)DRAM row 被很多頁面使用,同時(shí)同一個(gè)bank 不同row的數(shù)據(jù)讀取也會(huì)對時(shí)間測量造成干擾,使得誤報(bào)時(shí)常發(fā)生。

        5.基于CPU 內(nèi)部結(jié)構(gòu)的攻擊

        CPU 內(nèi)部有大量的結(jié)構(gòu)是在enclave和non-enclave 之間共用的,這就給側(cè)信道攻擊提供了大量的攻擊面素材。

        目前對以CPU內(nèi)部結(jié)構(gòu)為攻擊面的工作才剛剛開始,僅僅有一個(gè)工作發(fā)表。相信通過進(jìn)一步研究,還會(huì)有其他的攻擊面被陸續(xù)發(fā)掘。

        從設(shè)計(jì)上來講,SGX可以避免這類側(cè)信道攻擊。具體來講,在enclave到nonenclave的切換過程中,CPU清除這些共用的內(nèi)部結(jié)構(gòu)體。這樣,non-enclave就不會(huì)得到任何殘留的記錄。但在具體實(shí)現(xiàn)的時(shí)候,還要注意一些細(xì)節(jié),比如清除的時(shí)間也必須是穩(wěn)定不變的。如果enclave運(yùn)行的差異會(huì)導(dǎo)致清除操作的時(shí)間差異,攻擊者很可能據(jù)此推導(dǎo)出enclave的某些運(yùn)行狀態(tài)。

        6.混合側(cè)信道攻擊

        混合側(cè)信道攻擊是同時(shí)采集多個(gè)側(cè)信道攻擊面的信息,或通過多個(gè)攻擊面共同作用放大差異增加準(zhǔn)確度。比較典型的做法包括:一是TLB 和頁表混合攻擊。比如TLB miss 的時(shí)會(huì)加載頁表,這個(gè)時(shí)候CPU 會(huì)設(shè)置頁表的Access bi;二是Cache和DRAM 混合攻擊?;贒RAM的攻擊只能精確到row(一個(gè)row 通常8KB)的粒度。

        除了結(jié)合兩個(gè)攻擊面的側(cè)信道攻擊,還可以采用多個(gè)攻擊面相結(jié)合的側(cè)信道攻擊。這類混合攻擊我還沒有在SGX的環(huán)境下面看到相關(guān)工作。

        7.未來可能的側(cè)信道攻擊

        未來新的側(cè)信道攻擊可能來自兩個(gè)方面。第一就是發(fā)掘新的混合側(cè)信道攻擊。前面列出的經(jīng)典的混合側(cè)信道攻擊,他們往往使用兩種攻擊面信息。因此,我們可以考慮多個(gè)攻擊面結(jié)合的側(cè)信道攻擊。以往的混合側(cè)信道攻擊往往專注于內(nèi)存管理和地址轉(zhuǎn)換等方面,新的側(cè)信道攻擊可以結(jié)合其他方面的信息,進(jìn)行一些新的嘗試。

        enclave所有和non-enclave共享的資源都可能成為潛在的側(cè)信道攻擊面。因此,發(fā)掘新的側(cè)信道攻擊的第二個(gè)途徑就是發(fā)現(xiàn)新的共享資源,比如未被發(fā)掘的CPU內(nèi)部共享結(jié)構(gòu)。這些新的的共享資源可能來自一些新的硬件特性,比如Intel PT、Intel TSX、Intel MPX、Intel CAT等。

        可能的防御方法

        目前已經(jīng)有很多文章給出了防御SGX側(cè)信道的方案,有些只是大體的思路,有些則已經(jīng)有成型的設(shè)計(jì)和實(shí)現(xiàn)。我們在這里主要介紹防御的思路和方法,不涉及設(shè)計(jì)和實(shí)現(xiàn)的細(xì)節(jié)。首先,我們把這些方法涉及的層次,分為源碼級別,系統(tǒng)級別和硬件級別。

        1.源碼層次的解決方案

        這類方法的主要思想就是通過修改源碼,編寫出能夠防御側(cè)信道的代碼實(shí)現(xiàn),其核心思想就是隱藏控制流和數(shù)據(jù)流。這類方法的探索已經(jīng)在一些密碼算法中有所涉及。

        2.系統(tǒng)層次的解決方案

        系統(tǒng)層次的解決方案主要是利用一些系統(tǒng)特性來防御或檢測SGX側(cè)信道。這里有幾個(gè)思路可以參考: 隨機(jī)化技術(shù)(Randomization)、 檢測可疑異常和中斷、檢測時(shí)間異常、Cache 隔離。

        3.硬件層次的解決方案

        硬件層次的解決方案還處于探索階段。加上側(cè)信道防御,將會(huì)顯著增加硬件復(fù)雜度,影響功耗和性能。這也可能是Intel 在最初推出SGX的時(shí)候沒有加入側(cè)信道防御的一個(gè)原因。硬件解決方案可能有硬件分割和硬件隔離兩種。

        本文總結(jié)了SGX所面臨的側(cè)信道攻擊,并展望了潛在的攻擊和防御方法。SGX 的側(cè)信道攻擊十分難以防御。究其原因是SGX的安全假設(shè)和應(yīng)用模型允許enclave和不可信的non-enclave共享大量的資源。這些就給攻擊者以很大的攻擊面去區(qū)分時(shí)間上的差異和資源使用的不同,從而泄露enclave的控制流和數(shù)據(jù)流。而且攻擊者擁有管理系統(tǒng)資源的能力,從而能夠最大程度上減小噪音干擾,增加側(cè)信道攻擊的成功率??傊?,SGX側(cè)信道攻擊是一個(gè)實(shí)用的攻擊,我們在實(shí)際部署應(yīng)用SGX的時(shí)候,必須考慮潛在的側(cè)信道攻擊。

        猜你喜歡
        頁表攻擊者噪音
        更正
        中國糖料(2022年4期)2022-03-15 22:37:37
        作者更正
        基于微分博弈的追逃問題最優(yōu)策略設(shè)計(jì)
        噪音,總是有噪音!
        勘 誤
        無法逃避的噪音
        更正
        正面迎接批判
        愛你(2018年16期)2018-06-21 03:28:44
        噪音的小把戲
        白噪音的三種用法
        Coco薇(2017年9期)2017-09-07 22:09:28
        国产精品video| 亚洲成av人综合在线观看| 欧美真人性野外做爰| 丰满人妻妇伦又伦精品国产| 日本中文字幕一区二区高清在线| 日韩精品人妻视频一区二区三区 | 四虎国产成人永久精品免费| 欧美巨大巨粗黑人性aaaaaa| 国产短视频精品区第一页 | 51精品视频一区二区三区| 亚洲一区二区三区高清视频| 欧美又大粗又爽又黄大片视频| 亚洲综合久久精品无码色欲| 激情久久无码天堂| 国产一区二区三区探花| 无码国内精品人妻少妇蜜桃视频| 蜜桃视频一区二区三区在线观看| 国产精品自产拍在线观看中文| 一本到亚洲av日韩av在线天堂 | 亚洲成aⅴ人片久青草影院| 麻豆乱码国产一区二区三区| 久久亚洲精品成人综合| 日韩精品视频在线观看无| а天堂中文最新一区二区三区| 亚洲人成7777影视在线观看| 91在线观看国产自拍| 日本亚洲国产精品久久| 国产真实夫妇交换视频| 99久久精品国产自在首页| 午夜蜜桃视频在线观看| 色视频线观看在线网站| 欧美日韩人妻| 日本一区二区三区在线视频观看| 粗大猛烈进出高潮视频大全| 大香伊蕉国产av| 国产av无码专区亚洲aⅴ| 久久精品亚洲熟女av麻豆| 国产一区二区女内射| 精品一精品国产一级毛片| av人妻在线一区二区三区| 亚洲精品成人网站在线播放 |