-
Notifications
You must be signed in to change notification settings - Fork 0
/
hdr.html
168 lines (150 loc) · 9.69 KB
/
hdr.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Damien Couroussé - Habilitation à diriger des recherches</title>
<meta name="description" content="damien dot courousse dot fr">
<meta name="author" content="Damien Couroussé">
<link rel="stylesheet" href="https://unpkg.com/[email protected]/build/pure-min.css">
<!--[if lte IE 8]>
<link rel="stylesheet" href="/assets/css/side-menu-old-ie.css">
<![endif]-->
<!--[if gt IE 8]><!-->
<link rel="stylesheet" href="./assets/css/side-menu.css">
<!--<![endif]-->
<link rel="stylesheet" href="./assets/css/main.css">
<link rel="stylesheet" href="./assets/css/img-overlay.css">
</head>
<body>
<div id="layout">
<!-- Menu toggle -->
<a href="#menu" id="menuLink" class="menu-link">
<!-- Hamburger icon -->
<span></span>
</a>
<div id="menu">
<div class="pure-menu pure-menu-open">
<a class="pure-menu-heading" href="./index.html">Home</a>
<ul class="pure-menu-list">
<li class="pure-menu-item">
<a href="./publications.html" class="pure-menu-link">Publications</a>
</li>
<!-- <li class="pure-menu-item"> -->
<!-- <a href="/posts.html" class="pure-menu-link">Posts</a> -->
<!-- </li> -->
<!-- <li class="pure-menu-item"> -->
<!-- <a href="/sw.html" class="pure-menu-link">Software</a> -->
<!-- </li> -->
<!-- <li class="pure-menu-item"> -->
<!-- <a href="/expressions-urbaines.html" -->
<!-- class="pure-menu-link">Expressions urbaines</a> -->
<!-- </li> -->
</ul>
</div>
</div> <!-- /menu -->
<div id="main">
<div class="header">
<h1>Habilitation à diriger des recherches</h1>
</div>
<div class="content">
<div class="pure-g">
<div class="pure-u-1">
<p>La soutenance a eu lieu le 28 août 2024, à Minatec, Grenoble, et en visio-conférence.</p>
<p><a href="pdf/HDR Damien Couroussé - memoire - 1.0.pdf">Mémoire: Application outillée de contre-mesures contre les attaques matérielles (PDF)</a></p>
<p><a href="pdf/HDR slides 20240828.pdf">Slides de soutenance (PDF)</a></p>
<h3>Jury</h3>
<table>
<tbody>
<tr class="odd">
<td><strong>Rapporteurs</strong></td>
<td> </td>
<td>Guy Gogniat</td>
<td> </td>
<td>professeur à l'Université Bretagne Sud</td>
</tr>
<tr class="even">
<td></td>
<td></td>
<td>Guillaume Hiet</td>
<td></td>
<td>professeur à CentraleSupélec Rennes</td>
</tr>
<tr class="odd">
<td></td>
<td></td>
<td>Ingrid Verbauwhede</td>
<td></td>
<td>professeure à KU Leuven</td>
</tr>
<tr class="even">
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr class="odd">
<td><strong>Examinateurs</strong></td>
<td></td>
<td>Aurélien Francillon</td>
<td></td>
<td>professeur à EURECOM</td>
</tr>
<tr class="even">
<td></td>
<td></td>
<td>Karine Heydemann</td>
<td></td>
<td>experte sécurité à Thalès DIS, chercheuse associée au LIP6</td>
</tr>
<tr class="odd">
<td></td>
<td></td>
<td>David Hély</td>
<td></td>
<td>professeur à LCIS, Université Grenoble Alpes</td>
</tr>
<tr class="even">
<td></td>
<td></td>
<td>Marie-Laure Potet</td>
<td></td>
<td>professeure à Université Grenoble Alpes</td>
</tr>
</tbody>
</table>
<h3>Résumé</h3>
<p>Ce mémoire d'habilitation porte sur la sécurisation des systèmes embarqués contre les attaques par canal auxiliaire et par injection de fautes. Les attaques par canal auxiliaire exploitent des observations physiques du circuit en fonctionnement pour inférer des informations additionnelles, non prévues dans un modèle d'attaquant en cryptanalyse pure, permettant d'altérer une propriété de sécurité, typiquement la confidentialité d'informations manipulées pendant un calcul. Les attaques par injection de fautes exploitent des perturbations physiques du circuit pour induire des effets inattendus dans son fonctionnement. Les conséquences logiques de ces perturbations matérielles permettent d'outrepasser la sécurité du système attaqué, par exemple faire fuir un secret ou obtenir des droits d'administration.</p>
<p>La première partie du mémoire s'intéresse au potentiel du compilateur pour l'application de contre-mesures logicielles contre les attaques matérielles. Cette question est traitée sous deux aspects. (i) Montrer qu'il est possible d'exploiter le compilateur pour l'application de contre-mesures. Cette question n'est pas triviale puisqu'un compilateur traditionnel s'intéresse seulement aux propriétés fonctionnelles du programme cible, alors que, pour l'application de contre-mesures, on s'intéresse à des propriétés de sécurité, non fonctionnelles. Cette question concerne également l'optimisation de la contre-mesure elle-même et du code ciblé par la protection. (ii) L'utilisation du compilateur comme levier pour la sécurisation de programmes: on exploite le compilateur pour augmenter le potentiel d'une contre-mesure ou pour la rendre paramétrable, donc rendre son application plus flexible. Le compilateur peut ainsi permettre l'implémentation de contre-mesures qui seraient autrement impossibles à mettre en œuvre.</p>
<p>Dans l'objectif d'adresser des modèles d'attaquants plus puissants, la deuxième partie du mémoire aborde la conception conjointe, logicielle et matérielle, de schémas de protection. Cette problématique est traitée sous deux aspects. (i) Comment exploiter des contre-mesures matérielles et les articuler avec des contre-mesures logicielles pour obtenir une protection à la couverture large permettant de couvrir un scenario d'attaque complet, depuis l'analyse préliminaire de la cible jusqu'à l'exploitation de techniques d’attaque spécifiques. (ii) Comment articuler un schéma de protection logiciel avec des contre-mesures matérielles pour obtenir un niveau de protection global élevé contre les injections de fautes, de manière à assurer l'intégrité complète du chemin d'instructions d'un processeur, en particulier les signaux de contrôle de sa micro-architecture.</p>
<p><strong>Mots clés</strong> : sécurité matérielle, canal auxiliaire, injection de faute, compilation, micro-architecture des processeurs</p>
<h3>Abstract</h3>
<p>This dissertation deals with securing embedded systems against side-channel and fault injection attacks. Side-channel attacks exploit physical observations of the circuit in operation to infer additional information that is not exploitable in a pure cryptanalysis attacker model, making it possible to alter a security property, typically the confidentiality of information manipulated during a computation. Fault injection attacks exploit physical perturbations of the circuit to induce unexpected effects in its operation. The logical consequences of these perturbations can be used to override the security of the system under attack, e.g. to leak a secret or escalate privileges.</p>
<p>The first part of the dissertation focuses on the role of the compiler in a toolchain for securing software against hardware attacks, in particular, the compiler's potential for applying software countermeasures. This question is addressed from two angles. (i) Show that it is possible to rely on a (modified) compiler for the application of countermeasures. This question is not trivial since a traditional compiler is only interested in the functional properties of the target program, whereas the application of countermeasures deals with non-functional, security properties. This axis also concerns the optimization of the countermeasure itself and the code targeted by the protection. (ii) Using the compiler as a lever for program security: The aim is to increase the potential of a countermeasure, or to make the countermeasure parameterizable and therefore flexible in application. The compiler can also be used to support countermeasures that would otherwise be difficult to implement in practice.</p>
<p>With the aim of addressing more powerful attacker models, the second part of the dissertation addresses the joint design, in software and hardware, of protection schemes. This problem is addressed from two angles. (i) How to exploit hardware countermeasures and articulate them with software countermeasures to obtain full-coverage protection, enabling a complete attack scenario to be covered, from the target analysis phase to the exploitation of analysis techniques. (ii) How to articulate a software protection scheme with hardware protection elements to obtain a high level of protection against fault injections, so as to provide complete integrity of a processor's instruction path, in particular the control signals of its micro-architecture.</p>
<p><strong>Keywords</strong>: hardware security, side-channel, fault injection, compilation, processor microarchitecture</p>
</div>
</div> <!-- pure-g -->
</div> <!-- /content -->
</div> <!-- /main -->
<footer id="footer">
<div class="footer">
<p style="text-align:center; font-size:75%">
Site generated by <a href="https://jaspervdj.be/hakyll">Hakyll</a>
and <a href="https://pandoc.org">pandoc</a>
</p>
<p style="text-align:center; font-size:75%">
<a href="https://github.com/damiencourousse/website/commits/master">
Page last modified
by commit c9cf001,
Thu, 26 Sep 2024 10:30:57 +0200
</a>
</p>
<br>
</div>
</footer>
</div> <!-- /layout -->
<script src="./assets/js/ui.js"></script>
</body>
</html>