连云厂商也看不到你的数据?机密计算(Confidential Computing)与内存加密
2026-08-14 · DevCraft Studio
你的数据"在传输中"有 HTTPS、"存储时"有磁盘加密,可一旦跑起来、在内存里,它就是明文裸奔!聊聊 Intel SGX、AMD SEV 这些焊进 CPU 的"安全飞地",怎么做到连拿到物理机 root 的黑客都读不出内存里的秘密。
你有没有想过一个问题:你花大价钱给数据加了密——硬盘用 LUKS、传输用 HTTPS,可数据一旦"跑起来",在内存里到底是什么状态?答案就四个字:明文裸奔。这篇文章就聊聊,云厂商、机房管理员、甚至拿到物理机 root 的黑客,是怎么在你"正在用"的数据面前毫无障碍的;以及 Intel 和 AMD 是怎么用一颗芯片,把这块最后的盲区堵上的。
数据安全的三个状态,偏偏漏了最要命的那个
安全圈有个老说法:数据有三种状态——"存储时"(at rest)、"传输中"(in transit)、"使用中"(in use)。前两个,大家早就防得死死的:硬盘加密(比如 LUKS、BitLocker)管"存着的时候";HTTPS / TLS 管"在路上跑的时候"。可第三个"使用中",也就是数据被加载进内存、被 CPU 拿去做运算的时候,它必须是明文的——CPU 总不能拿密文直接做加减法吧?于是这里出现了一个巨大的安全盲区。
- 数据在内存里是裸露的。谁有权限读内存,谁就能看到密钥、密码、聊天记录、病历、私钥。
- 操作系统、虚拟机监控器(hypervisor)天生就能碰内存,它们本就是"高权限的存在"。
- 更糟的是在云场景下,这台物理机的"房东"——云厂商或者机房管理员,理论上拿着 root 就能把整片内存 dump 出来。
一句话:传统安全把"门"和"网络封锁"都守住了,唯独没守住"屋里正在摊开的那份文件"。而云时代,这份文件恰好摊在别人的房子里。
这个盲区有多可怕?举几个真事儿
别以为这是理论吓唬人。内存里的明文,催生过好几类实打实的攻击:
- 内存抓取(memory scraping):恶意软件钻进内存,把正在用的口令、令牌、会话整批捞走。很多大型数据泄露,根子就在这儿。
- 冷启动攻击(cold boot):拔了电、拿液氮把内存"冻住",趁数据还没消失,把整片 RAM 拷出来慢慢读。
- 恶意 hypervisor / 管理员:你租的虚拟机,万一它底下的 hypervisor 被攻陷,或者机房里有人手痒,你的 VM 内存对你来说就是透明的。
- 多租户串门:同一台物理机上别的客户,理论上也能通过侧信道(比如缓存时序)摸到你内存的痕迹。
说白了,我们防住了传输和存储,却把"计算本身"留给了最不可信的环境。这恰恰是云计算最让人心里发毛的地方:你把活儿交给别人,连计算过程都暴露给对方。
硬件厂商的反击:把一块"保险柜"焊进 CPU
软件层面其实解不了这个问题——因为操作系统和 hypervisor 本身就是"敌方"。解决办法只能往更底层走:让 CPU 硬件自己划出一块"谁都进不去"的区域。这就是机密计算(Confidential Computing)的核心思想:用硬件级的可信执行环境(TEE,Trusted Execution Environment,可信执行环境),把敏感代码和数据圈在一块加密的"飞地"里。哪怕你拿着整台机器的 root 权限、哪怕你是云厂商,也读不到飞地里的东西。整个概念由 Linux 基金会旗下的机密计算联盟(CCC,Confidential Computing Consortium,2019 年成立)来推动标准化。
Intel SGX:应用级的"小保险柜"
英特尔在 2015 年(第六代酷睿 Skylake)搞出了 SGX(Software Guard Extensions,软件防护扩展)。思路很直白:在进程的地址空间里,划出一小块叫 Enclave(飞地) 的区域。这块区域受 CPU 的"内存加密引擎"(MEE,Memory Encryption Engine)保护,数据进飞地才解密、出飞地就加密。操作系统、hypervisor,哪怕是 ring 0 的内核,都看不到里面的内容。
飞地里的数据放在一个叫 EPC(Enclave Page Cache,飞地页缓存) 的地方。早期平台 EPC 一般只有 128MB 左右——所以 SGX 的定位是"小而贵"的敏感片段,比如密钥管理、DRM、指纹比对、机密 AI 推理这种,而不是把整个大程序塞进去。代码如果要超出 EPC,Linux 会把它"分页"到普通内存,但代价是性能明显下降。
SGX 还有个狠活叫 "远程证明"(remote attestation):它能给远端发一份密码学"体检报告",证明"我这块飞地里跑的代码确实是你那份、没被人改过"。报告里带 MRENCLAVE(代码哈希)、MRSIGNER(签名者公钥哈希)、CPU 安全版本号这些信息。换句话说,你不用亲临现场,也能确认那台远程机器里跑的飞地是干净可信的——这是跨不信任网络做"可信计算"的关键。
AMD SEV:给整台虚拟机套上"加密外套"
英特尔的 SGX 是"应用级"的,得改写代码把敏感逻辑搬进飞地,挺麻烦。AMD 换了个更省事的思路——SEV(Secure Encrypted Virtualization,安全加密虚拟化)。从 2016 年起在 EPYC 服务器芯片上,它直接给"整台虚拟机"的内存加密:每个 VM 一把独立密钥,密钥由 AMD 安全处理器(一片固件,AMD Secure Processor)管着,连 hypervisor 都拿不到。也就是说,你几乎不用改任何代码,整个 VM 运行时内存就全程加密了——这对云场景简直是量身定做。
SEV 后来一路演进:SEV-ES(Encrypted State)把 CPU 寄存器状态也加密了,连寄存器里的临时数据都不漏;2020 年前后的 SEV-SNP(Secure Nested Paging,安全嵌套分页) 又加了"内存完整性保护"——简单说,如果有人想偷偷改你 VM 里某一页内存,CPU 会直接抛异常,保证"你读到的一定是最新写进去的值,没被动过手脚"。这对付恶意 hypervisor 尤其有用,因为 hypervisor 恰恰是最容易动内存映射的角色。
SGX 和 SEV,到底该选谁?
- 隔离粒度:SGX 是"每飞地、每进程"的细粒度;SEV 是"整台 VM"的粗粒度。
- 改不改代码:SGX 要改,把敏感逻辑搬进飞地;SEV 多数情况零改动,把 VM 整体加密。
- 适用场景:SGX 适合小段高价值逻辑(密钥、签名、机密函数);SEV-SNP 适合"不想动代码、又想整 VM 保密"的云负载。
- 内存上限:SGX 受 EPC 大小约束(常见 128MB 起,新至强更大);SEV 没有这种限制,跟着普通 VM 大小走。
顺带一提:Intel TDX 和 ARM TrustZone
英特尔自己也发现"改代码太累",于是 2021 年推出了 TDX(Trust Domain Extensions,信任域扩展),思路和 SEV 类似——也是虚拟机级隔离,把整个"信任域"(TD)和宿主机硬件隔开,不用重写应用。ARM 那边则是 TrustZone,把 CPU 划成"安全世界"和"普通世界",手机指纹、支付芯片、物联网设备就跑在里头,几乎是移动端的标配。所以机密计算不是某一家的事,而是 Intel、AMD、ARM 三条线一起在推进。
云厂商早就在用了
这套技术可不是实验室玩具,三大云早落地了:
- Google Cloud 的 Confidential VM,底层就是 AMD SEV:内存加密密钥在 AMD 安全处理器里生成,Google 自己都拿不到,官方口径就是"连我们也看不到你的数据"。
- 微软 Azure 既提供基于 SEV 的机密虚拟机,也提供基于 SGX 的机密容器,让你把应用搬进飞地跑。
- AWS 的 Nitro Enclaves:把一段计算圈进一个"没有硬盘、没有外部网络、root 也进不去"的隔离 VM,只通过本地安全通道和主实例通信,常用于密钥、证书这种最金贵的东西。
它也不是万能药
话说回来,机密计算不是"银弹",得泼几盆冷水:
- 侧信道攻击:飞地再封闭,CPU 仍是共享的。2020 年的 CacheOut 等攻击就利用缓存通道,从 SGX 飞地里"挤"出了数据。硬件隔离挡不住所有旁路。
- 性能开销:内存加密要算力。好消息是现代硬件开销已经很小(很多场景个位数百分比),但 SGX 一旦 EPC 不够用、要去普通内存"分页",就明显变慢。
- 编程门槛:SGX 要把逻辑拆进飞地,开发范式不友好;SEV/TDX 虽"无感",但调试和远程证明流程复杂。
- 信任根仍在芯片厂:你终究得信 Intel / AMD 的固件没留后门——这是 TEE 的固有假设,绕不开。
咱普通 VPS 玩家能蹭上这波吗?
能,但要看机型和诉求。几个务实点:
- 先查你的 CPU 支不支持。在 Linux 上跑
lscpu | grep -i -E 'sgx|sev|tdx',或者grep -o -E 'sgx|sev|tdx' /proc/cpuinfo | sort -u,能看到对应 flag 才谈得上用。 - 选云厂商的"机密虚拟机"实例(比如支持 AMD SEV-SNP 或 Intel TDX 的型号),适合跑密钥管理、隐私计算、区块链节点、敏感 AI 推理这类"数据绝不能被房东看到"的场景。
- 别为了"酷"硬上 SGX:普通网站、博客根本用不上,反而徒增复杂度。它不是给你的 WordPress 加速的。
一句话总结
数据安全的最后一块拼图,正在被焊进芯片里。传输有 HTTPS、存储有磁盘加密,而"运行中"的明文裸奔,靠的是 Intel SGX、AMD SEV 这类的硬件飞地来堵。它不能让你高枕无忧(侧信道、性能、信任根仍是课题),但对付"云厂商 / 管理员偷看内存"这种最不安的威胁,已经是目前最靠谱的解法。下次有人跟你说"上云就是把自己的数据交给别人",你可以回一句:不一定——只要那块内存,连房东都读不出明文。
延伸阅读
更多相关攻略推荐:被割裂的"云上互联网":数据主权(GDPR)、本地化存储与主权云(S、为什么你自己 VPS 发的邮件总进垃圾箱?邮件协议(SPF、DKIM、百兆带宽如何流畅看 4K?视频切片(HLS/DASH)、AVIF 压、告别繁琐密码:OAuth 2.0、SSO 单点登录与 Passkey、【知识库自托管 02】2026 实测:VPS 自托管 Anythin。