可信执行环境之AMD内存加密技术概述

VSole2022-12-20 09:53:24

一.  引言

可信执行环境(Trusted Execution Environment,下称TEE)是目前主流隐私计算技术之一,其通过软硬件方法在中央处理器中构建一个安全的区域,保证其内部加载的程序和数据在机密性和完整性上得到保护[1]。基于硬件的TEE使用硬件支持的技术为代码的执行和环境中数据的保护提供了更好的安全性保证。目前主流TEE方案有x86架构的Intel SGX技术、Intel TDX技术、AMD SEV技术及ARM架构的TrustZone技术等[2]。

本文将简单介绍包含AMD SEV所采用的内存加密技术[3],包含安全内存加密(Secure Memory Encryption, SME)和安全加密虚拟化(Secure Encrypted Virtualization, SEV)两个部分。

二. 安全内存加密(SME)

简单来说,SME主要通过一个加密引擎对进出内存的数据进行加解密来实现。AMD在其芯片中配有内存控制器,控制器内包含高性能的AES加解密引擎。如图1所示,向内存中写入数据时,该引擎执行加密,而在从内存中读取数据时,该引擎执行解密。AES所使用的密钥会在每次系统重置时随机生成,存储在专用的硬件寄存器中并由AMD安全处理器(AMD-SP)进行管理,不会被CPU上的任何软件所访问也不会暴露在CPU芯片之外。

图1 内存加解密示意图

内存页加密的控制是由操作系统或虚拟机管理器的负责页表管理的软件进行控制。其使用物理地址中的第47位,也称C-bit来标记是否加密该页。如图2所示,当C-bit置为1时,表示应加密该页,则对该内存的访问由AES引擎自动进行加密与解密。反之则不进行加解密。

图2 加解密控制示意图

对于SME的使用,可分为全内存加密与部分内存加密两种。对于全内存加密,即设置所有内存的页表项C-bit为1,便可实现全内存加密,此时可以防止攻击者直接拿走内存模块后提取其内容,同时也可以防止冷启动、内存接口窥探等攻击。对于部分内存加密,其可以选择只加密部分内存区域而不是全部,可以只对敏感数据提供加密保护,相比于全内存加密而言灵活性更高,并且可以为加密与非加密的工作负载提供隔离,降低性能影响。

此外,针对操作系统或虚拟机管理器不支持的情况,SME还支持一种特殊的更简单的模式Transparent SME(TSME)。在此模式下,无论C-bit如何设置,所有内存都是加密的。但是在使用TSME模式时,其他内存加密特性均不可用。

以上便是对安全内存加密技术原理的简单介绍,下面我们将重点介绍安全加密虚拟化技术。

三. 安全加密虚拟化(SEV)

3.1  

技术架构

SEV是AMD-V技术的扩展,其支持使用一个虚拟机管理器控制并运行多台虚拟机。SEV硬件通过ASID标记虚拟机的代码与数据。在虚拟机的整个运行周期中,ASID在内存中保持不变,保证了虚拟机数据能被正确识别并且不会被系统中其他软件访问。当数据写入或读出内存时,则由AES加密引擎使用ASID所关联的密钥对数据进行加解密。如图3所示,每个虚拟机都通过ASID仅与自己的加密密钥相关联,其他虚拟机或虚拟机管理器只能访问加密后的数据,使得虚拟机之间、虚拟机与虚拟机管理器之间具有强隔离性。

图3 SEV架构

3.2  

内存加密

与SME一样,SEV也是通过标记C-bit来控制页表是否被加密。但在SEV中,虚拟机可以选择其想要私有的数据内存页并通过标准CPU页表完成。对于虚拟机想要保密的内存数据,使用虚拟机的密钥进行加密;而对于与其他虚拟机或虚拟机控制器的共享内存中的共享数据,则使用虚拟机管理器的密钥加密。此时SEV虚拟机通过共享内存进行通信,而将其他内存使用密钥进行加密,保障其机密性。

3.3  

密钥管理

从上面的介绍中可以看出,SEV的安全性依赖于密钥的安全性,若密钥泄露则虚拟机中的加密数据不再安全。为保护密钥安全,AMD-SP中运行的SEV固件提供了一个安全的密钥管理接口来实现。虚拟机管理器使用这个接口来启动虚拟机,并执行正常的虚拟机活动。

为保护虚拟机的安全性,SEV固件需要保证平台的真实性、虚拟机启动的认证和虚拟机数据的保密性。对于平台的认证,可通过其身份密钥来证明。该证明由AMD和平台所有者共同签署。启动认证则是向虚拟机所有者证明启动过程时安全的,SEV固件向虚拟机所有者提供与SEV相关的虚拟机状态的签名,以验证虚拟机是否处于预期状态。详细认证过程如图4所示,用户向云系统提供虚拟机镜像,SEV固件启动虚拟机,并返回固件、内核等的度量值。用户验证度量正确后,向虚拟机提供机密信息来允许虚拟机继续启动。

图4 认证过程示例

虚拟机的机密性则是通过内存加密密钥的机密性来保证,SEV密钥管理接口不允许内存加密密钥以及其他任何SEV相关状态在未正确认证的情况下从固件中导出,可以防止虚拟机管理器获取密钥并窃取虚拟机中的数据。

四. SEV应用场景

4.1  

云上应用场景

随着云计算的发展,各行各业对云的使用率不断提高,对云的需求不断增加。然而云基础设施或人员并不总是可信的,多个用户之间的共享硬件同样可能会带来安全问题。而使用SEV则会为云上虚拟机提供更好的安全隔离,且加密内存可以防止云服务商中的恶意分子窃取数据。

4.2 

 安全沙盒

SEV是围绕安全沙盒环境的理念构建的,沙盒像虚拟机一样拥有自己的磁盘和操作系统,在沙盒内运行的软件不受系统上其他软件。因此SEV可以用于创建安全的沙盒执行环境,目前比较典型的应用便是将SEV与Kata容器相结合成为机密容器。由于Kata是通过虚拟化技术实现轻量级沙盒为容器提供隔离性,将其沙盒与SEV相结合便可使容器运行在TEE中,为容器运行提供更高的安全性。

五. 总结

SEV代表了一种新的虚拟化安全范例,与传统计算系统相比,不同级别上执行的代码是隔离的,任何一方都不能访问另一方的资源,为低权限代码提供了安全性。加密虚拟机不仅可以让虚拟机免受物理威胁,还可以免受其他虚拟机甚至是虚拟机管理器本身,适用于不需要完全信任主机的虚拟机管理器和管理员场景。未来我们将继续关注相关技术的研究,我们将在下一篇介绍其他TEE方案。

虚拟机密钥管理
本作品采用《CC 协议》,转载必须注明作者和本文链接
虚拟机管理器使用这个接口来启动虚拟机,并执行正常的虚拟机活动。该证明由AMD和平台所有者共同签署。启动认证则是向虚拟机所有者证明启动过程时安全的,SEV固件向虚拟机所有者提供与SEV相关的虚拟机状态的签名,以验证虚拟机是否处于预期状态。因此SEV可以用于创建安全的沙盒执行环境,目前比较典型的应用便是将SEV与Kata容器相结合成为机密容器。
随着云计算的不断普及,云平台安全问题日益凸显。云平台资源共享、边界消失、动态变化等特点,使得传统基于边界的旁路式、外挂式防御手段无法有效应对云内安全威胁。因此,通过将安全机制与云平台融合设计,实现了对云平台内部威胁和攻击的可视、可控、可防,确保安全机制的不可绕过和性能开销最小。
作为容器的最紧密联系者,镜像是容器的最基础的载体,它的安全性对容器的安全影响极大。镜像在转移、存储以及使用的过程中,有可能被篡改。通过漏洞扫描发现漏洞,提前预防,达到安全控制,必要时应对镜像进行签名,以保障镜像的发布安全。应对镜像进行签名验签操作,禁止未签名的或者签名失败的镜像上线。
云计算已发展成为大数据应用、跨平台应用的主要解决方案,而虚拟化、大规模、开放性等特征,带来了更多安全威胁和挑战,通过分析云计算安全防御模型架构,分别对云计算安全的技术特征、运行特征、保障模式等方面进行了研究,提出了云计算安全能力软件定义、保障服务化、服务智能化、防御动态化等关键技术,支撑云安全防护灵活部署、高效保障、快速响应,提升云计算环境多样化安全需求的响应能力,以及强对抗环境中云计算持续服务能
没有云加密,就没有云计算,因为数据丢失的风险太高—磁盘错位、低强度密码、网络窥探或盗窃都会导致数据丢失。
可以认为IAM分成两类,一个是AWS提供的IAM,这是一个完整的身份管理系统,但AWS只提供了系统,基于该系统的配置及信息维护,由客户完全负责。AWS 提供了虚拟网络及其之上的VPC,子网,ACL,安全组等,客户需要准确设计配置自己的网络,以确保正确的隔离和防护。用户控制权限的修改通常由特权用户或者管理员组实现。
多种形式和生命周期的云工作负载会长期共存并共同演进,因此需要解决好对每类负载做好安全保护。云原生安全与过去边界原生安全的差异点在于,在云应用的全生命周期阶段将安全内嵌进来,而不是过去外挂式的干预措施来保障开发、分发、部署和运行时的安全。最后,需要云业务系统持续安全运行,实现云原生安全管理和响应闭环。云原生安全是内生式安全,通过云平台与生俱来的安全特性来保障安全,驱动云平台提供商提供更安全的云服务。
今年召开的“2022可信云大会”上,中国信通院对云安全全景图进行全新升级,正式发布“云安全全景图2.0”。中国信通院云大所开源和软件安全部副主任孔松对新版云安全全景图进行全面解读。
安全性是雾计算部署实施过程中的关键问题。系统必须有一个共同的安全基线,确保基本的互操作性和安全保护。开放雾节点安全架构有许多连接各层并提供系统服务的函数,这些函数可以创建由受信任组件组成的安全信任链。RTIC仅用于检查虚拟机。当这个问题有一个更成熟的解决方案时,雾节点应借助RTIC方法保护节点免受危害。应使用从雾节点中安装的硬件信任根派生的安全凭证实现强认证和不可否认服务。
在数字网络逐步成为控制世界的大脑,成为物理世界灵魂的时代,数字网络世界的安全就变得尤为重要。密码技术,作为数字网络世界最基础最核心的安全技术,越来越成为世界各国竞争的重要资源。 本文从多个角度观察我国密码技术发展的现状;研究数字网络高速发展的新形势对密码技术的需求;探讨密码技术发展的方向,研究白盒、密钥容忍安全和零信任技术背后的意义。
VSole
网络安全专家