1. Dynamic Attestation of Real-Time Systems.
- Author
-
Potthoff, Travis and Graham, Scott
- Abstract
To attest is to affirm to be correct, true, or genuine. Applied to software, or executable code, attestation is the ability to affirm that the code being executed is the code, unmodified in any way, that was originally intended for execution. Attestation may be performed in hardware, resulting in greater confidence but also increased cost, or using software itself, which would be more widely applicable. Current research into software attestation, such as SoftWare based ATTestation (SWATT) (2004) and Indisputable Code Execution (ICE) (2004) by Seshadri, et al., have explored the problem of verifying that the software running on a system is, in fact, the expected and unaltered software. In reality, these approaches typically verify only the software that the system loads at boot-time, representing static attestation. For many systems, knowing that the system's initial state is valid is not enough - verification that the system is still in a good state is needed later and without bringing the system offline or interrupting critical processes. Hardware-assisted attestation methods such as Dynamic Integrity Measurement and Attestation (Davi, et al., 2009) do exist and would be able to perform attestation with reduced impact to the system's operation, but implementation in legacy systems would require cost-prohibitive hardware replacement. In this paper, we introduce a proof-of-concept method for performing attestation on real-time systems, called Dynamic Attestation of Run-Time Systems (DARTS). A key contribution of this work is that the entire attestation process is performed wholly in software on a real-time system without impacting the operation of potentially critical processes. In theory, a key limitation to this approach is that the method requires a Harvard memory architecture, wherein executable code is separated from data, and a static allocation of memory that does not change over time. While this limitation may seem severe for general purpose computing, it is a common feature in real-time and safety critical systems. [ABSTRACT FROM AUTHOR]
- Published
- 2017