• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      抗板級(jí)物理攻擊的持久存儲(chǔ)方法研究

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

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

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

      0 概述

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

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

      1 相關(guān)知識(shí)

      1.1 ARM TrustZone 架構(gòu)

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

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

      1.2 板級(jí)物理攻擊

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

      1.2.1 冷啟動(dòng)攻擊

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

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

      1.2.2 總線攻擊

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

      1.2.3 DMA 攻擊

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

      1.3 片上內(nèi)存

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

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

      2 相關(guān)工作

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

      2.1 保護(hù)加密算法的抗板級(jí)物理攻擊方案

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

      3.1 整體架構(gòu)

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

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

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

      3.2 內(nèi)存保護(hù)機(jī)制

      為保護(hù)TEE OS和TA不會(huì)被攻擊者所竊取或篡改,需要確保后備存儲(chǔ)上數(shù)據(jù)的機(jī)密性和完整性??拱寮?jí)物理攻擊的持久存儲(chǔ)架構(gòu)在可信操作系統(tǒng)中實(shí)現(xiàn)內(nèi)存保護(hù)機(jī)制保證TEE OS 和TA 的機(jī)密性和完整性,內(nèi)存保護(hù)機(jī)制工作流程如圖3 所示,具體步驟如下:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

      4.1 內(nèi)存隔離

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

      4.2 內(nèi)存保護(hù)機(jī)制的實(shí)現(xiàn)

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

      4.3 持久存儲(chǔ)保護(hù)服務(wù)的實(shí)現(xiàn)

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

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

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

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

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

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

      5.1 OCM 大小

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

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

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

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

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

      5.2 持久存儲(chǔ)保護(hù)操作

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

      圖8 持久存儲(chǔ)保護(hù)操作時(shí)間開(kāi)銷Fig.8 Time overhead of persistent storage protect operation

      6 安全性分析

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

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

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

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

      7 結(jié)束語(yǔ)

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

      猜你喜歡
      機(jī)密性敏感數(shù)據(jù)完整性
      干擾條件下可檢索數(shù)字版權(quán)管理環(huán)境敏感數(shù)據(jù)的加密方法
      稠油熱采水泥環(huán)完整性研究
      云南化工(2021年9期)2021-12-21 07:44:00
      實(shí)現(xiàn)虛擬機(jī)敏感數(shù)據(jù)識(shí)別
      基于透明加密的水下通信網(wǎng)絡(luò)敏感數(shù)據(jù)防泄露方法
      基于4A平臺(tái)的數(shù)據(jù)安全管控體系的設(shè)計(jì)與實(shí)現(xiàn)
      莫斷音動(dòng)聽(tīng) 且惜意傳情——論音樂(lè)作品“完整性欣賞”的意義
      一種協(xié)同工作環(huán)境中(分布式)的容錯(cuò)和安全數(shù)據(jù)存儲(chǔ)方法
      云計(jì)算中一種安全有效的數(shù)據(jù)存儲(chǔ)方案
      精子DNA完整性損傷的發(fā)生機(jī)制及診斷治療
      基于計(jì)算機(jī)的文書(shū)檔案科學(xué)化管理探索途徑
      卷宗(2014年2期)2014-03-31 04:08:05
      乌拉特中旗| 兴文县| 图木舒克市| 隆回县| 昌图县| 广东省| 将乐县| 江川县| 方正县| 乐平市| 泰州市| 星子县| 江口县| 环江| 霍城县| 苍溪县| 临湘市| 晴隆县| 根河市| 加查县| 陵川县| 汉川市| 隆子县| 嘉禾县| 宁南县| 阿克苏市| 视频| 分宜县| 保定市| 石台县| 邹城市| 蒲城县| 金昌市| 吉林省| 青川县| 博野县| 宁明县| 昌宁县| 南汇区| 土默特左旗| 博白县|