Towards Formal Verification of a TPM Software Stack
Yani Ziani, Nikolai Kosmatov, Fr\'ed\'eric Loulergue, Daniel, Gracia P\'erez, T\'eo Bernier

TL;DR
This paper presents a case study on applying formal verification techniques to the TPM Software Stack (tpm2-tss) using Frama-C, highlighting challenges, solutions, and future directions for full verification.
Contribution
It demonstrates the feasibility of verifying complex TPM software code and discusses specific issues and solutions encountered during the process.
Findings
Verified functional properties of a subset of tpm2-tss functions.
Identified key challenges in verifying linked list-based code.
Outlined necessary tool improvements for complete verification.
Abstract
The Trusted Platform Module (TPM) is a cryptoprocessor designed to protect integrity and security of modern computers. Communications with the TPM go through the TPM Software Stack (TSS), a popular implementation of which is the open-source library tpm2-tss. Vulnerabilities in its code could allow attackers to recover sensitive information and take control of the system. This paper describes a case study on formal verification of tpm2-tss using the Frama-C verification platform. Heavily based on linked lists and complex data structures, the library code appears to be highly challenging for the verification tool. We present several issues and limitations we faced, illustrate them with examples and present solutions that allowed us to verify functional properties and the absence of runtime errors for a representative subset of functions. We describe verification results and desired tool…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsSecurity and Verification in Computing · Cloud Data Security Solutions · Digital and Cyber Forensics
