diff options
Diffstat (limited to 'chap/chap3.tex')
-rw-r--r-- | chap/chap3.tex | 12 |
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 指令 |