Compilation beyond semantics for hardware security
Where it appeared
| School | Université Grenoble Alpes |
|---|
From bibtex.
Abstract
Computer systems are built in layers to contain their complexity. Software and hardware are mostly independent from each other and communicate only through a tightly controlled interface, a kind of programming language called assembler. One limitation of this system is that the interfaces between layers only isolate functionality; for every other aspect, such as performance or security, one has to consider the system in all its complexity. Fault injection attacks induce abnormal behaviours in hardware by purposefully interfering with the circuit, and the assembler language has no mechanisms for abstracting faults to the software level, so designing a software countermeasure requires understanding the effects of faults on the hardware's internal details. The problem also arises within software: a compiler unaware of the security threat will delete a duplicated sensitive computation it deems redundant, so programmers must understand the compiler's internals, a task frequently dodged by disabling optimizations. The central argument of this thesis is that the compiler's complexity hides other threats than optimizations, since compilation proceeds through several intermediate languages.