• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    虛擬化與密碼技術(shù)應(yīng)用: 現(xiàn)狀與未來(lái)*

    2024-04-28 06:55:20林璟鏘馮登國(guó)
    密碼學(xué)報(bào) 2024年1期
    關(guān)鍵詞:應(yīng)用程序內(nèi)存虛擬化

    付 裕, 林璟鏘, 馮登國(guó)

    1.中國(guó)科學(xué)技術(shù)大學(xué) 網(wǎng)絡(luò)空間安全學(xué)院, 合肥 230027

    2.中國(guó)科學(xué)院 軟件研究所, 北京 100190

    1 引言

    虛擬化技術(shù)是一種典型的資源管控技術(shù), 將計(jì)算機(jī)系統(tǒng)的計(jì)算、存儲(chǔ)等資源抽象成為隔離的運(yùn)行環(huán)境,供多個(gè)獨(dú)立運(yùn)行的用戶態(tài)程序或客戶虛擬機(jī)使用.利用虛擬化技術(shù), 計(jì)算機(jī)系統(tǒng)可以按需為不同的任務(wù)分配資源, 使其共同運(yùn)行在同一硬件設(shè)備上.狹義的虛擬化技術(shù), 通常指虛擬機(jī)監(jiān)控器Hypervisor 為客戶虛擬機(jī)提供的隔離運(yùn)行環(huán)境; 本文所闡述的技術(shù)范圍, 是廣義的虛擬化, 泛指在計(jì)算機(jī)系統(tǒng)中, 高特權(quán)級(jí)組件對(duì)計(jì)算、存儲(chǔ)等資源抽象成為隔離的運(yùn)行環(huán)境, 供低特權(quán)組件運(yùn)行使用, 既包括Hypervisor 提供的虛擬化運(yùn)行環(huán)境, 也包括操作系統(tǒng)提供的用戶態(tài)程序運(yùn)行環(huán)境.進(jìn)一步, 利用CPU 硬件安全特性創(chuàng)建的多種可信執(zhí)行環(huán)境(trusted execution environment, TEE) 也可視為由廣義的虛擬化技術(shù)創(chuàng)建的運(yùn)行環(huán)境.相比普通用戶態(tài)程序或虛擬機(jī)的運(yùn)行環(huán)境, 可信執(zhí)行環(huán)境具有更多特性, 包括內(nèi)存加密、完整性驗(yàn)證、遠(yuǎn)程證明等基于密碼學(xué)原理的安全特性, 能夠防范更多攻擊威脅.基于以上考慮, 本文討論的范圍包括了操作系統(tǒng)、虛擬化系統(tǒng)和可信執(zhí)行環(huán)境的相關(guān)密碼應(yīng)用安全技術(shù)研究.

    本文從不同方面系統(tǒng)地梳理了虛擬化與密碼技術(shù)應(yīng)用的結(jié)合研究: 正如第2 節(jié)所述, 一方面是使用密碼技術(shù)緩解虛擬化系統(tǒng)面臨的安全風(fēng)險(xiǎn), 另一方面, 虛擬化技術(shù)也給密碼技術(shù)應(yīng)用帶來(lái)了新的機(jī)遇.在早期的計(jì)算機(jī)系統(tǒng)中, 由于CPU 不帶有專門(mén)硬件安全特性, 第3 節(jié)介紹了以軟件形式實(shí)現(xiàn)的用戶態(tài)程序或客戶虛擬機(jī)內(nèi)存加密、可信啟動(dòng)以及虛擬化環(huán)境加密權(quán)限的相關(guān)研究, 可以緩解虛擬化面臨的多種系統(tǒng)安全風(fēng)險(xiǎn); 同時(shí), 利用虛擬化技術(shù), 也可以為密碼技術(shù)應(yīng)用提供更多額外安全保障, 例如密鑰安全和密碼計(jì)算調(diào)用安全等.第4 節(jié)主要介紹了應(yīng)用于TEE 的基于密碼技術(shù)的硬件安全特性, 以及相應(yīng)的攻防研究, 涉及Intel SGX、AMD SEV 和ARM TrustZone 等.第5 節(jié)是總結(jié)和展望.

    2 虛擬化與密碼技術(shù)應(yīng)用: 共生發(fā)展

    作為基礎(chǔ)性的信息安全技術(shù), 密碼技術(shù)可以為各種信息系統(tǒng)提供安全解決方案.在虛擬化系統(tǒng)中, 密碼技術(shù)可用于解決如下安全威脅.首先, 通過(guò)內(nèi)存加密保護(hù)客戶虛擬機(jī), 獲得更高安全強(qiáng)度的隔離保護(hù)效果, 緩解來(lái)自于共存的客戶虛擬機(jī)甚至Hypervisor 的非授權(quán)訪問(wèn)[1,2]; 類似地, 內(nèi)存加密也用于保護(hù)用戶態(tài)程序免受來(lái)自于共存程序、操作系統(tǒng)的非授權(quán)訪問(wèn); 同時(shí), 也可以解決可能的外部物理攻擊[3–5]的威脅.其次, 實(shí)現(xiàn)用戶態(tài)程序或客戶虛擬機(jī)的代碼完整性驗(yàn)證, 進(jìn)一步包括可信啟動(dòng)和遠(yuǎn)程驗(yàn)證[6,7], 從而避免高特權(quán)組件的惡意篡改.然后, 在完整性驗(yàn)證的基礎(chǔ)上, 還可以為客戶虛擬機(jī)分配不同密鑰, 用于安全的數(shù)據(jù)長(zhǎng)期存儲(chǔ)[6].

    虛擬化系統(tǒng)的任務(wù)隔離和特權(quán)分級(jí), 也有利于密碼計(jì)算的安全執(zhí)行.在密碼算法的常見(jiàn)實(shí)現(xiàn)中, 密鑰通常以明文出現(xiàn)在計(jì)算機(jī)系統(tǒng)的內(nèi)存.在隔離運(yùn)行環(huán)境中執(zhí)行密碼算法, 能夠更好地保護(hù)運(yùn)行期的密鑰數(shù)據(jù), 抵御多種不同類型的攻擊.例如, Windows 操作系統(tǒng)的密碼服務(wù)框架CSP (cryptographic service provider)[8]和CNG (cryptography API next generation)[9], 在操作系統(tǒng)內(nèi)核中實(shí)現(xiàn)了密碼算法, 供用戶態(tài)程序調(diào)用.Linux 操作系統(tǒng)的/dev/random 和/dev/urandom 為密碼計(jì)算提供了設(shè)計(jì)完善的隨機(jī)數(shù)生成器, 并在內(nèi)核中保護(hù)隨機(jī)數(shù)發(fā)生器的敏感內(nèi)部狀態(tài)信息.類似地, 在Hypervisor 中實(shí)現(xiàn)虛擬TPM 等密碼設(shè)備, 能夠獲得更多的安全保障, 確保只有授權(quán)的客戶虛擬機(jī)或客戶程序能夠調(diào)用密碼計(jì)算[10,11].

    總體而言, 基于密碼技術(shù)的安全方案, 可用于虛擬化環(huán)境的客戶虛擬機(jī)或用戶態(tài)程序, 使其具有更多、更高的安全特性; 這些安全特性, 可以是虛擬化系統(tǒng)以軟件形式實(shí)現(xiàn)的, 也可以是依賴于CPU 的硬件安全特性.同時(shí), 密碼算法在虛擬化系統(tǒng)的隔離運(yùn)行環(huán)境中執(zhí)行, 有利于密鑰等敏感安全參數(shù)的保護(hù), 也能夠利用虛擬化系統(tǒng)的特權(quán)分級(jí), 更徹底地實(shí)施密碼計(jì)算服務(wù)所需要的安全措施.圖1 總結(jié)了密碼技術(shù)和虛擬化系統(tǒng)相互依賴、提升安全性的技術(shù)點(diǎn).

    圖1 密碼技術(shù)應(yīng)用和虛擬化系統(tǒng)相互支撐、提升安全性Figure 1 Security from mutual integrations of applied cryptography and virtualization systems

    3 虛擬化系統(tǒng)的密碼技術(shù)應(yīng)用: 軟件解決方案

    本節(jié)介紹在虛擬化系統(tǒng)中以軟件形式實(shí)現(xiàn)的、利用密碼技術(shù)的安全方案, 主要包括用戶態(tài)程序和客戶虛擬機(jī)的內(nèi)存加密、虛擬化環(huán)境加密權(quán)限管理、虛擬TPM 以及利用虛擬化特性的密碼計(jì)算.

    3.1 內(nèi)存加密

    相比于非易失性存儲(chǔ)的存儲(chǔ)加密(例如, QEMU 鏡像文件加密[12]、TrueCrypt 全磁盤(pán)加密[13]、數(shù)據(jù)庫(kù)加密TDE 等), 內(nèi)存加密進(jìn)一步關(guān)注運(yùn)行期的內(nèi)存數(shù)據(jù)安全問(wèn)題: (1) 由于操作系統(tǒng)內(nèi)存交換機(jī)制導(dǎo)致內(nèi)存數(shù)據(jù)被交換到外部的、易受攻擊的存儲(chǔ)器; (2) 用戶態(tài)程序或客戶虛擬機(jī)的運(yùn)行期內(nèi)存數(shù)據(jù)所面臨的各種內(nèi)存信息泄露攻擊.

    文獻(xiàn)[14] 修改操作系統(tǒng)的Pager 程序, 對(duì)物理內(nèi)存和外部擴(kuò)展存儲(chǔ)器交互的數(shù)據(jù)進(jìn)行實(shí)時(shí)的加解密操作.修改后的Pager 程序會(huì)自動(dòng)加密交換出的內(nèi)存頁(yè), 從外部存儲(chǔ)器讀入內(nèi)存頁(yè)時(shí)解密數(shù)據(jù); 而且, 使用操作系統(tǒng)內(nèi)核熵池生成密鑰, 并定期更新.Hypnoguard[15]保護(hù)操作系統(tǒng)睡眠時(shí)的內(nèi)存數(shù)據(jù): 在系統(tǒng)進(jìn)入ACPI S3/suspend-to-RAM 狀態(tài)時(shí), 生成臨時(shí)對(duì)稱密鑰, 加密全部?jī)?nèi)存數(shù)據(jù), 并且用TPM 芯片來(lái)保護(hù)該對(duì)稱密鑰.在系統(tǒng)喚醒時(shí), 進(jìn)入Intel TXT (trusted execution technology) 執(zhí)行狀態(tài), 用戶輸入正確口令后才會(huì)從TPM 芯片解密獲得對(duì)稱密鑰, 并解密內(nèi)存數(shù)據(jù).

    以上方案將操作系統(tǒng)視為整體, 進(jìn)行內(nèi)存加密保護(hù).下面介紹用戶態(tài)程序粒度的內(nèi)存加密方案, 在操作系統(tǒng)正常運(yùn)行時(shí), 加密重要用戶態(tài)程序的內(nèi)存數(shù)據(jù); 其中, 部分方案借助于ARM TrustZone 安全世界或Hypervisor, 使得操作系統(tǒng)在調(diào)度用戶態(tài)程序的同時(shí), 不能讀取用戶態(tài)程序的內(nèi)存數(shù)據(jù).

    3.1.1 用戶態(tài)程序內(nèi)存加密

    Cryptkeeper[16]和RamCrypt[17]依賴操作系統(tǒng)完成用戶態(tài)程序粒度的內(nèi)存加密: 將程序的數(shù)據(jù)內(nèi)存頁(yè)分成少量的明文頁(yè)以及大部分的加密頁(yè), 當(dāng)數(shù)據(jù)不在用時(shí)一直保存在加密頁(yè), 被訪問(wèn)時(shí)則由操作系統(tǒng)解密到明文頁(yè).Cryptkeeper 和RamCrypt 可以大幅度地減少敏感數(shù)據(jù)的暴露窗口.相比Cryptkeeper,RamCrypt 將密鑰保護(hù)在寄存器中, 進(jìn)一步防范內(nèi)存信息的物理攻擊(例如冷啟動(dòng)攻擊和大部分內(nèi)存信息泄露攻擊).CryptMe[18]也支持用戶態(tài)程序粒度的內(nèi)存加密, 并進(jìn)一步考慮了由于操作系統(tǒng)功能誤用導(dǎo)致的內(nèi)存敏感數(shù)據(jù)泄露: 用戶態(tài)程序的數(shù)據(jù)在處理時(shí), 必須是解密的明文狀態(tài), 所以CryptMe 將其切換到隔離保護(hù)的、更高特權(quán)的ARM TrustZone 安全世界來(lái)執(zhí)行, 避免由于操作系統(tǒng)功能誤用問(wèn)題而泄露敏感數(shù)據(jù).相應(yīng)地, 內(nèi)存數(shù)據(jù)加密密鑰也保護(hù)在ARM TrustZone 安全世界.

    Sentry[19]是用于移動(dòng)設(shè)備的內(nèi)存加密系統(tǒng).考慮到移動(dòng)設(shè)備的特殊性, Sentry 減少了實(shí)施內(nèi)存加密功能的時(shí)間窗, 以提升效率: 因?yàn)樵O(shè)備丟失后的內(nèi)存信息物理攻擊是移動(dòng)設(shè)備的主要安全威脅, 所以Sentry 僅在移動(dòng)設(shè)備被鎖定時(shí)加密重要用戶態(tài)程序的全部?jī)?nèi)存數(shù)據(jù), 在設(shè)備解鎖時(shí)解密數(shù)據(jù).為了抵抗物理攻擊, Sentry 將密鑰保護(hù)在片內(nèi)iRAM 或片內(nèi)Cache.

    3.1.2 虛擬機(jī)內(nèi)存數(shù)據(jù)加密和完整性

    Overshadow、InkTag 和SP3完成了基于Hypervisor 的虛擬機(jī)內(nèi)存數(shù)據(jù)安全: 對(duì)于虛擬機(jī)的操作系統(tǒng)來(lái)說(shuō), 運(yùn)行在客戶虛擬機(jī)上的用戶態(tài)程序內(nèi)存數(shù)據(jù)處于加密狀態(tài), 操作系統(tǒng)可以調(diào)度程序, 但是無(wú)法讀取其內(nèi)存數(shù)據(jù)明文.上述方案利用Hypervisor 加密位于虛擬機(jī)中的用戶態(tài)程序內(nèi)存數(shù)據(jù), 使其免受惡意操作系統(tǒng)的威脅.

    Overshadow[20]依據(jù)客戶虛擬機(jī)的上下文為操作系統(tǒng)和應(yīng)用程序呈現(xiàn)不同的內(nèi)存頁(yè)視圖.當(dāng)操作系統(tǒng)訪問(wèn)應(yīng)用程序時(shí), Hypervisor 呈現(xiàn)內(nèi)存頁(yè)的加密視圖并計(jì)算摘要.當(dāng)應(yīng)用程序訪問(wèn)加密內(nèi)存頁(yè)時(shí),Hypervisor 驗(yàn)證摘要, 然后解密內(nèi)存頁(yè).相比于Overshadow, InkTag[21]進(jìn)一步允許不同進(jìn)程可以共享受保護(hù)的數(shù)據(jù), 并且保證數(shù)據(jù)與摘要的一致性.

    SP3[22]提出內(nèi)存保護(hù)域(protection domain) 的概念, 一個(gè)保護(hù)域中的內(nèi)存頁(yè)訪問(wèn)權(quán)限與一組密鑰相關(guān)聯(lián), 即依據(jù)訪問(wèn)權(quán)限決定是否可以使用密鑰加密/解密內(nèi)存頁(yè).保護(hù)域可以是一個(gè)或者多個(gè)進(jìn)程.每一個(gè)保護(hù)域有唯一標(biāo)識(shí)SID、KID 用于標(biāo)識(shí)對(duì)稱密鑰, 然后SP3維護(hù)對(duì)稱密鑰的數(shù)據(jù)庫(kù)及其權(quán)限位圖, 權(quán)限位圖指明SID 標(biāo)識(shí)的域可以使用哪些對(duì)稱密鑰來(lái)解密對(duì)應(yīng)的內(nèi)存頁(yè)(不同的內(nèi)存頁(yè)對(duì)應(yīng)不同的密鑰).KID 0 為操作系統(tǒng)的保護(hù)域保留, 使得操作系統(tǒng)訪問(wèn)的內(nèi)存頁(yè)總是處于加密狀態(tài).相比于Overshadow 無(wú)選擇地加密整個(gè)應(yīng)用程序, SP3可以有選擇地加密應(yīng)用程序的部分內(nèi)存頁(yè), 并且SP3同時(shí)保留內(nèi)存頁(yè)的解密副本, 降低密碼運(yùn)算帶來(lái)的延遲.

    3.2 虛擬化環(huán)境的加密權(quán)限管理

    回顧上文介紹的CryptMe 方案, 為了防止操作系統(tǒng)功能誤用導(dǎo)致敏感數(shù)據(jù)泄露, CryptMe 把密鑰保護(hù)在更高特權(quán)的ARM TrustZone 安全世界中.這種加密權(quán)限的管理安全技術(shù)思路也可以應(yīng)用在虛擬化系統(tǒng)中.Overshadow、InkTag 和SP3使用Hypervisor 加密虛擬機(jī)內(nèi)存數(shù)據(jù), 其中隱含假設(shè)Hypervisor 是可信的.加密權(quán)限管理的安全解決方案,進(jìn)一步考慮了Hypervisor 被攻擊的情況,構(gòu)建出比Hypervisor 更高特權(quán)的輕量級(jí)組件.該組件掌握加密能力, 限制Hypervisor 對(duì)虛擬機(jī)敏感數(shù)據(jù)的訪問(wèn), 防御Hypervisor層面的潛在攻擊.

    CloudVisor[23]使用嵌套虛擬化[24]的思想進(jìn)行權(quán)限管理的安全增強(qiáng).CloudVisor 可以視為運(yùn)行在最高特權(quán)級(jí)別的小型安全監(jiān)控組件,監(jiān)控Hypervisor 和客戶虛擬機(jī)之間的交互,基于密碼技術(shù)保護(hù)虛擬機(jī)數(shù)據(jù)的機(jī)密性和完整性(包括內(nèi)存數(shù)據(jù)和磁盤(pán)數(shù)據(jù)).首先, CloudVisor 對(duì)Hypervisor 和虛擬機(jī)之間的控制轉(zhuǎn)移進(jìn)行額外的轉(zhuǎn)換和保護(hù).在發(fā)生虛擬機(jī)退出(VM exit) 中斷時(shí), CloudVisor 保護(hù)通用寄存器的數(shù)據(jù), 只向Hypervisor 提供必要數(shù)據(jù)以限制暴露給Hypervisor 的信息.其次, CloudVisor 限制Hypervisor對(duì)虛擬機(jī)內(nèi)存的管理.CloudVisor 跟蹤每個(gè)物理頁(yè)的所有權(quán), 不允許Hypervisor 直接改寫(xiě)擴(kuò)展頁(yè)表: 當(dāng)擴(kuò)展頁(yè)表更新時(shí), CloudVisor 檢查頁(yè)所有權(quán)是否與頁(yè)表所有權(quán)相匹配; 如果不匹配, CloudVisor 就加密內(nèi)存頁(yè)內(nèi)容.最后, CloudVisor 在客戶虛擬機(jī)訪問(wèn)虛擬磁盤(pán)時(shí), 進(jìn)行透明的加解密并對(duì)磁盤(pán)數(shù)據(jù)進(jìn)行完整性校驗(yàn).此外, CloudVisor 還維護(hù)每個(gè)客戶虛擬機(jī)的I/O 訪問(wèn)權(quán)限表防止來(lái)自Hypervisor 的DMA 攻擊.

    CaaS[25]改進(jìn)Xen Hypervisor 構(gòu)建了用戶可控的密碼服務(wù).CaaS 將原本運(yùn)行在特權(quán)域Dom0 的管理代碼, 例如創(chuàng)建、遷移、銷毀虛擬機(jī)等功能移入更小的受信域DomT, 并將Dom0 降級(jí)為非完全受信任的域; 同時(shí)將DomU (代表客戶虛擬機(jī)) 與密碼計(jì)算有關(guān)的敏感操作劃分到獨(dú)立的安全環(huán)境DomC 中.DomU 可以使用DomC 提供的加密服務(wù).DomC 鏡像數(shù)據(jù)加密的密鑰只由DomT 獲取, 抵抗來(lái)自Dom0的特權(quán)管理員的安全威脅.

    3.3 虛擬密碼設(shè)備

    虛擬密碼設(shè)備源自于如下的考慮: (1) 在Hypervisor 中, 將原有不支持多個(gè)操作系統(tǒng)或虛擬機(jī)訪問(wèn)的硬件密碼設(shè)備擴(kuò)展為支持多個(gè)操作系統(tǒng)或虛擬機(jī); (2) 將密碼計(jì)算的運(yùn)行環(huán)境置于更高特權(quán)的組件(通常也意味著更少代碼量和更少攻擊面), 獲得更進(jìn)一步的安全保護(hù); 例如, 將密碼計(jì)算功能從操作系統(tǒng)內(nèi)核轉(zhuǎn)移到Hypervisor, 實(shí)現(xiàn)為虛擬密碼設(shè)備.

    可信平臺(tái)模塊TPM (trusted platform module)[26]是國(guó)際可信計(jì)算工作組提出的安全標(biāo)準(zhǔn)設(shè)備.TPM 可作為獨(dú)立的芯片被連接到計(jì)算機(jī)系統(tǒng), 提供了管理密鑰、密碼計(jì)算的獨(dú)立空間, 以實(shí)現(xiàn)可信啟動(dòng)、完整性度量和驗(yàn)證、遠(yuǎn)程證明等安全功能.當(dāng)TPM 應(yīng)用于多客戶虛擬機(jī)時(shí), 單一的TPM 芯片難以同時(shí)滿足多個(gè)虛擬機(jī)的性能和功能需求.在Hypervisor 中, 基于TPM 芯片, 配合軟件功能可虛擬出多個(gè)軟件TPM, 稱為vTPM[27].vTPM 向客戶虛擬機(jī)的操作系統(tǒng)和應(yīng)用程序提供與硬件TPM 相同的使用模式和命令集, 使得為T(mén)PM 編寫(xiě)的軟件可以繼續(xù)在vTPM 上使用; vTPM 也與虛擬機(jī)的遷移等功能兼容.但是, vTPM 的敏感數(shù)據(jù)會(huì)受到各種安全威脅[28]: 使用TPM 芯片密封vTPM 敏感數(shù)據(jù), 可以提供數(shù)據(jù)靜態(tài)保護(hù); SvTPM[29]在vTPM 架構(gòu)的基礎(chǔ)上, 在Hypervisor 不完全可信的情況下使用SGX 保證其運(yùn)行時(shí)動(dòng)態(tài)安全.

    SECRIN[10]利用虛擬化管理系統(tǒng)的已有設(shè)備管理能力, 實(shí)現(xiàn)虛擬密碼設(shè)備的有效安全管理, 包括:密鑰在Hypervisor 完成密碼計(jì)算, 運(yùn)行為虛擬密碼設(shè)備, 租戶遠(yuǎn)程交互式地輸入PBE (password-based encryption) 口令以實(shí)現(xiàn)虛擬密碼設(shè)備的初始化, 集中管理虛擬密碼設(shè)備與客戶虛擬機(jī)之間的映射關(guān)系等,虛擬密碼設(shè)備與虛擬機(jī)遷移完全兼容, 能夠不間斷提供服務(wù).

    3.4 利用虛擬化特性的密碼計(jì)算功能

    結(jié)合虛擬化系統(tǒng), 可以更好地實(shí)施密碼技術(shù).TreVisor[30]方案結(jié)合TRESOR[31]和BitVisor[32]的技術(shù)優(yōu)勢(shì), 利用Hypervisor 實(shí)現(xiàn)透明的磁盤(pán)加密, 保護(hù)密鑰免受內(nèi)存信息泄露攻擊的威脅.TRESOR 磁盤(pán)加密系統(tǒng)將AES 對(duì)稱密鑰限定在Debug 寄存器中, 但是要求修改操作系統(tǒng)內(nèi)核, 難以用在Windows等閉源系統(tǒng).TreVisor 修改了BitVisor Hypervisor, 在其中實(shí)施磁盤(pán)外設(shè)的TRESOR 數(shù)據(jù)加密方案,Hypervisor 也將AES 對(duì)稱密鑰限定在Debug 寄存器中, 以保持TRESOR 原有設(shè)計(jì)的安全性.

    如第3.3 節(jié)所述, 在虛擬化環(huán)境中, 客戶虛擬機(jī)的大量密碼計(jì)算依賴于Hypervisor 管理的密碼設(shè)備(包括虛擬密碼設(shè)備).通常用戶態(tài)程序或者客戶虛擬機(jī)在調(diào)用密碼計(jì)算時(shí), 需要擁有用戶ID 和口令; 一旦用戶ID 和口令泄露, 攻擊者就可以調(diào)用密碼計(jì)算.基于上述考慮, Hypervisor 還可以進(jìn)一步實(shí)施對(duì)調(diào)用者透明的密碼計(jì)算調(diào)用安全: 基于虛擬機(jī)自省[33], En-ACCI[34]在客戶虛擬機(jī)調(diào)用密碼計(jì)算時(shí), 觸發(fā)Hypervisor 檢查該虛擬機(jī)的運(yùn)行狀態(tài)信息, 包括進(jìn)程標(biāo)識(shí)符、進(jìn)程啟動(dòng)時(shí)間、用戶標(biāo)識(shí)符、用戶組標(biāo)識(shí)符、進(jìn)程的文件和網(wǎng)絡(luò)連接等, 根據(jù)預(yù)先設(shè)置的調(diào)用策略判定是否允許調(diào)用.TF-BIV 方案[11]進(jìn)一步實(shí)現(xiàn)了更完善的虛擬機(jī)運(yùn)行期代碼完整性校驗(yàn), 然后實(shí)施密碼計(jì)算的調(diào)用安全, 使得只有特定的用戶態(tài)程序可以調(diào)用密碼計(jì)算, 且該用戶態(tài)程序以及使用的相關(guān)共享代碼都沒(méi)有被篡改.

    操作系統(tǒng)內(nèi)核自動(dòng)擁有所有用戶態(tài)程序的網(wǎng)絡(luò)流量監(jiān)控能力, 可用于實(shí)施強(qiáng)制性的密碼應(yīng)用安全策略.TrustBase[35]由操作系統(tǒng)監(jiān)控用戶態(tài)程序的TLS 流量, 實(shí)施更為嚴(yán)格的數(shù)字證書(shū)驗(yàn)證, 避免用戶態(tài)程序遺留的數(shù)字證書(shū)驗(yàn)證漏洞.類似地, Hypervisor 也擁有所有虛擬機(jī)的網(wǎng)絡(luò)流量監(jiān)控能力, vCert-Guard[36]也實(shí)施了類似的數(shù)字證書(shū)驗(yàn)證和撤銷狀態(tài)檢查, 支持更便利的根CA 證書(shū)列表管理和更高效的證書(shū)撤銷狀態(tài)信息緩存.

    4 可信執(zhí)行環(huán)境的密碼技術(shù)應(yīng)用: 特性、演進(jìn)和應(yīng)用方案

    第3 節(jié)闡述了在虛擬運(yùn)行環(huán)境中應(yīng)用密碼技術(shù), 獲得更高安全保障的內(nèi)存機(jī)密性、代碼完整性、數(shù)據(jù)存儲(chǔ)保護(hù)和遠(yuǎn)程證明等.上述安全特性也是可信執(zhí)行環(huán)境TEE 所需要的安全特性.近年來(lái)各CPU 廠商也開(kāi)始在CPU 硬件上引入TEE 支持, 為隔離的運(yùn)行環(huán)境提供更多基于硬件安全特性的保障.相比于軟件解決方案, 基于CPU 硬件安全特性的解決方案能夠減少對(duì)操作系統(tǒng)和Hypervisor 的信賴、減少可信計(jì)算基TCB (trusted computing base) 代碼.

    目前主流的硬件TEE 方案, 包括有Intel SGX、AMD SEV、ARM TrustZone 以及RISC-V Key-Stone、Intel TDX、ARM CCA 等.主流云服務(wù)提供商已經(jīng)支持創(chuàng)建TEE 功能的虛擬機(jī)或者用戶態(tài)程序, 包括谷歌、亞馬遜、微軟、百度、阿里巴巴等.表1 對(duì)比了不同的CPU 硬件TEE 方案, 分別提供了不同的運(yùn)行環(huán)境抽象和安全特性.從運(yùn)行環(huán)境抽象的角度, Intel SGX 提供了應(yīng)用程序的安全抽象, 保護(hù)應(yīng)用程序粒度的敏感數(shù)據(jù)和代碼.AMD SEV 則提供了虛擬機(jī)抽象, 將客戶虛擬機(jī)視為整體, 保護(hù)該虛擬機(jī)中的所有應(yīng)用程序和操作系統(tǒng).ARM TrustZone 提供了物理機(jī)抽象, 即安全世界包含了隔離保護(hù)的CPU狀態(tài)、內(nèi)存和外設(shè)等, 抵抗來(lái)自于普通世界的安全威脅.其他TEE 方案也分別選擇了不同的運(yùn)行環(huán)境抽象, 應(yīng)用程序和物理機(jī)抽象在應(yīng)用中需要更多的開(kāi)發(fā)適配工作, 而虛擬機(jī)抽象與已有的虛擬化系統(tǒng)架構(gòu)更為匹配, 應(yīng)用過(guò)程的開(kāi)發(fā)適配較少.

    表1 不同TEE 方案的特性對(duì)比Table 1 Comparison of different TEEs

    基于CPU 硬件TEE 的應(yīng)用研究, 是未來(lái)的重要方向之一.各種硬件TEE 方案的攻防技術(shù), 也是廣受關(guān)注的研究方向, 包括硬件TEE 方案自身的安全性(例如遠(yuǎn)程證明密鑰泄露) 以及運(yùn)行在TEE 環(huán)境中的用戶態(tài)程序安全性(例如密碼計(jì)算程序的密鑰泄露).另外, 不同的硬件TEE 方案提供的安全特性并不一致, 也有大量的軟件開(kāi)發(fā)工作致力于“補(bǔ)齊” 不同方案之間的安全特性, 努力為上層應(yīng)用系統(tǒng)提供統(tǒng)一的基礎(chǔ)性安全防護(hù).

    下文針對(duì)不同的主流TEE 分別介紹相關(guān)研究, 并在最后簡(jiǎn)要介紹國(guó)產(chǎn)CPU 和異構(gòu)計(jì)算單元的TEE方案.

    4.1 Intel SGX 密碼技術(shù)應(yīng)用

    4.1.1 SGX 基礎(chǔ)功能

    SGX(software guard extensions)[6]是Intel CPU 的安全擴(kuò)展,通過(guò)一組安全指令創(chuàng)建隔離的運(yùn)行環(huán)境(稱為Enclave), 使得運(yùn)行在Enclave 中的多種應(yīng)用程序免受惡意軟件以及物理攻擊的威脅.SGX 提供了隔離、遠(yuǎn)程證明和數(shù)據(jù)密封等機(jī)制來(lái)保證數(shù)據(jù)和代碼的機(jī)密性和完整性.SGX 將操作系統(tǒng)、Hypervisor等特權(quán)代碼都列為不受信任的范疇, 僅需要信任CPU.

    ? 隔離(內(nèi)存加密和完整性): SGX 保證Enclave 的外部實(shí)體無(wú)法訪問(wèn)Enclave 內(nèi)部的數(shù)據(jù)、代碼以及使用的寄存器.Enclave 同時(shí)具有內(nèi)存加密和完整性驗(yàn)證的安全特性.Enclave 程序使用的內(nèi)存區(qū)域位于處理器保留內(nèi)存(processor reserved memory, PRM).PRM 由CPU 自動(dòng)進(jìn)行加密, 相應(yīng)的密鑰存儲(chǔ)在CPU 內(nèi)部.每個(gè)Enclave 程序有唯一標(biāo)識(shí)的度量值, 由內(nèi)存數(shù)據(jù)SHA-256 計(jì)算得到; 加載Enclave 時(shí), 依據(jù)度量值可以判斷程序是否被惡意篡改.

    ? 遠(yuǎn)程證明: 向第三方簽發(fā)不可偽造的消息來(lái)證明Enclave 程序正確地運(yùn)行在支持SGX 的平臺(tái)上,并且Enclave 內(nèi)的代碼未被篡改.

    ? 數(shù)據(jù)密封: 使用只能由Enclave 程序自身訪問(wèn)的密封密鑰對(duì)Enclave 輸出的數(shù)據(jù)進(jìn)行加密, 用于Enclave 程序的數(shù)據(jù)存儲(chǔ)安全(存儲(chǔ)在Enclave 外部).

    4.1.2 SGX 虛擬化功能擴(kuò)展

    Intel 進(jìn)一步引入了SGX 超額訂閱擴(kuò)展(SGX oversubscription extensions)[37], 提供了新的指令和虛擬化支持, 使得Hypervisor 能夠更簡(jiǎn)單高效地實(shí)現(xiàn)內(nèi)存超額訂閱, 提高虛擬機(jī)密度.

    但是, SGX 的設(shè)計(jì)不能與虛擬化平臺(tái)直接適配.因此, 有相關(guān)研究工作完成了更全面的SGX 虛擬化功能支持.由于操作系統(tǒng)和Hypervisor 無(wú)法感知Enclave 的運(yùn)行狀態(tài), 所以運(yùn)行Enclave 的虛擬機(jī)失去了遷移能力.文獻(xiàn)[38] 研究了支持SGX 的虛擬機(jī)遷移問(wèn)題, 該方案可以安全地轉(zhuǎn)儲(chǔ)Enclave 內(nèi)部狀態(tài),同時(shí)確保遷移后的每個(gè)Enclave 實(shí)例不會(huì)發(fā)生回滾或者生成多個(gè)實(shí)例.文獻(xiàn)[39] 進(jìn)一步考慮了經(jīng)過(guò)密封密鑰加密后的, 存儲(chǔ)在Enclave 外部的持久數(shù)據(jù)遷移, 包括密封數(shù)據(jù)和單調(diào)計(jì)數(shù)器.

    相比于虛擬機(jī), Docker 容器[40]的安全性較弱但是具有性能優(yōu)勢(shì).Scone 方案[41]使用SGX 構(gòu)建安全容器, 將容器中的應(yīng)用程序放到Enclave 運(yùn)行, 提高數(shù)據(jù)和代碼的安全性, 同時(shí)保持較低的性能開(kāi)銷.

    4.1.3 SGX 應(yīng)用

    相比于虛擬機(jī)抽象, 應(yīng)用程序抽象的SGX 需要受保護(hù)程序的二次開(kāi)發(fā), 移植工作量更多.例如, VC3方案[42]將SGX 用于MapReduce 框架, 文獻(xiàn)[43] 將SGX 應(yīng)用于TOR 匿名通信系統(tǒng), SGX 也被用于機(jī)器學(xué)習(xí)[44]、數(shù)據(jù)庫(kù)[45]、單點(diǎn)登錄[46,47]、區(qū)塊鏈[48–50]、多方安全計(jì)算[51]等不同系統(tǒng).文獻(xiàn)[52] 對(duì)SGX 的應(yīng)用進(jìn)行了總結(jié).

    為了使已有軟件更方便地運(yùn)行在SGX 環(huán)境, 有研究工作在Enclave 中部署運(yùn)行時(shí)庫(kù), 從而支持未經(jīng)修改的通用應(yīng)用程序.Haven[53]在Enclave 中部署操作系統(tǒng)庫(kù)LibOS 來(lái)支持不需修改的Windows 應(yīng)用程序.Graphene-SGX 方案[54]則在Enclave 中部署支持Linux 應(yīng)用程序的LibOS, Graphene-SGX還支持動(dòng)態(tài)加載庫(kù)的完整性、Enclave 級(jí)別的fork 以及安全的進(jìn)程間通信.Occlum 方案[55]也是運(yùn)行SGX Enclave 的LibOS, 實(shí)現(xiàn)了安全高效的多任務(wù)處理.Graphene-SGX 和Occlum 都已經(jīng)開(kāi)源發(fā)布.

    目前, 已有廠商使用SGX 構(gòu)建商用的機(jī)密計(jì)算平臺(tái), 例如, 基于SGX 構(gòu)建的Apache Teaclave[56],微軟Azure 機(jī)密計(jì)算[57]支持SGX (也支持AMD SEV); 螞蟻集團(tuán)和Intel 合作基于Analytics Zoo 和Occlum 搭建隱私保護(hù)機(jī)器學(xué)習(xí)平臺(tái)[58].

    4.1.4 基于SGX 構(gòu)建安全密碼方案

    SGX 可以為密鑰等敏感數(shù)據(jù)提供存儲(chǔ)期和運(yùn)行期的保護(hù).SGX SSL[59]是Intel 基于SGX 實(shí)現(xiàn)的開(kāi)源密碼軟件, 包括密碼庫(kù)、SGX SSL 可信庫(kù)和SGX SSL 非可信庫(kù).其中, 密碼庫(kù)保證OpenSSL 的密碼計(jì)算功能可以在Enclave 中運(yùn)行, 更好地保護(hù)密鑰等敏感數(shù)據(jù), 可信庫(kù)和非可信庫(kù)分別在Enclave 內(nèi)部和外部提供了相應(yīng)的操作系統(tǒng)調(diào)用.當(dāng)密碼庫(kù)的運(yùn)行不涉及系統(tǒng)調(diào)用或是涉及的系統(tǒng)調(diào)用在Enclave 內(nèi)部實(shí)現(xiàn)時(shí), 密碼計(jì)算不需要離開(kāi)Enclave; 否則, 會(huì)跳轉(zhuǎn)至Enclave 外部的SGX SSL 非可信庫(kù).

    SGX 提供了基于CPU 硬件的代碼完整性和數(shù)據(jù)密封以及遠(yuǎn)程證明, 使得攻擊者難以竊取或利用其中的敏感數(shù)據(jù), 可將其視為“信息技術(shù)原理” 的困難問(wèn)題(不同于傳統(tǒng)的數(shù)學(xué)原理困難問(wèn)題), 從而構(gòu)建高效的密碼系統(tǒng), 包括函數(shù)加密和基于身份的加密.IRON[60]基于SGX 構(gòu)造函數(shù)加密系統(tǒng), 使得用戶只能獲得與明文數(shù)據(jù)相關(guān)的函數(shù)值而不能獲得具體的明文信息.IRON 系統(tǒng)包括: 基于SGX Enclave 構(gòu)建的受信組件KME (key manager enclave) 以及數(shù)據(jù)使用者的DE (decryption enclave) 和FE (function enclave).當(dāng)數(shù)據(jù)擁有者上傳到KME 的加密數(shù)據(jù)被使用時(shí), DE 通過(guò)公鑰加密和簽名算法與KME 交互,獲得解密密鑰, 然后通過(guò)安全信道將其傳入FE 中.FE 使用解密密鑰恢復(fù)出數(shù)據(jù)明文并計(jì)算相應(yīng)的函數(shù)值.由于明文數(shù)據(jù)和計(jì)算涉及到的密鑰被SGX Enclave 保護(hù), 所以數(shù)據(jù)使用者無(wú)法獲知相應(yīng)的敏感數(shù)據(jù).IRON 方案利用SGX 安全特性, 將復(fù)雜的函數(shù)加密算法替換為普通的公鑰密碼算法來(lái)提升性能.PoS 方案[61]使用類似的技術(shù)思想, 基于AES、HMAC 等高性能對(duì)稱密碼算法, 結(jié)合Enclave 來(lái)保證密鑰的特定使用, 由此實(shí)現(xiàn)基于身份的公鑰加密功能.SCB 方案[62]進(jìn)一步將PoS 方案擴(kuò)展至屬性加密和環(huán)簽名等.

    4.1.5 攻擊和防護(hù)

    已有多種針對(duì)SGX 的攻擊, 造成的后果也各有不同.SGX 提供了隔離的運(yùn)行環(huán)境Enclave, 但是仍有側(cè)信道攻擊可以竊取運(yùn)行在Enclave 中的密碼軟件的密鑰; 另一方面, SGX 自身也使用密碼技術(shù)確保Enclave 的安全性, SGX 的缺陷也使得攻擊者可以獲取SGX 機(jī)制自身的密鑰(例如遠(yuǎn)程證明密鑰、密封密鑰等).

    針對(duì)SGX 的側(cè)信道攻擊主要包括基于頁(yè)表的側(cè)信道攻擊[63–66]、基于Cache 的側(cè)信道攻擊[67–71]和基于分支預(yù)測(cè)的側(cè)信道攻擊[72].文獻(xiàn)[63,64] 表明基于頁(yè)表的側(cè)信道攻擊可以獲取Libgcrypt 軟件的EdDSA 密鑰; 文獻(xiàn)[67–70] 給出了基于Cache 的側(cè)信道攻擊, 從多種不同的密碼軟件中獲取AES 密鑰和RSA 密鑰; 文獻(xiàn)[72] 給出了基于分支預(yù)測(cè)的側(cè)信道攻擊、獲取Mbed TLS 的RSA 密鑰.為了抵抗針對(duì)SGX 的側(cè)信道攻擊, 也有多種防護(hù)措施被提出, 包括異常檢測(cè)[73,74]、隨機(jī)化[75,76]、隔離增強(qiáng)[77]等方法, 也可以修改源碼[78]隱藏Enclave 程序的控制流和數(shù)據(jù)流.文獻(xiàn)[79,80] 總結(jié)了針對(duì)SGX 的側(cè)信道攻擊和防護(hù)措施.

    瞬態(tài)執(zhí)行攻擊, 源于處理器為了優(yōu)化性能而引入的亂序執(zhí)行和預(yù)測(cè)執(zhí)行, 攻擊者可以通過(guò)微架構(gòu)狀態(tài)信息提取異常操作泄露的秘密數(shù)據(jù).針對(duì)SGX 的瞬態(tài)執(zhí)行攻擊[81–84]可以獲取SGX 自身使用的密鑰,帶來(lái)嚴(yán)重威脅.例如,文獻(xiàn)[81]給出了獲取遠(yuǎn)程證明密鑰和啟動(dòng)密鑰的攻擊方法,文獻(xiàn)[82]可以獲取SGX遠(yuǎn)程證明密鑰和密封密鑰.瞬態(tài)執(zhí)行攻擊也可以獲得受SGX 保護(hù)的密碼軟件密鑰; 例如, 文獻(xiàn)[84] 可以跨核提取受Enclave 保護(hù)的ECDSA 密鑰.相應(yīng)的緩解措施包括: 通過(guò)微碼更新發(fā)布硬件補(bǔ)丁、在每條瞬態(tài)指令后插入lfence 指令, 或者是在芯片級(jí)別修改處理器結(jié)構(gòu).文獻(xiàn)[80,85] 對(duì)瞬態(tài)執(zhí)行攻擊及防護(hù)措施給出了分析和總結(jié).

    針對(duì)數(shù)據(jù)密封的回滾攻擊會(huì)破壞數(shù)據(jù), 例如使用舊的密封數(shù)據(jù)替換新的密封數(shù)據(jù).解決回滾攻擊的方法是保證Enclave 狀態(tài)的新鮮度(Freshness).Intel 推薦使用單調(diào)計(jì)算器[86]抵抗回滾攻擊, ROTE[87]也提出了基于分布式系統(tǒng)的保護(hù)方案.

    4.2 AMD SEV 密碼技術(shù)應(yīng)用

    4.2.1 SEV 基礎(chǔ)功能

    SEV (secure encrypted virtualization) 是AMD 處理器的硬件擴(kuò)展, 為不可信環(huán)境的虛擬機(jī)提供安全保護(hù), 防止來(lái)自其他虛擬機(jī)和Hypervisor 的威脅.在SEV 之前, 2013 年提出的HyperCoffer 方案[88]就完成了虛擬機(jī)粒度的內(nèi)存加密隔離.HyperCoffer 使用了支持AISE (address independent seed encryption) 算法和BMT (Bonsai Merkle tree) 算法[89]的安全處理器為虛擬機(jī)提供內(nèi)存數(shù)據(jù)加密和完整性保護(hù); 但是, HyperCoffer 只是在仿真器上實(shí)現(xiàn).

    目前, 支持SEV 特性的AMD 處理器已經(jīng)被廣泛使用, SEV 為虛擬機(jī)提供了內(nèi)存加密、遠(yuǎn)程證明等功能.SEV 的內(nèi)存加密功能由處理器SME (secure memory encryption) 引擎提供.在讀寫(xiě)數(shù)據(jù)時(shí),使用DRAM 控制器內(nèi)置的AES 加密引擎自動(dòng)對(duì)內(nèi)存數(shù)據(jù)進(jìn)行加解密.SEV 為每一個(gè)虛擬機(jī)生成獨(dú)立的密鑰, 集成了專門(mén)管理密鑰的控制器SP (secure processor), SP 擁有獨(dú)立的存儲(chǔ)區(qū)域且該區(qū)域無(wú)法被Hypervisor 等特權(quán)組件訪問(wèn).SEV 遠(yuǎn)程證明用以確保目標(biāo)平臺(tái)的真實(shí)性, 即虛擬機(jī)運(yùn)行在真實(shí)的SEV 環(huán)境中, 且確保虛擬機(jī)的二進(jìn)制代碼未被篡改.

    4.2.2 SEV 技術(shù)演進(jìn)

    AMD 于2016 年發(fā)布第一代SEV[90]技術(shù)文檔.隨后, 研究人員發(fā)現(xiàn)其中有多種設(shè)計(jì)漏洞, 包括未加密VMCB (vitrual machine control block)[91,92]、內(nèi)存加密缺乏認(rèn)證[93–95]、嵌套頁(yè)表未保護(hù)[91,96,97]、I/O 未保護(hù)[98]以及ASID (address space identify) 濫用[99]等.VMCB 未加密使得Hypervisor 可以窺探虛擬機(jī)的執(zhí)行狀態(tài)甚至操控虛擬機(jī)的控制流.缺乏認(rèn)證的內(nèi)存加密是指由于缺乏身份認(rèn)證, Hypervisor可以讀取和更改SEV 虛擬機(jī)的內(nèi)存、破壞完整性.嵌套頁(yè)表未保護(hù)導(dǎo)致Hypervisor 可以在管理嵌套頁(yè)表的過(guò)程中更改虛擬機(jī)的內(nèi)存映射.I/O 未保護(hù)是指I/O 操作(例如DMA 訪問(wèn)) 會(huì)使用Hypervisor 與虛擬機(jī)共享的內(nèi)存, 惡意Hypervisor 可以更改I/O 數(shù)據(jù).最后, ASID 用于索引虛擬機(jī)密鑰, 并且控制緩存行(cache line) 和TLB 條目(translation lookaside buffer entries) 的訪問(wèn), ASID 濫用攻擊可以修改虛擬機(jī)的ASID.文獻(xiàn)[100] 對(duì)公開(kāi)已知的SEV 漏洞有詳細(xì)總結(jié).需要說(shuō)明的是, 第三代SEV-SNP 已經(jīng)修復(fù)了VMCB 未加密以及完整性保護(hù)缺失等問(wèn)題, 相應(yīng)的攻擊不再有效.

    2017 年, AMD 發(fā)布了第二代版本SEV-ES[101]技術(shù)文檔.相比于初代SEV, SEV-ES 最主要改進(jìn)是將虛擬機(jī)控制塊VMCB 的敏感部分加密存儲(chǔ)到VMSA (virtual machine saving area), 用于與Hypervisor 通信的部分依舊保持明文.SEV-ES 使得Hypervisor 操控虛擬機(jī)控制流的能力受到限制, 但是完整性保護(hù)缺失問(wèn)題仍未修復(fù).2018 年, Fidelius[102]針對(duì)初代SEV 和第二代SEV-ES 存在的安全問(wèn)題, 使用軟件方式實(shí)施SEV 擴(kuò)展, 抵抗來(lái)自Hypervisor 的威脅.Fidelius 的技術(shù)思路與3.2 節(jié)討論的方案類似,使用代碼更小的受信任組件限制不可信Hypervisor 訪問(wèn)虛擬機(jī)敏感數(shù)據(jù)的能力, 包括限制Hypervisor 的頁(yè)表管理、隱藏VMCB 的敏感數(shù)據(jù)、禁止Hypervisor 直接訪問(wèn)ASID 以及I/O 數(shù)據(jù)加密等.

    2020 年, AMD 發(fā)布了第三代SEV-SNP[7], 在第二代SEV-ES 的基礎(chǔ)上進(jìn)一步解決完整性保護(hù)缺失問(wèn)題.SEV-SNP 引入Reverse Map Table (RMP) 和Page Validation.RMP 保證只有內(nèi)存頁(yè)的擁有者才可以向其中寫(xiě)入數(shù)據(jù), 并且保證同一時(shí)刻同一個(gè)物理頁(yè)只能被映射到一個(gè)虛擬機(jī); RMP 可以有效抵抗內(nèi)存數(shù)據(jù)重放、內(nèi)存數(shù)據(jù)損壞和內(nèi)存混疊(memory aliasing).Page Validation 保證同一時(shí)刻同一個(gè)虛擬機(jī)內(nèi)存頁(yè)只能被映射到一個(gè)物理內(nèi)存頁(yè), 以此抵抗內(nèi)存重映射.

    SEV-SNP 仍會(huì)受到密文側(cè)信道攻擊[100,103]以及電壓故障攻擊[104]的威脅.密文側(cè)信道攻擊可以恢復(fù)出部分SEV 保護(hù)的明文數(shù)據(jù).例如, 文獻(xiàn)[100,103] 表明攻擊者可以獲取OpenSSL 的ECDSA 密鑰,AMD 也發(fā)布了密文側(cè)信道攻擊的防護(hù)措施[105,106].電壓故障攻擊會(huì)帶來(lái)更加嚴(yán)重的后果, 攻擊者可以(使用調(diào)試API) 解密虛擬機(jī)的加密內(nèi)存, 獲取用于遠(yuǎn)程證明的密鑰; 文獻(xiàn)[104] 給出了建議的防御方案.

    4.2.3 SEV 功能擴(kuò)展及相關(guān)應(yīng)用

    不同的TEE 提供了不同的安全抽象和安全特性, 并且與特定的硬件平臺(tái)綁定.vSGX[107]以軟件方式在AMD SEV 平臺(tái)上模擬SGX 功能,從硬件層面解耦TEE,使得用戶可以依據(jù)自己的需求更自由地選擇可信執(zhí)行環(huán)境.vSGX 的核心思想是使用SEV 保護(hù)的虛擬機(jī)模擬出運(yùn)行SGX 應(yīng)用程序的可信執(zhí)行環(huán)境.受保護(hù)的虛擬機(jī)被稱為Enclave VM (EVM), 運(yùn)行不可信應(yīng)用程序的虛擬機(jī)被稱為App VM (AVM).EVM 提供vSGX 服務(wù), AVM 只需要安裝vSGX 內(nèi)核就可以調(diào)用SGX 指令.

    相比于vSGX, HyperEnclave[108]更徹底地使用軟件方式構(gòu)建TEE (vSGX 仍然需要SEV 硬件支持), 構(gòu)建出的執(zhí)行環(huán)境也被稱為Enclave.HyperEnclave 使用虛擬化擴(kuò)展保證Enclave 與外部隔離(適用于當(dāng)前的主流CPU 架構(gòu), 例如x86 架構(gòu)的AMD 和Intel CPU, 也可以擴(kuò)展至ARM 架構(gòu)).并且,HyperEnclave 基于TPM 芯片構(gòu)建可信根, 使得可信根與CPU 廠商解綁.可選的內(nèi)存加密依賴于平臺(tái)硬件或是已有的軟件方案; 例如, 在AMD 平臺(tái)上可以使用SEV 的SME 功能為HyperEnclave 提供內(nèi)存加密.

    SEV 已經(jīng)在工業(yè)界得到廣泛應(yīng)用.谷歌基于SEV 構(gòu)建機(jī)密虛擬機(jī)[109], 使用一系列的隔離和沙箱技術(shù)作為云計(jì)算基礎(chǔ)架構(gòu)的一部分, 并通過(guò)機(jī)密虛擬機(jī)的內(nèi)存加密功能提高安全性.微軟Azure 機(jī)密計(jì)算平臺(tái)[57]也提供了受SEV 保護(hù)的虛擬機(jī), 保護(hù)租戶數(shù)據(jù), 并支持已有系統(tǒng)的直接遷移.

    4.3 ARM TrustZone 密碼技術(shù)應(yīng)用

    4.3.1 TrustZone 基礎(chǔ)功能

    TrustZone[110]是ARM 處理器的硬件擴(kuò)展, 它創(chuàng)建了兩個(gè)相互隔離的、物理機(jī)抽象的運(yùn)行環(huán)境, 分別稱為普通世界(normal world) 和安全世界(secure world), 普通世界無(wú)法訪問(wèn)安全世界的資源, 包括內(nèi)存區(qū)域和外設(shè)中斷.在初始設(shè)計(jì)中, 安全世界和普通世界均有三個(gè)特權(quán)級(jí).普通世界的特權(quán)級(jí)包括EL0、EL1 和EL2, 用戶態(tài)應(yīng)用程序運(yùn)行在EL0 層, 操作系統(tǒng)運(yùn)行在EL1 層, Hypervisor 運(yùn)行在EL2 層.安全世界的特權(quán)級(jí)分為s-EL0、s-EL1 和s-EL3, 可信應(yīng)用程序(trusted application, TA) 運(yùn)行在s-EL0 層,TEE 操作系統(tǒng)內(nèi)核運(yùn)行在s-EL1 層.安全監(jiān)視器Secure Monitor 運(yùn)行在s-EL3 層, 負(fù)責(zé)安全世界與普通世界的切換.在ARMv8.4 架構(gòu)之后, 安全世界新增s-EL2 特權(quán)級(jí), 用以支持安全世界的虛擬化.

    4.3.2 TrustZone 安全世界虛擬化功能擴(kuò)展

    在ARMv8.4 支持s-EL2 之前, 實(shí)現(xiàn)安全世界的虛擬化系統(tǒng)[111–113]面臨技術(shù)挑戰(zhàn).vTZ[111]將多個(gè)虛擬機(jī)運(yùn)行在宿主機(jī)的普通世界中, 每一個(gè)虛擬機(jī)包括一個(gè)虛擬的普通世界和一個(gè)虛擬的安全世界.vTZ 使用宿主機(jī)安全世界的Secured Memory Mapping 對(duì)多個(gè)虛擬機(jī)的安全世界實(shí)施隔離.宿主機(jī)的安全世界運(yùn)行Secured World Switching (SWS): 當(dāng)虛擬機(jī)有世界切換時(shí), SWS 攔截和檢查CPU 狀態(tài).TEEv[112]在安全世界中實(shí)現(xiàn)了輕量級(jí)的Hypervisor, 稱為T(mén)EE-visor, 以管理安全世界中虛擬出的多個(gè)隔離TEE.TEE-visor 與TEE 操作系統(tǒng)內(nèi)核運(yùn)行在相同特權(quán)級(jí).

    在s-EL2 之后, 可以利用s-EL2 特權(quán)級(jí)實(shí)現(xiàn)依賴于硬件特性的安全世界Hypervisor[114,115].Twin-Visor[114]實(shí)現(xiàn)了雙Hypervisor 系統(tǒng), 解耦了安全世界虛擬機(jī)的資源管理和保護(hù)機(jī)制: 普通世界的Hypervisor (稱為N-visor) 負(fù)責(zé)資源管理, 安全世界的s-EL2 特權(quán)級(jí)小型Hypervisor (稱為S-visor) 監(jiān)控N-visor 的行為, 保護(hù)運(yùn)行在安全世界的虛擬機(jī).

    4.3.3 基于軟件內(nèi)存加密的TrustZone 安全特性增強(qiáng)

    TrustZone 提供隔離功能, 主要防范來(lái)自普通世界的特權(quán)攻擊, 缺少內(nèi)存加密功能, 也沒(méi)有專門(mén)考慮物理攻擊.有公開(kāi)研究工作實(shí)現(xiàn)了軟件內(nèi)存加密, 將TrustZone 安全世界的密碼計(jì)算限定在不同的SoC 環(huán)境, 以防范物理攻擊和軟件攻擊, 包括限定在CPU 寄存器[116–119]、CPU Cache[120–123]以及片內(nèi)內(nèi)存(on-chip memory, OCM)[18,19,124–127]等.安全世界的內(nèi)存敏感數(shù)據(jù)處于SoC 執(zhí)行環(huán)境時(shí)以明文形式工作, 脫離SoC 執(zhí)行環(huán)境時(shí)被加密.

    Pager 是OP-TEE[127]內(nèi)核的安全內(nèi)存分頁(yè)系統(tǒng), 負(fù)責(zé)OP-TEE 內(nèi)核其他組件和TA 的內(nèi)存管理.它將OCM 設(shè)置為OP-TEE 系統(tǒng)的工作內(nèi)存, 將DRAM 用作備份存儲(chǔ)區(qū).Pager 在OCM 上運(yùn)行,OP-TEE 內(nèi)核的其他組件和TA 的內(nèi)存數(shù)據(jù)被加密后存儲(chǔ)在DRAM 中.Pager 管理OCM 和DRAM之間的交換: 當(dāng)需要使用存儲(chǔ)在DRAM 中的數(shù)據(jù)時(shí), Pager 解密相應(yīng)內(nèi)存頁(yè)并執(zhí)行完整性檢查, 然后加載到OCM 中; 當(dāng)OCM 中的內(nèi)存頁(yè)交換到DRAM 時(shí), Pager 對(duì)其加密.CaSE[123]使用CPU Cache 構(gòu)造SoC 執(zhí)行環(huán)境: 被保護(hù)程序的代碼、數(shù)據(jù)、堆棧都分配到片內(nèi)Cache 中, 在片外內(nèi)存中則以密文形式出現(xiàn);當(dāng)應(yīng)用程序運(yùn)行時(shí), CaSE 將加密的應(yīng)用程序加載到L2 Cache 中, 在Cache 內(nèi)部驗(yàn)證和解密, 然后運(yùn)行.

    蘋(píng)果也在SoC 上集成了專用安全子系統(tǒng), 被稱為安全飛地(secure enclave)[128].但是, 蘋(píng)果的安全飛地與主處理器獨(dú)立.安全飛地提供了內(nèi)存保護(hù)引擎, 對(duì)于寫(xiě)入到安全飛地專用內(nèi)存的數(shù)據(jù), 內(nèi)存保護(hù)引擎進(jìn)行加密和認(rèn)證.支持安全飛地的蘋(píng)果設(shè)備還配有AES 引擎, 用以實(shí)現(xiàn)高速的文件加密.

    4.3.4 基于TrustZone 實(shí)現(xiàn)安全密碼系統(tǒng)

    TrustOTP[129]在TrustZone 安全世界中實(shí)現(xiàn)了一次性口令OTP (one time password) 功能.TrustOTP 將OTP 和初始密鑰的輸入輸出訪問(wèn)都限定在安全世界, 從而與運(yùn)行在普通世界的Rich OS 隔離.TrustOTP 確保在Rich OS 出錯(cuò)、崩潰的情況下, OTP 仍然可用.TrustOTP 的代碼鏡像存儲(chǔ)在只能從安全世界訪問(wèn)的非易失性存儲(chǔ)器中, Rich OS 無(wú)法修改或刪除.每當(dāng)需要OTP 時(shí), 用戶可以觸發(fā)硬件不可屏蔽中斷將系統(tǒng)切換到安全世界, 然后輸出OTP.

    三星Galaxy S8、S9、S10、S20 和S21 設(shè)備在TrustZone 安全世界中實(shí)現(xiàn)了密鑰管理和密碼計(jì)算,通過(guò)硬件抽象層提供密碼服務(wù), 并向普通世界的應(yīng)用程序提供密鑰生成、密碼計(jì)算(加密和簽名等)、密鑰存儲(chǔ)等功能接口.當(dāng)普通世界的應(yīng)用程序請(qǐng)求生成密鑰時(shí), 運(yùn)行在TrustZone 安全世界中的可信應(yīng)用程序Keymaster TA 生成密鑰并使用硬件AES 密鑰進(jìn)行封裝, 然后將封裝后的密鑰返回給應(yīng)用程序.在設(shè)計(jì)上, 應(yīng)用程序只能保存封裝后的密鑰, 無(wú)法獲取密鑰明文; 但是, 上述系統(tǒng)實(shí)現(xiàn)存在缺陷, 有降級(jí)攻擊和針對(duì)AES-GCM 工作模式的IV 重用攻擊[130].

    4.4 其他可信執(zhí)行環(huán)境

    以下簡(jiǎn)要介紹其他可信執(zhí)行環(huán)境TEE, 基于密碼技術(shù)的功能在其中發(fā)揮了重要作用.

    4.4.1 RISC-V KeyStone

    RISC-V 是開(kāi)源的CPU 指令集架構(gòu), 定義了不同的特權(quán)模式: 運(yùn)行用戶進(jìn)程的User-mode、運(yùn)行OS 內(nèi)核的Supervisor-mode 和直接訪問(wèn)物理資源的Machine-mode.目前, 已有多個(gè)RISC-V 架構(gòu)的TEE 方案, 例如KeyStone[131]、Sanctum[132]和TIMBER-V[133]等.KeyStone 在Machine 層設(shè)計(jì)了Secure Monitor.Secure Monitor 使用物理內(nèi)存保護(hù)(physical memory protection, PMP),構(gòu)建了隔離的運(yùn)行環(huán)境Enclave.每個(gè)Enclave 包括運(yùn)行在User-mode 層的Enclave 應(yīng)用程序(稱為eapp) 和運(yùn)行在Supervisor-mode 層的運(yùn)行時(shí)RT.RT 提供系統(tǒng)調(diào)用接口、管理Enclave 的虛擬內(nèi)存等, 為eapp 提供所需服務(wù).KeyStone 可以支持多種插件, 包括內(nèi)存加密[134]和完整性保護(hù)[89]插件, 用來(lái)保護(hù)離開(kāi)Enclave的內(nèi)存頁(yè).KeyStone 也實(shí)現(xiàn)了多種TEE 安全原語(yǔ), 包括可信啟動(dòng)、隨機(jī)數(shù)、可信計(jì)時(shí)器、遠(yuǎn)程證明、單調(diào)計(jì)數(shù)器和數(shù)據(jù)密封存儲(chǔ)等.

    4.4.2 Intel TDX

    在SGX 之外,Intel 近年推出了新的TEE,稱為信任域擴(kuò)展TDX(trust domain extensions)[135].與AMD SEV 類似, TDX 提供了安全虛擬機(jī)抽象, 保留Hypervisor 的管理能力, 但是限制Hypervisor 訪問(wèn)虛擬機(jī)敏感數(shù)據(jù)的能力.Intel TDX 可以部署被稱為T(mén)D (trust domain) 的、相互隔離的虛擬機(jī).TDX為T(mén)D 虛擬機(jī)提供了內(nèi)存加密和完整性保護(hù)、CPU 狀態(tài)加密和完整性保護(hù)、遠(yuǎn)程證明、地址轉(zhuǎn)換完整性保護(hù)、安全的中斷和異常傳遞等特性.TD 虛擬機(jī)與Hypervisor 以及其他非TD 軟件隔離, 免受軟件攻擊以及物理攻擊的威脅.

    Intel TDX 引入稱為SEAM (secure-arbitration mode) 的CPU 模式, SEAM 外部的軟件無(wú)法訪問(wèn)其內(nèi)部數(shù)據(jù), TDX Module 運(yùn)行在SEAMRR (SEAM-range register) 標(biāo)識(shí)的保留內(nèi)存空間中.TDX Module 相當(dāng)于不受Hypervisor 控制的可信中介, 幫助管理TD 虛擬機(jī), Hypervisor 通過(guò)SEAMCALL調(diào)用TDX Module.TD 的內(nèi)存加密建立在MKTME (multi-key total memory encryption) 基礎(chǔ)上.在設(shè)備啟動(dòng)時(shí), CPU 生成128-bit 臨時(shí)密鑰, 對(duì)物理內(nèi)存進(jìn)行AES-XTS 透明加密.MKTME 給不同的TD虛擬機(jī)分配不同的密鑰, 軟件或處理器接口無(wú)法訪問(wèn)密鑰.每當(dāng)TD 虛擬機(jī)創(chuàng)建時(shí), Hypervisor 會(huì)劃分出獨(dú)立的一組內(nèi)存頁(yè)用于虛擬機(jī)控制結(jié)構(gòu)、TD 的狀態(tài)保存區(qū)域等.TDX Module 使用給TD 分配的密鑰為相應(yīng)的CPU 狀態(tài)信息提供機(jī)密性和完整性保護(hù).

    4.4.3 ARM CCA

    ARM 推出的安全虛擬機(jī)抽象 TEE 稱為機(jī)密計(jì)算架構(gòu) CCA (confidential compute architecture)[136].CCA 同樣保留原有Hypervisor 的管理能力, 但是限制Hypervisor 訪問(wèn)虛擬機(jī)敏感數(shù)據(jù)的能力.CCA 可以創(chuàng)建受保護(hù)的虛擬機(jī)運(yùn)行空間, 被稱為Realm, 引入了相應(yīng)的CPU 硬件擴(kuò)展RME(realm management extension) 和固件RMM (realm management monitor).RME 提供Realm 虛擬機(jī)運(yùn)行所需的隔離環(huán)境, RMM 與Hypervisor 通信, 管理Hypervisor 的Realm 創(chuàng)建和運(yùn)行請(qǐng)求.除了虛擬機(jī)隔離, CCA 也提供了遠(yuǎn)程證明機(jī)制.

    在ARMv8 架構(gòu)中, TrustZone 區(qū)分了普通世界和安全世界.ARMv9 進(jìn)一步引入Realm 世界和Root 世界.Realm 世界與安全世界類似, 也有三個(gè)特權(quán)級(jí), 分別是R-EL0、R-EL1 和R-EL2.Realm 虛擬機(jī)運(yùn)行在R-EL0 和R-EL1 層, RMM 運(yùn)行在R-EL2 層.另有Monitor 運(yùn)行在Root 世界的EL3 層,保證不同世界的隔離, 并在必要時(shí)提供不同世界之間的通信.

    4.4.4 國(guó)產(chǎn)CPU 的TEE 方案

    海光CSV[137](China secure virtualization) 是x86 架構(gòu)國(guó)產(chǎn)Hygon CPU 的硬件TEE 方案, 提供了安全虛擬機(jī)抽象.CSV1 使用SM4 算法加密虛擬機(jī)內(nèi)存以實(shí)現(xiàn)不同虛擬機(jī)之間、虛擬機(jī)和Hypervisor之間的隔離; 不同虛擬機(jī)使用不同密鑰.CSV2 增加了虛擬機(jī)狀態(tài)加密, CSV3 增加了內(nèi)存完整性保護(hù).除了內(nèi)存機(jī)密性和完整性保護(hù), 海光CSV 也提供了可信啟動(dòng)、遠(yuǎn)程證明等功能.

    鯤鵬TrustZone[138]是ARM 架構(gòu)國(guó)產(chǎn)鯤鵬CPU 的TrustZone 技術(shù).鯤鵬TrustZone 提供了物理機(jī)抽象, 劃分出兩個(gè)獨(dú)立的運(yùn)行環(huán)境, 分別為安全世界和普通世界, 實(shí)現(xiàn)了不同世界中的硬件和資源的隔離.此外, 鯤鵬TrustZone 還實(shí)現(xiàn)了遠(yuǎn)程證明功能, 這是ARMv8 TrustZone 不具備的.

    4.4.5 異構(gòu)計(jì)算單元TEE

    為滿足日益增長(zhǎng)的多樣化計(jì)算需求, 許多計(jì)算機(jī)系統(tǒng)配置了異構(gòu)計(jì)算單元, 例如GPU、NPU 等加速器.但是, 大多數(shù)異構(gòu)計(jì)算單元在設(shè)計(jì)時(shí)沒(méi)有考慮安全性, 使得攻擊者可以獲取其內(nèi)部的敏感數(shù)據(jù).一些研究工作針對(duì)異構(gòu)計(jì)算單元構(gòu)建TEE 方案.針對(duì)服務(wù)器GPU, Graviton[139]通過(guò)改進(jìn)GPU 上的指令處理器來(lái)保護(hù)GPU 內(nèi)存數(shù)據(jù).HIX[140]使用SGX Enclave 保護(hù)GPU 驅(qū)動(dòng)程序及計(jì)算.工業(yè)界也推出了H100 GPU[141], 內(nèi)置安全特性, 同時(shí)兼顧GPU 計(jì)算的機(jī)密性和性能.針對(duì)終端設(shè)備的GPU,StrongBox[142]利用ARM TrustZone 解決了共享內(nèi)存GPU 面臨的安全問(wèn)題.此外, 也有研究工作針對(duì)通用加速器[143]、DNN 加速器[144]和NPU[145]構(gòu)建TEE 方案, 更詳細(xì)的內(nèi)容可參考文獻(xiàn)[146].

    5 總結(jié)與展望

    在傳統(tǒng)應(yīng)用場(chǎng)景上, 密碼技術(shù)主要是用于傳輸安全和存儲(chǔ)安全, 而虛擬化是典型的計(jì)算機(jī)系統(tǒng)技術(shù)方向, 虛擬化與密碼技術(shù)應(yīng)用的結(jié)合研究是為了實(shí)現(xiàn)普適通用的計(jì)算安全(既包括應(yīng)用程序的計(jì)算, 也包括密碼系統(tǒng)的計(jì)算).前文總結(jié)了二者結(jié)合研究的多個(gè)方面, 本文也展望未來(lái)可能的相關(guān)研究方向.首先,CPU 硬件TEE 的攻防研究.一方面, 各種功能復(fù)雜全面的TEE 特性可能存在安全漏洞, 會(huì)導(dǎo)致TEE特性的密碼保護(hù)功能失效, 甚至泄露密鑰; 運(yùn)行在TEE 環(huán)境的程序也有可能因?yàn)閭?cè)信道攻擊或者硬件漏洞而泄露重要敏感數(shù)據(jù).相應(yīng)的防御方案更是值得關(guān)注的研究重點(diǎn).隨著Intel TDX、ARM CCA 和RISC-V KeyStone 等推出和應(yīng)用, 這一方面的研究值得持續(xù)關(guān)注.另一方面, 由于不同廠商、不同體系架構(gòu)的TEE 特性不一致, 結(jié)合軟件解決方案、“補(bǔ)齊” 安全特性的研究, 有利于TEE 技術(shù)的推廣.

    其次, 將更多的密碼技術(shù)應(yīng)用到虛擬的隔離運(yùn)行環(huán)境, 不論是以軟件解決方案還是CPU 硬件特性的形式, 都是非常有意義的嘗試.很多時(shí)候, 是先有軟件解決方案、仿真形式的研究, 完成初步探索, 然后是CPU 廠商的硬件實(shí)現(xiàn).對(duì)于計(jì)算機(jī)系統(tǒng)資源管控的各種關(guān)鍵數(shù)據(jù)和配置, 以及存儲(chǔ)外設(shè)和通信外設(shè)的相關(guān)數(shù)據(jù), 未來(lái)應(yīng)該實(shí)施更全面的機(jī)密性和完整性保護(hù), 并且考慮動(dòng)態(tài)性和更細(xì)粒度的安全保護(hù).

    再次, 隨著計(jì)算機(jī)系統(tǒng)技術(shù)的發(fā)展, 出現(xiàn)了更多新型的虛擬隔離運(yùn)行環(huán)境, 例如Docker 容器、瀏覽器的網(wǎng)站隔離、移動(dòng)終端超級(jí)APP 運(yùn)行的Mini-APP 等.各種異構(gòu)計(jì)算單元, GPU、NPU 等, 也需要虛擬的隔離運(yùn)行環(huán)境.這些新型虛擬隔離運(yùn)行環(huán)境的安全需求有所差異, 在其中實(shí)施輕量級(jí)的、基于密碼技術(shù)的安全方案, 有助于提升安全性.性能、兼容性和安全性的平衡, 將是其中的技術(shù)難點(diǎn).

    最后, 我們也應(yīng)該更多借助虛擬運(yùn)行環(huán)境的特性, 解決密碼技術(shù)應(yīng)用的相關(guān)問(wèn)題.除了隔離特性和管控特性, 其他特性(例如, 遠(yuǎn)程證明、可信啟動(dòng)特性、外設(shè)數(shù)據(jù)密封、可信UI 界面等) 能夠?yàn)槠胀☉?yīng)用程序帶來(lái)有意義的安全價(jià)值, 也應(yīng)該能夠?yàn)槊艽a技術(shù)的現(xiàn)實(shí)應(yīng)用解決問(wèn)題.

    猜你喜歡
    應(yīng)用程序內(nèi)存虛擬化
    刪除Win10中自帶的應(yīng)用程序
    “春夏秋冬”的內(nèi)存
    基于OpenStack虛擬化網(wǎng)絡(luò)管理平臺(tái)的設(shè)計(jì)與實(shí)現(xiàn)
    電子制作(2019年10期)2019-06-17 11:45:10
    對(duì)基于Docker的虛擬化技術(shù)的幾點(diǎn)探討
    電子制作(2018年14期)2018-08-21 01:38:20
    虛擬化技術(shù)在計(jì)算機(jī)技術(shù)創(chuàng)造中的應(yīng)用
    存儲(chǔ)虛擬化還有優(yōu)勢(shì)嗎?
    基于內(nèi)存的地理信息訪問(wèn)技術(shù)
    關(guān)閉應(yīng)用程序更新提醒
    電腦迷(2012年15期)2012-04-29 17:09:47
    三星電子將開(kāi)設(shè)應(yīng)用程序下載商店
    微軟軟件商店開(kāi)始接受應(yīng)用程序
    国产黄片美女视频| 精品欧美国产一区二区三| 男女视频在线观看网站免费| 久久久久久大精品| 久久亚洲精品不卡| 日本-黄色视频高清免费观看| 一级爰片在线观看| 狂野欧美白嫩少妇大欣赏| 五月玫瑰六月丁香| 午夜福利在线在线| 日本熟妇午夜| 久久精品国产鲁丝片午夜精品| 精品欧美国产一区二区三| 淫秽高清视频在线观看| 简卡轻食公司| 欧美成人一区二区免费高清观看| 99久久无色码亚洲精品果冻| 国内精品宾馆在线| 天美传媒精品一区二区| 国产精品av视频在线免费观看| 日本黄色视频三级网站网址| 亚洲欧美成人精品一区二区| 亚洲精品乱码久久久v下载方式| 日韩欧美精品免费久久| 国产成人福利小说| 黄色一级大片看看| 国产av一区在线观看免费| 精品久久久久久久末码| 久久久久久国产a免费观看| 午夜福利在线在线| 国产高清不卡午夜福利| 美女被艹到高潮喷水动态| 久久草成人影院| 国产亚洲av嫩草精品影院| 中文字幕熟女人妻在线| 热99在线观看视频| av.在线天堂| av在线亚洲专区| 国产日韩欧美在线精品| 国产v大片淫在线免费观看| 丰满少妇做爰视频| 成人特级av手机在线观看| 久久精品久久久久久噜噜老黄 | 99久久中文字幕三级久久日本| 男女啪啪激烈高潮av片| 99久久九九国产精品国产免费| 黄色欧美视频在线观看| 久久久久性生活片| 一区二区三区免费毛片| 久久久久久大精品| www.色视频.com| 国产av在哪里看| 欧美日韩综合久久久久久| 国产精品不卡视频一区二区| 高清在线视频一区二区三区 | av线在线观看网站| 免费黄色在线免费观看| 美女内射精品一级片tv| 国产精品爽爽va在线观看网站| 亚洲国产精品专区欧美| 日本五十路高清| 成人亚洲欧美一区二区av| 91精品一卡2卡3卡4卡| 十八禁国产超污无遮挡网站| 国产精品久久久久久久久免| 久99久视频精品免费| 卡戴珊不雅视频在线播放| 成人特级av手机在线观看| 九九久久精品国产亚洲av麻豆| 亚洲精品亚洲一区二区| 国产高清不卡午夜福利| 久久久久免费精品人妻一区二区| 成人综合一区亚洲| 国产91av在线免费观看| 免费黄色在线免费观看| 在现免费观看毛片| 久久韩国三级中文字幕| 美女xxoo啪啪120秒动态图| 亚洲熟妇中文字幕五十中出| 亚洲怡红院男人天堂| 少妇人妻一区二区三区视频| 国产爱豆传媒在线观看| av福利片在线观看| 搞女人的毛片| 国产午夜精品一二区理论片| 真实男女啪啪啪动态图| 中文字幕亚洲精品专区| 免费在线观看成人毛片| 男人和女人高潮做爰伦理| 毛片一级片免费看久久久久| 欧美一区二区亚洲| 日本猛色少妇xxxxx猛交久久| 国产精品久久久久久精品电影| 国产真实伦视频高清在线观看| 中文字幕av成人在线电影| 成年女人看的毛片在线观看| 色综合色国产| 高清视频免费观看一区二区 | 国产麻豆成人av免费视频| 最后的刺客免费高清国语| 免费黄网站久久成人精品| 国产黄色小视频在线观看| 亚洲av成人av| www日本黄色视频网| 日韩av不卡免费在线播放| 中文亚洲av片在线观看爽| 国产成人一区二区在线| 国产探花在线观看一区二区| 成年av动漫网址| 桃色一区二区三区在线观看| 99久国产av精品国产电影| 男女视频在线观看网站免费| 欧美性感艳星| 国产亚洲午夜精品一区二区久久 | 国国产精品蜜臀av免费| 日日撸夜夜添| 亚洲欧美日韩东京热| 国产精品永久免费网站| 午夜福利视频1000在线观看| 69av精品久久久久久| 久久久久久大精品| 国产精品一区二区三区四区久久| 男女下面进入的视频免费午夜| 亚洲精品日韩在线中文字幕| 全区人妻精品视频| 伦理电影大哥的女人| 亚洲无线观看免费| 国产精品电影一区二区三区| 老师上课跳d突然被开到最大视频| 久热久热在线精品观看| 秋霞在线观看毛片| 麻豆成人午夜福利视频| 性色avwww在线观看| 亚洲aⅴ乱码一区二区在线播放| 最近视频中文字幕2019在线8| 亚洲国产欧美在线一区| 亚洲av成人精品一二三区| 深夜a级毛片| 国产精品国产三级专区第一集| 赤兔流量卡办理| 夜夜爽夜夜爽视频| 国产大屁股一区二区在线视频| 午夜精品国产一区二区电影 | 亚洲丝袜综合中文字幕| 真实男女啪啪啪动态图| 国产在线一区二区三区精 | 麻豆一二三区av精品| 欧美97在线视频| 国产精品麻豆人妻色哟哟久久 | 建设人人有责人人尽责人人享有的 | 亚洲精品456在线播放app| 韩国av在线不卡| 水蜜桃什么品种好| av女优亚洲男人天堂| 亚洲av免费高清在线观看| 国语对白做爰xxxⅹ性视频网站| 国产成人a∨麻豆精品| 久久精品久久精品一区二区三区| av在线天堂中文字幕| 欧美性猛交黑人性爽| 变态另类丝袜制服| 国产亚洲91精品色在线| 亚洲精品色激情综合| 亚洲av.av天堂| 99九九线精品视频在线观看视频| 在线免费十八禁| 欧美最新免费一区二区三区| 最近最新中文字幕免费大全7| 久久这里只有精品中国| 日韩制服骚丝袜av| 亚洲av.av天堂| 观看美女的网站| 免费黄色在线免费观看| 夜夜爽夜夜爽视频| 夜夜看夜夜爽夜夜摸| 久久久久久九九精品二区国产| 男人舔奶头视频| 亚洲乱码一区二区免费版| 日本色播在线视频| 国内揄拍国产精品人妻在线| 亚洲综合色惰| 97在线视频观看| 搡老妇女老女人老熟妇| 精品久久久久久久末码| 在现免费观看毛片| 非洲黑人性xxxx精品又粗又长| 女人被狂操c到高潮| 国产精品久久电影中文字幕| 级片在线观看| 啦啦啦观看免费观看视频高清| 国产伦精品一区二区三区四那| 91精品一卡2卡3卡4卡| 亚洲在久久综合| 波野结衣二区三区在线| 国产一级毛片七仙女欲春2| 天天躁夜夜躁狠狠久久av| 久久99精品国语久久久| 国产一区二区在线观看日韩| 免费av毛片视频| АⅤ资源中文在线天堂| 嫩草影院精品99| 女人十人毛片免费观看3o分钟| 午夜老司机福利剧场| 国产人妻一区二区三区在| 国产精品一二三区在线看| 晚上一个人看的免费电影| 九草在线视频观看| 在线观看66精品国产| 久久久久久久久久久免费av| 人体艺术视频欧美日本| 国产精品福利在线免费观看| 日韩欧美精品v在线| 精品午夜福利在线看| 中文乱码字字幕精品一区二区三区 | 欧美日韩国产亚洲二区| 人人妻人人澡人人爽人人夜夜 | 国产真实乱freesex| 久久精品国产亚洲网站| 国产精品久久久久久久久免| 国产乱人偷精品视频| 国产精品野战在线观看| 国产成人午夜福利电影在线观看| 免费人成在线观看视频色| 国产又色又爽无遮挡免| 伦理电影大哥的女人| 97超视频在线观看视频| 国产美女午夜福利| 欧美+日韩+精品| 国产一区二区在线观看日韩| 在现免费观看毛片| 亚洲无线观看免费| 国产一区二区三区av在线| 免费搜索国产男女视频| 又爽又黄a免费视频| 欧美最新免费一区二区三区| 国产精品,欧美在线| 美女cb高潮喷水在线观看| 久久久久久久亚洲中文字幕| 精品人妻偷拍中文字幕| АⅤ资源中文在线天堂| 最近的中文字幕免费完整| 啦啦啦观看免费观看视频高清| 亚洲欧美日韩东京热| 小蜜桃在线观看免费完整版高清| 男的添女的下面高潮视频| 亚洲精品色激情综合| 美女内射精品一级片tv| a级毛色黄片| 午夜精品国产一区二区电影 | 亚洲性久久影院| 欧美最新免费一区二区三区| 欧美三级亚洲精品| 91久久精品电影网| 看十八女毛片水多多多| 寂寞人妻少妇视频99o| 自拍偷自拍亚洲精品老妇| 精品国产三级普通话版| 亚洲内射少妇av| 岛国在线免费视频观看| 国产亚洲av嫩草精品影院| 国产视频内射| 亚洲天堂国产精品一区在线| 免费av观看视频| 三级男女做爰猛烈吃奶摸视频| 成人毛片a级毛片在线播放| 亚洲国产精品sss在线观看| 在线免费观看的www视频| 成人漫画全彩无遮挡| 性色avwww在线观看| 麻豆精品久久久久久蜜桃| 久久精品国产鲁丝片午夜精品| 天堂av国产一区二区熟女人妻| 国产成人freesex在线| 伦精品一区二区三区| 日本黄色视频三级网站网址| 日本五十路高清| 日日撸夜夜添| 欧美性感艳星| 午夜免费激情av| 欧美3d第一页| 国产日韩欧美在线精品| 国产探花极品一区二区| 夜夜看夜夜爽夜夜摸| 亚洲欧美精品专区久久| 久久久久久久久久黄片| 天美传媒精品一区二区| 国产精品熟女久久久久浪| 国产v大片淫在线免费观看| 欧美97在线视频| 亚洲色图av天堂| 日韩精品青青久久久久久| 色综合亚洲欧美另类图片| 最近视频中文字幕2019在线8| 性色avwww在线观看| 亚洲一区高清亚洲精品| 国产日韩欧美在线精品| 久久鲁丝午夜福利片| 精品人妻偷拍中文字幕| 久久久成人免费电影| av在线天堂中文字幕| 国产亚洲精品久久久com| 特大巨黑吊av在线直播| 日韩一区二区视频免费看| 国产高清不卡午夜福利| 自拍偷自拍亚洲精品老妇| 国产精品人妻久久久影院| 日日干狠狠操夜夜爽| 国产黄色视频一区二区在线观看 | 国产亚洲5aaaaa淫片| 午夜福利网站1000一区二区三区| 91aial.com中文字幕在线观看| 国产高清视频在线观看网站| 亚洲国产欧洲综合997久久,| 男女边吃奶边做爰视频| 久久久久久久午夜电影| 国产精品精品国产色婷婷| 一本一本综合久久| 高清毛片免费看| av在线亚洲专区| 边亲边吃奶的免费视频| 久久婷婷人人爽人人干人人爱| 一级二级三级毛片免费看| 国产精品嫩草影院av在线观看| 免费黄网站久久成人精品| 中文资源天堂在线| 两个人的视频大全免费| 亚洲国产精品专区欧美| 一夜夜www| 99热6这里只有精品| 精品久久久噜噜| av天堂中文字幕网| 精品人妻视频免费看| 淫秽高清视频在线观看| 国产精品熟女久久久久浪| av线在线观看网站| 久久精品国产亚洲av涩爱| 91午夜精品亚洲一区二区三区| 国产成人免费观看mmmm| 日日摸夜夜添夜夜爱| 色视频www国产| 亚洲人成网站在线观看播放| 色网站视频免费| 哪个播放器可以免费观看大片| a级毛片免费高清观看在线播放| 99久国产av精品国产电影| 色尼玛亚洲综合影院| 少妇熟女aⅴ在线视频| 蜜臀久久99精品久久宅男| 有码 亚洲区| 国产精品熟女久久久久浪| 国产在视频线在精品| 国产精品.久久久| 美女大奶头视频| av在线天堂中文字幕| 国产黄色视频一区二区在线观看 | 热99在线观看视频| 69人妻影院| 国产69精品久久久久777片| 小蜜桃在线观看免费完整版高清| 日本黄大片高清| 美女黄网站色视频| videossex国产| 国产久久久一区二区三区| 成人高潮视频无遮挡免费网站| 村上凉子中文字幕在线| 中文字幕熟女人妻在线| 欧美xxxx性猛交bbbb| 久久这里有精品视频免费| 国产女主播在线喷水免费视频网站 | 国产精品野战在线观看| 三级国产精品欧美在线观看| 丰满人妻一区二区三区视频av| 97热精品久久久久久| 亚洲久久久久久中文字幕| www.av在线官网国产| 日本午夜av视频| 国产黄色小视频在线观看| 免费看av在线观看网站| 国产伦理片在线播放av一区| 亚洲精品久久久久久婷婷小说 | 亚洲欧美清纯卡通| 亚洲天堂国产精品一区在线| 在线观看66精品国产| 色综合亚洲欧美另类图片| 亚洲高清免费不卡视频| 内地一区二区视频在线| 免费无遮挡裸体视频| 国内揄拍国产精品人妻在线| 精品久久久久久电影网 | 秋霞伦理黄片| 欧美精品一区二区大全| 床上黄色一级片| 日韩 亚洲 欧美在线| 精品久久久久久久人妻蜜臀av| 国产爱豆传媒在线观看| 国产精品日韩av在线免费观看| 亚洲欧美中文字幕日韩二区| 乱码一卡2卡4卡精品| 日本免费在线观看一区| 在线免费观看的www视频| 日本一二三区视频观看| 99热这里只有是精品50| 国产成人精品久久久久久| 亚洲熟妇中文字幕五十中出| 亚洲国产色片| 波多野结衣巨乳人妻| 亚洲精品久久久久久婷婷小说 | 男人的好看免费观看在线视频| 久热久热在线精品观看| 日韩视频在线欧美| 日韩人妻高清精品专区| 国产精品爽爽va在线观看网站| 久久99热6这里只有精品| 国产探花极品一区二区| 最新中文字幕久久久久| 亚洲国产最新在线播放| 成人美女网站在线观看视频| 欧美精品一区二区大全| 九九热线精品视视频播放| 麻豆av噜噜一区二区三区| 内射极品少妇av片p| 久久久久精品久久久久真实原创| 国产精品久久视频播放| 十八禁国产超污无遮挡网站| 永久免费av网站大全| 男女国产视频网站| 熟女人妻精品中文字幕| 国产伦理片在线播放av一区| 日韩中字成人| 插阴视频在线观看视频| 联通29元200g的流量卡| 蜜臀久久99精品久久宅男| 久久久久免费精品人妻一区二区| 自拍偷自拍亚洲精品老妇| 成人午夜高清在线视频| 精品人妻一区二区三区麻豆| 麻豆久久精品国产亚洲av| 成人特级av手机在线观看| 久久久国产成人精品二区| 亚洲av二区三区四区| 国产精品人妻久久久影院| 热99re8久久精品国产| 天天一区二区日本电影三级| 亚洲伊人久久精品综合 | 成人亚洲精品av一区二区| 国产熟女欧美一区二区| 亚洲国产欧美人成| 婷婷色av中文字幕| 老司机影院毛片| 变态另类丝袜制服| 女人被狂操c到高潮| 小说图片视频综合网站| 国产精品三级大全| 亚洲精品456在线播放app| 最近中文字幕2019免费版| 亚洲国产欧美人成| 蜜桃亚洲精品一区二区三区| 人体艺术视频欧美日本| 成年女人永久免费观看视频| 一级av片app| 亚洲中文字幕日韩| 亚洲精品国产成人久久av| 久久久久久久国产电影| 男女国产视频网站| 午夜精品国产一区二区电影 | 免费一级毛片在线播放高清视频| 91aial.com中文字幕在线观看| 一区二区三区免费毛片| 联通29元200g的流量卡| 久久国产乱子免费精品| 男插女下体视频免费在线播放| 人人妻人人看人人澡| 搡女人真爽免费视频火全软件| 中文乱码字字幕精品一区二区三区 | 97热精品久久久久久| 免费一级毛片在线播放高清视频| 日本色播在线视频| 一本一本综合久久| 国产精品99久久久久久久久| 亚洲国产精品专区欧美| 在线免费观看不下载黄p国产| 色综合色国产| 国产av不卡久久| 特大巨黑吊av在线直播| 三级国产精品欧美在线观看| 日韩成人av中文字幕在线观看| 国产综合懂色| 国产精品福利在线免费观看| 国产在视频线精品| 高清视频免费观看一区二区 | 最新中文字幕久久久久| 亚洲国产精品成人久久小说| www.av在线官网国产| 亚洲内射少妇av| 内地一区二区视频在线| 中文字幕av成人在线电影| 嫩草影院入口| 国产精品不卡视频一区二区| av免费在线看不卡| 亚洲一区高清亚洲精品| 国产午夜福利久久久久久| 嫩草影院新地址| 亚洲丝袜综合中文字幕| 日韩高清综合在线| 秋霞伦理黄片| 日韩制服骚丝袜av| 麻豆精品久久久久久蜜桃| 夜夜看夜夜爽夜夜摸| 精品免费久久久久久久清纯| 国产一区有黄有色的免费视频 | 久久这里有精品视频免费| 成人国产麻豆网| 免费在线观看成人毛片| 欧美日韩一区二区视频在线观看视频在线 | 国产精品一及| 超碰97精品在线观看| 永久免费av网站大全| 性插视频无遮挡在线免费观看| 欧美高清成人免费视频www| 我的女老师完整版在线观看| 国产单亲对白刺激| 欧美一区二区精品小视频在线| 毛片一级片免费看久久久久| 国产亚洲精品av在线| 国产精品一区二区三区四区久久| 亚洲av电影不卡..在线观看| 午夜日本视频在线| 亚洲婷婷狠狠爱综合网| 高清在线视频一区二区三区 | 亚洲怡红院男人天堂| 99热这里只有是精品在线观看| 内射极品少妇av片p| 国产不卡一卡二| 少妇熟女欧美另类| 国产探花极品一区二区| 搡女人真爽免费视频火全软件| 建设人人有责人人尽责人人享有的 | 一级毛片久久久久久久久女| 色5月婷婷丁香| 国产精品久久久久久精品电影| 亚洲天堂国产精品一区在线| 在线免费观看的www视频| 成人二区视频| 久久精品夜夜夜夜夜久久蜜豆| 特大巨黑吊av在线直播| 久久精品久久久久久噜噜老黄 | 国产视频内射| 国产一区二区三区av在线| 在线免费观看不下载黄p国产| 国产高潮美女av| 国产精品嫩草影院av在线观看| 插逼视频在线观看| 成人无遮挡网站| 久久久久久久久久久免费av| 亚洲欧美日韩卡通动漫| 伊人久久精品亚洲午夜| 在线观看美女被高潮喷水网站| 国产亚洲精品av在线| 噜噜噜噜噜久久久久久91| 波多野结衣巨乳人妻| 男女边吃奶边做爰视频| 国产欧美日韩精品一区二区| 天堂√8在线中文| 啦啦啦观看免费观看视频高清| 色吧在线观看| 久久精品国产亚洲av天美| 国产精品国产三级国产av玫瑰| 免费观看精品视频网站| 国产视频首页在线观看| 日韩国内少妇激情av| 青青草视频在线视频观看| 欧美97在线视频| 国产私拍福利视频在线观看| 女的被弄到高潮叫床怎么办| 只有这里有精品99| 免费黄色在线免费观看| 一个人看的www免费观看视频| 欧美xxxx黑人xx丫x性爽| 在线观看66精品国产| 能在线免费看毛片的网站| 人体艺术视频欧美日本| 最近手机中文字幕大全| 精品熟女少妇av免费看| 国产精品熟女久久久久浪| 人妻夜夜爽99麻豆av| 成人av在线播放网站| 日韩av不卡免费在线播放| 非洲黑人性xxxx精品又粗又长| 婷婷色麻豆天堂久久 | 午夜福利高清视频| 亚洲人与动物交配视频| 欧美又色又爽又黄视频| 国产精品一二三区在线看| 国产真实伦视频高清在线观看| 蜜桃亚洲精品一区二区三区| 国产一区二区在线观看日韩| 蜜桃久久精品国产亚洲av| 菩萨蛮人人尽说江南好唐韦庄 | 亚洲色图av天堂| 欧美xxxx黑人xx丫x性爽| 全区人妻精品视频| 国产老妇伦熟女老妇高清| 国产爱豆传媒在线观看| 久久人人爽人人片av| 久久久午夜欧美精品| 成人二区视频| 免费播放大片免费观看视频在线观看 | 人妻系列 视频| 亚洲国产精品sss在线观看| 中文字幕制服av| 美女国产视频在线观看| 亚洲在线观看片| 色综合站精品国产| 国产亚洲精品av在线| 狠狠狠狠99中文字幕|