summaryrefslogtreecommitdiff
path: root/chap/chap3.tex
diff options
context:
space:
mode:
Diffstat (limited to 'chap/chap3.tex')
-rw-r--r--chap/chap3.tex22
1 files changed, 12 insertions, 10 deletions
diff --git a/chap/chap3.tex b/chap/chap3.tex
index a755996..90e8133 100644
--- a/chap/chap3.tex
+++ b/chap/chap3.tex
@@ -193,7 +193,7 @@ SafeSpec 原则可以用于在推测式执行中保护缓存和 TLB,方法是
InvisiSpec \supercite{invisispec} 使推测式执行产生的副作用在数据缓存中
不可见,从而可以防御利用推测式执行的攻击。它的目标是阻止由推测式执行的
-装载操作产生的微架构侧信道和隐蔽信道,如缓存占用、缓存行替换算法信息、
+装载操作产生的微体系结构侧信道和隐蔽信道,如缓存占用、缓存行替换算法信息、
缓存一致性状态等。和 SafeSpec 不同,InvisiSpec 支持多处理器。
Spectre 等攻击由暂态指令引起,为了定义 InvisiSpec 的攻击模型,
@@ -229,7 +229,7 @@ Speculative Store Bypass & 装载指令和更早的存储指令地址别名\tabu
\centering
\end{table}
-InvisiSpec 的微架构基于两种机制。第一个机制中,不安全的推测式执行的装载
+InvisiSpec 的微体系结构基于两种机制。第一个机制中,不安全的推测式执行的装载
操作将数据读入至推测式执行缓冲区(Speculative Buffer,SB)中,而不读入
缓存,从而不修改缓存存储层次的状态。由于缓冲区中的数据不产生缓存一致性
事务,因此可能造成内存一致性违例。第二个机制解决这个问题,当推测式执行
@@ -404,7 +404,7 @@ InvisiSpec 会增大存储系统中各个缓存之间,和缓存和主存之间
Meltdown 和 Spectre 提供了新了构造数据通道的方式。通过利用错误的推测式
执行,攻击者可以使处理器执行通常无法访问的代码路径。在 Meltdown 中,攻
击者推测式执行一段代码,作为数据通道,它可以非法访问秘密数据,并在异常
-发生之前通过微架构副作用传输至接受者。在 Spectre 中,攻击者使分支预测器
+发生之前通过微体系结构副作用传输至接受者。在 Spectre 中,攻击者使分支预测器
预测错误,使处理器沿着攻击者选择的路径推测式执行,这在受害者中形成了数
据通道。因此,构建数据通道有三种方法:
@@ -439,7 +439,9 @@ DAWG 的目标是阻止任何攻击者和受害者安全域之间的基于缓存
的路之内。在此之上,缓存所带的元数据,如替换策略的状态,也要在保护域内
定义,并安全地划分。
-图\ref{fig:dawg-cache}展示了 DAWG 缓存的结构。
+图\ref{fig:dawg-cache}展示了 DAWG 缓存的结构。处理器中增加几个 MSR,用
+于记录处理器当前所在的保护域,和保护域的策略。每个逻辑核在访问存储器时
+均带有一个域标识字段。
除了硬件修改之外,DAWG 还需要软件的支持,用于管理程序的保护域,和每个
域对应的安全策略。
@@ -535,7 +537,7 @@ Conditional Speculation \supercite{conditional-speculation} 是一种检测
推测式执行中的潜在的泄露数据的访存指令,并阻止其执行的方法。为了检测可
能在推测式执行中泄露数据的指令,此工作提出安全依赖(security
dependence)的概念,类似于数据依赖和控制依赖,这种新的依赖性用于描述泄
-漏微架构信息具有潜在安全风险的推测性执行的指令。对于信道 $c$,指令 $j$
+漏微体系结构信息具有潜在安全风险的推测性执行的指令。对于信道 $c$,指令 $j$
安全依赖于指令 $i$,如果:
\begin{itemize}
@@ -702,12 +704,12 @@ SpectreGuard\supercite{spectreguard} 是一种以数据为中心的软硬件结
的Spectre 防御方案。这种方案考虑到对于软件开发人员来说,识别程序中的秘
密数据(如密钥)比识别可能受到攻击的 Spectre 组件代码容易。因
此,SpectreGuard 在操作系统中提供接口,使程序可以标记敏感的内存区域,硬
-件上只需要简单的微架构扩展,就可以阻止 Spectre 攻击。和已有的防御方案相
+件上只需要简单的微体系结构扩展,就可以阻止 Spectre 攻击。和已有的防御方案相
比,它不需要依靠编译器识别程序中可能受攻击的代码,也不需要复杂的硬件修
改。
Spectre 攻击需要分为三个步骤:从存储系统装载秘密数据,将秘密数据转发至
-依赖于这个数据的指令,执行依赖于这个数据的指令,通过微架构隐蔽信道泄露
+依赖于这个数据的指令,执行依赖于这个数据的指令,通过微体系结构隐蔽信道泄露
秘密。数据的泄露在第二、三步进行,如果秘密数据被装载,但不被转发,秘密
也不会泄露给攻击者。
@@ -716,7 +718,7 @@ Spectre 攻击需要分为三个步骤:从存储系统装载秘密数据,将
内存区域时,才需要延迟转发。当秘密数据不经常访问时,总体开销可以忽略。
敏感数据的标记通过在页表中添加一个位实现,在软件中可以扩展操作系统
-的mmap, mprotect 等接口,或通过运行库、编译器、连接器实现。在微架构中,
+的mmap, mprotect 等接口,或通过运行库、编译器、连接器实现。在微体系结构中,
指令执行后,执行结果将转发至后续依赖于这个指令的指令,而如果指令是访问
了敏感区域的指令,则推迟它的转发。
@@ -735,7 +737,7 @@ Spectre 攻击需要分为三个步骤:从存储系统装载秘密数据,将
% Data Oblivious ISA(OISA)是一种 ISA 扩展,用于阻止信息通过侧信道泄露。
% 设计原则:
% \begin{itemize}
-% \item ISA的安全性和微架构无关
+% \item ISA的安全性和微体系结构无关
% \item ISA不会阻止现代微处理器的优化技术
% \end{itemize}
%
@@ -755,7 +757,7 @@ Spectre 攻击需要分为三个步骤:从存储系统装载秘密数据,将
由于 Meltdown 型攻击和 Spectre 型攻击利用的暂态指令不同,因此防御方案
也不同。
-对于 Meltdown 型攻击,防御方法相对简单。只要使产生异常的指令在微架构层
+对于 Meltdown 型攻击,防御方法相对简单。只要使产生异常的指令在微体系结构层
次上无法访问体系结构层次上无法访问的数据,即可以阻止 Meltdown 型攻击。
在现有的处理器中,需要使用 KAISER 等防御方案,会造成一定性能的损失。