1. 微架构瞬态执行攻击
    1. 什么是瞬态执行
    2. 缓存测信道怎么泄露在缓存里面的数据
  2. FLUSH+RELOAD
  3. 预备知识
    1. 页共享
    2. cache 结构
      1. 三级缓存
      2. 组相联缓存
    3. LLC

微架构瞬态执行攻击

异构计算系统中的微架构侧信道攻击

什么是瞬态执行

为了提升 CPU 的运行效率,现代 CPU 设计的时候会把微指令的顺序重新排列,或者在遇到分支的时候预测执行。但是这些指令不一定是有权限的,或者这个分支不一定会被执行,因此,芯片会丢弃所有的预测性结果并运行另一个分支或者触发异常。但是这些指令确实执行楽,所以缓存中就会载入越权访问的数据。

缓存测信道怎么泄露在缓存里面的数据

FLUSH+RELOAD

flush+reload学习笔记 | 张清越

FLUSH+RELOAD - caijiqhx notes

预备知识

页共享

进程间共享内存主要有两个目的,首先是进程间通信,然后可以减少内存占用。

减少内存的方式比如:

但是对于不相关的进程的共享页面,这些共享页面仅仅是为了节省内存引入的,操作系统需要保护在不相关进程间共享的内存页,防止恶意进程修改共享页。把共享页设置为写时复制,写入共享页时会陷入,OS 会获取 CPU 控制权,复制共享页内容,再映射到进程的地址空间。

这里存在测信道——写时复制引入的延迟会导致信息泄露。

cache 结构

三级缓存

CPU体系结构之cache | Ivanzz

下图是一个典型的存储器层次结构,使用了三级缓存。

他们之间的速度差距:

L3 Cache和L1,L2 Cache有着本质的区别。L1和L2 Cache都是每个CPU core独立拥有一个,而L3 Cache是几个Cores共享的,可以认为是一个更小但是更快的内存(memory)。

haha 又来学计组咯

组相联缓存

缓存块被分组,每一组只能在一组特定的缓存中。比如:有8个单元可用于存储缓存所关联的缓存块,从而形成一个8路关联的组(8-way associative set)。

LLC

Intel LLC 的一个重要特性是包容性(inclusive),即 LLC 包含所有存储在低级缓存中的所有数据的副本。因此从 LLC 中刷新或逐出数据也从其他缓存中移除数据。