Available at: https://digitalcommons.calpoly.edu/theses/3035
Date of Award
6-2025
Degree Name
MS in Computer Science
Department/Program
Computer Science
College
College of Engineering
Advisor
Stephen Beard
Advisor Department
Computer Science
Advisor College
College of Engineering
Abstract
Software correctness and integrity is only ensured through trust in the un- derlying hardware. However, modern computer systems are complex to design and secure. Thus, given the choice between performance and security, companies will often prioritize performance, resulting in vulnerable systems. This creates exploitable systems that must be patched retroactively because business value performance over security. One approach to this issue is to separate the root of security from the rest of the system to create a minimal trusted computing base. Trustguard is one instance of this. Trustguard implements a Containment Architecture with Ver- ified Output (CAVO) model which shows how a simple, pluggable co-processor, called the Sentry, can secure commodity systems. The Sentry monitors com- mitted instructions from trusted software to enforce containment and software integrity. The Sentry is currently implemented as a proof-of-concept single-context co- processor for unicore systems with no concurrency features. This thesis aims to extend the work of the Sentry by leveraging its correctness guarantees and present a design capable of managing multiple single-threaded programs. It discusses the problems and solutions when managing multiple independent Merkle trees to ensure program integrity and isolation for processes on a time-sharing processor. To this end, this thesis proposes a new Sentry hardware architecture, runtime algorithms, and bootstrapping procedures to support context switching.