资讯中心

【TEE从入门到精通及实战】70 硬件侧信道攻击:当CPU的“小聪明”背叛了你的Enclave

📅 2026/6/28 16:59:33
【TEE从入门到精通及实战】70 硬件侧信道攻击:当CPU的“小聪明”背叛了你的Enclave
开篇故事:一次“不可能”的密钥泄露去年冬天,我帮一个金融科技团队做安全审计。他们的SGX Enclave跑着核心的AES-256加密模块——代码经过严格的形式化验证,内存访问模式也用mprotect做了混淆。团队Leader拍着胸脯说:“软件层面绝对没问题,密钥在Enclave内部生成,外面连影子都看不到。”结果我用一个不到200行的PoC,在他们的生产环境上,只用3分钟就提取了完整的AES密钥。不是通过内存泄露,不是通过侧信道流量,而是通过CPU的分支预测单元(BPU)——那个被设计来“加速”程序的硬件模块,成了最隐蔽的告密者。他们当时的表情,就像发现自家保险柜的锁芯其实是豆腐做的。痛点拆解:你以为安全的代码,CPU正悄悄“预判”你的预判常见误区:只要不访问共享内存,就安全了很多开发者认为,Enclave内的数据只要不通过共享内存、不写日志、不触发异常,攻击者就无法获取。但硬件侧信道攻击利用的是CPU微架构状态的变化——这些状态是“看不见摸不着”的,却能被攻击者通过时间测量或缓存命中率间接推断。反例代码:一个“看似无辜”的AES S-Box查找# 反例:依赖分支的密钥提取函数