Background
Trusted Computing and its core technology, the Trusted Platform Module (TPM), were introduced about 20 years ago. A TPM is a special chip on a computer’s motherboard that aids an operating system in the implementation and enforcement of advanced security. Only a few applications currently take advantage of the functions provided by a TPM. This changes nowadays, with the wide-spread roll-out of Windows 11: it requires a TPM v2 as a mandatory component on common PCs.
The TCG Software Stack (TSS), the standard code to interact with a TPM, is commonly written in the C programming language and an official open-source implementation is available. However, this implementation is complex and somewhat impractical for use by applications. Alternative libraries typically wrap the C-based TSS using foreign function interfaces (FFI), mapping the C-based API to more ergonomic, language-specific types and functions.
Goals
This project explores and prototypes a framework that replicates the functionality of the TCG Software Stack (TSS) and enables applications to interact with a TPM 2.0. However, unlike existing efforts, this project aims for an implementation entirely in Rust—a programming language that allows for more robust code and greater memory safety than the C programming language.
The output(s) of this project will be released as open-source. We believe that a key security component like a TSS should be open source and accessible for academic study and public use. Only then can it truly support learning, research, and further development.
Impact
The project provides hands-on experience with the TPM 2.0. This is particularly important, as every PC that runs on Windows 11 uses the TPM. The knowledge that accumulates through this project also helps to familiarise our students with the technology and its potential applications.
Funding
You want to know more? Feel free to ask!
Department of Computer Science and Security