【TEE从入门到精通及实战】68 侧信道攻击:当Enclave的“心跳”出卖了你
开篇故事
去年我帮一家金融科技公司做SGX安全审计,他们的风控模型运行在Enclave里,自信满满地认为“硬件级隔离”已经万无一失。
结果我用一个简单的缓存计时攻击,在10分钟内就提取了他们模型决策树的深度——不是通过破解Enclave,而是通过观察模型推理时CPU缓存的访问模式。
更讽刺的是,他们的安全负责人当场演示了“完美防御”:在Enclave内对所有数据加了随机噪声。但我的攻击工具依然准确识别出了模型的分支结构。
他愣了半天,问了一句让我至今难忘的话:“难道Enclave里的代码执行,连‘喘气’的节奏都不能被外界听到吗?”
是的,Enclave的“心跳”——也就是CPU执行指令时的微架构行为(缓存命中/未命中、分支预测、指令时序)——正是侧信道攻击的突破口。今天我们就来彻底解剖这个“无声的告密者”。
痛点拆解
常见误区:把“加密”等同于“防侧信道”
很多开发者认为,只要在Enclave里对敏感数据加密,侧信道攻击就无效了。这是天大的误解。
反例代码:一个“安全”但脆弱的模型推理函数
# 错误的实现:以为加密了输入就安全classVulnerableInference