Linux對(duì)機(jī)密計(jì)算的支持

原創(chuàng) Linux閱碼場(chǎng) 2023-07-01 09:43
Linux對(duì)機(jī)密計(jì)算的支持
Author: Wenhui Zhang, Yibo Zhou, Yuan Zhu, Guixiong Wei, Zhe Li, Chenyu Jiang, Sam Han,Yizheng Jiao, Hou Yu, Zefan Li, Wei Xu,
Reviewer: Jiaxin Shan, Wilson Wang, Baron, Jian Zhang
在大模型時(shí)代,模型即服務(wù)(Model as a Service)可以發(fā)揮重要的作用。模型即服務(wù)提供了一種將這些大模型部署在云端,并提供多個(gè)實(shí)體共同訓(xùn)練模型的合作模式。共同訓(xùn)練的多個(gè)實(shí)體需要共享數(shù)據(jù)并合作。?對(duì)于互不信任的實(shí)體共享數(shù)據(jù)進(jìn)行合作的場(chǎng)景(例如,基于法律原因數(shù)據(jù)必須留在特定司法管轄區(qū)內(nèi)),機(jī)密計(jì)算可以提供數(shù)據(jù)隱私和合規(guī)的保護(hù)。例如,通過在CPU TEE中運(yùn)行聚合分析運(yùn)算,可以降低對(duì)聚合分析機(jī)器的信任。類似地,通過在機(jī)密虛擬機(jī)TVM (trustedvirtual machine)中運(yùn)行每個(gè)參與者的本地訓(xùn)練,可以降低對(duì)參與者的信任,并確保計(jì)算的完整性和數(shù)據(jù)的私密性。通過確保每個(gè)參與者對(duì)其訓(xùn)練數(shù)據(jù)的隱私數(shù)據(jù)過程不泄漏的承諾,TEE可以提高透明度和問責(zé)制,并起到防范數(shù)據(jù)和模型污染以及數(shù)據(jù)偏見等攻擊的作用。基于TEE的機(jī)密計(jì)算正逐漸成為負(fù)責(zé)人人工智能的重要工具。Linux kernel對(duì)TEE的支持是TEE生態(tài)系統(tǒng)中的重要基石。本文講詳細(xì)解釋Linux是如何實(shí)現(xiàn)和支持機(jī)密計(jì)算的。
本文結(jié)構(gòu)如下,我們會(huì)先講解機(jī)密計(jì)算的背景,概述TDX依賴的硬件技術(shù),最后詳細(xì)描述TDXModule的軟件實(shí)現(xiàn)原理和TDX的hypervisor實(shí)現(xiàn)。
1. 機(jī)密計(jì)算的背景
機(jī)密計(jì)算 (Confidential Computing)是一種在計(jì)算機(jī)處理器的受保護(hù)區(qū)域中處理數(shù)據(jù)的方法,通常在遠(yuǎn)程邊緣云或公共云服務(wù)器內(nèi)部進(jìn)行,并且可以證明沒有任何人查看或修改了該數(shù)據(jù)。2015年的一篇論文 Verifiable Confidential Cloud Computing 使用新的安全防護(hù)擴(kuò)展(Intel SGX)在x86CPU上展示了如何運(yùn)算進(jìn)行時(shí)的安全。該論文將其方法稱為VC3,代表可驗(yàn)證的機(jī)密云計(jì)算(Confidential Cloud Computing),而這個(gè)名稱從此被廣泛采納。
? 機(jī)密計(jì)算建立在一種稱為"root of trust"的基礎(chǔ)上,該基礎(chǔ)基于每個(gè)處理器的獨(dú)特安全密鑰。處理器通過所謂的安全測(cè)量引導(dǎo)檢查是否具有正確的固件以開始運(yùn)行。該過程生成參考數(shù)據(jù),驗(yàn)證芯片處于已知的安全狀態(tài)以開始工作。處理器建立了一個(gè)安全隔離區(qū)域或可信執(zhí)行環(huán)境(TEE),與系統(tǒng)的其余部分隔離開來,在其中運(yùn)行用戶的應(yīng)用程序。該應(yīng)用程序?qū)⒓用軘?shù)據(jù)帶入TEE,解密數(shù)據(jù),運(yùn)行用戶的程序,加密結(jié)果并發(fā)送出去。在任何時(shí)候,機(jī)器所有者都不能查看用戶的代碼或數(shù)據(jù)。TEE向用戶證明沒有人能夠篡改數(shù)據(jù)或軟件。2018 年,Open Enclave SDK發(fā)布,OpenEnclave SDK (https://openenclave.io/sdk/)致力于支持一個(gè)API集,使開發(fā)人員可以一次構(gòu)建并在多個(gè)技術(shù)平臺(tái)上進(jìn)行部署,包括云端、混合環(huán)境和邊緣計(jì)算,并且適用于Linux和Windows操作系統(tǒng)。
谷歌,阿里,微軟,亞馬遜等多家云廠商都提供了機(jī)密計(jì)算的服務(wù)。比如Azure提供了一個(gè)豐富的機(jī)密計(jì)算平臺(tái),包括不同類型的機(jī)密計(jì)算硬件(如Intel SGX,AMD SEV-SNP),核心機(jī)密計(jì)算服務(wù)(如Azure Attestation和Azure Key Vault托管HSM),以及應(yīng)用級(jí)服務(wù),如Azure SQL AlwaysEncrypted、Azure機(jī)密分類賬本和Azure上的機(jī)密容器。Linux 支持多種CPU架構(gòu)上的機(jī)密計(jì)算, 比如Intel Icelake 和 Intel Skylake 上的SGX,AMD 上的SEV 和 SEV-SNP,Intel SPR上的TDX等。其中Intel Trust Domain Extensions (TDX)是第四代英特爾至強(qiáng)可擴(kuò)展處理器中支持機(jī)密計(jì)算的新架構(gòu)擴(kuò)展。TDX允許在安全仲裁模式(SEAM)中部署虛擬機(jī),具有加密的CPU狀態(tài)和內(nèi)存、完整性保護(hù)以及遠(yuǎn)程證明功能。TDX旨在為虛擬機(jī)強(qiáng)制執(zhí)行硬件輔助隔離,并將暴露給主機(jī)平臺(tái)的攻擊面最小化。TDX是使用多種技術(shù)組合構(gòu)建的,包括虛擬化技術(shù)(VT),多密鑰總體內(nèi)存加密(MKTME)和TDX模塊, 此外,TDX還依賴于軟件保護(hù)擴(kuò)展(SGX)和數(shù)據(jù)中心認(rèn)證原語(DCAP)進(jìn)行遠(yuǎn)程認(rèn)證。TDX實(shí)現(xiàn)了內(nèi)存機(jī)密性,CPU狀態(tài)機(jī)密性,執(zhí)行完整性以及部分的I/O保護(hù)。
● 內(nèi)存機(jī)密性:TD(Trust Domain)內(nèi)部存儲(chǔ)的數(shù)據(jù)以明文形式存儲(chǔ)在處理器封裝中。然而,當(dāng)數(shù)據(jù)從處理器轉(zhuǎn)移到主內(nèi)存時(shí),處理器使用僅對(duì)處理器可知的TD特定加密密鑰對(duì)其進(jìn)行加密。加密是以緩存行粒度進(jìn)行的,使外設(shè)設(shè)備無法讀取或篡改TD的私有內(nèi)存而不被檢測(cè)到。處理器能夠檢測(cè)到從主內(nèi)存加載數(shù)據(jù)時(shí)可能發(fā)生的任何篡改。
● CPU狀態(tài)機(jī)密性:TDX通過在安全域之間的所有上下文切換期間管理TD的虛擬CPU狀態(tài),保護(hù)免受同時(shí)執(zhí)行的進(jìn)程的影響。狀態(tài)存儲(chǔ)在TD的元數(shù)據(jù)中,使用TD的密鑰在主內(nèi)存中進(jìn)行保護(hù)。在上下文切換期間,TDX從內(nèi)部處理器寄存器和緩沖區(qū)(例如轉(zhuǎn)換后備緩存(TLB)條目或分支預(yù)測(cè)緩沖區(qū))中清除或隔離TD特定的狀態(tài),以保持TD信息的保護(hù)。
● 執(zhí)行完整性:TDX保護(hù)TD的執(zhí)行免受主機(jī)干擾,確保在中斷后TD在預(yù)期指令和預(yù)期狀態(tài)下恢復(fù)其計(jì)算。它能夠檢測(cè)虛擬CPU狀態(tài)的惡意更改,以及位于私有內(nèi)存中的指令的注入、修改或刪除。然而,TDX對(duì)于控制流完整性不提供額外的保證。TD的所有者有責(zé)任使用現(xiàn)有的基于編譯或硬件輔助的控制流完整性強(qiáng)制執(zhí)行技術(shù),如控制流強(qiáng)制執(zhí)行技術(shù)(CET)。
● I/O保護(hù):外設(shè)設(shè)備或加速器處于TD的信任邊界之外,不應(yīng)允許其訪問TD的私有內(nèi)存。為了支持虛擬化的I/O,TD可以選擇顯式共享內(nèi)存進(jìn)行數(shù)據(jù)傳輸。然而,TDX對(duì)于共享內(nèi)存區(qū)域中的數(shù)據(jù)不提供任何機(jī)密性和完整性保護(hù)。TD的所有者有責(zé)任實(shí)施適當(dāng)?shù)臋C(jī)制,例如使用像傳輸層安全(TLS)這樣的安全通信通道,以保護(hù)離開TD信任邊界的數(shù)據(jù)。TDX2.0計(jì)劃包括可信I/O虛擬化來解決這些問題。
2. TDX依賴的硬件技術(shù)
機(jī)密計(jì)算 Intel TDX確保TD(Trust Domain)的內(nèi)存和虛擬CPU狀態(tài)的機(jī)密性和完整性,確保它們不會(huì)被在同一臺(tái)機(jī)器上執(zhí)行的其他安全域訪問或篡改。這是通過以下幾種方式實(shí)現(xiàn)的:
(1)內(nèi)存訪問控制,
(2)運(yùn)行時(shí)內(nèi)存加密,以及
(3)由Intel簽名的TDX模塊處理安全敏感的TD管理操作。
如圖所示,TDX依賴于一系列現(xiàn)有的英特爾技術(shù),包括虛擬化技術(shù)(VT)、總體內(nèi)存加密(TME)/多密鑰總體內(nèi)存加密(MKTME)和軟件保護(hù)擴(kuò)展(SGX)。下面,我們將對(duì)這些基礎(chǔ)技術(shù)進(jìn)行概述,并解釋它們?cè)赥DX中的使用方式。
參考https://github.com/intel/tdx-tools/wiki/API-&-Specifications
2.1. 虛擬化技術(shù)(VT)
VT(Virtualization Technology)是TDX的基礎(chǔ)。TDX是基于虛擬機(jī)的可信執(zhí)行環(huán)境(TEE),它依賴于VT來實(shí)現(xiàn)TD之間的隔離。具有VT-x技術(shù)的處理器具有一組特殊的指令集,稱為虛擬機(jī)擴(kuò)展(VMX),它使虛擬化得以控制。具有VT-x技術(shù)的處理器可以運(yùn)行在兩種模式下:VMX根模式和VMX非根模式。虛擬機(jī)監(jiān)控程序(hypervisor)在VMX根模式下運(yùn)行,而虛擬機(jī)客戶機(jī)(guest VM)在VMX非根模式下運(yùn)行。VT-x定義了兩個(gè)新的轉(zhuǎn)換,即虛擬機(jī)進(jìn)入(VM entry)和虛擬機(jī)退出(VMexit),用于在客戶機(jī)和虛擬機(jī)監(jiān)控程序之間進(jìn)行切換。虛擬機(jī)控制結(jié)構(gòu)(VMCS)是一種存儲(chǔ)模式轉(zhuǎn)換的虛擬機(jī)和宿主狀態(tài)信息的數(shù)據(jù)結(jié)構(gòu)。它還控制哪些客戶機(jī)操作會(huì)導(dǎo)致虛擬機(jī)退出。IntelVT-x利用擴(kuò)展頁表(EPT)實(shí)現(xiàn)了第二級(jí)地址轉(zhuǎn)換(SLAT)。每個(gè)客戶機(jī)內(nèi)核維護(hù)自己的頁表,將客戶機(jī)虛擬地址(GVA)轉(zhuǎn)換為客戶機(jī)物理地址(GPA)。虛擬機(jī)監(jiān)控程序管理EPT,將GPA映射到主機(jī)物理地址(HPA)。Intel VT for Directed I/O(VT-d)使得可以對(duì)設(shè)備訪問進(jìn)行隔離和限制,以便管理設(shè)備的實(shí)體可以進(jìn)行控制。它包括I/O設(shè)備分配、DMA重映射、中斷重映射和中斷發(fā)送。借助VT-d的支持,虛擬機(jī)可以通過虛擬到物理地址轉(zhuǎn)換直接訪問物理I/O內(nèi)存,其中的IOMMU起到了幫助的作用。VT-d還提供了在虛擬機(jī)之間進(jìn)行I/O設(shè)備分配的靈活性,并消除了虛擬機(jī)監(jiān)控程序處理中斷和DMA傳輸的需求。在新的威脅模型中,不再信任虛擬化管理程序(hypervisor),因此管理TD的功能已經(jīng)封裝在TDX模塊中。TDX模塊和TD在新的SEAM VMX根/非根模式下運(yùn)行,并具有額外的保護(hù)措施。TDX仍然利用EPT(擴(kuò)展頁表)來管理GPA(Guest Physical Address)到HPA(Host PhysicalAddress)的轉(zhuǎn)換。但目前,對(duì)于每個(gè)TD,它維護(hù)了兩個(gè)EPT,一個(gè)用于私有(加密)內(nèi)存,另一個(gè)用于共享(未加密)內(nèi)存。
2.2. 總體內(nèi)存加密(TME)/多密鑰總體內(nèi)存加密(MKTME)
TME使用單個(gè)臨時(shí)密鑰對(duì)整個(gè)計(jì)算機(jī)的內(nèi)存進(jìn)行加密。密鑰在引導(dǎo)時(shí)通過硬件隨機(jī)數(shù)生成器和集成到系統(tǒng)芯片組中的安全措施的組合生成。內(nèi)存加密由每個(gè)內(nèi)存控制器上的加密引擎執(zhí)行。加密過程使用NIST標(biāo)準(zhǔn)的128位或256位密鑰的AES-XTS算法。MKTME(Multi-key Total MemoryEncryption)擴(kuò)展了TME,支持多個(gè)密鑰和以頁面粒度的內(nèi)存加密。對(duì)于每個(gè)內(nèi)存事務(wù),MKTME根據(jù)主機(jī)密鑰標(biāo)識(shí)符(HKID)選擇一個(gè)加密密鑰來加密內(nèi)存。HKID占據(jù)物理地址的頂部,可由BIOS在系統(tǒng)引導(dǎo)期間設(shè)置HKID的范圍。MKTME允許使用軟件提供的密鑰,并引入了一個(gè)新的指令PCONFIG,用于編程與特定HKID相關(guān)聯(lián)的密鑰和加密模式。這些?HKID,密鑰?對(duì)存儲(chǔ)在每個(gè)MKTME加密引擎中的密鑰加密表(KET)中。KET中的密鑰從不離開處理器,也不會(huì)暴露給軟件。在TDX中,MKTME模塊負(fù)責(zé)控制TD的內(nèi)存加密。HKID空間被劃分為私有HKID和共享HKID。有HKID僅用于加密TD的私有內(nèi)存。TDX模塊仍然利用MKTME來保護(hù)TD的內(nèi)存。
2.3. 軟件保護(hù)擴(kuò)展(SGX)
Intel SPR CPU是需要Intel SGX的輔助才能完成遠(yuǎn)程認(rèn)證的。Intel SGX在ISA中添加了18條新指令,使開發(fā)人員能夠?qū)ζ鋺?yīng)用程序進(jìn)行分區(qū),并保護(hù)選定的代碼和數(shù)據(jù)在安全區(qū)域(enclaves)中。SGX使用基于硬件的內(nèi)存加密來保護(hù)安全區(qū)域的內(nèi)容。SGX 創(chuàng)建了新的設(shè)備(/dev/sgx)支持一些ioctl()調(diào)用。CPU的訪問控制ioctl()禁止了外部的代碼對(duì)內(nèi)部區(qū)域的內(nèi)存進(jìn)行訪問, 并在離開最后一級(jí)緩存之前對(duì)其進(jìn)行加密。SGX固件使用PRMRR寄存器來保留一片被稱為Enclave PageCache(EPC)的物理內(nèi)存區(qū)域。處理器中有一個(gè)稱為Memory Encryption Engine(MEE)或者Total Memory Encryption (TME) 的硬件單元。安全區(qū)域頁面緩存(EPC)是一個(gè)特殊的內(nèi)存區(qū)域,包含安全區(qū)域的代碼和數(shù)據(jù),其中每個(gè)頁面使用內(nèi)存加密引擎(MEE)進(jìn)行加密。安全區(qū)域頁面緩存映射(EPCM)存儲(chǔ)頁面的元數(shù)據(jù),例如配置、權(quán)限和類型。在引導(dǎo)時(shí),密鑰被生成并用于解密CPU內(nèi)部的加密頁面的內(nèi)容。這些密鑰由MEE控制,并且從不暴露給外部。因此,只有這個(gè)特定的CPU才能解密內(nèi)存。CPU將這些密鑰內(nèi)部存儲(chǔ),并阻止任何軟件訪問它們。此外,非安全區(qū)域中的特權(quán)軟件不被允許讀取或?qū)懭隕PC或EPCM頁面。禁止的幾個(gè)API定義在了arch/x86/include/asm/sgx.h。使用SGX_IOCTL_ENCLAVE_CREATE 創(chuàng)建一個(gè)新的enclave,使用SGX_IOCTL_ENCLAVE_ADD_PAGE 向其中添加數(shù)據(jù)頁。然后使用SGX_IOCTL_ENCLAVE_INIT 準(zhǔn)備運(yùn)行。最后一個(gè)操作需要傳入一個(gè)包含enclave數(shù)據(jù)哈希和適當(dāng)簽名的初始化令牌。SGX沒有辦法在創(chuàng)建了enclave后刪除它。特權(quán)級(jí)(ring-0)的ENCLS函數(shù)用于構(gòu)建這些私有的代碼和數(shù)據(jù)區(qū)域。非特權(quán)級(jí)(ring-3)的ENCLU函數(shù)允許應(yīng)用程序進(jìn)入并在這些私有的代碼和數(shù)據(jù)區(qū)域內(nèi)執(zhí)行。Enclave只能通過一組固定的入口點(diǎn)進(jìn)入。每個(gè)入口點(diǎn)一次只能容納一個(gè)硬件線程。當(dāng)使用ENCLS函數(shù)從常規(guī)二進(jìn)制文件加載enclave時(shí),只有enclave內(nèi)部的線程可以訪問其內(nèi)存。支持SGX2的系統(tǒng)還支持對(duì)已初始化的enclave進(jìn)行更改和刪除頁面。TDX利用了SGX提供的遠(yuǎn)程認(rèn)證機(jī)制來進(jìn)行遠(yuǎn)程認(rèn)證。值得注意的是,Intel SPR CPU是需要Intel SGX的輔助才能完成遠(yuǎn)程認(rèn)證的。但是對(duì)于后續(xù)的Intel CPU,并不一定會(huì)用到SGX。Intel SPR CPU的下一代是 Intel EMR CPU,再往后一代是Intel DMR CPU。Intel EMR 的TDX 還是需要啟用SGX,并且每個(gè)socket需要預(yù)留128MB的內(nèi)存用于SGX PRM。從Intel DMR之后,TDX的認(rèn)證不依賴于SGX,而是基于S3M(Secure SoftwareStack Memory)。然而,TDX仍然需要為TDX模塊預(yù)留內(nèi)存,但這時(shí)每個(gè)插槽只需要32-48MB基于以上三種技術(shù),Intel TDX 建立了TDX Module。
3. TDX Module的軟件實(shí)現(xiàn)原理
下面,我們解釋TDX的系統(tǒng)架構(gòu)、內(nèi)存保護(hù)機(jī)制、I/O模型、認(rèn)證以及未來計(jì)劃服務(wù)于大模型和AI的功能。
3.1. 系統(tǒng)架構(gòu)
TDX模塊提供了兩組接口函數(shù):面向啟用了TDX的虛擬化監(jiān)視程序的主機(jī)端接口函數(shù)和面向TD的客戶端接口函數(shù)。TDX模塊加載和執(zhí)行在SEAM RANGE中,這是由UEFI/BIOS保留的系統(tǒng)內(nèi)存部分。P-SEAM Loader也位于SEAM RANGE中,用于安裝和更新TDX模塊。安全仲裁模式(SEAM)是VMX架構(gòu)的擴(kuò)展,提供了兩種新的執(zhí)行模式:SEAM VMX根模式和SEAM VMX非根模式。啟用了TDX的虛擬化監(jiān)視程序在傳統(tǒng)的VMX根模式下運(yùn)行,并使用SEAMCALL指令調(diào)用TDX模塊的主機(jī)端接口函數(shù)(函數(shù)名稱以TDH開頭)。執(zhí)行SEAMCALL指令時(shí),邏輯處理器從VMX根模式轉(zhuǎn)換為SEAM VMX根模式,并開始執(zhí)行TDX模塊內(nèi)的代碼。一旦TDX模塊完成任務(wù),通過執(zhí)行SEAMRET指令返回到虛擬化監(jiān)視程序中的VMX根模式。另一方面,TD在SEAM VMX非根模式下運(yùn)行。TD可以通過TD退出或調(diào)用TDCALL指令陷入TDX模塊。在這兩種情況下,邏輯處理器從SEAM VMX非根模式轉(zhuǎn)換為SEAM VMX根模式,并在TDX模塊的上下文中開始執(zhí)行。處理TDCALL的客戶端接口函數(shù)的名稱以TDG開頭。
3.2. 內(nèi)存保護(hù)機(jī)制
TDX利用VMX的安全保密模式(SEAM)來強(qiáng)制執(zhí)行TD的內(nèi)存隔離。安全保密模式(SEAM)是虛擬機(jī)擴(kuò)展(VMX)架構(gòu)的擴(kuò)展,定義了一個(gè)稱為SEAM根的新的VMX根模式。SEAM根模式用于托管經(jīng)過CPU驗(yàn)證的模塊,使其能夠創(chuàng)建作為來賓VM的可信域(TD)。與傳統(tǒng)的虛擬機(jī)類似,TD無法訪問其他安全域(如SMM、hypervisor、TDX模塊和其他虛擬機(jī)/TD)的內(nèi)存。使用VMX,hypervisor維護(hù)擴(kuò)展頁表(EPT)來實(shí)施內(nèi)存隔離。然而,由于不再信任hypervisor,TDX將內(nèi)存管理的任務(wù)轉(zhuǎn)移到了TDX模塊上,該模塊控制TD私有內(nèi)存的地址轉(zhuǎn)換。TDX用共享來賓物理地址(GPA)用于幫助TD訪問共享內(nèi)存。安全擴(kuò)展頁表(secure EPT)用于翻譯私有GPA,確保地址翻譯的完整性,并防止從共享內(nèi)存中獲取TD代碼。目前的目標(biāo)是使用TD專用密鑰對(duì)私有內(nèi)存訪問進(jìn)行加密和保護(hù),提升安全性。物理地址元數(shù)據(jù)表(PAMT)用于跟蹤頁面分配、頁面初始化和翻譯旁路緩沖區(qū)(TLB)的一致性。
TDX內(nèi)存分為兩類:私有內(nèi)存和共享內(nèi)存。私有內(nèi)存受到完整的TDX保護(hù),僅虛擬化監(jiān)視程序可以訪問其內(nèi)容。共享內(nèi)存用于虛擬機(jī)與虛擬化監(jiān)視程序之間的共享,并不具備完整的TDX保護(hù)。TDX利用MKTME對(duì)TD的私有內(nèi)存和其元數(shù)據(jù)進(jìn)行加密。多密鑰全內(nèi)存加密(MKTME)是一個(gè)引擎,旨在使用AES-128-XTS提供內(nèi)存加密,實(shí)現(xiàn)全面的數(shù)據(jù)保護(hù)。MKTME負(fù)責(zé)通過內(nèi)存控制器對(duì)通過內(nèi)存?zhèn)鬟f的數(shù)據(jù)進(jìn)行透明的內(nèi)存加密和解密。TDX模塊在寫入內(nèi)存時(shí)對(duì)特定的緩存行編程,以使用MKTME加密所需的密鑰。這些密鑰與嵌入在物理地址中的HKID相關(guān)聯(lián)。MKTME解碼HKID,并使用引用的加密密鑰執(zhí)行加密操作。在TDX中,MKTME用TD Owner位與一個(gè)內(nèi)存段(對(duì)應(yīng)一個(gè)緩存行)相關(guān)聯(lián)。TD Owner位存儲(chǔ)在與這些段相關(guān)聯(lián)的錯(cuò)誤校正碼(ECC)內(nèi)存中。TDX模塊通過將私有HKID附加到物理地址來控制將物理內(nèi)存頁面轉(zhuǎn)換為安全內(nèi)存。HKID編碼在物理地址的高位。私有HKID的集合由TDX控制,只能用于TD和TDX模塊。當(dāng)內(nèi)存控制器寫入具有私有HKID的物理地址時(shí),它將TD Owner位設(shè)置為1。當(dāng)寫入沒有私有HKID的地址時(shí),它將清除TD Owner位。每個(gè)緩存行讀取時(shí)都會(huì)執(zhí)行訪問控制。讀取請(qǐng)求經(jīng)過內(nèi)存控制器,只有在SEAM模式下執(zhí)行的進(jìn)程才能讀取TD Owner位設(shè)置為1的緩存行。任何非SEAM模式的讀取請(qǐng)求在嘗試讀取此類緩存行時(shí)將收到全零數(shù)據(jù)。在構(gòu)建TD時(shí),不受信任的hypervisor從普通內(nèi)存中選擇內(nèi)存頁面以成為安全內(nèi)存的一部分。TDX模塊逐漸將這些頁面移動(dòng)到安全內(nèi)存中,并將其用于每個(gè)個(gè)體TD的元數(shù)據(jù)和主內(nèi)存。在這些頁面可以用于主內(nèi)存之前,TD必須明確接受它們。TDX模塊通過維護(hù)一個(gè)物理地址元數(shù)據(jù)表(Physical Address Metadata Table,PAMT)來執(zhí)行安全內(nèi)存設(shè)置的完整性檢查。Guest VM訪問共享內(nèi)存需要通過TD虛擬機(jī)的許可,訪問共享內(nèi)存是通過TDCALL完成的。TDCALL會(huì)觸發(fā)Linux讀取 #VE info 結(jié)構(gòu)(TDG.VP.VEINFO.GET), 之后,TD虛擬機(jī)通過頁表項(xiàng)中的一位來選擇私有或共享模式。共享映射的內(nèi)容由Hypervisor完全控制。虛擬機(jī)應(yīng)該只使用共享映射與虛擬化監(jiān)視程序進(jìn)行通信。在啟動(dòng)時(shí),所有的TDX客戶機(jī)內(nèi)存都是私有的。TD虛擬機(jī)利用現(xiàn)有的內(nèi)存加密輔助函數(shù)實(shí)現(xiàn)私有和共享之間的轉(zhuǎn)換。set_memory_decrypted()函數(shù)將一段頁面范圍轉(zhuǎn)換為共享狀態(tài),而set_memory_encrypted()函數(shù)將內(nèi)存重新轉(zhuǎn)換為私有狀態(tài)。
3.3. I/O模型
在Linux中針對(duì)TDX的客戶機(jī)支持中,所有MMIO區(qū)域和DMA緩沖區(qū)都被映射為TD內(nèi)的共享內(nèi)存。Linux客戶機(jī)必須使用SWIOTLB在統(tǒng)一位置分配和轉(zhuǎn)換DMA緩沖區(qū),以防止來自I/O的惡意輸入。驅(qū)動(dòng)程序(如virtio_net、virtio_console、virtio_blk、9pnet_virtio、virtio_vsock)是共享內(nèi)存的主要調(diào)用者。TD虛擬機(jī)通過改進(jìn)的SWIOTLB函數(shù)和ioremap()函數(shù)將內(nèi)存在啟動(dòng)時(shí)轉(zhuǎn)換為共享狀態(tài),用于處理DMA緩沖區(qū)。對(duì)于一致性內(nèi)存,TD虛擬機(jī)使用force_dma_unencrypted()函數(shù)強(qiáng)制取消DMA緩沖區(qū)的加密狀態(tài)。虛擬設(shè)備的內(nèi)存映射IO(MMIO)實(shí)現(xiàn)為共享內(nèi)存。Guest VM在訪問設(shè)備的MMIO區(qū)域時(shí)必須小心,除非已準(zhǔn)備好處理#VE異常。通常情況下,TDX中的MMIO區(qū)域會(huì)在客戶機(jī)中觸發(fā)#VE異常。然后,客戶機(jī)的#VE處理程序會(huì)在客戶機(jī)內(nèi)部對(duì)MMIO指令進(jìn)行模擬,并將其轉(zhuǎn)換為對(duì)主機(jī)的受控TDCALL,而不是將客戶機(jī)狀態(tài)暴露給主機(jī)。通過其他方式(如overlay)進(jìn)行的MMIO訪問可能會(huì)導(dǎo)致OOPS錯(cuò)誤。
3.4. 認(rèn)證
在啟用TDX的機(jī)器上,驗(yàn)證者在TD內(nèi)操作,并負(fù)責(zé)處理遠(yuǎn)程驗(yàn)證請(qǐng)求。當(dāng)來自挑戰(zhàn)者(如租戶)的請(qǐng)求到達(dá)時(shí),驗(yàn)證者通過生成TD報(bào)告提供TD正確實(shí)例化的證據(jù)。該報(bào)告作為證據(jù)由TDX模塊生成,并由報(bào)告托管區(qū)簽名。它包含了TDX的TCB(可信計(jì)算基)和加載在TD中的軟件組件的測(cè)量結(jié)果。報(bào)告還包括由Intel頒發(fā)的證書作為錨定的證書鏈。在收到報(bào)告后,挑戰(zhàn)者通過檢查報(bào)告并確定驗(yàn)證者是否在真正的啟用TDX的平臺(tái)上運(yùn)行,并且TD是否具有預(yù)期的軟件測(cè)量結(jié)果來驗(yàn)證其真實(shí)性。如果報(bào)告成功驗(yàn)證,挑戰(zhàn)者可以繼續(xù)與驗(yàn)證者建立安全通道或向驗(yàn)證者發(fā)布秘密信息。
3.5. 未來計(jì)劃的功能
Linux社區(qū)除了CPU上的機(jī)密計(jì)算, 還計(jì)劃支持GPU上的機(jī)密計(jì)算。以及CPU GPU 協(xié)同合作時(shí)候的機(jī)密計(jì)算。微軟與NVIDIA合作,在Azure上引入GPU加速的機(jī)密計(jì)算。目前,Nvidia A100 部分支持TEE的功能,并可以和Intel SGX共同協(xié)作,提供CPU GPU協(xié)同工作的機(jī)密虛擬機(jī)。H100的TEE功能由Nvidia官方全面支持。NVIDIA和微軟將GPU加速計(jì)算與機(jī)密計(jì)算相結(jié)合,借助NVIDIA A100 Tensor Core GPU中的Ampere Protected Memory (APM)支持和硬件保護(hù)的虛擬機(jī), 用于先進(jìn)的人工智能工作負(fù)載, 使得企業(yè)將能夠使用敏感數(shù)據(jù)集訓(xùn)練和部署更準(zhǔn)確的模型。APM在數(shù)據(jù)通過PCIe總線從CPU傳輸?shù)紾PU或從GPU傳輸?shù)紺PU時(shí),使用由NVIDIA設(shè)備驅(qū)動(dòng)程序和GPU之間安全交換的密鑰對(duì)數(shù)據(jù)進(jìn)行加密。數(shù)據(jù)解密僅在GPU內(nèi)部的硬件保護(hù)、隔離環(huán)境或GPU內(nèi)的隔離區(qū)域中進(jìn)行,這樣可以對(duì)數(shù)據(jù)進(jìn)行處理,用于訓(xùn)練AI模型或提供AI推理結(jié)果。其他Azure機(jī)密計(jì)算解決方案類似,NVIDIA A100 GPU中的APM功能支持基于NVIDIA在制造過程中分配的唯一GPU身份的加密證明。使用遠(yuǎn)程證明,組織可以獨(dú)立驗(yàn)證GPU的安全狀態(tài),并確保他們的數(shù)據(jù)僅在GPU的機(jī)密隔離區(qū)域內(nèi)進(jìn)行處理。此外,Nvidia還和Linux社區(qū)合作, 從 Linux??v6.3 開始支持Nvidia H100 TEE。
4. TDX的hypervisor實(shí)現(xiàn)
如果要寫一個(gè)針對(duì)TDX的hypervisor,要搞清楚其TDX加載過程,接著解釋了TDX物理和線性內(nèi)存布局,TD 的內(nèi)存管理,以及跨安全域進(jìn)行上下文切換。下面,我們?cè)敿?xì)解釋這一部分。
4.1. TDX 加載和初始化
TDX 模塊的工作主要是三塊兒,TD dispatch, VMM dispatch 和 TD transition. TDX 加載開始于加載Intel Non-Persistent SEAM Loader(NP-SEAM Loader)。NP-SEAM Loader是一個(gè)Intel認(rèn)證代碼模塊(ACM)。ACM是在處理器的內(nèi)部RAM中運(yùn)行的由Intel簽名的模塊。NP-SEAM Loader由Intel可信執(zhí)行技術(shù)(TXT)通過GETSEC[ENTERACCS]函數(shù)進(jìn)行認(rèn)證和加載。NP-SEAMLoader包含了Intel持久性SEAM Loader(P-SEAM Loader)的映像,然后由NP-SEAM Loader進(jìn)行驗(yàn)證和加載。P-SEAM Loader負(fù)責(zé)安裝或更新TDX模塊。P-SEAM Loader和TDX模塊都加載在SEAM RANGE中,該范圍是通過UEFI/BIOS保留的系統(tǒng)內(nèi)存的一部分。范圍的基地址和大小由IA32_SEAMRR_PHYS_BASE和IA32_SEAMRR_PHYS_MASK MSR指定。該范圍被劃分為Module_Range用于TDX模塊和P_SEAMLDR_Range用于P-SEAM Loader。這兩個(gè)模塊在SEAM VMX根模式下運(yùn)行,并使用SEAMCALL / SEAMRET與外部軟件進(jìn)行交互。NP-SEAM Loader、P-SEAM Loader和TDX模塊均由Intel提供和簽名,建立了一個(gè)信任鏈來引導(dǎo)TDX模塊的啟動(dòng)。P-SEAM Loader提供了一個(gè)SEAMCALL接口函數(shù)seamldr_install,用于加載TDX模塊。TDX模塊的映像預(yù)先加載到一個(gè)內(nèi)存緩沖區(qū)中(不在SEAM RANGE內(nèi))。緩沖區(qū)的物理地址和seam_sigstruct(TDX模塊的簽名)作為參數(shù)傳遞給seamldr_install函數(shù)。seam_sigstruct包含TDX模塊的哈希值和安全版本號(hào)(SVN),每個(gè)邏輯處理器(LP)堆棧頁的數(shù)量,每個(gè)LP數(shù)據(jù)頁的數(shù)量以及全局?jǐn)?shù)據(jù)頁的數(shù)量。這些數(shù)字由seamldr_install函數(shù)用于確定TDX模塊各個(gè)內(nèi)存區(qū)域的物理/線性地址和大小。所有邏輯處理器(LPs)按順序調(diào)用seamldr_install,在每個(gè)LP上,seamldr_install會(huì)檢查L(zhǎng)P是否已經(jīng)處于由其他LP開始的安裝會(huì)話中,并清除LP的VMCS緩存。最后一個(gè)LP會(huì)檢查seamldr_install的參數(shù),驗(yàn)證各個(gè)模塊的簽名,在SEAM RANGE中確定TDX模塊各個(gè)內(nèi)存區(qū)域的物理和線性地址以及大小:代碼、數(shù)據(jù)、堆棧、頁表、sysinfo_table、keyhole和keyhole-edit,將區(qū)域的物理地址映射到其線性地址,將TDX模塊的二進(jìn)制映像加載到SEAMRANGE中,設(shè)置TDX模塊的sysinfo_table,在每個(gè)LP上設(shè)置SEAM Transfer VMCS。最后,在P-SEAM Loader的數(shù)據(jù)區(qū)域記錄TDX模塊的哈希值和SVN。
vt_init workflow
? tdx_init
? ? ?SEAMCALL_SEAMDLR_INSTALL for each cpu
? ? ?TDH_SYS_INIT
? ? ?TDH_SYS_LP_INIT
? ? ?TDH_SYS_INFO
? ? ?MKTME Partitioning check for each cpu
? ? ? ? ? TDH_SYS_LP_INIT for each cpu
? ? ? ? ? TDH_SYS_CONFIG
? ? ? ? ? TDH_SYS_KEY_CONFIG for each pkg
? ? ? ? ? TDH_SYS_TDMR_INIT
加載TDX module之后就是平臺(tái)初始化, 見上圖的workflow。
虛擬化管理程序通過SEAMCALL[TDH.SYS.INIT]對(duì)TDX模塊進(jìn)行全局初始化。然后,虛擬化管理程序?qū)γ總€(gè)邏輯處理器(LP)進(jìn)行SEAMCALL[TDH.SYS.LP.INIT] 調(diào)用,以檢查和初始化每個(gè)LP的參數(shù),比如keyhole,數(shù)據(jù)區(qū)域和堆棧區(qū)域。接下來,虛擬化管理程序分配一個(gè)全局私有HKID,并通過SEAMCALL[TDH.SYS.CONFIG]將其傳遞給TDX模塊,該調(diào)用還初始化了Trust DomainMemory Region (TDMR)。每個(gè)處理器套件上的 SEAMCALL[TDH.SYS.KEY.CONFIG] 生成一個(gè)TDX全局私有密鑰,并將該密鑰與該HKID綁定。該密鑰用于加密存儲(chǔ)每個(gè)TD的Physical AddressMetadata Table (PAMT)和Trust Domain Root (TDR)的內(nèi)存。最后,虛擬化管理程序多次調(diào)用SEAMCALL[TDH.SYS.TDMR.INIT]逐步初始化每個(gè)TDMR的PAMT。TDMR里面存了每個(gè)TD(Trust Domain)的元數(shù)據(jù), 包括Trust Domain Root(TDR),Trust Domain Control Structure(TDCS),Trust Domain Virtual Processor State(TDVPS)和 Secure EPT(SEPT)。
4.2. TDX物理和線性內(nèi)存布局
TDX模塊在Module_Range內(nèi)的物理內(nèi)存布局如下所示。
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?TDX 的物理內(nèi)存布局圖,參考https://www.intel.com/content/www/us/en/developer/articles/technical/intel-trust-domain-extensions.html
TDX 的物理內(nèi)存布局以一個(gè)4 KB的頁面開始,該頁面保存TDX模塊的sysinfo_table。sysinfo_table包含由NP-SEAM Loader的MCHECK填充的2 KB平臺(tái)信息,以及由P-SEAM Loader填充的下一個(gè)2 KB,其中包含TDX模塊的信息,如SEAM RANGE的基地址和大小、內(nèi)存區(qū)域的基線性地址、LP數(shù)量和私有HKID的范圍。在sysinfo_table之后,是每個(gè)LP的VMCS區(qū)域。每個(gè)LP都有一個(gè)4 KB的SEAM Transfer VMCS。在每個(gè)LP的VMCS區(qū)域之后,是數(shù)據(jù)區(qū)域,該區(qū)域被劃分為每個(gè)LP的數(shù)據(jù)區(qū)域和全局?jǐn)?shù)據(jù)區(qū)域。接下來是TDX模塊的4級(jí)頁表,然后是每個(gè)LP的堆棧區(qū)域,最后是TDX模塊的可執(zhí)行代碼區(qū)域。
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?TDX 的線性內(nèi)存布局圖,參考https://www.intel.com/content/www/us/en/developer/articles/technical/intel-trust-domain-extensions.html
TDX模塊維護(hù)一個(gè)頁表來進(jìn)行地址轉(zhuǎn)換, 并維護(hù)自己的線性內(nèi)存布局。上圖展示了TDX模塊線性地址空間的布局,該布局由P-SEAM Loader通過構(gòu)建TDX模塊的頁表來建立。為了防止內(nèi)存破壞攻擊,P-SEAM Loader對(duì)線性地址的第34到46位進(jìn)行隨機(jī)化處理,并把區(qū)域的線性地址和大小記錄在sysinfo_table的字段中。
4.3. TD 的內(nèi)存管理
TD的內(nèi)存管理定義在TDX module的vmm dispatcher API 里面。TDX 上有兩類memory,E820和Convertible memory range (CMR)。E820 由BIOS設(shè)置,是host內(nèi)核可用內(nèi)存范圍。CMR是可轉(zhuǎn)換內(nèi)存范圍用于TD來賓私有頁面,相當(dāng)于SGX的EPC, 由TDX Module設(shè)置。CMR里面有一段叫做Trust Domain Memory Region(TDMR),由VMM配置。在TDMR里面又一段叫做PhysicalAddress Metadata Table(PAMT , AKA 物理地址元數(shù)據(jù)表),是TDMR的一個(gè)子集,是用來強(qiáng)制執(zhí)行額外的屬性。具體來說,TDs(可信域)可以訪問兩類內(nèi)存 。私有內(nèi)存用于保存TD的機(jī)密數(shù)據(jù),共享內(nèi)存用于與不受信任的外部實(shí)體進(jìn)行通信。TD的私有內(nèi)存通過為該TD分配的獨(dú)特的、臨時(shí)的內(nèi)存加密密鑰,提高了加密的機(jī)密性和完整性保護(hù)。除了私有內(nèi)存和共享內(nèi)存, TD客戶環(huán)境中的內(nèi)存可以未接受的內(nèi)存或者內(nèi)存映射的I/O(MMIO)。
● 私有內(nèi)存 - TD一般將其所有私有代碼和數(shù)據(jù)定位在使用私有GPA映射的私有內(nèi)存中。TD分配的私有密鑰有助于對(duì)使用“共享”位設(shè)置為0的GPA的所有內(nèi)存訪問進(jìn)行加密和保護(hù)完整性。所有使用“共享”位設(shè)置為1的GPA的共享內(nèi)存訪問可能會(huì)使用由虛擬機(jī)管理的共享密鑰進(jìn)行加密和保護(hù)完整性。私有內(nèi)存由VMM通過SEAMCALL[TDH.MEM.PAGE.ADD]或TDVF通過TDCALL[TDG.MEM.PAGE.ACCEPT]創(chuàng)建,頁面表中的S位清除。
● 共享內(nèi)存 - 共享內(nèi)存用于與TD外部的代理進(jìn)行通信,以執(zhí)行諸如網(wǎng)絡(luò)訪問、存儲(chǔ)服務(wù)、調(diào)用虛擬化服務(wù)等I/O操作。共享內(nèi)存在客戶物理地址(GPA)中,最高位被指定為“共享”位,用于指示該GPA是否映射私有內(nèi)存(當(dāng)“共享”位為0時(shí))或映射共享內(nèi)存(當(dāng)“共享”位為1時(shí))。共享內(nèi)存由VMM通過SEAMCALL[TDH.MEM.PAGE.ADD]或TDVF通過TDCALL[TDG.MEM.PAGE.ACCEPT]創(chuàng)建,頁面表中的S位設(shè)置。
● 未接受的內(nèi)存 - 由VMM通過SEAMCALL[TDH.MEM.PAGE.AUG]創(chuàng)建,但尚未被TDVF接受。
● 內(nèi)存映射的I/O(MMIO) - 通過TDVF通過TDVMCALL<#VE.RequestMMIO>訪問的共享內(nèi)存。
Intel-TDX模塊提供安全EPT管理功能給虛擬機(jī)管理器(VMM),用于向安全EPT添加或刪除映射,并通過執(zhí)行安全策略來維護(hù)內(nèi)存布局的完整性。用于構(gòu)建安全EPT的內(nèi)存被設(shè)計(jì)為使用唯一的、每個(gè)TD的內(nèi)存加密密鑰進(jìn)行加密和完整性保護(hù)。CPU會(huì)阻止TD將頁表結(jié)構(gòu)和可執(zhí)行代碼定位在共享內(nèi)存中。如果代碼獲取或頁表訪問位于共享內(nèi)存中,CPU會(huì)引發(fā)頁故障(#PF)。Intel-TDX模塊pamt_get_block利用物理地址元數(shù)據(jù)表(Physical-Address-Metadata Table,PAMT) 來確保映射到TD的安全EPT的頁面不能映射到其他任何TD的安全EPT中。PAMT作為一個(gè)跟蹤數(shù)據(jù)結(jié)構(gòu),幫助確保頁面只能在安全EPT中映射到一個(gè)GPA。它提供給VMM函數(shù)來向安全EPT添加4K, 2M或1G的映射。PAMT還跟蹤頁面大小和類型,以確保在從安全EPT中取消映射頁面時(shí)進(jìn)行正確的TLB失效操作。這有助于維護(hù)內(nèi)存映射的完整性和一致性。當(dāng)使用安全EPT或共享EPT進(jìn)行虛擬地址到物理地址的轉(zhuǎn)換時(shí),這些轉(zhuǎn)換會(huì)被緩存到CPU的TLB(Translation Lookaside Buffer)中。TLB為每個(gè)轉(zhuǎn)換關(guān)聯(lián)一個(gè)標(biāo)簽,以標(biāo)識(shí)創(chuàng)建該轉(zhuǎn)換的TD。這樣可以實(shí)現(xiàn)高效的地址轉(zhuǎn)換,并減少重復(fù)轉(zhuǎn)換操作的開銷。基于安全EPT的地址轉(zhuǎn)換架構(gòu)支持將大頁映射到安全/共享EPT,并在適當(dāng)?shù)那闆r下將轉(zhuǎn)換緩存為大頁。TD的地址轉(zhuǎn)換
lock_sept_check_and_walk_private_gpa -> lock_sept_check_and_walk_any_gpa ->secure_ept_walk 遵循類似于傳統(tǒng)虛擬機(jī) two-level page walk。因此,在地址轉(zhuǎn)換方面,TD中的軟件和傳統(tǒng)虛擬機(jī)中軟件開銷差不多。在TD執(zhí)行時(shí),虛擬機(jī)管理器(VMM)通過擴(kuò)展頁表(EPT)幫助為TD分配和映射使用的內(nèi)存到TD的GPA,提供GPA到物理地址(PA)的轉(zhuǎn)換。在TD執(zhí)行時(shí)會(huì)有兩個(gè)EPT用于TD:一個(gè)安全EPT用于提供私有GPA到PA的轉(zhuǎn)換,以及一個(gè)共享EPT用于提供共享GPA到PA的轉(zhuǎn)換。信任域(TD)使用的客戶物理內(nèi)存由TD私有密鑰或基于GPA共享位(基于GPAW的GPA )進(jìn)行加密。TD操作系統(tǒng)可以在Host虛擬機(jī)管理器(VMM)配置的固定私有GPA空間上運(yùn)行。通常,Host OS會(huì)管理物理頁框數(shù)據(jù)庫(kù),用于記錄(客戶)物理內(nèi)存分配的狀態(tài)。為了避免為大量共享GPA空間擴(kuò)展頁框數(shù)據(jù)庫(kù),TD操作系統(tǒng)可以通過管理物理內(nèi)存狀態(tài)屬性來指示是否使用TD私有密鑰或VMM密鑰對(duì)其進(jìn)行加密。然后,TD客戶操作系統(tǒng)可以使用TDG.VP.VMCALL(MapGPA) 在固定的GPA映射內(nèi)請(qǐng)求Host虛擬機(jī)管理器(VMM)將GPA范圍映射為私有或共享內(nèi)存映射, 或者共享I/O內(nèi)存的別名映射到該GPA空間中的共享內(nèi)存。此API還可用于將頁面映射從私有轉(zhuǎn)換為共享。在此操作中傳遞的GPA范圍可以通過起始地址中的GPA.Shared位來指示映射是請(qǐng)求用于共享內(nèi)存還是私有內(nèi)存。例如,為了與VMM交換數(shù)據(jù),TD可以使用此TDG.VP.VMCALL請(qǐng)求將GPA范圍映射為共享內(nèi)存(例如,用于半虛擬化IO)通過共享EPT。如果指定的起始GPA是私有GPA(GPA.S位清除),則此MapGPA TDG.VP.VMCALL可以用于請(qǐng)求HostVMM映射特定的私有頁面(該映射可能涉及將支持物理頁從共享頁轉(zhuǎn)換為私有頁)。在這種情況下, VMM必須將GPA從共享EPT區(qū)域取消映射,并使TD VCPU的TLB和緩存無效,刷新TLB和緩存,并刪除映射,以確保不存在陳舊的映射。類似地,如果共享頁已分配給任何設(shè)備用于IO,那么VMM應(yīng)使IOTLB無效并清除任何待處理的IO事務(wù)(例如,通過排隊(duì)等待描述符)以刪除IO側(cè)的陳舊映射。然后,應(yīng)刷新所有數(shù)據(jù)緩存的內(nèi)容。具體流程是,VMM可以選擇私有GPA空間的一個(gè)頁面,并用TDG.VP.VMCALL(MapGPA),并將GPA.S=1進(jìn)行映射。VMM可以使用TDH.MEM.RANGE.BLOCK, TDH.MEM.TRACK和TDH.MEM.SEPT.REMOVE從S-EPT映射中移除受影響的GPA。VMM可以使用直接內(nèi)存存儲(chǔ)重新獲取該頁面,并在由VMM管理的共享EPT中為TD操作系統(tǒng)映射共享GPA的別名。稍后,TD操作系統(tǒng)可能需要將GPA用作私有頁,通過使用相同的TDG.VP.VMCALL(MapGPA),其中GPA被指定為私有GPA(GPA.S=0),來請(qǐng)求HostVMM將該頁面與共享EPT解除關(guān)聯(lián),并執(zhí)行TDH.MEM.PAGE.AUG以為私有GPA設(shè)置待處理EPT映射。成功完成TDG.VP.VMCALL流程后,TD客戶可以使用TDG.MEM.PAGE.ACCEPT來重新初始化該頁,使用TD私有密鑰,并將S-EPT映射標(biāo)記為活動(dòng)狀態(tài)。
4.4. 跨安全域進(jìn)行上下文切換
TDX有兩種類型的上下文切換:(1)hypervisor和TDX模塊之間,(2)TD和TDX模塊之間。Hypervisor 通過SEAMCALL接口函數(shù)與TDX模塊進(jìn)行交互, 處理器從VMX根模式轉(zhuǎn)換到SEAMVMX根模式,加載TDX模塊的SEAM Transfer VMCS。在Module_Range中,SEAM TransferVMCS區(qū)域的位置和布局從SEAMRR_Base開始。Module_Range的第一個(gè)4 KB頁面是sysinfo_table。從SEAMRR_Base + 4 KB開始,有一個(gè)由每個(gè)LP的SEAM Transfer VMCS區(qū)域組成的數(shù)組。每個(gè)區(qū)域是一個(gè)4 KB頁面。這個(gè)數(shù)組以LP的標(biāo)識(shí)符(LP_ID)作為索引。當(dāng)執(zhí)行SEAMCALL指令時(shí),處理器根據(jù)當(dāng)前的LP_ID來搜索VMCS地址。地址的確定方式是:SEAMRR_Base + 4 KB + (LP_ID × 4 KB)。TDX模塊的狀態(tài)存儲(chǔ)在VMCS的主機(jī)狀態(tài)區(qū)域中。主機(jī)RIP被設(shè)置為TDX模塊的tdx_seamcall_entry_point,主機(jī)CR3被設(shè)置為TDX模塊PML4基址的物理地址。此外,主機(jī)FS_BASE被設(shè)置為sysinfo_table的線性地址,主機(jī)GS_BASE被設(shè)置為每個(gè)LP的數(shù)據(jù)區(qū)域的線性地址。當(dāng)LP通過SEAMCALL指令轉(zhuǎn)換到TDX模塊時(shí),存儲(chǔ)在SEAM Transfer VMCS中的信息被加載到處理器中。因此,F(xiàn)S_BASE和GS_BASE現(xiàn)在分別指向TDX模塊的sysinfo_table和本地?cái)?shù)據(jù)區(qū)域。CR3寄存器指向TDX模塊的頁表,從而將內(nèi)存管理單元(MMU)切換到TDX模塊的線性地址空間。TDX模塊開始處理SEAMCALL并將其分派給相應(yīng)的接口函數(shù)。
在TDX虛擬化實(shí)現(xiàn)中,同步的TDCALL或異步的TD退出被設(shè)計(jì)為陷入TDX模塊。這由TD TransferVMCS控制,在創(chuàng)建TD的虛擬CPU時(shí)設(shè)置,并存儲(chǔ)在TD的TDVPS中。TDVPS使用TD的私鑰進(jìn)行加密。因此,TD Transfer VMCS對(duì)于不受信任的hypervisor是不可訪問的。當(dāng)TD調(diào)用TDCALL或觸發(fā)TD退出時(shí),LP加載存儲(chǔ)在TD Transfer VMCS中的TDX模塊的狀態(tài)以進(jìn)行上下文切換。某些TD退出需要hypervisor來輔助模擬某些操作,如端口I/O、HLT、CPUID等等。所有的TD退出首先陷入TDX模塊,TDX模塊向TD注入一個(gè)虛擬化異常(VE)來處理退出。TD的客戶機(jī)內(nèi)核包含一個(gè)相應(yīng)的VE處理程序,該處理程序準(zhǔn)備了一個(gè)最小化的參數(shù)集,并調(diào)用TDCALL重新進(jìn)入TDX模塊。此時(shí),TDX模塊可以安全地要求hypervisor處理請(qǐng)求,最小化地暴露敏感信息。
5. 總結(jié)
綜上所述,Intel? Trust Domain Extensions (Intel? TDX) 可以用于部署硬件隔離的虛擬機(jī)(VM)稱為Trust Domains(TDs)。Intel TDX的設(shè)計(jì)目的是將TD虛擬機(jī)與虛擬機(jī)管理器(VMM)、Hypervisor和主機(jī)平臺(tái)上的其他非-TD軟件進(jìn)行隔離。Intel TDX模塊利用專門為Intel TDX設(shè)計(jì)的指令集架構(gòu),同時(shí)借助系統(tǒng)芯片(SoC)中的MKTME(Multi-Key Total Memory Encryption)引擎的支持。該模塊充當(dāng)主機(jī)虛擬機(jī)管理器(VMM)和客戶端Trust Domains(TDs)之間的中間層。TDs需要使用Guest-Host-Communication Interface(GHCI)與Intel TDX模塊和主機(jī)VMM進(jìn)行通信。GHCI提供了一種標(biāo)準(zhǔn)化的方法,供TDs與Intel TDX模塊進(jìn)行交互,并與主機(jī)VMM交換信息。通過利用指令集架構(gòu)和MKTME引擎以及GHCI,Intel TDX模塊促進(jìn)了TDs與主機(jī)VMM之間的安全通信和協(xié)調(diào),確保了TDs與底層平臺(tái)的隔離和保護(hù)。Intel TDX可用于增強(qiáng)保密計(jì)算,通過幫助保護(hù)TD免受各種軟件攻擊,同時(shí)有助于減少TD的可信計(jì)算基礎(chǔ)(TCB)。
題圖來源:https://pixabay.com/zh/vectors/computer-encrypt-encryption-1294045


Linux閱碼場(chǎng) 專業(yè)的Linux技術(shù)社區(qū)和Linux操作系統(tǒng)學(xué)習(xí)平臺(tái),內(nèi)容涉及Linux內(nèi)核,Linux內(nèi)存管理,Linux進(jìn)程管理,Linux文件系統(tǒng)和IO,Linux性能調(diào)優(yōu),Linux設(shè)備驅(qū)動(dòng)以及Linux虛擬化和云計(jì)算等各方各面.
評(píng)論
  • 摘要東莞市恒創(chuàng)連接器有限公司(HCHGCONN)是位于廣東東莞的連接器源頭制造工廠,專注于連接器國(guó)產(chǎn)替代、小間距大電流連接器、線對(duì)板連接器、線對(duì)線連接器、板對(duì)板連接器、電源連接器及定制連接器開發(fā)。公司面向工業(yè)自動(dòng)化、新能源儲(chǔ)能、BMS、汽車電子、AI服務(wù)器、GPU供電、通信設(shè)備、醫(yī)療設(shè)備和智能家居等場(chǎng)景,提供從產(chǎn)品選型、替代評(píng)估、樣品驗(yàn)證到批量交付的一站式連接方案。恒創(chuàng)可支持 Molex、TE Connectivity、JST、Hirose、Samtec 等國(guó)際品牌部分系列的國(guó)產(chǎn)替代評(píng)估。常見替
    HC003 2026-08-07 10:14 182瀏覽
  • 樓宇自控里的“巴別塔”一棟智慧樓宇、一個(gè)產(chǎn)業(yè)園區(qū)里,暖通空調(diào)運(yùn)行著廠商私有協(xié)議,照明系統(tǒng)遵循專屬通信標(biāo)準(zhǔn),變配電、門禁安防各成體系——設(shè)備間數(shù)據(jù)壁壘森嚴(yán),上位平臺(tái)對(duì)接全靠定制化 “翻譯” 開發(fā),不僅成本高企,交付周期也難以管控。這就是樓宇自控行業(yè)多年的痛點(diǎn):協(xié)議林立、封閉林立。而破局的鑰匙,早在30多年前就已經(jīng)寫好了——BACnet。作為ASHRAE制定的樓宇自控國(guó)際標(biāo)準(zhǔn)協(xié)議,BACnet是如今全球樓宇自控系統(tǒng)(BAS)互聯(lián)互通的“通用語言”。新風(fēng)機(jī)、冷源群控、變配電、照明、門禁,凡是需要被樓宇
    飛凌嵌入式 2026-08-10 09:26 225瀏覽
  • 導(dǎo)語在現(xiàn)代高速數(shù)字電路設(shè)計(jì)中,信號(hào)的完整性已不僅是理想波形推演,而是一場(chǎng)與物理非理想特性正面博弈的工程實(shí)踐。濾波器芯片作為凈化傳輸鏈路的關(guān)鍵屏障,其核心挑戰(zhàn)在于:能否有效識(shí)別并濾除那些隱匿在電平跳變過程中的亞納秒級(jí)瞬態(tài)脈沖干擾,這類干擾持續(xù)極短,卻足以在高速鏈路中引發(fā)誤觸發(fā)。然而,傳統(tǒng)函數(shù)發(fā)生器受限于采樣率與邊沿速率,根本無法忠實(shí)復(fù)現(xiàn)如此狹窄且陡峭的異常波形。針對(duì)此困境,德思特TS-AWG7000系列任意波形發(fā)生器以17 GS/s采樣率與50 ps原生邊沿速度,為瞬態(tài)脈沖提供精細(xì)刻畫,配合SPG
    德思特測(cè)試測(cè)量 2026-08-05 14:06 5瀏覽
  • 讓微弱脈沖信號(hào)更清晰——鎖相放大器集成Boxcar平均器在脈沖激光、泵浦-探測(cè)、時(shí)間分辨光譜、飛行時(shí)間質(zhì)譜等實(shí)驗(yàn)中,真正需要測(cè)量的信號(hào)往往只出現(xiàn)在一個(gè)很短的時(shí)間窗口內(nèi),卻被淹沒在遠(yuǎn)大于它的噪聲和背景之中。 針對(duì)這類穩(wěn)定重復(fù)的微弱脈沖與瞬態(tài)信號(hào),賽恩科儀為OE2052雙通道數(shù)字鎖相放大器帶來全新的Boxcar Averager功能升級(jí):在鎖相檢測(cè)之外,進(jìn)一步提供從周期波形觀察、門控測(cè)量到多周期平均的完整數(shù)字Boxcar測(cè)量鏈路。 Boxcar平均器,如何從噪聲中“截取”目標(biāo)信號(hào)?Boxcar平均器
    SSI_賽恩科儀 2026-08-07 15:49 18562瀏覽
  •        很多人只見過封裝在SMD外殼里的小尺寸晶振,卻不知道一顆2016、1612甚至1210封裝的微型石英晶振,從一塊巴掌大的石英原礦,到最終能穩(wěn)定起振的成品,要經(jīng)過十幾道精密工序。它內(nèi)部的石英晶片厚度最薄不到20微米,比普通A4紙的1/5還薄,整個(gè)生產(chǎn)過程里哪怕0.1微米的誤差,都會(huì)直接廢掉整批產(chǎn)品,這也是小尺寸晶振過去長(zhǎng)期依賴進(jìn)口,國(guó)內(nèi)廠商花了十幾年才啃下量產(chǎn)硬骨頭的核心原因。1. 原石定向切割:0.01度的角度誤差都不能有小尺寸晶振的第一步,
    TKD泰晶科技 2026-08-07 08:43 542瀏覽
  • 文:杜杰編輯:侯煜當(dāng)?shù)貢r(shí)間7月28日,美國(guó)特朗普政府落地最新科技封鎖政策,美國(guó)聯(lián)邦通信委員會(huì)(FCC)正式更新《受管制清單》,新增兩大類設(shè)備——境外生產(chǎn)的先進(jìn)機(jī)器人設(shè)備、境外生產(chǎn)的聯(lián)網(wǎng)電力逆變器。FCC在官方情況說明書中明確,該類境外制造產(chǎn)品,“會(huì)對(duì)美國(guó)國(guó)家安全或美國(guó)民眾的人身安全構(gòu)成無法承受的風(fēng)險(xiǎn)”。本次新規(guī)設(shè)置明確豁免機(jī)制:經(jīng)美國(guó)國(guó)防部(DoW)、電力逆變器品類經(jīng)美國(guó)國(guó)土安全部(DHS)審核并授予“有條件批準(zhǔn)”,認(rèn)定對(duì)應(yīng)設(shè)備品類不存在重大安全風(fēng)險(xiǎn),即可獲得準(zhǔn)入豁免。同時(shí)政策嚴(yán)格執(zhí)行新老劃斷原
    華爾街科技眼 2026-08-03 21:28 370瀏覽
  • 在前六期中,我們已經(jīng)分別討論了 CRA 的適用范圍、整體影響、漏洞通報(bào)義務(wù)、風(fēng)險(xiǎn)評(píng)估與技術(shù)文檔證據(jù)鏈、第三方組件與 SBOM 供應(yīng)鏈治理,以及產(chǎn)品上市后的支持期、安全更新、用戶說明和終止支持管理。到這里,企業(yè)已經(jīng)能夠回答幾個(gè)核心問題:產(chǎn)品是否落入 CRA 適用范圍,產(chǎn)品由哪些組件構(gòu)成,企業(yè)如何證明自己在設(shè)計(jì)、開發(fā)和上市前采取了必要的安全措施,以及產(chǎn)品上市后如何持續(xù)維護(hù)和安全下線。但對(duì)于真正準(zhǔn)備落地 CRA 合規(guī)的企業(yè)來說,還有一個(gè)更現(xiàn)實(shí)的問題:CRA 的法規(guī)條文相對(duì)原則化,企業(yè)應(yīng)當(dāng)如何把“網(wǎng)絡(luò)安
    虹科云科技 2026-08-03 16:51 252309瀏覽
  • 一、方案簡(jiǎn)介在Buildroot構(gòu)建的嵌入式Linux系統(tǒng)中部署Flutter應(yīng)用,主流有兩套成熟的開源方案,分別適配不同的顯示場(chǎng)景與開發(fā)需求:方案一:flutter-elinux(Sony開源方案)由索尼官方維護(hù)的嵌入式Linux Flutter工具鏈,既支持DRM/GBM直接渲染,也兼容Wayland、X11等多種顯示后端,場(chǎng)景適配性更廣。方案二:flutter-pi(輕量級(jí)嵌入器)一款輕量級(jí)Flutter引擎宿主程序,僅基于底層DRM/GBM接口實(shí)現(xiàn)渲染,無需依賴桌面環(huán)境,資源占用更低,更
    飛凌嵌入式 2026-08-07 09:34 184瀏覽
  •                                                                        
    廣州鐵金剛 2026-08-06 17:44 217406瀏覽
  • 做電池供電攝像頭、可視門鈴、戶外安防的同學(xué)應(yīng)該都踩過這個(gè)坑:攝像頭要拍,ISP、sensor、無線模塊全得開著,整機(jī)電流動(dòng)輒幾百 mA。一節(jié) 18650 撐不了幾天,用戶投訴“怎么又沒電了”。有人會(huì)說:加個(gè) PIR 人體紅外不就行了?問題是 PIR 怕熱、怕寵物、怕隔著亞克力/玻璃殼,而且只能感知“有溫差的人體移動(dòng)”,靈敏度飄忽。真正省電的思路應(yīng)該是:讓攝像頭平時(shí)徹底睡死,只有“前面有人/有動(dòng)靜”時(shí)才被一鍵喚醒——而負(fù)責(zé)這個(gè)“看門”角色的,最合適的是一顆低功耗雷達(dá)。一、為什么是雷達(dá),而不是 PI
    唯創(chuàng)知音語音芯片 2026-08-07 14:44 206瀏覽
  • 做藍(lán)牙音箱的工程師大概都碰過這個(gè)局面。產(chǎn)品要連手機(jī)放歌,要本地播開機(jī)提示音和按鍵音,還要接 App 做配網(wǎng)和狀態(tài)上報(bào)。三件事拆開,早先的常規(guī)做法是音頻藍(lán)牙一顆料、數(shù)傳藍(lán)牙一顆料、本地播放再掛一顆小 MCU 加一片 Flash。板子越畫越大,BOM 越算越貴,待機(jī)電流和固件工作量也跟著漲。WT2605C 出來以后,這套需求可以集成到一顆芯片,就是 WT2605C-32N,該芯片采用QFN32 封裝,4×4 毫米,把音頻藍(lán)牙、BLE 數(shù)傳和 MP3 本地播放三樣全包了。對(duì)藍(lán)牙音箱來說,最實(shí)在的好處就
    唯創(chuàng)知音語音芯片 2026-08-06 15:14 382瀏覽
  • 在物聯(lián)網(wǎng)從“萬物互聯(lián)”邁向“萬物智聯(lián)”的進(jìn)程中,LTE Cat.1憑借其在速率、成本與網(wǎng)絡(luò)覆蓋之間的完美平衡,正成為中低速物聯(lián)網(wǎng)市場(chǎng)的絕對(duì)主力。隨著2G/3G網(wǎng)絡(luò)的逐步退網(wǎng)以及新國(guó)標(biāo)對(duì)終端設(shè)備智能化、定位功能的強(qiáng)制要求,Cat.1模組迎來了爆發(fā)式的增長(zhǎng)窗口。在這一關(guān)鍵節(jié)點(diǎn),基于華為海思Hi2131芯片設(shè)計(jì)的LTE Cat.1模組,憑借其在能效、射頻、架構(gòu)及物理規(guī)格上的底層創(chuàng)新,成功打破了“高性能必高功耗”的傳統(tǒng)魔咒,為行業(yè)提供了極具競(jìng)爭(zhēng)力的連接最優(yōu)解。核心技術(shù)優(yōu)勢(shì):重塑Cat.1能效與連接標(biāo)桿海
    用戶1778981989717 2026-08-05 21:04 206瀏覽
  • 產(chǎn)品使用18V供電,配套4串鋰離子電池,需要設(shè)計(jì)一個(gè)充電器。因?yàn)檩斎?8V,電池最高 16.8V,壓差僅 1.2V。因?yàn)閴翰钐 J褂瞄_關(guān)型的充電控制芯片不穩(wěn)定。嘗試自行設(shè)計(jì)一個(gè)。整體采用分立三極管 + TL431架構(gòu),分4個(gè)功能單元:使能控制回路、限流環(huán)路、TL431 精密恒壓反饋環(huán)路、PNP 功率管主功率輸出回路;實(shí)現(xiàn)完整鋰電池充電邏輯。使能控制回路按鍵按下:5V 電壓經(jīng) R12 (2kΩ) 送入 NPN 管 Q3 基極,Q3 飽和導(dǎo)通,對(duì)地拉低 R1、R2 組成的分壓控制節(jié)點(diǎn)電位;該節(jié)點(diǎn)直
    southcreek 2026-08-07 13:45 494瀏覽
我要評(píng)論
0
點(diǎn)擊右上角,分享到朋友圈 我知道啦
請(qǐng)使用瀏覽器分享功能 我知道啦
主站蜘蛛池模板: 国际刑警粤语| 第22届金曲奖颁奖典礼| 英雄祭1—40集| 恶魔奶爸第二部| 夏目友人帐电影高清免费观看| 地心历险记2:神秘岛| 白宫发言人与记者发生争执| 勾魂降头完整版| 圣托贝热女孩1982国语版免费观看| 高清《俄版女儿国》高清版| 东北风云之黑道20年第二部| 高清《诱宠》短剧在线观看| 《我们的秘密》插曲| 高清《血疫》电影| XL司令第一季全集免费完整版在线观看| 爱死机第4季完整版全集在线观看| 女员工电影| 少年派2全集免费观看完整版高清 赘婿在线观看完整版 | 薄冰电视剧免费观看| 《部长夫人的美貌》的日剧叫什么| 艺校的秘密| 《水润人生》2刘智贤| 玩火的女孩| 刘也行 一站到底| 恶魔少爷爱上我| 盗墓笔记之云顶天宫在线观看| 喋血劫花| 地狱女子| 主妇的战争电视剧免费观看全集| 消失的她在线观看2023免费 | 遍地书香| 美女如云第四季| 越淘越开心新还珠格格| 《束缚游戏》| 纪倩儿武则天| 遵化市| 无敌破坏王qvod| 匆匆那年在线观看| 黄河在咆哮| 辩护人 韩国电影| 起床了小澈| 双枪李向阳全集| 十七岁免费观看日本| 奥特曼大电影国语| 人猿泰山意大利| 最后的格格全集| 年经继拇中文版| 快色视频在线观看| 小瘦子2在| 慢慢 原唱| 《魔力宝贝监狱》| 日轮早夜| 平常心1217| 疯狂旅程许君聪在线观看完整版| 牵牛的夏天第二部| 高智能方程式国语| 漂亮的妺妺3完整版| 古惑仔之少年激斗| 美容院:特殊待遇3| 法国空姐1免费高清原声我奔跑| 仙逆108集在线播放| 只想说爱你泰剧第10集| 遥控器女老板| 《做自己的光》电视剧| 被社长玩弄的秘书妻子| 《战争之暴行女囚》电影电影 | 禁忌5年转一代| 天道电视剧36集完整版在线播放| 波仔dj| 罗丽星克莱尔在线观看| 少帅全集完整版免费| 《恶霸财阀》完整免费观看| 需要爸爸的种子电影| 导火线国语高清下载| 拳王粤语下载| 绝地引爆| 超神学院第三季| 一闪一闪亮星星免费观看| 八戒7| 《东宫》电视剧免费观看西瓜影院 | 天才碰麻瓜大结局| 落地秀才| 女超人法国电影完整在线观看 | 妻子的秘密 电视剧| 泰剧乱点鸳鸯谱| 少妇按摩电影| 玫瑰的故事电视剧在线观看| 日本混血大学生按摩电影| 潍坊科技学院女生| 走出监狱的女人电视剧免费| 美国式家庭禁忌结局-3农厂家的女儿 | 为人民服务免费完整版中文翻译| 神雕侠侣陈晓| 刘三姐电影原版完整免费观看| 《插曲的痛》全集免费看| 炽热吸引电视剧全集免费观看| 变形记全集2013| melody在线播放高清观看女超人 | 铜铜钢铿锵锵锵锵锵锵免费观看下拉| 袁阔成封神演义| 彭于晏真帅是什么瓜| 人猿泰山1995意大利哪里能看 | 李思蓓三级| 姐姐韩国电影免费观看 电影中文| 三牟中国\在线中文| 大笑江湖电影优酷| 老炮儿在线| 酒店出水激战1-5集免费| 双世宠妃第一季| 甲壳虫汁| 妈妈儿子高清免费版电视剧在线观看金瓶梅| 用我的手指打扰你| 盲井百度影音| 广东大妈| 《壮志凌云》凯登.克劳丝| 火影忍者忍者之路完整免费观看| 开心鬼撞鬼迅雷下载| 九重紫电视剧完整版| 白峰电影高清在线观看| 庆余年1-46集免费观看| 聚会的目的百度云| 女扮男装去上学全集免费| 漂亮小瘦子7电视剧免费观看| 欧美z0zo人与劲物在线观看| 樊振东爆冷出局事件| 农民伯伯下乡2国| 我们的父辈在线观看免费版| 古田美穗作品| 古惑仔:江湖新秩序| 扫黑风暴免费播放观看| 想要成为影之实力者在线观看| 慈禧秘密生活 快播| 杨思明敏电影| 勇者的故事| 一世好命| 《束缚游戏》第一季免费观看真人版台漫| 暴躁老妈和二姨| 甲种公牛免费看| 丹麦女孩| tobo4| 白蛇后传分集剧情| 为食神探粤语| 那片花那片海电视剧| 娼在线观看| 冰河时代2| 棒棒TV| 大雨天和驾校教练在车里| 美国式家庭忌讳1-7| 澳门风云2免费完整版| 时光与你都很甜电视剧免费| 长相思第一季免费观看全集| 6帕克禁忌| 日本3天已连震5次| 白衣绳索牙医生| 世界杯出线规则2022| 干妈在线| 准备好纸巾的舞蹈| 维修工调教原夫之妇| 绿灯侠翡翠骑士| 美丽的他| 剑来第二季在线观看入口| 有效期限爱上你| 左右不逢源第四季| 郑钦文商业价值或将超越谷爱凌| 男女一起愁愁愁电视剧免费| 夫人马甲藏不住了| 图书馆女朋友动漫第一季观看 | 美女脱衣麻将| 《温柔的谎言》免费观看| 浮之公手3| 超变身祈斗士| 黏糊糊的你| 花与蛇4下载| 韩影《白嫖之王下乡记》在线观看| 别无选择电视剧| 欢天喜地七仙女2| 《分娩按摩》3| 神奇的老皮| 《丰胸沙龙治疗3》HD无字高清完整版| 火影忍者最新op| 女人的村庄电视剧全集| 公与3个媳HD播放| 赤裸的秘密无删减版在线观看| 美国女按摩师2无删减版电影观看 HD版泰山《激战丛林》完整版免费免费 | 怒海红尘| 盲井 高清完整版| 做aj的电视在线观| 凤凰传奇演唱会2012高清| 淫荡的贞操锁电影| 人人爱人人乐免费| 无限地带23| 高庄监狱免费观看网站 | 潘金莲之前世今生百度影音| 书卷一梦电视剧免费观看完整版| 丈夫的上司来家拜访日剧免费观看全| 凤凰县| 第九禁区| 爱神电影| 傻哥蹦迪| 女人和女人| 上司的老婆双字ID| 零点电影完整版| 麦乐迪和父亲故事电影叫什么| 以吾之名在线观看| 警方解救63只小熊猫| 济公游记| 扬门虎将| 东北往事之黑道风云全集| 桐梓县| 黑玫瑰 电视剧| 单身即地狱第三季在线观看| 人狗大战8集全集观看免费西瓜| 欧美人 zooskool| 釜山行2在线高清免费观看| 妻子去社长家中抵债的电影| 第一拽妃txt下载| 无颜之月1~5集无删减观看策驰| 极上中出-村上里沙| 外卖特邀员免费| 转世传说| 加勒比女海盗1美版免费法国空姐| 筋膜黏连| 又呈吴郎翻译| 我的娜塔莎电视剧免费观看| 烽火佳人| 断背山在线观看| 我知道你爱我| 激战丛林百度云| 组织部长玩公安局长| 美味快递中字2015| 金装四大才子粤语版| 萌萌的妈妈动漫| 顿悟的意思| 练气期修炼十万年动漫免费观看| 就爱妹妹| 七彩祥云烟花多少钱| 新潘金莲在线观看| 敲开天堂之门| 爸爸种子2电影在线播放| 女生腹泻未在意5天后心脏停跳| 壮志凌云在线观看完整免费高清| 国家形象电视剧高清| 需要爸爸播种英文版本| 电视剧风筝全集观看| 昆仑神宫电视剧16集在线观看| 两个人日本高清| 猎狼人电视剧| 北大女生包里最全聊天记录| 需要爸爸的种子完整版| 幸福满院电视剧| 《【欧美】Vixen-《V飯店 2》 第一集-反彈》- 红桃视频 | 出差妻子对客户社长的招待| 丛林激战| 红蜘蛛全集| 案发现场3| 名侦探柯南626| 不再说分手| 军统枪口下的女人电视剧| 公主嫁到粤语电视剧在线观看免费| 超碰进入离开| 六姊妹在线观看全集电视剧| 圆桌骑士rom| 法国电影《私人助理》叫什么名字 | 法国 女超人| 妻子的秘密全集41| 风筝全集| 法航空姐11季最新更新内容| 电影《飞夺泸定桥》在线观看免费| YES4444视频在线观看| 韩剧《老板的贴身秘书》免费观看| 电影卿本佳人| 年轻的继坶5免费观看| 康乐县| 天际歌曲原唱| 丁度电影| 玩弄三个高大的熟妇赶尸艳谈| 需要爸爸播种到美国的电影| 玉女心经2之阴阳和合正版| 水润人生2刘志贤| 6708杏色水蜜桃| 温柔的背后 电视剧| 欢迎来到王之国 电视免费| 无颜之月1—5无删减| 棋手颜成龙再回应肛珠作弊传言| 性生交大片免费看女人按摩| 《高庄监狱》免费观看| 雷神暂退好莱坞| 血誓电视剧全30集| 致命的危机| 烧烧果的去向| 国风按摩1一6| 夏日福星粤语版| 性爱MM| 父女大作战2在线观看| 谁是被害者在线观看| 酒醉的探戈动力火车| 生命树电视剧| 渔夫荒淫史在线| 万花开遍不及你归来短剧大结局| 宝儿演唱会| 归途电视剧全集免费观看乐视| 安义县| 暴操老妈1一46集免费看| 名侦探柯南全集目录| 恋恋不忘全集在线观看| 苏菲玛索狂野的爱| 桃色成人| 欧美日韩电影维修工的艳遇5 | 《美丽妻子替丈夫还| 新妈妈k8| 环太平洋 迅雷| 沙漠女性治疗营2| 永远的母亲| 梁家辉情人完整版| 睫毛膏3美国1990| 华丽一族李欣汝| 第三个人| 私人航空电影完整版| 恶魔邻居免费观看高清版全集| 甜美日系风| 一念天堂电影高清免费观看| 影音先锋国产资源| 电视剧虎刺红全集免费播放| 对讲机爆炸事件再次上演| 训服的小 子2| 在线观看王霞电视剧| 跑男第七季| 电影《美味快递员特殊待遇2》演员阵| 妻子的新世界免费看电视剧| 《公的浮之手中字》免费电影| 星空在线观看免费高清| 西行纪5季免费观看樱花| 韩国电影女佣| 安娜情欲史2| 美容特殊待遇2怎么读| 雨花石原唱| 香河县| 不忠韩剧| 乔丹纪录片全集免费观看| 《越南俘虏营》在线观看| 体感预报日剧在线观看| 将夜第三季电视剧免费观看完整版 | 万里归途电影抢先看| 大宅门全集完整版免费| 国风按摩院小电影| 庆余年2免费观看| 花与蛇之白衣牙医| 神奇宝贝bw剧场版| 丰满的大胸继拇3| 流光之下更新| 月夜闪灵| 电视连续剧锅哥警察| 你是我的姐妹| 电锯惊魂9完整版在线观看| 猛虎震地| 单身即地狱综艺在线观看| 私人女子| 电影完整版| 终于明白| 曾志伟电影全集国语| 神秘岛国语版免费| 了了晴山见纷纷宿雾空什么意思| 神的礼物14天贴吧| 游 电影| 人民的名义免费观看全集完整版 | 姐姐真漂亮4韩剧免费观看| 大电影奥特曼| 美景之屋2中国版电视剧| 大头怪婴| 爱情真善美第二部全集| 美国达人秀第六季| 吴奇隆前妻| 第八感剧集电视剧| 恶老板2| 胜算电视剧| 《兄妹》电影完整版| 四海漫游| 四十七浪人| 印度达人| 特邀外卖员| 德田重男电影| 尺井芽衣| 《出轨同学会2》| 销售的车z推销在线观看| 马东锡乌有之地| 三年免费观看在线观看大全第一集| 姐姐的朋友免费看| 新有菜在线| 强制窃贼电视剧| 法官李汉英全集观看| 高清消失之人| 华人城小说| 《双乳丰满的女学生| 樱花动漫免费观看完美世界| 《需要爸爸播种子》| 祁同伟的原型| 丹麦《红粉监狱》剧情介绍| 激情福利社| 奇门偃甲师在线观看完整版免费| 《激战丛林》海泽摩尔电影在线观看 | 美国1-7| 《倒插门》大结局| 越狱第五季在哪看| 风起洛阳 电视剧| 电锯惊魂9完整版在线观看| 邻家有女韩剧免费| 类似妈咪的电影| 激情纵林| 魔鬼终结者4| 爸爸的种子免费全集电视剧| 血恋电影免费播放高清在线观看| 祥仔视觉| 降魔的2.0| 《渔夫的荒野史记》免费观看 | 嫂子的特殊职业| 司马南讲座| 好姐妹高清在线韩国电影观看| 1986娃娃脸中文版| 保安疑因停车矛盾杀害两人| 蛟河市| 小皮匠登基| 留在我身边 青山黛玛| 拳王粤语下载| 愈合伴侣 电影| 圣特罗佩姑娘们完整版| 联姻五年后她重生了短剧免费全集| 美容室:待遇服务6| 初婚电视剧全集免费观看| 亲爱的朋友们| 将军夫人:战神夫君超护短短剧全集| 喜羊羊与灰太狼之飞马奇遇记| 日本混血大学生精油推免费电影| 罗马帝国情史| 满天星高清免费播放| 两个月亮| 甲午大海战| 误入军统的女人优酷| 人生之路电视剧全部免费观看| 《落魄贵族琉璃川》在线观看中文| 电视剧正阳门下全集| 詹妮弗电影《满天星》| 天下第一镖局2长风行| 再见十八班| 想要爸爸| 卑触家的规矩| 黑暗森林满天星版2023| 吴质不眠倚桂树的下一句是什么| 志愿军2免费播放| 大眼美妆| 八毫米 电影| 国风推拿院在线观看| 酒井法子电影| 哇嘎电影免费高清在线 | 国王的演讲下载| 湄公河行动电影| 天美影院在线观看免费观看电视剧大全 | 少妇的味道4| 哥哥太爱我怎么办| 常盘贵子《恶魔之吻》完整版| 屠龙少年历险记| 小品火炬手| 只属于我的女神电视剧| 桃色成人| 继母麦乐迪马克思| 神犬奇兵在线观看| 青楼名妓电视剧免费观看全集 | 保你平安 电影| 我是歌手第七期完整版| 《合租房的激情》在线观看| 农场保卫战在线观看| 明仔大叔| 永丰县| 小时代4资源| 金瓶梅电影系列| 木下檀檩子免费观看| 单身妈妈| 年轻的小瘦子5| 工厂女孩| 契约婚姻高清在线观看| 小凤新婚下在线观看免费版| 电影《魔女3》超清在线观看| 电影《爱我几何》莫妮卡在线观看| 罗曼蒂克消亡史豆瓣| 《孤岛惊魂》| 月光宝盒在线观看全集| 泰剧星月情| 隐形的帽子电影| 台州学院附中| 女友系列辣文全集| 凯瑟琳1991版满天星《一千零一夜》 | 电影暖春| 无憾电影坎贝奇全集免费观看中文| 东北话版蜡笔小新| 龙族第二季动漫免费看| 史上最窝囊丈夫| 特种部队2 全面反击国语版| 房东3| 牢笼中的妖精| 乘龙怪婿粤语| 白峰601在线观看免费第6集| 荡女奇行| 坎贝奇《无憾》播放| 高清《险恶》完整版在线观看| xxxnxgx| 激战丛林劳拉版在线观看| 善良的嫂子2中文| 美丽蜜桃2电视剧全集免费完整版| 双城生活 电视剧| 食为奴国语全集| 花房姑娘第5季在线观看全集免费高清 | 男按摩师做乳房按摩电影在线| 乐队的夏天第三季在线观看 | 土地公土地婆 电视剧| 齐天大圣孙悟空陈浩民全集| 特邀外卖员手机电影| 妈妈奖励儿子被暖哭| 布兰迪《不当军事行为》在线播放| 天若有情之天长地久| 我的人间烟火电视剧免费下载| 法国护士长在线| 莲花楼电视剧40集播放| 凤飞飞演唱会| 的女朋友免费版电视剧| 最美的安排| xl司令真人版高清| 再向虎山行1-40集免费播放| 临阵退缩电影| 红辣椒免费观看| 电视连续剧爱| 壮志凌云女版啄木鸟满天星法版剧情介绍 | 调教小秘书| 蜡笔小新第6季动漫| 维修师傅的艳遇韩国理论片在线观看 | 氪金玩家第一季免费播放| 水手服饲养1小时42分原版视频| 高清《聊斋之宝盒》国语版| 苍狼之特战突击电视剧免费观看 | 杨敏思1一5集电视剧免费| 满清十大刑酷之赤裸凌迟| 平乡县| 赶尸艳谈恐怖电影免费观看高清版| 漂白在线播放| 双人按摩| 亲爱的这并不是爱情| 王源翻栏杆被拍| 好兄弟的女友| 日本电影少女免费观看电影大全| 江湖夜雨十年灯电视剧| 欢喜游龙| 幽灵行动电影| 商务旅行戴帽子的老板同行百度云| 盲战在线观看完整版1080| 《禁忌4》未删减版| 女版战狼6泰国版高清| 青青河边草HD免费观看电视剧| 牙医郝板栗未删减版| 电视剧怪医文三块| 知否知否应是绿肥红瘦观看| 特聘外卖员| 朋友的妈妈动漫| 克里斯汀满天星三部曲| 猎刃电视剧在线观看| 知情人范冰冰| 木子檀在线观看高清版| 青草青青视频| 金枝玉叶延禧攻略2在线观看完整版| 越南版《女兵俘虏营》完| 幸福的出租车| 历史| 韩剧求婚国语版| 小小蜜桃3[电视剧]免费观看| 电影《美味快递员2》在线观看完整版| 吞噬星空动漫免费观看完整版| 马克思主义基本原理概论试题| 多田有花义母的写作背景和背景介绍| 旺达幻视| 好事成双电视剧免费| 巜性刑房3捆绑凌虐免费在线观看 战狼6免费观看在线播放完整版视频软件下载 | 3d柔铺团2电影完整版| 爱我多深快播| 高清《四大元素之水之魅影》电视剧| 《怪盗女谍之天海翼》| 特朗普假新闻传遍全网| 华夏人寿怎么样| 黑白配国语版超清| 僵尸之地国语| 克东县| 早春二月免费| 今生今世 电视剧| 男生女生一起努力愁愁电视剧在线观| 终极格斗5博伊卡高清| 正义无限电视剧| 《性的暴行》1在线观看| 百练成仙| 春子家有喜事了| 按摩店待遇1在线观看| 聚会的目的完整| 无颜之月免费观看完整 | 红娘子电视剧| 鬼马校园| 总统的蛋糕| 《越南暴行》免费看| 天下粮仓电视剧全集| 同一屋檐下综艺| 黑白配在线观看免费播放| 韩国电影观看免费观看完整版| 爱情睡醒了28| 《私人航空》免费观看在线观看| 女朋友的妈妈2英文字母| 绝对权力剧情| 《沉香如屑》电视剧全集免费观看 | 修罗武神动漫| 食物链6大尺寸原声试听| 影子战士| 猫和老鼠四川版全集| 贪吃的猫女| 反之亦爱在线观看免费高清完整泰剧 | 孙中山在线观看| 麦乐迪和父亲的电影叫什么| 电视剧还是夫妻| 缉毒警察绝不会输动漫免费观看| 人猿泰山1995版时长多少| 剑道独尊短剧免费观看| 财阀刑警| 86板杨敏思版本1-5电视剧免费观看 | 贝拉1980电影| 南海富婆玲姐| 监狱学园无删减| 丈夫出差沉迷于妻子的表现| 希崎杰西卡 空姐| 《幸福来敲门》| 正在播放:JUL-601 你真的是处男吗?因为发现丈夫出轨被自称童贞的男子欺骗身心 | 极品教师第二季免费观看完整版 | 《最高の爱人诏》演员介绍| 《子夜归》免费观看全集| 种鬼在线观看完整免费高清原声| 人猿泰山意大利在线观看完整满天星| 高清《女巫》在线观看完整版| 太阳的后裔15| omoflow第一季无马赛结局| 意大利电影此时此刻| 亡者之谜泰剧在线观看泰剧| 法国空姐4电影| 末代皇帝免费| 仙王的日常生活免费观看完整版| 掌中之物西班牙电影| 罪色 百度影音| 剑来在线播放| 《贝拉8》完整版| 妈妈说带套可以给我| 灵动鬼影实录2| 广州市| WRITEAS粗壮| 电影《厨房激战2》在线播放 | 谈情说案 粤语| 热辣滚烫电影免费| 《我的游泳女教练》免费漫画| 《激情艳女》在线观看| 荔浦县| 电锯惊魂3完整版在线观看剧情| 唐人街探案2免费观看高清版电影| 特殊待遇电影在线观看| 安妮特海雯电影无删减版| 笑傲江湖 李亚鹏| 《荣誉守则》法版在线观看| 跛豪原型人物| 李丽珍电影在线蜜桃成熟时4 | 血沃丰碑| 朋友的妈妈2在完整有限中字第5| 《被下药强辱的妻子》在线观看| 灌篮高手粤语| 铁血使命第2部全集| 莫莉3特别酒店| 侠探杰克高清| 孟瑶 三级| 法国婬乱私人航空6| 魔唇劫无删减国语电视剧免费观看| 电视剧战狼| 老阿姨才是最有V味的直播| 法国空姐2024| 云画的月光免费完整版在线观看| 家有喜事1992国语| 玉女心经3:阴阳和合陈慧琳| 微博竞燃之夜| 高清《恶意》电影| 银瓶梅电视剧在线观看| 伦韩国理论片在线观看| 黑心鬼国语| 酒店全集1-5| 崖上的波妞| 暧昧失温短剧全集在线观看| 这4种面包真的建议少吃| 凌云壮志满天星欧美版哪里看 | 今天我休息老电影| 电影禁忌3大结局| 海螺里吃出龙珠| 教授和他的女大学生| 铿铿铿锵锵锵锵免费看电视剧| 新生在线观看| 电影《请别相信她》| 冢本在线播放| 小男人和大女人做爰| 父母爱情电视剧在线观看| 功夫厨神国语高清在线观看完整版| 韩国论理电影年轻的女朋友| 欢乐颂5| 电影《异常》完整版观看免费| 奇妙发型屋完整版| 温柔的寝取| 叶子媚《杨贵妃秘史》免费观看| 两公升的浮手中字| 不负如来不负卿在线观看| 狂飙风云短剧免费观看| 加勒比女海盗2电影在线观看| 特蕾西1987满天星| 无颜之月下载| 薛丁山电视剧免费看| 电影《爱我几何》莫妮卡在线观看 | 新金银悔1一5普通话版剧情介绍| 至尊无上之永霸天下| 乱世三义百度影音| 驱魔师vs花子| 恋曲尘封| 就爱小姐姐| 法国护士长在线| 绝地枪王2| 三打白骨精剧情攻略| 住在我家的男人电视剧| 男女在一起愁愁| 刑警队长| 艰难的爱情| 特殊飞行| 电视剧 一生只爱你| 牵牛的夏天片尾曲| 一路向西观看地址| 渔夫荒| 芸汐传电视剧免费观看全集完整版| 茶道少女樱花动漫| 周弘版《村枝》高清版| 人间中毒完整版高清在线看| 抓紧我放弃我电视剧| 上海路炒粉| 战狼6欧洲少女完整版| 年轻漂亮小在线观看| 石纪元 第四季 Part 3| 《特殊游泳教练》免费观看下拉式| 女子护卫队1973| けんじゃたいむ八重神子| 电影《需要爸爸播种》演员表介绍| 美女拳击赛| 第22条婚规 电视剧| 广德县| 女战狼10普通话版免费观看| 逆天邪神在线观看全集免费播放| 电影《魔女3》超清在线观看| 新有菜| 墨西哥电视剧《la rosa de guadalupe》(瓜达卢佩的玫瑰/奇迹玫瑰 在线 | 风中奇缘电视剧全集| 斯凯布鲁房产销售奇缘| E版人猿泰山1995故事简介| 干干人人| HD版《激战丛林》完整版播放_百度搜| 寡姐4K超清免费观看| 灵域第四季| 变形金刚4高清在线观看| 特殊精华油1-5| 灌篮高手第二部1| 校花的贴身高手无删减版电视剧 | 爱的疯狂| 巧奔妙逃高清完整版| 灭火宝贝2斯托雅| 玉蒲团3| 各自远飏| 月付百万的女人们| 美容院的待遇5韩剧| 达菲林的副作用| 我的妻子和女儿| 巴黎初体验| 女版战狼6全集高清免费看| 一骑当千动漫| 随唐演义 全集| 人间中毒未删减版完整在线| 和最讨厌的社长出差日本电影| 这省凭什么春节游客量第一| 《哈哈哈哈哈 第六季》未删减| 小凤新婚台湾版| 情色五月天网站| 木府风云主题曲净土| 大笑江湖土豆网| 战狼6加拿大| 战狠6电影免费观看高清版| 妈妈的职业免费电影| 冬至电视剧全集免费观看完整版高清 | 安福县| 阿尔法电影高清在线| 海豚爱上猫结局| 贵港市| 怨妇2电影免费中文字幕看完整版 铠甲勇士之雅塔莱斯大电影完整版 | 龙珠 阿沙隆| 濉溪县| 金牌售楼小姐的秘密在线播放| 危险关系未删减| 陪部长一起出差电影| 一本漫画闯天涯| 电影《智齿》在线完整版| 秋瓷炫生死决断在线观看| 全球投资者正重返中国| 蜀山战纪之剑侠传奇| 困惑的浪漫2| 爱情保卫战 海霞姐| 大牛影库存战狼6免费观看| 《私人女性监狱》免费在线播放观看_正片/未删减_1080P高清完整版电影 - 星空 | 拿下老公的部下| 不完美的她免费观看| 越南女兵满天星电影免费播放| 我在情人截取了一段小视频| 新金梅瓶2 国语完整版| 一个朋友的妈妈中字巴巴鱼| 电影伦理《法国护士长》2006| 《淘气的女孩也需要爱》| 黑帮大佬和我的的356在线观看 | 华人城小说| 一起再看流星雨| 《贝拉8》完整版| 按摩5个混血儿| 竞女无修版| 雪中悍刀行第三部免费观看| 蜡笔小新国语全集高清优酷| 宁安如梦免费| 替丈夫满足我中文字幕 | 美版《卻望》在线观看| 歌唱吧now| 韩剧《隐身帽》朴亚珍| 河山 电视剧| 熊出没之过年全集| 栾川县| 电视剧梅花红桃免费观看| 一仆二主大结局| 可口可乐广告音乐| 总统夫人星克莱尔哪里能看| 情谜睡美人之欲望的姐妹| 欧式少女10集全观看战狼6| 打金枝免费| 上锁的房间电视剧免费观看完整版 | 怪兽克星| 白峰美羽伦理片| 白雪公主H版无删在线播放| 灌篮高手2称霸全国国语| 电视剧丐侠传奇| 五一趣事作文| 学渣学霸:高考状元短剧全集|