可信执行环境(TrustedExecutionEnvironment,TEE)是一种安全隔离的执行环境,能够保护数据、代码和计算过程免受恶意软件或未授权访问的影响。
可信执行环境(Trusted Execution Environment, TEE)是一种安全隔离的执行环境,能够保护数据、代码和计算过程免受恶意软件或未授权访问的影响。TEE 运行在CPU内部的一个受信任区(如 Intel SGX 或 ARM TrustZone),保证:
在传统云计算模式中,用户的计算任务和数据托管在云提供商(如 AWS、Azure、Google Cloud)上,存在数据安全风险:
当前主流的 TEE 方案包括 Intel SGX、AMD SEV、AWS Nitro Enclaves、ARM TrustZone、RISC-V Keystone,它们在安全性、可扩展性、性能等方面各有特点。
Intel SGX(Software Guard Extensions)
AMD SEV(Secure Encrypted Virtualization)
AWS Nitro Enclaves
ARM TrustZone
RISC-V Keystone
TEE 环境不会保留数据:TEE 主要用于计算时数据保护,一旦 TEE 进程终止或重启,内部数据会自动销毁,无法持久化存储。
没有磁盘或文件系统:大多数 TEE 方案(如 AWS Nitro Enclaves 和 Intel SGX)不允许直接访问磁盘、文件系统、数据库或外部存储。
内存存储(RAM):TEE 允许在内存中存储数据,但数据仅在运行时可用,TEE 关闭后数据会消失。
加密数据传输:TEE 内的数据可以加密后存储到外部存储(如 S3、EBS、数据库),并在需要时解密加载到 TEE 内部使用。
总结
不同 TEE 方案在安全性、可扩展性、性能和适用场景 方面存在明显差异:
很多公司使用 Nitro 和 KMS 结合作为钱包的签名机服务
Intel SGX 适用于金融 & 区块链,但计算和 I/O 性能受限。
AMD SEV 提供全 VM 级别的加密,适合云端工作负载。
ARM TrustZone 主要用于移动设备安全,如 Android & iOS 设备。
RISC-V Keystone 是开源 TEE 方案,适用于物联网 & 嵌入式应用。
选择建议
云计算安全: AWS Nitro Enclaves,
区块链签名机:AWS Nitro Enclaves + KMS
区块链 & 机密计算:Intel SGX
虚拟机 & 云端保护:AMD SEV
移动端 & 低功耗设备:ARM TrustZone
嵌入式 & 物联网:RISC-V Keystone
AWS Nitro Enclaves 是 AWS 提供的一种可信执行环境(TEE),用于保护高度敏感的数据和计算。它通过硬件隔离的方式,确保数据即使在宿主实例(Host Instance)上,也不会被恶意访问或篡改。
特点:
AWS Nitro Enclaves 无法持久化存储数据,也不能直接访问 AWS 资源(如 S3、数据库等)。因此:
AWS KMS(Key Management Service)是 AWS 提供的 云端密钥管理服务,允许 Nitro Enclaves 通过 Enclave KMS Proxy 安全访问 KMS 解密数据。
AWS Nitro Enclaves 主要用于安全计算,提供隔离执行环境(TEE),但由于它没有网络访问能力,直接负载均衡 Nitro Enclaves 并不现实。因此,我们需要通过EC2宿主实例(Host Instance)+ 负载均衡(LB)来间接实现 Nitro Enclaves 的高可用。
AWS Application Load Balancer (ALB):负责 HTTP/TCP 负载均衡,将请求分发到多个 EC2 宿主实例
AWS Auto Scaling Group (ASG):自动扩展 EC2 实例数量,确保高可用
EC2 宿主实例(Host Instance):运行 Enclave 并处理负载,提供 Enclave KMS Proxy 代理
Nitro Enclaves:负责执行安全计算任务
AWS KMS:提供密钥管理服务,用于解密数据
S3 / DynamoDB:持久化存储数据
一个 Web3 交易请求
客户端请求 → ALB 负载均衡 → EC2 宿主实例
EC2 解析请求 → 通过 vsock 发送到 Nitro Enclave
Nitro Enclave 处理数据(如解密 Web3 私钥)
Nitro Enclave 通过 KMS Proxy 访问 AWS KMS 解密数据
计算完成后返回结果到 EC2 宿主实例
EC2 将结果返回给客户端
机密计算: 保护金融交易、区块链私钥管理
医疗数据: 处理敏感的病人信息和隐私数据
加密钱包:保护 Web3 私钥,防止密钥泄露
AI 计算:保护 AI 模型和推理数据
AWS Nitro Enclaves 与 KMS 结合,提供了高度安全的数据保护方案:
这一方案适用金融、医疗、区块链等需要高安全性的应用场景
AMD SEV-SNP(Secure Encrypted Virtualization - Secure Nested Paging) 是 AMD 机密计算(Confidential Computing)的最新增强版本,提供 内存加密、数据完整性保护和远程证明 功能。本文详细介绍如何在 支持 SEV-SNP 的环境中加密 VM 和数据。
SEV-SNP主要通过CPU级别的内存加密,保护虚拟机的敏感数据,避免宿主机(Hypervisor)访问:
在 AWS Nitro 系统 中,AWS 通过 KVM(Kernel-based Virtual Machine) 和 SEV-SNP 结合 来实现 EC2 实例的机密计算,主要涉及:
Nitro Hypervisor(AWS 自研的 KVM)
AMD SEV-SNP 的 VM 内存加密
SEV-SNP 远程认证(Attestation)
CPU、内存、I/O 访问控制
SEV(Secure Encrypted Virtualization)早期版本(如 SEV-ES)已经支持为 VM 分配独立的加密密钥。
在 SEV-SNP 中,所有 VM 的内存都是加密的,且无法被宿主机(Hypervisor)访问。
底层实现:
每个 VM 拥有独立的密钥(由 CPU 内部的 Secure Processor 生成)。
物理内存访问时,数据会自动加密 / 解密,保护 VM 数据。
Hypervisor 只能管理页表,但无法解密 VM 数据。
结果:AWS 甚至无法访问 EC2 上运行的加密 VM 内存!
SEV-SNP 解决了传统 SEV 面临的恶意篡改问题,主要通过RMP(Reverse Map Table) 机制:
页面重映射攻击(Page Remapping) → 恶意 Hypervisor 可能会更改页表,映射到攻击者控制的内存地址。
数据回滚攻击(Rollback) → 旧版 SEV 允许攻击者恢复 VM 旧的内存快照,可能导致回滚攻击。
RMP 记录每个内存页的所有者,确保 Hypervisor 无法修改 VM 的内存映射。
VM 只能访问属于自己的内存页,防止数据泄露。
结果:即使 AWS 或恶意 Hypervisor 想修改 VM 的数据,SEV-SNP 也会直接阻止!
SEV-SNP 允许 EC2 实例在启动时生成远程证明(Attestation Report),证明当前环境是可信的。
具体实现:
VM 生成一个 Attestation 请求,并提交给 AMD Secure Processor(AMD SP)。
AMD SP 计算哈希值(Measurement),对 CPU、固件、启动配置等进行签名
VM 可以使用 AWS 提供的 SEV-SNP API 将该证明发送给外部可信方(如区块链项目、银行、云端数据库)进行验证。
结果:AWS 无法篡改 VM 运行环境,用户可以验证 EC2 实例的可信状态
✅ 完整的机密计算能力
✅ 远程证明
✅ 无需修改应用
AWS 让SEV-SNP无缝集成,开发者无需修改应用代码。 支持Nitro安全架构
AWS Nitro 进一步增强 SEV-SNP 安全性,确保 Hypervisor不能访问 VM。
AWS EC2 通过 AMD SEV-SNP 提供强大的机密计算支持,保护虚拟机免受云提供商或恶意管理员的攻击。
VM内存全加密,防止 AWS 访问。
完整的内存完整性保护,防止恶意篡改。
支持远程证明,可验证实例可信性。
适用于高隐私需求的 Web3、金融、医疗、AI 计算场景。
TEE 技术在云计算、金融交易、Web3、医疗等领域至关重要:
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!