一、介绍
本文介绍英特尔®信任域扩展(英特尔®TDX)。
一种部署硬件隔离的虚拟机(VM)的架构技术,称为信任域(TD)。Intel TDX旨在将TD虚拟机与主机平台上的虚拟机管理器(VMM)、管理程序和其他非TD软件隔离开来。Intel TDX可用于通过帮助保护TD免受各种软件攻击来增强机密计算,这也有助于减少TD可信计算基础(TCB)。Intel TDX增强平台用户对数据安全和IP保护的控制、还可以增强云服务提供商(CSP)提供托管云服务的能力。
二、技术说明
Intel TDX是使用Intel虚拟机扩展(VMX)指令集架构(ISA)扩展、Intel全内存加密多密钥(Intel®TME-MK)技术和CPU认证软件模块的组合构建的。
英特尔TDX解决方案可以为TD提供以下功能:
内存和CPU状态机密性和完整性,有助于保护敏感的IP和工作负载数据免受大多数基于软件的攻击和许多基于硬件的攻击。
远程证明使依赖方(工作负载的所有者或工作负载提供的服务的用户)能够在提供工作负载数据之前,确定工作负载正在位于TD内的启用Intel TDX的平台上运行。远程认证旨在允许服务的所有者和消费者以数字方式确定他们所依赖的TCB版本,以帮助保护他们的数据。
Intel TDX还增强了TD对使用物理访问平台内存的有限形式攻击的防御,例如离线、动态随机存取存储器(DRAM)分析(例如冷启动攻击)和DRAM接口的主动攻击,包括捕获、修改、重新定位、拼接和混叠内存内容。Intel TDX不会通过物理攻击来防御内存重放。
图1 TDX的信任边界
VMM仍然是资源管理器,TD没有拒绝向VMM提供服务的权限。
为了帮助执行TD的安全策略,引入了一种名为安全仲裁模式(SEAM)的CPU新模式,以托管英特尔提供的数字签名但未加密的安全服务模块。Intel TDX模块托管在由SEAM范围寄存器(SEAMRR)标识的保留内存空间中。在该设计下,CPU只允许在SEAM内存范围内执行的软件访问SEAM内存,所有其他软件访问和从设备到该内存范围的直接内存访问(DMA)都被中止。
图2 SEAM模块流程
SEAM内存系列在XTS模式下使用AES提供加密机密性保护,具有短暂的128位内存加密密钥,可以在两种可用模式之一下运行,以实现内存完整性保护(以启用各种内存配置)。内存完整性可以通过(默认)加密完整性保护方案或逻辑完整性保护计划来强制执行。密码完整性方案使用基于SHA-3的消息认证码(MAC)(28位),有助于防止主机/系统软件访问,并检测来自软件(如rowhammer)的状态篡改和一些硬件攻击。逻辑完整性保护方案旨在仅防止主机/系统软件访问。
为了安装英特尔TDX的模块,提供了一个新的英特尔®可信执行技术(英特尔®TXT)认证代码模块(ACM),称为SEAM加载器(SEAMLDR),以帮助验证英特尔TDX模块上的数字签名并将其加载到SEAM内存范围中。根据设计,SEAMLDR将模块的测量和安全版本号(SVN)记录到硬件测量寄存器中,然后响应VMM调用SEAMLDR ACM加载模块,加载到SEAM内存范围中,该模块没有持久性。云服务提供商还可以在其服务器上加载的可接受版本的Intel TDX上应用自己的安全策略。
为VMM引入的SEAMCALL指令旨在将CPU置于SEAM VMX根操作中并调用该模块。Intel TDX模块旨在为VMM提供一个接口,以创建、删除和调度TD的执行。Intel TDX模块充当受信任的中介,帮助实施TD的安全策略、操作和必要的缓解措施。
作为TD创建的一部分,VMM为TD代码、数据和TD相关元数据结构(如虚拟机控制结构(VMCS)和状态保存区域)提供内存页,用于在TD不执行时保存TD状态。
Intel TDX使用Intel®64体系结构(包括VMX体系结构)来帮助管理TD。Intel TDX模块旨在使用VMRESUME和VMLAUNCHVMX指令执行SEAM-VMX的VM条目、非根操作以执行TD。
Intel TDX模块有助于确保TD活动的执行控制不允许VMM或其他不受信任的实体拦截TD对TD分配的资源(如控制寄存器、特定型号寄存器(MSR)、调试寄存器、性能监控计数器、时间戳计数器等)的访问。TDX模块旨在为TD实施安全策略。这种策略的一个例子是,在切换TD时使用间接分支预测屏障(IBPB)的模块,以帮助防止TD间接分支预测受到先前执行的TD中代码的影响。
如果TD在创建时被授权使用调试和性能监控功能,TD将充分利用这些功能。如果未经授权,这些功能将在TD执行时被禁用。TD的调试和性能监控属性包含在TD认证报告中。
Intel TDX旨在允许VMM限制出于各种原因(如虚拟化硬件功能)提供给TD的功能。Intel TDX可以限制VMM的功能,以隐藏或允许TD使用该功能。如果VMM选择允许TD使用该功能,Intel TDX会试图防止VMM在TD访问时修改CPUID、功能MSR和控制寄存器等指令提供的枚举和信息。TD的目标是可靠地使用这些硬件指令,而不需要特殊的操作系统修改,但具有与传统VM中的软件所期望的类似性能。
Intel TDX旨在对TD实施执行控制,以执行TD中的某些指令,如IN/OUT、HLT、RD/WRMSR等,然后对TD操作系统造成虚拟化异常(#VE),以便TD操作系统可以安全地模拟这些指令,用于TD软件。
其目的是,响应SEAM VMX非根操作中的某些指令和事件,VM退出以进入SEAM VMX根操作。提供TDCALL指令,通过启用VM退出模块来帮助TD呼叫服务。
当TD退出模块时,该模块旨在将寄存器(例如,通用寄存器、控制寄存器、MSR、调试寄存器、性能监控计数器、扩展状态寄存器和与TD相关的其他CPU状态)保存到为该TD分配的状态保存区。然后,该模块在将执行控制返回给VMM之前对这些寄存器进行清理,以帮助防止TD状态泄漏。当TD随后恢复时,TD的CPU状态将由模块从该状态保存区域恢复。
为Intel TDX模块引入了SEAMREPORT指令,以帮助创建证据结构(报告),该结构通过MAC加密绑定到平台硬件。SEAMREPORT创建的报告结构随后有助于生成远程证明报价。
引入SEAMRET指令,使模块将执行控制返回给VMM。
Intel TDX 1.0旨在为TD提供以下功能:
A.内存机密性和完整性
B.地址转换完整性
C.CPU状态机密性和完整性
D.安全中断和异常交付
E.远程证明
未来的更新将为英特尔TDX模块带来新功能,即:
F.实时迁移
G.TD分区
H.VM保留更新
PS:后续对部分功能进行解释。
其实主要就是对着白皮书翻译一下,全是字我看着都头大,希望后续硬件到手后可以实操并简化文字内容,少一点理论多一点实操......