TUM Logo

Remote Runtime Attestation of Dynamic Data Blocks

During computation, the state of a computer system and its data is important. In order to monitor these parameters, remote runtime attestation is employed. Remote runtime attestation is a process that uses previous knowledge, such as the initial state of a system, alongside information that is gathered during runtime. It then uses the combination of knowledge to decide whether the system has been compromised or not. This information by the system under test, the prover, is then made available to interested parties, for instance the verifier of the system integrity. However, there is no established process to provide this protection for data blocks that change during runtime. This work provides two approaches to provide integrity attestation for these dynamic data blocks. Within these approaches, we found that every single data block has to be checked at least once. Furthermore, we found that there does not seem to be a way to ensure that we can perform an attestation without the use of logs. This means that while there is a way to provide remote runtime attestation for these dynamic data blocks, the computational expense will have to be considered in terms of performance. What is important to consider however, is that we offered up a way to protect the integrity of data blocks during runtime, which is a starting point. We analyse and compare our approaches in terms of performance and architectural requirements, such as relying on constant logging of states to the verifier. While this work is not complete, it offers a means to provide integrity protection to a program’s data needs during runtime, on which it relies to perform as expected.

Remote Runtime Attestation of Dynamic Data Blocks

Supervisor(s): Hendrik Meyer zum Felde
Status: finished
Topic: Others
Author: Tim Kruse
Submission: 2022-08-15
Type of Thesis: Bachelorthesis
Proof of Concept No
Thesis topic in co-operation with the Fraunhofer Institute for Applied and Integrated Security AISEC, Garching

Astract:

During computation, the state of a computer system and its data is important. In order to monitor these parameters, remote runtime attestation is employed. Remote runtime attestation is a process that uses previous knowledge, such as the initial state of a system, alongside information that is gathered during runtime. It then uses the combination of knowledge to decide whether the system has been compromised or not. This information by the system under test, the prover, is then made available to interested parties, for instance the verifier of the system integrity. However, there is no established process to provide this protection for data blocks that change during runtime. This work provides two approaches to provide integrity attestation for these dynamic data blocks. Within these approaches, we found that every single data block has to be checked at least once. Furthermore, we found that there does not seem to be a way to ensure that we can perform an attestation without the use of logs. This means that while there is a way to provide remote runtime attestation for these dynamic data blocks, the computational expense will have to be considered in terms of performance. What is important to consider however, is that we offered up a way to protect the integrity of data blocks during runtime, which is a starting point. We analyse and compare our approaches in terms of performance and architectural requirements, such as relying on constant logging of states to the verifier. While this work is not complete, it offers a means to provide integrity protection to a program’s data needs during runtime, on which it relies to perform as expected.