\chapter{总结与展望}\label{sec:conclusion}

\section{本文工作总结}

计算机系统的安全越来越受到重视，基于软件的微架构侧信道攻击是对计算机系
统安全的威胁之一，它不依赖于软件漏洞，难以被检测与防
范。Meltdown 和Spectre 利用暂态指令形成的侧信道，展示了一种新的攻击方式。
其中 Spectre利用了现代微处理器的推测式执行机制，而推测式执行是提高指令
级并行性的重要手段，如何在防御 Spectre 的同时保持推测式执行带来的性能提
升，是一个值得研究的问题。只通过软件的修改难以防御多种类型的 Spectre
攻击，因此需要通过改进微架构的设计，以解决 Spectre 攻击的问题。本文主
要工作如下：
\begin{enumerate}
\item 首先调研已有的 Meltdown 和 Spectre 的攻击变体，包括
  对 Meltdown 和 Spectre 的分类，各类攻击的原理，和它们的利用方式。
\item 调研已有的 Meltdown 和 Spectre 的防御方法，包括软件防御、硬件防御
  和软硬件结合的防御方法。其中最重要的是硬件防御方法，主要介
  绍InvisiSpec 和 Conditional Speculation 两种，并分析了各种防御方案设
  计特点，可防御的攻击种类，和它们的优缺点。
\item 设计一种防御防御 Spectre 攻击的微架构，并在 gem5 中进行实现。这种
  防御方案利用动态信息流追踪技术检测指令流中可能被用于 Spectre 攻击泄露
  数据的装载指令，并采用 InvisiSpec 方案执行检测为不安全的装载指令。
\item 最后对实现的 Spectre 防御方案进行评估，首先构造了一个能用于 gem5
  的概念性验证程序，用于测试所实现的微架构的安全性。为了评估这种微架构
  的性能开销，使用 SPEC CPU2006 评测了这种微架构的性能，和原有的不安全
  的处理器相比，性能开销为 8.5\%，优于只用 InvisiSpec 执行推测式执行的
  指令或阻止检测出的不安全指令的方法。
\end{enumerate}

\section{未来工作展望}

本文实现了一种 Spectre 攻击中泄露数据指令的检测技术，并结合已有
的InvisiSpec 方案，实现了一种可防御 Spectre 攻击的微架构。当前的工作只
考虑了利用控制流推测式执行的 Spectre 攻击，后续的工作可以加入
对 Spectre-STL 攻击的防御，再评估此模型的性能开销。

此外，本工作只在模拟器中进行模拟，而未在真实的处理器中实现。后续的工作
可以在 RISC-V BOOM 等真实处理器上实现这种微架构设计，以评估这种设计在
实现中的可行性，和对真实处理器性能、功耗的影响。
