From 18219bdc08b178985a82060472510b916d7b0bc6 Mon Sep 17 00:00:00 2001
From: Iru Cai <mytbk920423@gmail.com>
Date: Thu, 9 May 2019 11:50:11 +0800
Subject: upd

---
 chap/chap2.tex | 21 ++++++++++++++++++++-
 1 file changed, 20 insertions(+), 1 deletion(-)

(limited to 'chap/chap2.tex')

diff --git a/chap/chap2.tex b/chap/chap2.tex
index 0dd4296..ae6ea92 100644
--- a/chap/chap2.tex
+++ b/chap/chap2.tex
@@ -15,6 +15,9 @@ Diffie-Hellman，RSA 等密码的私钥。\supercite{TimingAttack} 这是最早
 \supercite{MOP2010}、电磁辐射\supercite{EMpower}、温度
 \supercite{hutter}、噪声\supercite{acoustic}等。
 
+侧信道攻击的一个用途是用于构造隐蔽信道（covert channel）。隐蔽信道是指
+在系统安全策略定义之下，不被允许传输数据的双方，用于传输数据的信道。
+
 现代计算机系统采用多种优化手段，优化可以作用于处理的数据的值、数据的位
 置、数据存放位置的访问频率等，攻击者可以通过这些优化产生的效果，推断出
 计算机系统处理的秘密数据的值。基于软件的微架构侧信道攻击
@@ -55,6 +58,22 @@ Meltdown 型攻击利用的是处理器异常产生的瞬时指令，这些指
 
 \subsubsection{Meltdown}
 
+为了将不同的进程相互隔离，处理器支持虚拟地址空间，它将虚拟地址翻译为物
+理地址。虚拟地址空间将内存划分为一系列的页，系统通过多级页表将虚拟页翻
+译为物理页。页表是一个多级的结构，存放虚拟页到物理页的映射，同时，它还
+保存了每个页的保护属性，用于处理器进行权限检查，例如可读、可写、可执行、
+用户可读等。操作系统中每一个运行中的进程有一个对应的页表，页表所在的位
+置存放在处理器中的一个特定寄存器中，在上下文切换时，操作系统会更新这个
+寄存器，从而切换到处理器的进程可以使用这个进程对应的页表。利用这个机制，
+每个进程的虚拟地址空间映射到不同的物理区域，每个进程只能使用自己地址空
+间中的数据，从而达到进程间隔离的效果。
+
+每个地址空间都可以分为用户地址空间和内核地址空间。正在运行的进程可以访
+问用户地址空间，而内核地址空间只有进入内核态后可以访问，操作系统通过在
+页表中设置内核地址空间的页为用户不可访问，来实现这个特性。内核地址空间
+除了包含内核所要使用的数据外，通常还保存了整个物理内存的映射、文件缓存
+等内容。
+
 操作系统将内核地址空间映射至每个用户进程的地址空间中。处理器执行访存指
 令时，在将虚拟地址翻译为物理地址的时候，检查地址对应的权限位，判断用户
 是否可访问该地址。Meltdown攻击中，攻击者让处理器从用户不可访问的内核地
@@ -83,7 +102,7 @@ mov rbx, qword [rbx + rax] ; 访问探测数组
 \subsubsection{Foreshadow}
 
 Foreshadow\supercite{foreshadow} 是一种可以读取 Intel SGX enclave 中秘
-密数据的Meltdown 型攻击。如果对 SGX 使用 Meltdown 攻击，攻击者读取未授
+密数据的 Meltdown 型攻击。如果对 SGX 使用 Meltdown 攻击，攻击者读取未授
 权的 enclave 内存，不会产生异常，而是读出 abort page 值 -1. 但是 abort
 page 只在页权限检查通过后发生，攻击者可以将该页 present 位清除，即将该
 页设为不存在，此时处理器便会产生异常，但由于一级缓存使用虚拟地址索引，
-- 
cgit v1.2.3

