summaryrefslogtreecommitdiff
path: root/chap/chap3.tex
diff options
context:
space:
mode:
Diffstat (limited to 'chap/chap3.tex')
-rw-r--r--chap/chap3.tex21
1 files changed, 11 insertions, 10 deletions
diff --git a/chap/chap3.tex b/chap/chap3.tex
index 68baf93..5cde315 100644
--- a/chap/chap3.tex
+++ b/chap/chap3.tex
@@ -14,7 +14,7 @@ Meltdown 攻击的方案。它的作用是在用户空间中去除内核空间
得用户空间的执行的指令无法访问内核空间的存储区域。
防御 Meltdown 型攻击的第二种方法是阻止异常的产生。例如对于 LazyFP,最
-新的 Linux 内核在上下文切换时,对所有进程都会保存和恢复浮点寄存器,从
+新的 Linux 内核在上下文切换时,会保存和恢复所有进程的浮点寄存器,从
而用户程序使用浮点寄存器都不会产生异常,从而消除这种攻击。
\section{Spectre 型攻击的防御}
@@ -140,12 +140,12 @@ SafeSpec\supercite{safespec}提出了一种设计原则保护处理器免受推
虽然 SafeSpec 原则上很简单,但必须解决许多与其安全性,复杂性和性能相关的
问题。
-将状态从影子状态移动到提交状态有两种选择。第一种选择是等待分支(Wait
+将状态从影子状态移动到提交状态的时机有两种选择。第一种选择是等待分支(Wait
For Branch,WFB),当一个指令依赖的所有分支结果都已经得出时,这个指
-令不再是推测式执行的指令。WFB 可以防御 Spectre v1 和 v2,它们依赖于错误
-的分支预测,没有任何错误的推测式执行产生的状态进入提交状态。而
-Meltdown 不依赖于分支预测,因此 WFB 不能防御 Meltdown. 第二种选择是等
-待提交(Wait For Commit,WFC),在指令提交的时候,才将推测式执行产生的
+令不再是推测式执行的指令。WFB 可以防御利用错误分支预测的 Spectre v1 和 v2,
+在分支结果得出前,错误的推测式执行产生的结果不会进入提交状态。
+Meltdown 不依赖于分支预测,因此 WFB 不能防御 Meltdown,需要采用等
+待提交(Wait For Commit,WFC)这种选择,在指令提交的时候,才将推测式执行产生的
状态更新至提交状态。
影子状态的大小是另一个设计选择。如果保存影子状态的结构太小,则会导致推
@@ -179,7 +179,7 @@ SafeSpec 原则可以用于在推测式执行中保护缓存和 TLB,方法是
结构移动至缓存。如果指令被丢弃,则释放影子结构对应的一项。在这种设计
中,被丢弃的推测式执行的装载指令不但不会修改缓存中的内容,也不会改变
缓存替换算法的状态。
-\item 指令缓存:构造一种利用指令缓存的 Spectre 攻击是可能的,因此指令
+\item 指令缓存:Spectre 攻击也可以利用指令缓存侧信道,因此指令
缓存也需要保护,方法和数据缓存类似。
\item TLB:TLB 也可以作为隐蔽信道使用,攻击者可以检查访问一个页的时间
判断 TLB 是否命中。现代处理器进行地址翻译是个复杂的过程,在访问页表
@@ -197,7 +197,8 @@ SafeSpec 原则可以用于在推测式执行中保护缓存和 TLB,方法是
InvisiSpec \supercite{invisispec} 使推测式执行产生的副作用在数据缓存中
不可见,从而可以防御利用推测式执行的攻击。它的目标是阻止由推测式执行的
装载操作产生的微体系结构侧信道和隐蔽信道,如缓存占用、缓存行替换算法信息、
-缓存一致性状态等。和 SafeSpec 不同,InvisiSpec 支持多处理器。
+缓存一致性状态等。InvisiSpec 和 SafeSpec 相似,但是考虑了内存一致性,
+支持多处理器核的系统。
Spectre 等攻击由暂态指令引起,为了定义 InvisiSpec 的攻击模型,
表\ref{tab:transient_insn}列出了各种攻击中暂态指令的来源。InvisiSpec 关
@@ -443,7 +444,7 @@ DAWG 的目标是阻止任何攻击者和受害者安全域之间的基于缓存
的路之内。在此之上,缓存所带的元数据,如替换策略的状态,也要在保护域内
定义,并安全地划分。
-图\ref{fig:dawg-cache}展示了 DAWG 缓存的结构。处理器中增加几个 MSR,用
+图\ref{fig:dawg-cache}展示了 DAWG 缓存的结构。处理器中增加几个型号特定寄存器(MSR),用
于记录处理器当前所在的保护域,和保护域的策略。每个逻辑核在访问存储器时
均带有一个域标识字段。
@@ -543,7 +544,7 @@ fence 操作的设计上有以下考虑:
条件推测式执行(Conditional Speculation)
\supercite{conditional-speculation} 是一种检测推测式执行中的潜在的泄露
数据的指令,并阻止其执行的方法。为了检测可能在推测式执行中泄露数据的指
-令,此工作提出安全依赖(security dependence)的概念,类似于数据依赖和
+令,此工作提出\emph{安全依赖(security dependence)}的概念,类似于数据依赖和
控制依赖,执行存在安全依赖的指令则产生安全冒险。这种新的依赖用于描述具
有潜在的泄漏微体系结构信息的安全风险的推测性执行的指令。对于信道 $c$,
指令 $j$ 安全依赖于指令 $i$,如果: