这里写自定义目录标题
一、熔断 幽灵攻击
1. 信道攻击
- CPU和内存之间增加缓存Cache可显著提升程序的平均执行性能
- 若CPU访问Cache中并不存在数据,产生时间延迟,目标数据必须从内存中加载到Cache中
- 测量这种时间延迟可能让攻击者确定出Cache 访问失败和发生的频率
2. 缓存记忆秘密
3. 熔断攻击
- 乱序
- 如何证明乱序发生
二、
Task 1: Reading from Cache versus from Memory
Task 2: Using Cache as a Side Channel
Task 3: Out-of-Order Execution and Branch Prediction
语句
清除CPU 的cache中size变量的值
不注释
清除了
那么CPU回访问交办的主存中的值
因此CPU会并行执行if语句的访问结果
注释
没清除CPU cache
CPU会直接访问cache
速度快,所以不会
- CPU会记忆该if语句以前的执行结果
- 在传入值被设置为0-9时,if语句多次执行为true
- 接下来执行if语句的时候,并行执行true这个branch得结果,因此可以被攻击
- 在传入对策值被设置为20-29以后,if语句多次执行为false,因此再次运行的时候不会并行执行true分支的代码
- 也就没有办法访问CPU 得cache得到结果了
Task4: The Spectre Attack
Task 5: Improve the Attack Accuracy
- 因为在restrictAccess函数中返回false ,程序就会返回0
- 代码逻辑会被当成数组中0处的值就是secret value
- 然而程序结果返回给CPU以后得到false
- 因此多次返回0
- 导致最终sectre value显示为0
- 因此改代码
- 在返回值为0的时候不进行操作即可