%\subsection{Memory Access Patterns and Cache Timing Attacks}

Sanctum's main improvement over SGX is preventing software attacks that analyze
an isolated container's memory access patterns to infer private information.
One should be concerned with cache timing attacks
\citep{banescu2011cache}, because they can be mounted by unprivileged software
sharing a computer with the victim software.

Cache timing attacks are known to retrieve cryptographic keys used by AES
\citep{bonneau2006aes}, RSA \citep{brumley2005rsa}, Diffie-Hellman
\citep{kocher1996timing}, and elliptic-curve cryptography \citep{brumley2011ecc}.
While early attacks required access to the victim's CPU core, recent sophisticated attacks \citep{yarom2013llctiming, liu2015llctiming} target the
last-level cache (LLC), which is shared by all cores in a socket.
Recently, \citep{oren2015jstiming} demonstrated a cache timing attack that uses
JavaScript code in a page visited by a web browser.

Cache timing attacks observe a victim's memory access patterns at cache line
granularity. However, recent work shows that private information can be gleaned
even from the page-level memory access pattern obtained by a malicious OS that
simply logs the addresses seen by its page fault handler
\citep{xu2015pagefaults}.
