SECRITPLMay 19, 2019

Safe and Chaotic Compilation for Hidden Deterministic Hardware Aliasing

arXiv:1905.08240v1
Originality Incremental advance
AI Analysis

This addresses reliability and security issues for software on embedded systems and in fault-prone environments like space missions, though it is incremental as it builds on existing compilation methods.

The paper tackles the problem of hardware aliasing in embedded systems and faulty hardware by developing a software compilation technique that ensures code works on platforms with hidden deterministic aliasing, and extends it to generate aliasing for security, with a prototype compiler covering most of ANSI C.

Hardware aliasing occurs when the same logical address can access different physical memory locations. This is a problem for software on some embedded systems and more generally when hardware becomes faulty in irretrievable locations, such as on a Mars Lander. We show how to work around the hardware problem with software logic, compiling code so it works on any platform with hardware aliasing with hidden determinism. That is: (i) a copy of an address accesses the same location, and (ii) repeating an address calculation exactly will repeat the same access again. Stuck bits can mean that even adding zero to an address can make a difference in that environment so nothing but a systematic approach has a chance of working. The technique is extended to generate aliasing as well as compensate for it, in so-called chaotic compilation, and a sketch proof is included to show it may produce object code that is secure against discovery of the programmer's intention. A prototype compiler implementing the technology covers all of ANSI C except longjmp/setjmp.

Foundations

The foundational work for this paper's niche, ranked by how specifically the neighbourhood builds on it — not by global fame.

Your Notes