summaryrefslogtreecommitdiff
path: root/chap/chap3.tex
diff options
context:
space:
mode:
authorIru Cai <mytbk920423@gmail.com>2019-05-10 00:24:35 +0800
committerIru Cai <mytbk920423@gmail.com>2019-05-10 00:24:35 +0800
commitb445a8d66a0bd5cd31f3d2f80a23065ed7bea6aa (patch)
tree6a283c2f1c2f5ce5ceba7f9138fcb11aaf721a6e /chap/chap3.tex
parentc0f7e397417d556803e7064a5fe1808ac821a10b (diff)
downloaddissertation-b445a8d66a0bd5cd31f3d2f80a23065ed7bea6aa.tar.xz
upd
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 指令