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

        ?

        抗板級物理攻擊的持久存儲方法研究

        2022-02-24 05:06:30張倩穎王國輝施智平
        計算機工程 2022年2期
        關(guān)鍵詞:機密性敏感數(shù)據(jù)完整性

        李 閩,張倩穎,2,3,王國輝,2,施智平,4,關(guān) 永,5

        (1.首都師范大學 信息工程學院,北京 100048;2.高可靠嵌入式系統(tǒng)北京市工程研究中心,北京 100048;3.中國科學院計算技術(shù)研究所計算機體系結(jié)構(gòu)國家重點實驗室,北京 100190;4.電子系統(tǒng)可靠性技術(shù)北京市重點實驗室,北京 100048;5.北京成像理論與技術(shù)高精尖創(chuàng)新中心,北京 100048)

        0 概述

        隨著移動設(shè)備和信息技術(shù)的快速發(fā)展,移動設(shè)備中存儲了越來越多的用戶敏感信息,例如個人密鑰、面部信息和指紋信息,這些信息保存在磁盤或閃存等可持久存儲設(shè)備中,防止設(shè)備重啟時丟失敏感信息,從而進行身份驗證。為保護這些敏感數(shù)據(jù),ARM 公司于2006 年提出TrustZone[1]安全解決方案。TrustZone 將CPU 劃分為安全世界和普通世界,其中安全世界提供了可信執(zhí)行環(huán)境(Trusted Execution Environment,TEE)。TEE 是一個隔離的執(zhí)行環(huán)境,它為運行在其中的可信應(yīng)用(Trusted Application,TA)提供了安全性保證,保護可信應(yīng)用免受來自普通世界的軟件攻擊。目前,高通、華為、三星等很多處理器廠商都在其產(chǎn)品中支持TrustZone 技術(shù),提供可信執(zhí)行環(huán)境。雖然TEE 已經(jīng)得到商業(yè)化的應(yīng)用,但是只能抵御軟件攻擊,不能抵御板級物理攻擊,例如對Xbox[2]和PlayStation 3[3]的總線竊聽攻擊[4],對Galaxy Nexus 智能手機的冷啟動攻擊[5]等。板級物理攻擊通過竊聽CPU 和DRAM 之間的地址總線或篡改DRAM 的內(nèi)容進行攻擊,主要包括冷啟動攻擊、總線攻擊和DMA 攻擊。板級物理攻擊所付出的代價不大,并且隨著很多成熟的攻擊工具被開源[6-7],攻擊者可以很容易使用這些工具,例如:HALDERMAN 等[8]提出冷啟動攻擊,該攻擊可以繞過TrustZone 機制并從DRAM 中獲得密鑰,從而解密出用戶的敏感數(shù)據(jù);MüLLER 等[5]提出Frost 工具,該工具能夠利用冷啟動攻擊從手機中獲取最近的電子郵件、照片和訪問過的網(wǎng)站信息。

        為抵御板級物理攻擊,學術(shù)界和工業(yè)界提出許多解決方案,主要包括保護加密算法的抗板級物理攻擊方案和操作系統(tǒng)層的抗板級物理攻擊方案2 類,其中:第1 類方案會占用CPU 或GPU 的通用寄存器或?qū)S眉拇嫫鳎绊懴到y(tǒng)部分功能的運行;第2 類方案僅保護了程序中的部分敏感數(shù)據(jù),無法滿足保護TEE 系統(tǒng)的安全性需求。片上內(nèi)存(On-Chip Memory,OCM)具有不會暴露任何物理引腳或物理線的特性,保證了信息不會從物理引腳或者物理線上泄露,使運行在其中的任務(wù)具有抵抗板級物理攻擊的能力。從保護文件系統(tǒng)的安全性出發(fā),本文將OCM 作為TEE OS 和TA 的工作內(nèi)存?;贏RM TrustZone 技術(shù)構(gòu)建持久存儲架構(gòu)提供內(nèi)存保護機制和持久存儲保護服務(wù),前者用于將持久存儲保護服務(wù)運行在OCM 中,保護該服務(wù)的機密性和完整性,后者對文件系統(tǒng)中敏感數(shù)據(jù)進行加密保護和完整性保護,從而使文件系統(tǒng)抵御板級物理攻擊。該架構(gòu)以軟件方式實現(xiàn),無需占用專用硬件,可部署在沒有板級物理攻擊保護的現(xiàn)有系統(tǒng)上,以提高文件系統(tǒng)持久存儲的物理安全性。在基于ARM TrustZone 的物理開發(fā)板上實現(xiàn)了持久存儲架構(gòu)的原型系統(tǒng),普通世界運行Linux,安全世界運行OPTEE OS,并使用基準測試工具xtest[9]對系統(tǒng)性能進行評估。

        1 相關(guān)知識

        1.1 ARM TrustZone 架構(gòu)

        TrustZone 通過硬件隔離技術(shù)提供一個TEE,TEE 可以有效地抵御軟件攻擊。TrustZone 利用硬件虛擬化技術(shù),將片上系統(tǒng)(System on Chip,SoC)的硬件和軟件資源劃分為安全世界和普通世界。兩個世界通過監(jiān)控器模式進行切換,保證普通世界無法訪問安全世界的資源,因此即使普通世界被攻破時也不會泄露安全世界的敏感數(shù)據(jù)。ARM TrustZone 架構(gòu)如圖1 所示。雖然TrustZone 可以對內(nèi)存進行隔離保護,但并不對內(nèi)存進行加密,這使存儲在TrustZone 安全世界中的敏感數(shù)據(jù)面臨通過板級物理攻擊被竊取的威脅。

        圖1 ARM TrustZone 架構(gòu)Fig.1 Architecture of ARM TrustZone

        1.2 板級物理攻擊

        板級物理攻擊通過竊聽CPU 和DRAM 之間的地址總線或篡改DRAM 的內(nèi)存進行攻擊。本節(jié)將對冷啟動攻擊、總線攻擊和DMA 攻擊這3 種板級物理攻擊進行介紹。

        1.2.1 冷啟動攻擊

        冷啟動攻擊利用DRAM 的剩磁特性進行攻擊。剩磁特性是DRAM 的基本物理特性,無法消除,指設(shè)備在斷電后存儲在DRAM 中的信息不會立即消失,而會保留一段時間,并且在低溫下大幅延長保留時間。

        冷啟動攻擊有2 種實現(xiàn)方式:1)首先將事先準備好的U 盤等存儲設(shè)備插入到目標計算機中,然后通過切斷電源或重啟目標計算機以啟動U 盤中定制的操作系統(tǒng),該系統(tǒng)能將DRAM 中的內(nèi)容保存到U盤上的指定分區(qū),從而得到存儲在DRAM 中的數(shù)據(jù);2)首先將正在運行的目標計算機的DRAM 進行冷卻,然后將DRAM 迅速轉(zhuǎn)移到事先準備好的攻擊設(shè)備上,最后利用設(shè)備中的攻擊程序讀取DRAM 中的密鑰等敏感信息。目前,已經(jīng)有很多冷啟動攻擊成功的案例[10],對用戶的敏感信息造成了嚴重威脅。

        1.2.2 總線攻擊

        總線攻擊一般分為總線竊聽攻擊和總線篡改攻擊。攻擊者通過總線分析工具連接到內(nèi)存總線上,等待CPU 通過總線請求敏感數(shù)據(jù),進而竊聽或修改總線上傳輸?shù)臄?shù)據(jù)。目前,已經(jīng)有很多總線竊聽攻擊成功的案例,例如MIT 研究團隊對Xbox 的總線竊聽攻擊和IBM 研究院對U 盤等存儲設(shè)備的USB 總線竊聽攻擊[11]。

        1.2.3 DMA 攻擊

        DMA 攻擊是一種利用DMA 接口將支持DMA的外設(shè)直接接入高速擴展端口,而無需CPU 或操作系統(tǒng)的干涉即可直接訪問任意物理內(nèi)存的攻擊方式。DMA 攻擊可以繞過操作系統(tǒng)的保護,通過對具有DMA 功能的外設(shè)進行編程,從而利用DMA 控制器讀取存儲在內(nèi)存中的敏感數(shù)據(jù)。DMA 攻擊可以通過便攜式攝像機視頻卡、網(wǎng)絡(luò)接口卡等發(fā)起。

        1.3 片上內(nèi)存

        片上內(nèi)存由高速SRAM 構(gòu)成,通過內(nèi)部高速總線與CPU 連接,使CPU 訪問OCM 的速度要快于DRAM。OCM 與Cache 不同點在于其通常由軟件控制并且設(shè)計比Cache 簡單得多,因此更加靈活、功耗更低。

        在設(shè)備引導(dǎo)完成后,操作系統(tǒng)和應(yīng)用程序可以根據(jù)需要使用OCM,且OCM 不會對芯片外部暴露任何物理引腳或物理線的特性,使其可以抵御板級物理攻擊。因此,本文使用OCM 作為TEE OS 和TA的工作內(nèi)存以提高TEE 系統(tǒng)的物理安全性。

        2 相關(guān)工作

        為抵御板級物理攻擊和保護文件系統(tǒng)的敏感數(shù)據(jù),近年來國內(nèi)外學者進行了一系列相關(guān)研究,主要包括保護加密算法的抗板級物理攻擊方案、操作系統(tǒng)層的抗板級物理攻擊方案以及文件系統(tǒng)保護方案。

        2.1 保護加密算法的抗板級物理攻擊方案

        AESSE[12]是由德國亞琛工業(yè)大學提出的一種通過在微處理器上實現(xiàn)AES 來抵御冷啟動攻擊的方案。AESSE 利用處理器中SSE(Streaming SIMD Extensions)提供的寄存器來實現(xiàn)AES,使得密鑰和其中間狀態(tài)都不會離開處理器,保護了加密和解密的過程,但是與內(nèi)核標準的AES 加密和解密相比,性能約下降了6 倍。

        TRESOR[13]是由德國 埃爾朗根-紐倫堡大學提出的一種針對X86 架構(gòu)抵御冷啟動攻擊和DMA 攻擊的方案。TRESOR 在微處理器上實現(xiàn)AES 加密算法和密鑰管理,使AES 加密算法完全運行在微處理器上,并利用英特爾的AES-NI 指令集,將AES 加密算法的所有中間狀態(tài)和密鑰存儲在調(diào)試寄存器中,從而使攻擊者無法在RAM 中獲得任何密鑰信息。

        Loop-Amnesia[14]是由美國伊利諾伊大學提出的一種使磁盤加密能夠抵御冷啟動攻擊的方案。Loop-Amnesia 將磁盤加密使用的密鑰存儲在X86 平臺中的MSR(Model-Specific Register)性能計數(shù)器中,保護密鑰不被攻擊者竊取。該方案適用于基于操作系統(tǒng)的磁盤加密系統(tǒng),并且項目已經(jīng)開源。

        PRIM[15]是由德國波鴻魯爾大學提出的一個保護RSA 私鑰的抗冷啟動攻擊方案。PRIM 使用對稱加密將RSA 私鑰加密存儲在RAM 中,使攻擊者無法獲取明文的RSA 私鑰,該對稱密鑰則存儲在Intel的多媒體寄存器中。實驗結(jié)果表明,PRIME 的RSA運行速度比傳統(tǒng)的RSA 慢10 倍。

        PixelVault[16]是由希臘計算機科學研究所提出的一個保護加密密鑰的方案,用于保護AES 和RSA算法的物理安全性。PixelVault 將加密密鑰存儲在GPU 寄存器中,從而保護密鑰的機密性。密碼算法運行在GPU 的片上內(nèi)存中且在運行時不會被搶占,以防止上下文切換時導(dǎo)致的密鑰泄露問題。

        2.2 操作系統(tǒng)層的抗板級物理攻擊方案

        Cryptkeeper[17]是由美國加州大學洛杉磯分校提出的一種減少敏感數(shù)據(jù)泄露的方案。Cryptkeeper 將RAM 劃分為一個較小的明文段(Clear)和一個較大的密文段(Crypt),根據(jù)程序運行的需要動態(tài)將這兩個段的數(shù)據(jù)進行交換,保證數(shù)據(jù)在加密段的安全性。Cryptkeeper 不能保護全部數(shù)據(jù)的安全性,在RAM 中總是存在一部分明文數(shù)據(jù),并且由于頻繁的產(chǎn)生磁盤交換,每頁讀取的時間開銷達到了300 μs。

        Sentry[18]是由加拿大英屬哥倫比亞大學提出的一種保護手機和平板電腦免受冷啟動攻擊、總線竊聽攻擊、DMA 攻擊的方案。在設(shè)備鎖定狀態(tài)下,Sentry 將后臺運行的任務(wù)加載到SoC 的iRAM 中運行,并將其他敏感應(yīng)用程序的內(nèi)存頁加密。在設(shè)備解鎖狀態(tài)下,根據(jù)程序運行的需要對頁面進行解密。實驗結(jié)果表明,Sentry 在CPU 密集型任務(wù)測試中表現(xiàn)出了良好的性能。

        RamCrypt[19]是由德國 埃爾朗根-紐倫堡大學提出的一種抗板級物理攻擊的方案。RamCrypt 作為一個Linux 內(nèi)核補丁透明地加密了用戶模式進程的地址空間,程序無需重寫或者重新編譯。RamCrypt通過存儲在CPU 寄存器中的密鑰,對RAM 中的敏感數(shù)據(jù)進行加密存儲,僅在敏感數(shù)據(jù)使用時對其解密。sysbench 基準測試套件測試顯示進程效率降低了25%。

        MemVault[20]是由美國喬治亞大學提出的一種抗板級物理攻擊方案。MemVault 將敏感信息標記為污染狀態(tài),并追蹤標記信息的傳播,在DRAM 中加密標記信息,在片上內(nèi)存中進行解密。MemVault減少了敏感信息在移動設(shè)備上的泄露。

        2.3 文件系統(tǒng)保護方案

        BitLocker[21]是微軟公司提出的一種磁盤加密功能,用于保護存儲在文件中的敏感信息。在系統(tǒng)啟動期間,BitLocker 作為引導(dǎo)加載程序的組件,以確保安全地進行系統(tǒng)引導(dǎo),并在引導(dǎo)完成后作為操作系統(tǒng)內(nèi)核的驅(qū)動程序,以保護敏感信息的機密性和完整性。BitLocker 通過與可信平臺模塊(Trusted Platform Module,TPM)一起使用,可以在受保護的文件解密前對其完整性進行驗證,驗證不成功將禁止對其進行訪問。BitLocker 在文件加密和解密時使用的密鑰由TPM 進行管理,TPM 保證只有當平臺可信時才會將密鑰交給BitLocker 使用。BitLocker 以透明的方式運行,可以配置在微軟的Windows Vista及以上版本的操作系統(tǒng)中。

        dm-crypt[22]是Linux 內(nèi)核2.4 版本開始提供的一個磁盤加密模塊,可以運行在多種存儲塊設(shè)備中,為用戶提供了創(chuàng)建塊設(shè)備的通用方法。dm-crypt 在用戶和塊設(shè)備之間提供一個加密函數(shù),用戶可以指定dm-crypt使用的密碼算法、加密模式以及密鑰,進而在Linux的/dev目錄下創(chuàng)建塊設(shè)備。dm-crypt 可以透明地加密文件數(shù)據(jù),保護了文件的安全性。dm-crypt作為Linux 內(nèi)核中內(nèi)置的基礎(chǔ)系統(tǒng),已經(jīng)包含在大多數(shù)Linux 的發(fā)行版本中。

        2.4 相關(guān)工作對比分析

        針對國內(nèi)外相關(guān)研究中抗板級物理攻擊方案和文件系統(tǒng)保護方案存在的不足,本文提出抗板級物理攻擊的持久存儲方法。該方法在TEE 內(nèi)核層實現(xiàn)內(nèi)存保護機制,利用OCM 可以抵御板級物理攻擊的特性,將OCM 作為TEE OS 和TA 的工作內(nèi)存,DRAM 作為其后備存儲保存加密的頁面,從而提高了TEE 系統(tǒng)的物理安全性;在內(nèi)存保護機制的基礎(chǔ)上實現(xiàn)了持久存儲保護服務(wù),保護了文件系統(tǒng)中敏感數(shù)據(jù)的機密性和完整性,從而提高了文件系統(tǒng)的安全性。

        保護加密算法的抗板級物理攻擊方案需要占用CPU 或GPU 的通用寄存器或?qū)S眉拇嫫?,影響系統(tǒng)的正常運行。目前,大多數(shù)平臺都在片上系統(tǒng)中配置了OCM 且在設(shè)備啟動后,OCM 可以由用戶根據(jù)需要進行使用,因此將TEE OS 和TA 運行在OCM 中不會對系統(tǒng)運行產(chǎn)生影響,不需要一直占用專用寄存器資源。本文方案以軟件方式實現(xiàn),在不影響系統(tǒng)其他功能的基礎(chǔ)上,可以部署在沒有板級物理攻擊保護的現(xiàn)有系統(tǒng)上,提高了系統(tǒng)的物理安全性。

        操作系統(tǒng)層的抗板級物理攻擊方案只保護了程序中的一部分敏感數(shù)據(jù),仍有一部分敏感數(shù)據(jù)會被攻擊者竊取。本文方案通過內(nèi)存保護機制保護存儲在DRAM 中TEE OS 和TA 頁面的機密性和完整性,使明文頁僅出現(xiàn)在OCM 中,從而保證TEE 系統(tǒng)可以抵御板級物理攻擊,提高了TEE 系統(tǒng)的物理安全性。

        文件系統(tǒng)保護方案雖然能夠提高文件系統(tǒng)持久存儲的安全性,但由于文件加密使用的密鑰存儲在DRAM中,攻擊者可以通過板級物理攻擊獲取密鑰信息,進而解密出文件系統(tǒng)中的敏感數(shù)據(jù),因此文件系統(tǒng)保護方案無法抵御板級物理攻擊。為了保護文件系統(tǒng)的安全性,本文在內(nèi)存保護機制的基礎(chǔ)上實現(xiàn)了持久存儲保護服務(wù)。持久存儲保護服務(wù)運行在安全世界的OCM中,使其可以抵御板級物理攻擊。該服務(wù)對文件系統(tǒng)的敏感數(shù)據(jù)提供機密性和完整性保護,確保了文件系統(tǒng)中敏感數(shù)據(jù)持久存儲的物理安全性。

        3 系統(tǒng)架構(gòu)

        本文提出抗板級物理攻擊的持久存儲方法,將OCM 作為TEE OS 和TA 的工作內(nèi)存,使它們在OCM 中運行,DRAM 作為其后備存儲,保存加密的敏感代碼和數(shù)據(jù),保證TEE OS 和TA 免受板級物理攻擊,然后在此基礎(chǔ)上實現(xiàn)持久存儲保護服務(wù)對文件系統(tǒng)中敏感數(shù)據(jù)進行加密存儲與完整性校驗,以保護文件系統(tǒng)的機密性和完整性。

        3.1 整體架構(gòu)

        抗板級物理攻擊的持久存儲架構(gòu)如圖2 所示。為了使文件系統(tǒng)能夠抵抗板級物理攻擊,該架構(gòu)基于TrustZone 技術(shù),在TEE OS 內(nèi)核層中增加了內(nèi)存保護機制并在TEE 用戶層實現(xiàn)了持久存儲保護服務(wù),其中,內(nèi)存保護機制對TEE OS 和TA 提供內(nèi)存保護,持久存儲保護服務(wù)對文件系統(tǒng)中敏感信息提供機密性與完整性保護。

        圖2 抗板級物理攻擊的持久存儲架構(gòu)Fig.2 Architecture of persistent storage resistant to boardlevel physical attacks

        抗板級物理攻擊的持久存儲架構(gòu)能夠抵御軟件攻擊和板級物理攻擊。對于軟件攻擊,TrustZone 通過硬件隔離機制,將DRAM 劃分為普通世界和安全世界,因為普通世界無法對安全世界的資源進行訪問,所以惡意的操作系統(tǒng)和惡意的普通應(yīng)用無法對TEE OS 造成破壞。對于板級物理攻擊,內(nèi)存保護機制保證了TEE OS和TA 頁面的機密性和完整性,將OCM 作為TEE OS和TA 的工作內(nèi)存,當TEE OS 或TA 加載到OCM 中運行時,對其頁面進行解密并檢查其數(shù)據(jù)頁的完整性,當TEE OS 和TA 置換到DRAM 中時,對其頁面進行加密并對數(shù)據(jù)頁進行完整性保護。在OCM 中運行的持久存儲保護服務(wù)實現(xiàn)了對文件系統(tǒng)中敏感數(shù)據(jù)的加密存儲和完整性校驗:當用戶對文件系統(tǒng)中敏感數(shù)據(jù)寫入時,對敏感數(shù)據(jù)加密,保護其機密性;當用戶對文件系統(tǒng)中敏感數(shù)據(jù)讀取之前,會驗證敏感數(shù)據(jù)的完整性,只有驗證成功后,才對敏感數(shù)據(jù)進行解密,從而防止敏感數(shù)據(jù)被篡改。

        3.2 內(nèi)存保護機制

        為保護TEE OS和TA不會被攻擊者所竊取或篡改,需要確保后備存儲上數(shù)據(jù)的機密性和完整性??拱寮壩锢砉舻某志么鎯軜?gòu)在可信操作系統(tǒng)中實現(xiàn)內(nèi)存保護機制保證TEE OS 和TA 的機密性和完整性,內(nèi)存保護機制工作流程如圖3 所示,具體步驟如下:

        圖3 內(nèi)存保護機制工作流程Fig.3 Workflow of memory protection mechanism

        1)攔截缺頁中斷。當CPU 訪問的數(shù)據(jù)或代碼不在OCM 中時,會產(chǎn)生一個缺頁異常,該異常會被內(nèi)存保護機制攔截并進行處理。

        2)內(nèi)存機密性/完整性校驗。內(nèi)存保護機制會在OCM 中找到一個空閑頁并將DRAM 中所需的頁面加載進去,在加載的過程中使用SHA-256 算法驗證代碼和數(shù)據(jù)的完整性。在驗證成功后,使用AES算法對加載的頁面進行解密。

        3)頁面重映射。內(nèi)存保護機制更新頁表項并將該頁重新映射到分配的OCM 空閑頁中。

        4)CPU 重新訪問。CPU 從OCM 中重新訪問該代碼段或數(shù)據(jù)。

        5)機密性/完整性保護。當OCM 沒有空閑頁時,使用最近最少使用頁面置換算法將OCM 中的頁與DRAM 進行置換。當置換的頁為數(shù)據(jù)頁時,內(nèi)存保護機制會將該頁加密并存儲到DRAM 中,并將其哈希值存儲到OCM 中以備下次驗證。

        3.3 持久存儲保護服務(wù)

        為保護用戶敏感數(shù)據(jù)的機密性和完整性,在抗板級物理攻擊的持久存儲架構(gòu)中設(shè)計一個持久存儲保護服務(wù),對普通世界的文件系統(tǒng)中敏感數(shù)據(jù)提供機密性和完整性保障。持久存儲保護服務(wù)架構(gòu)如圖4 所示。

        圖4 持久存儲保護服務(wù)架構(gòu)Fig.4 Architecture of persistent storage protection service

        當持久存儲保護服務(wù)需要對文件系統(tǒng)中敏感數(shù)據(jù)進行寫入/讀取時,首先會對數(shù)據(jù)進行加密/解密,然后通過RPC 調(diào)用,將加密/解密的數(shù)據(jù)發(fā)送給TEE Supplicant,最 后TEE Supplicant 將加密/解密的數(shù) 據(jù)交由普通世界的文件系統(tǒng)進行寫入和讀取操作。

        普通世界的文件系統(tǒng)使用二叉樹的結(jié)構(gòu)對加密文件進行存儲。這些加密的文件以編號進行區(qū)分,通過一個數(shù)據(jù)庫文件進行管理。數(shù)據(jù)庫文件中保存了加密文件對應(yīng)的哈希值,每次對加密文件進行操作時,會先計算每個文件的哈希值,并與保存的哈希值進行比較驗證文件的完整性。

        密鑰管理器是持久存儲保護服務(wù)的一個組件,負責提供敏感數(shù)據(jù)的加密和解密以及密鑰的生成。對于每一個加密的文件都有唯一的文件加密密鑰(File Encryption Key,F(xiàn)EK)用于加密敏感數(shù)據(jù)。密鑰生成流程如圖5 所示。首先通過密鑰派生函數(shù)(Key Derivation Function,KDF)使用設(shè)備密鑰(Device Key,DK)和持久存儲保護服務(wù)的哈希值k派生出安全存儲密鑰(Secure Storage Key,SSK),然后使用隨機數(shù)派生器生成的隨機數(shù)random 與SSK派生出每個文件的FEK,最后通過AES-128 加密算法將SSK 作為密鑰加密FEK 生成En-FEK 并保存在加密文件頭部。

        圖5 密鑰生成流程Fig.5 Procedure of key generation

        當用戶寫入敏感數(shù)據(jù)時,首先使用SHA-256 算法計算持久存儲保護服務(wù)的哈希值k 并獲取DK,然后調(diào)用KDF(DK,k)派生出SSK,之后使用隨機數(shù)派生器生成的random 與SSK 調(diào)用KDF(SSK,random)派生出FEK,F(xiàn)EK 用于加密敏感數(shù)據(jù),保證敏感數(shù)據(jù)的機密性,最后使用SSK 作為AES-128 的加密密鑰加密FEK 生成En-FEK。敏感數(shù)據(jù)使用FEK 加密后發(fā)送給普通世界的文件系統(tǒng)進行持久存儲,寫入完成后計算加密文件的哈希值kv,將kv 和En-FEK 保存到數(shù)據(jù)庫文件中,分別用于驗證加密文件的完整性和解密。

        當用戶讀取敏感數(shù)據(jù)時,驗證加密文件的哈希值是否在數(shù)據(jù)庫文件中存在,驗證失敗說明該文件無效或文件內(nèi)容已經(jīng)被攻擊者篡改,結(jié)束本次讀?。辉隍炞C成功之后,首先密鑰管理器調(diào)用KDF 算法使用DK 和重新計算的持久存儲保護服務(wù)哈希值k 派生出SSK,然后使用SSK 將獲取到的En-FEK 通過AES-128 進行解密得到該加密文件的FEK,最后使用FEK 將密文數(shù)據(jù)解密。解密失敗說明FEK 派生失敗,持久存儲保護服務(wù)的哈希值k 已經(jīng)發(fā)生變化,即持久存儲保護服務(wù)已經(jīng)被篡改,獲取不到明文數(shù)據(jù);解密成功則將明文數(shù)據(jù)發(fā)送給用戶。

        4 系統(tǒng)實現(xiàn)

        本文原型系統(tǒng)選用開源的OP-TEE 2.6.0 作為安全世界的操作系統(tǒng),選用Linux 的imx_4.1.15_2.0.0_ga 版本作為普通世界的操作系統(tǒng)。物理硬件平臺選用支持ARM TrustZone 的NXP BD-SL-i.MX6 開發(fā)板,在該開發(fā)板上實現(xiàn)了抗板級物理攻擊的持久存儲架構(gòu)。

        4.1 內(nèi)存隔離

        由于OP-TEE OS 和TA 需要在運行時加載到OCM中運行以抵抗板級物理攻擊,因此需要將OCM 分配給安全世界,用于運行OP-TEE OS 和TA。DRAM 一部分分配給安全世界,作為OCM 的后備存儲,保存TA 的加密頁面;另一部分分配給普通世界,用于運行Linux和普通應(yīng)用。OP-TEE OS 和TA 運行在0x00900000-0x0093FFFF,后備存儲地址為0x4F000000-0x50000000,Linux 運行在0x12000000-0x4EFFFFFF。

        4.2 內(nèi)存保護機制的實現(xiàn)

        為使OP-TEE 能夠?qū)崿F(xiàn)內(nèi)存保護機制,以在OCM 不足時與DRAM 進行頁面置換,將運行時代碼和數(shù)據(jù)加載到OCM 中。本文在OP-TEE OS 的內(nèi)核層中構(gòu)建一個物理頁面池,它映射不同的虛擬地址。當物理頁面池不足時,使用最近最少使用頁面置換算法選擇最舊的物理頁面保存到后備存儲中。在保存的過程中使用加密算法AES-128 保護置換出的頁面數(shù)據(jù)段和代碼段的機密性,并使用SHA-256 哈希算法保護代碼段的完整性。

        4.3 持久存儲保護服務(wù)的實現(xiàn)

        為保護文件系統(tǒng)的機密性和完整性,原型系統(tǒng)實現(xiàn)了持久存儲保護服務(wù):

        1)利用SHA-256 哈希算法計算持久存儲保護服務(wù)的哈希值;基于散列消息認證碼(Hash-based Message Authentication Code,HMAC)的密鑰派生函數(shù),先后派生出SSK 和FEK;利用AES-128 加密算法以SSK 作為對稱密鑰加密FEK 生成En-FEK。

        2)利用哈希算法SHA-256,驗證持久存儲文件和持久存儲保護服務(wù)的完整性;利用AES-128 加密算法加密/解密明文/密文數(shù)據(jù),從而保證敏感數(shù)據(jù)的機密性。

        5 系統(tǒng)性能評估

        OCM 大小與持久存儲保護操作是影響抗板級物理攻擊的持久存儲架構(gòu)性能的關(guān)鍵因素,因此,本文將對這2 個關(guān)鍵因素進行測試,評估本文原型系統(tǒng)產(chǎn)生的時間開銷。

        本文測試在NXP BD-SL-i.MX6 開發(fā)板上進行,該板有4 個ARM Cortex-A9 處理器核心,1 GB DDR3L,256 KB OCM,主頻為1 GHz,支持ARM TrustZone。

        5.1 OCM 大小

        本文評估了內(nèi)存保護機制對原始OP-TEE 系統(tǒng)的性能影響,利用基礎(chǔ)測試工具xtest 對原始OP-TEE系統(tǒng)和原型系統(tǒng)的SHA1 哈希算法進行測試。為保證測試的可靠性,分別對原始OP-TEE 系統(tǒng)和原型系統(tǒng)進行30 次回歸測試。

        如圖6 所示,原始OP-TEE 系統(tǒng)執(zhí)行SHA1 哈希算法的最大時間為134.284 μs,30 次實驗平均時間為132.543 μs,而原型系統(tǒng)執(zhí)行SHA1 哈希算法的最大時間為186.624 μs,30 次實驗平均時間為184.172 μs。原型系統(tǒng)的性能開銷約為原始OP-TEE 系統(tǒng)性能的72%,這部分開銷是由于內(nèi)存保護機制在保護可信應(yīng)用時,片外內(nèi)存需要與片上內(nèi)存進行頁面置換,以將可信應(yīng)用加載到安全的片上內(nèi)存中運行,從而導(dǎo)致頁面置換產(chǎn)生了額外的時間開銷,但是該時間開銷對于用戶而言是在可接受范圍之內(nèi)的。

        圖6 SHA1 哈希算法執(zhí)行時間開銷Fig.6 SHA1 hash algorithm execution time overhead

        通過上述分析得知,原型系統(tǒng)中內(nèi)存保護機制的時間開銷是在頁面置換時產(chǎn)生的,因此OCM 的大小是影響性能的主要因素。由于可用的OCM 非常有限,并且當空閑的OCM 地址空間不足以加載可信任務(wù)時,會產(chǎn)生過多的頁面置換,因此本文對OCM的大小進行調(diào)整,從256 KB 到352 KB,并測試不同OCM 大小通過持久存儲保護服務(wù)對1 KB 數(shù)據(jù)進行寫入和讀取所需的時間。每種情況進行30 次測試取其平均值。由于實驗所用開發(fā)板的OCM 最大為256 KB,為了測試OCM 大小對性能的影響,OCM大于256 KB 的實驗均為仿真實驗,例如OCM 為288 KB、320 KB、352 KB。如圖7 所示,使用本文方案對文件系統(tǒng)進行保護時,在OCM 為256 KB 的情況下,原型系統(tǒng)的性能比原始OP-TEE 系統(tǒng)降低了2 倍,這是由于調(diào)用持久存儲保護服務(wù)時會進行多次的頁面置換,以將該服務(wù)加載到OCM 中運行。隨著OCM 地址空間的增大,工作內(nèi)存也隨之增大,時間開銷呈線性減少。

        圖7 不同OCM 大小對寫入和讀取1 KB 敏感數(shù)據(jù)的時間開銷Fig.7 Time overhead of writing and reading 1 KB sensitive data with different OCM sizes

        5.2 持久存儲保護操作

        為探究持久存儲保護的不同操作對系統(tǒng)性能的影響,本節(jié)對持久存儲保護服務(wù)的寫入、讀取和刪除操作時間進行測試,分別針對兩種不同大小的數(shù)據(jù)(100 KB 和1 MB)進行實驗。測試同樣進行30 次并取平均值。如圖8 所示,寫入100 KB 和1 MB 數(shù)據(jù)的時間分別為5.947 s 和50.913 s,讀取100 KB 和1 MB 數(shù)據(jù)的時間分別為0.918 s 和3.395 s,刪除100 KB 和1 MB 數(shù)據(jù)的時間分別為0.750 s 和0.736 s,可以看出對同樣數(shù)據(jù)量的寫入、讀取和刪除操作而言,寫入操作的時間是最長的,即寫入操作是持久存儲保護服務(wù)產(chǎn)生時間開銷的主要因素。從圖8 中還可以看出,寫入操作和讀取操作都隨著數(shù)據(jù)量的增加呈線性增長,而刪除操作是最快的,并且與數(shù)據(jù)量的大小沒有關(guān)系。由于用戶敏感數(shù)據(jù)通常是密鑰或個人信息,這類數(shù)據(jù)一般比較小,因此持久存儲保護服務(wù)開銷對用戶而言是在可接受范圍之內(nèi)的,并且可以通過優(yōu)化密碼算法對大文件的保護性能進行改善。

        圖8 持久存儲保護操作時間開銷Fig.8 Time overhead of persistent storage protect operation

        6 安全性分析

        本文提出抗板級物理攻擊的持久存儲方案,對于其抗板級物理攻擊的安全性分析具體如下:

        1)冷啟動攻擊。本文利用片上內(nèi)存作為TEE OS 和TA 的工作內(nèi)存抵御冷啟動攻擊。對于第一種冷啟動攻擊,需要對目標設(shè)備進行重啟才能進行后續(xù)的攻擊,研究表明設(shè)備重啟后OCM 中的數(shù)據(jù)會立即被BootROM 清除[23],因此攻擊者在使用第一種冷啟動攻擊對本文方案進行攻擊時無法獲得片上內(nèi)存中的敏感數(shù)據(jù)。對于第二種冷啟動攻擊,攻擊者會將目標設(shè)備的DRAM 冷卻后轉(zhuǎn)移到攻擊設(shè)備中,從而讀取DRAM 中的敏感數(shù)據(jù),本文方案利用內(nèi)存保護機制對DRAM 中的數(shù)據(jù)進行加密保護,即使攻擊者將DRAM 冷卻后轉(zhuǎn)移到攻擊設(shè)備中進行讀取,也只能獲得加密后的密文信息,使攻擊失敗。因此,本文方案可以抵御冷啟動攻擊。

        2)總線攻擊。本文使用OCM 作為工作內(nèi)存保存頁面的明文形式。由于OCM 的地址空間有限,因此需要將OCM 中運行完畢的頁面切換到DRAM進行保存。數(shù)據(jù)在總線上進行傳輸前,本文方案的內(nèi)存保護機制對數(shù)據(jù)加密以保護其機密性,因此攻擊者只能竊聽到加密數(shù)據(jù),從而抵御總線竊聽攻擊。在頁面從DRAM 加載到OCM 后,內(nèi)存保護機制對頁面解密并驗證頁面的完整性,如果驗證失敗,說明頁面已經(jīng)被攻擊者篡改,則結(jié)束本次加載,從而抵御總線篡改攻擊。因此,本文方案可以抵御總線攻擊。

        3)DMA 攻擊。本文方案建立在ARM TrustZone技術(shù)的基礎(chǔ)上,為了防止DMA 攻擊竊取片上內(nèi)存的敏感信息,利用TrustZone 的硬件隔離機制,將普通世界的惡意DMA外設(shè)與分配給安全世界的OCM進行隔離,使攻擊者無法通過惡意DMA 外設(shè)訪問OCM 中的敏感數(shù)據(jù),從而使DMA 攻擊失敗。因此,本文方案可以抵御DMA 攻擊。

        7 結(jié)束語

        本文提出抗板級物理攻擊的持久存儲保護方法,使文件系統(tǒng)的持久存儲可以抵御板級物理攻擊。該方法將OCM 作為TEE OS 和TA 的工作內(nèi)存,并保護存儲在DRAM 中TEE OS 和TA 的機密性和完整性,使TEE 系統(tǒng)可以抵御板級物理攻擊,在此基礎(chǔ)上實現(xiàn)持久存儲保護服務(wù),為文件系統(tǒng)中敏感數(shù)據(jù)提供機密性和完整性保護,提高了文件系統(tǒng)持久存儲的物理安全性。該方法以軟件的方式實現(xiàn),無需對硬件進行額外的修改,可以很方便地部署在沒有板級物理攻擊保護的現(xiàn)有系統(tǒng)上。實驗結(jié)果表明,本文方法的時間開銷主要來自O(shè)CM 與DRAM 的頁面置換和對持久存儲文件的寫入和讀取操作,在用戶可接受范圍之內(nèi)。由于OCM 大小對整個架構(gòu)性能具有較大的影響,因此下一步的研究重點是僅將TA的關(guān)鍵頁面加載到OCM 中運行,其余部分在DRAM中運行,從而增大工作內(nèi)存空間,提升系統(tǒng)性能。

        猜你喜歡
        機密性敏感數(shù)據(jù)完整性
        干擾條件下可檢索數(shù)字版權(quán)管理環(huán)境敏感數(shù)據(jù)的加密方法
        稠油熱采水泥環(huán)完整性研究
        云南化工(2021年9期)2021-12-21 07:44:00
        實現(xiàn)虛擬機敏感數(shù)據(jù)識別
        基于透明加密的水下通信網(wǎng)絡(luò)敏感數(shù)據(jù)防泄露方法
        基于4A平臺的數(shù)據(jù)安全管控體系的設(shè)計與實現(xiàn)
        莫斷音動聽 且惜意傳情——論音樂作品“完整性欣賞”的意義
        一種協(xié)同工作環(huán)境中(分布式)的容錯和安全數(shù)據(jù)存儲方法
        云計算中一種安全有效的數(shù)據(jù)存儲方案
        計算機時代(2016年6期)2016-06-17 15:57:33
        精子DNA完整性損傷的發(fā)生機制及診斷治療
        基于計算機的文書檔案科學化管理探索途徑
        卷宗(2014年2期)2014-03-31 04:08:05
        亚洲乱亚洲乱妇无码麻豆| 国产成人无码av在线播放dvd| 亚洲av日韩av高潮潮喷无码 | 成人午夜高潮a∨猛片| 欧美aaaaaa级午夜福利视频| 亚洲日韩图片专区小说专区| 亚洲视频一区二区三区免费 | 蜜臀精品一区二区三区| 午夜视频在线观看视频在线播放 | 人妻精品在线手机观看| 国产成人小视频| 日韩精品中文字幕无码一区| 波多野结衣一区二区三区免费视频| 国产自拍三级黄片视频| 色欲欲www成人网站| 女人色毛片女人色毛片18| 亚洲男人天堂av在线| 久久精品一区一区二区乱码| 国产精品免费无遮挡无码永久视频 | 欧美日韩性视频| 亚洲av一二三四又爽又色又色| 青青草免费在线视频久草| 午夜天堂精品久久久久| 亚洲精品国精品久久99热一| 偷拍熟女亚洲另类| 亚洲成在人网站天堂日本| 亚洲 小说区 图片区 都市| 成人免费看吃奶视频网站| 99精品欧美一区二区三区美图| 国产亚洲精品视频网站| 凹凸国产熟女精品视频app| 国产欧美一区二区精品性色| 国产高清一区在线观看| 中文有码人妻字幕在线| 无码乱人伦一区二区亚洲一| 麻豆乱码国产一区二区三区| 人妻中文字幕一区二区二区| 亚洲精品一区二区三区52p| 日本免费a级毛一片| 人妻精品丝袜一区二区无码AV | 无码人妻中文中字幕一区二区|