summaryrefslogtreecommitdiff
path: root/chap/chap3.tex
diff options
context:
space:
mode:
Diffstat (limited to 'chap/chap3.tex')
-rw-r--r--chap/chap3.tex12
1 files changed, 8 insertions, 4 deletions
diff --git a/chap/chap3.tex b/chap/chap3.tex
index 8fe2c08..c9297e2 100644
--- a/chap/chap3.tex
+++ b/chap/chap3.tex
@@ -28,10 +28,14 @@ Spectre 型攻击的防御方案可以分为三类:阻止推测式执行、防
\subsection{软件防御方案}
-为了防御Spectre v1,Intel和AMD建议在分支指令后插入lfence指令阻止推测式
-执行。由于lfence性能开销大,LLVM提出推测式装载指令加固(Speculative
- Load Hardening)\supercite{spec-load-hardening} 技术,它的作用是在指
-令流中添加数据相关,使得装载指令使用的地址依赖于分支结果。
+Intel 和 AMD 都提出了在分支指令后插入 lfence 指令阻止推测式执行的方
+法。\supercite{intel-spectre}\supercite{amd-spectre}lfence 指令在此作
+为一条串行化指令使用,可以在 lfence 指令提交前阻止新的指令执行,从而阻
+止了程序在推测式执行中对秘密数据进行操作。
+
+由于 lfence 性能开销大,LLVM提出推测式装载指令加固(Speculative
+Load Hardening)\supercite{spec-load-hardening} 技术,它的作用是在指令
+流中添加数据相关,使得装载指令使用的地址依赖于分支结果。
retpoline\supercite{retpoline} 是 Google 提出的防御 Spectre-BTB 的方法。
它的作用是把程序中的间接转移指令修改为一个指令序列,最终使用 ret 指令