1.Intel TXT
可信执行技术(Trusted Execute Technology,TXT)是Intel公司的可信计算技术,主要通过改造芯片组和CPU,增加安全特性,通过结合一个基于硬件的安全设备—可信平台模块(Trusted Platform Module,TPM),提供完整性度量、密封存储、受保护的I/O、以及受保护的显示缓冲等功能,主要用于解决启动进程完整性验证和提供更好的数据保护。
TXT 是基于 cpu 实现的动态信任根,取代基于BIOS 的静态信任根。
Intel SGX 被设计用于保护应用程序的机密信息,使其抵御恶意软件的攻击,即使在应用程序、操作系统和BIOS都不可信的情况下也是如此。哪怕攻击者获得了整个平台的控制权,应用程序的机密信息依然可以收到保护。
sgx的作用主要是在大型平台里保护微量敏感数据和关键代码的,另外还提供了对这些代码和数据的远程证明功能。
包含了Intel SGX 技术的应用程序分为两个部分,可信部分和不可信部分。当应用程序需要处理机密时,它会创建一个位于可信内存的安全区,然后调用可信函数(它是由开发者创建的、专门在安全区内执行的函数),一旦这个函数被调用,应用程序就会在可信区域执行并明文访问安全区内的代码和数据,除此之外,试图从安全区外访问安全区内存的行为都会被处理器拒绝,即使是系统特权用户的行为,这种机制使得安全区内的机密不会被泄露。当可信函数执行完毕后,安全区内的数据依然保留在可信内存中,而应用程序返回到不可信区域继续执行,并且失去了对可信内存的访问权限。
总之,一个是关注可信计算,一个是关注机密计算。
AMD SEV、兆芯-TCT、海光CSV(China Security Virtualization)、
2.TXT 技术原理图
Intel TXT依赖于可信平台模块(Trusted Platform Module,TPM)来保存软件的指纹信息,每次软件启动时都会Intel TXT都会检测并对比这些指纹信息是否一致,从而判断是否存在风险。
Intel TXT引入了两个TCG概念:静态信任链(Static Chain of Trust)和动态信任链(Dynamic Chain of Trust),如下图所示。静态信任链度量平台配置,动态信任链度量系统软件、软件配置及策略。对于Intel TXT而言,信任根(Root of Trust)就是支持TXT技术的Intel CPU。
VT-d 是 Intel 支持 IO 虚拟的虚拟化架构版本
3. SGX 技术原理图
4. AMD SEV
SEV 是由 AMD 提出的安全虚拟化Secure Encrypted Virtualization技术。主要有三个核心技术:
- SVM,虚拟化技术。
- SME,内存加密技术。
- SEV,虚机内存保护技术。
SVM 即 AMD Secure Virtual Machine的缩写。这是由 AMD 提供的虚拟化技术,用来 X86 上支持基于硬件的虚拟化技术,通过硬件提供的辅助加速功能,可以有效提高虚拟化性能。为了支持虚拟化技术,AMD 虚拟机框架做了以下设计:
提供VMM(即Hypervisor)和Guest(即虚拟机)之间的快速切换机制。
- 拦截虚拟机中特定指令和事件的能力。
- 对内存提供外部(DMA)访保护。
- 辅助中断处理和虚拟中断(Virtual Interrupt)支持。
- 对属于Guest和Host(宿主机)的TLB使用标签来减少虚拟化的开销。
SME是 Secure Memory Encryption的缩写。AMD 在 DRAM 的控制器中添加了加解密模块,用来控制内内存数据的加密和解密。
SEV (Secure Encrypted Virtualization)是在 SVM、SME 的基础上对虚拟机进行保护提供的安全增加功能,主要完成对虚拟机内存数据的保护。
将主内存加密功能与现有的 AMD-V 虚拟化体系结构来支持加密的虚拟机。 加密虚拟机不仅可以让虚拟机免受物理威胁,还可以免受其他虚拟机甚至是 hypervisor 本身。 因此,SEV 代表了一种新的虚拟化安全范例,特别适用于虚拟机不需要完全信任其主机的 hypervisor 和管理员的云计算系统。 与 SME 一样,不需要修改应用程序软件即可支持 SEV。
可以认为,AMD-V 表示AMD 虚拟化体系机构,SVM 表示 AMD-V 中的一个实现;
AMD Secure Processor 可能是一个 Arm core?
AMD SEV (Secure Encrypted Virtualization) 是一种基于硬件的虚拟化安全技术,它可以保护虚拟机内存的机密性和完整性。SEV 启动流程如下:
-
启动 Secure Processor (SP):SP 是一个与主处理器分离的硬件模块,它负责管理和执行 SEV 相关的安全功能。在 SEV 启动过程中,首先需要启动 SP。
-
启动主处理器:主处理器启动后,会检查是否支持 SEV 技术,并将 SEV 相关的初始化信息传递给 SP。
-
初始化 SEV:SP 接收到来自主处理器的初始化信息后,会根据这些信息初始化 SEV 相关的硬件和软件。这些信息包括密钥、证书、策略等。
-
创建 SEV 加密上下文:SEV 加密上下文是 SEV 硬件为虚拟机创建的一组加密密钥和安全策略,用于保护虚拟机内存的机密性和完整性。当主处理器要创建一个新的虚拟机时,它需要先向 SP 请求创建一个 SEV 加密上下文。
-
加载虚拟机:当 SEV 加密上下文创建完成后,主处理器会将虚拟机的内存和状态加载到该上下文中。此时,SEV 硬件会自动对虚拟机的内存进行加密,从而保护其机密性和完整性。
-
运行虚拟机:虚拟机运行时,所有访问其内存的操作都会被 SEV 硬件拦截,并进行加密和解密操作。这样可以防止恶意代码对虚拟机内存进行窥探和篡改。
总的来说,SEV 技术通过硬件加密和安全策略来保护虚拟机内存的机密性和完整性,从而提高虚拟化环境的安全性和可信度。
5.业内框架
参考
皮格马利翁效应心理学指出,赞美、赞同能够产生奇迹,越具体,效果越好~
“收藏夹吃灰”是学“器”练“术”非常聪明的方法,帮助我们避免日常低效的勤奋~