Add table of contents

This commit is contained in:
augustin64 2024-07-08 17:03:30 +02:00
parent 3536f120f9
commit eab141c799
5 changed files with 95 additions and 25 deletions

7
Makefile Normal file
View File

@ -0,0 +1,7 @@
main.pdf: main.tex refs.bib
pdflatex -interaction=nonstop -halt-on-error main.tex
bibtex main
pdflatex -interaction=nonstop -halt-on-error main.tex
clean:
rm *.bbl *.bcf *.blg *.log *.pdf *.run.xml *.toc *.aux *.out -f

BIN
figs/broadwell-die-shot.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.7 MiB

BIN
figs/cachehierarchy.pdf Normal file

Binary file not shown.

View File

@ -8,6 +8,11 @@
\usepackage{listings}
\usepackage{amsmath}
\usepackage[french]{babel}
\usepackage{hyperref}
\usepackage{graphicx}
\hypersetup{colorlinks=false}
\graphicspath{ {./figs/} }
% titre
\title{Caractérisation de linstruction \texttt{clflush} sur systèmes multi-socket}
@ -20,16 +25,73 @@ RENNES}
\date{3 Juin 2024 - 12 Juillet 2024}
% quelques macros
% \newcommand...
\newcommand{\TODO}[1]{\textbf{\color{red}#1}}
% le document lui-même
\begin{document}
\maketitle
\tableofcontents
\newpage
\tableofcontents
\section{Abstract}
\TODO{Réécrire parce qu'il fallait juste que je démarre mais ça ne ressemble à rien}
Les CPU modernes ont beaucoup d'instruction, et leur compréhension complète demande
une très grande maitrise technique. De plus, le fonctionnement détaillé des instructions des leaders du domaine
(Intel) est souvent non documenté, compliquant l'émergence de nouvelles industries dans ce secteur
très compétitif. Certaines attaques par canaux auxiliaire sur le cache comme Flush+Flush \cite{flushflush}
exploitent des caractéristiques très fines des processeurs, il est alors important de comprendre
le fonctionnement intrinsèque de certaines instruction pour mieux réaliser
ces attaques. \textit{Calibration Done right} \cite{calibrationdoneright} caractérise le fonctionnement de
l'instruction \texttt{clflush} sur certains processeurs Intel mais a mis en évidence que le fonctionnement
sur des systèmes à plusieurs sockets était significativement différent.
\section{Introduction}
\subsection{Hiérarchie de cache}
La mémoire DRAM d'un ordinateur est lente comparée à la fréquence du CPU. Le CPU dispose donc de caches,
basés sur une mémoire SRAM, plus petite mais plus rapide. La politique de fonctionnement du cache
cherche à minimiser le temps d'exécution qui est bloqué par les accès à la mémoire. Une politique optimale
serait donc de charger en priorité les données qui vont être utilisées dans un futur proche et d'évicter
les données qui seront utilisées dans plus longtemps ou qui ne sont plus utiles.
Comme on ne peut pas déterminer cela aisément, une heuristique de type LRU (Least Recently Used) est
généralement mise en place pour déterminer les données à évicter.
\begin{center}
\includegraphics{cachehierarchy}
\end{center}
Les processeurs que nous étudions disposent de 3 niveaux de cache : L1, L2, L3. À l'instar du L1 et L2,
le cache L3 est partagé et inclusif\footnote{Cela dépend de l'architecture considérée : à partir de SkyLake, le L3 n'est plus inclusif} : le L3 est le même pour tous les coeurs,
alors que chaque coeur dispose de son L1 et son L2 ; toutes les données contenues dans au
moins un L1 ou un L2 sont aussi dans le L3
Si le L3 est partagé, il n'est cependant pas composé d'un unique \TODO{espace mémoire} dans le CPU mais est séparé en différentes slices : des tranches de mémoire accolées chacune à un coeur~
\footnote{\TODO{c'est plus compliqué sur les nouveaux proc}}.
\begin{figure}[h]
\centering
\includegraphics[width=0.4\textwidth]{broadwell-die-shot}
\caption{Broadwell Deca-Core die shot by Intel - annotated by Wikichip \cite{broadwelldieshot}}
\end{figure}
\subsubsection{L'instruction \texttt{clflush}}
\subsection{Attaques par canaux auxiliaires: Flush+Flush}
\section{Systèmes multi-socket}
\TODO{trouver un titre approprié}
\subsection{Conduite des expériences}
\subsection{Analyse des résultats}
\bibliographystyle{plain}
\bibliography{refs}
Experiments presented in this paper were carried out using the Grid'5000 testbed, supported by a scientific interest group hosted by Inria and including \textsc{Cnrs}, \textsc{Renater} and several Universities as well as other organizations (see \url{https://www.grid5000.fr} ).
\end{document}

View File

@ -1,27 +1,28 @@
@misc{flushflush,
title={Flush+Flush: A Fast and Stealthy Cache Attack},
author={Daniel Gruss and Clémentine Maurice and Klaus Wagner and Stefan Mangard},
year={2016},
eprint={1511.04594},
archivePrefix={arXiv},
primaryClass={cs.CR},
url={https://arxiv.org/abs/1511.04594},
title={Flush+Flush: A Fast and Stealthy Cache Attack},
author={Daniel Gruss and Clémentine Maurice and Klaus Wagner and Stefan Mangard},
year={2016},
eprint={1511.04594},
archivePrefix={arXiv},
primaryClass={cs.CR},
url={https://arxiv.org/abs/1511.04594},
}
@InProceedings{calibrationdoneright,
author="Didier, Guillaume
and Maurice, Cl{\'e}mentine",
editor="Bilge, Leyla
and Cavallaro, Lorenzo
and Pellegrino, Giancarlo
and Neves, Nuno",
title="Calibration Done Right: Noiseless Flush+Flush Attacks",
booktitle="Detection of Intrusions and Malware, and Vulnerability Assessment",
year="2021",
publisher="Springer International Publishing",
address="Cham",
pages="278--298",
abstract="Caches leak information through timing measurements and side-channel attacks. Several attack primitives exist with different requirements and trade-offs. Flush+Flush is a stealthy and fast one that uses the timing of the clflush instruction depending on whether a line is cached. We show that the CPU interconnect plays a bigger role than previously thought in these timings and in Flush+Flush error rate.",
isbn="978-3-030-80825-9",
url={https://doi.org/10.1007/978-3-030-80825-9_14}
@inproceedings{calibrationdoneright,
TITLE = {{Calibration Done Right: Noiseless Flush+Flush Attacks}},
AUTHOR = {Didier, Guillaume and Maurice, Cl{\'e}mentine},
URL = {https://inria.hal.science/hal-03267431},
BOOKTITLE = {{DIMVA 2021 - The 18th Conference on Detection of Intrusions and Malware \& Vulnerability Assessment}},
ADDRESS = {Lisboa / Virtual, Portugal},
YEAR = {2021},
MONTH = Jul,
PDF = {https://inria.hal.science/hal-03267431/file/dimva21_didier.pdf},
HAL_ID = {hal-03267431},
HAL_VERSION = {v1},
}
@misc{broadwelldieshot,
title={Broadwell - Microarchitectures - Intel - WikiChip (2024)},
url={https://en.wikichip.org/wiki/intel/microarchitectures/broadwell_(client)#Deca-core_Broadwell},
}