土法炼钢兴趣小组的算法知识备份

【操作系统百科】机密计算

文章导航

分类入口
os
标签入口
#confidential-computing#sev-snp#tdx#cca#attestation

目录

传统虚拟化:Guest 信任 Host。机密计算反转信任模型——Guest 不信任 Host/Hypervisor,硬件保证隔离。

一、先看图

flowchart TD
    GUEST[Guest OS<br/>机密 VM] --> HW[硬件加密<br/>内存加密引擎]
    HOST[Host / Hypervisor] -.->|无法读取| HW
    GUEST --> ATT[远程认证<br/>Attestation]
    ATT --> VERIFY[验证方<br/>确认 Guest 完整性]

    classDef trusted fill:#3fb95022,stroke:#3fb950,color:#adbac7;
    classDef untrusted fill:#f8514922,stroke:#f85149,color:#adbac7;
    class GUEST,HW,ATT,VERIFY trusted
    class HOST untrusted

二、威胁模型

传统:信任 hypervisor → 只防 Guest 攻击 Host。

机密计算:不信任 hypervisor:

硬件保证:Guest 内存加密 → Host 无法读取。

三、AMD SEV / SEV-SNP

3.1 SEV(Secure Encrypted Virtualization)

每个 VM 有独立的内存加密密钥 → AES-128 加密。

3.2 SEV-ES(Encrypted State)

加密 vCPU 寄存器 → VM-exit 时 Host 看不到寄存器内容。

3.3 SEV-SNP(Secure Nested Paging)

完整性保护 → 防止 Host 重放/重映射 Guest 内存页。

# QEMU 启动 SEV-SNP Guest
qemu-system-x86_64 \
    -object sev-snp-guest,id=sev0,policy=0x30000 \
    -machine memory-encryption=sev0,vmport=off

四、Intel TDX

Trust Domain Extensions:

五、ARM CCA

Confidential Compute Architecture:

六、远程认证(Attestation)

1. Guest 启动 → 硬件度量 Guest 固件和内核
2. 度量值签名(硬件密钥)
3. 发送给验证方
4. 验证方确认 Guest 运行的是预期的代码

认证链:硬件 → 固件 → Guest OS → 应用。

七、COCONUT-SVSM

Secure VM Service Module:

Guest OS → COCONUT-SVSM → 硬件

在 Guest 和硬件之间提供安全服务:

八、I/O 挑战

机密 VM 的 I/O 必须经过 Host → 数据可能泄露:

方案 说明
bounce buffer Guest 加密 → Host 传输 → Guest 解密
TIO(Trusted I/O) 硬件保护的 DMA
virtio 加密 传输层加密

九、生产使用

云厂商 技术
Azure SEV-SNP
GCP SEV-SNP / TDX
AWS Nitro Enclaves(不同架构)
阿里云 TDX

十、小结


参考文献

工具


上一篇Rust for Linux 下一篇可拆分 OS

同主题继续阅读

把当前热点继续串成多页阅读,而不是停在单篇消费。

2026-04-27 · os

【操作系统百科】内存回收

Linux 内存回收是 VM 最复杂的子系统之一。本文讲 active/inactive LRU、kswapd 与 direct reclaim、watermark 三线、swappiness 的真实含义、MGLRU 改造、memcg 回收与 PSI。

2026-04-28 · os

【操作系统百科】交换

swap 还值得开吗?本文讲 swap area 基础、swap cache、zram 压缩内存、zswap 前端压缩池、swappiness 的真实含义、容器里的 swap 策略,以及为什么现代 Android 全靠 zram 不靠磁盘。

2026-05-03 · os

【操作系统百科】Slab/SLUB 分配器

buddy 只管页粒度(4K+),内核大多数对象只有几十到几百字节。slab/SLUB 在 buddy 之上做对象级缓存。本文讲 slab 历史、SLUB 接手、SLOB 退场、kmem_cache、per-CPU cache、KASAN 集成。

2026-05-07 · os

【操作系统百科】用户态分配器

glibc malloc、tcmalloc、jemalloc、mimalloc 各有哲学。本文讲 arena、thread cache、size class、madvise 返还策略、碎片与 RSS 膨胀、如何根据负载选分配器。


By .