Checking and Automating Confidentiality Theory in Isabelle/UTP

Lex Bailey,Jim Woodcock,Simon Foster,Roberto Metere
2023-09-08
Abstract:The severity of recent vulnerabilities discovered on modern CPUs, e.g., Spectre [1], highlights how information leakage can have devas-tating effects to the security of computer systems. At the same time, it suggests that confidentiality should be promoted as a normal part of program verification, to discover and mitigate such vulnerabili-ties early in development. The theory we propose is primarily based on Bank's theory [2], a framework for reasoning about confidentiali-ty properties formalised in the Unifying Theories of Programming (UTP) [3]. We mechanised our encoding in the current implementa-tion of UTP in the Isabelle theorem prover, Isabelle/UTP [4]. We have identified some theoretical issues in Bank's original framework. Finally, we demonstrate how our mechanisation can be used to for-mally verify of some of the examples from Bank's work.
Cryptography and Security
What problem does this paper attempt to address?
The problem this paper attempts to address is how to effectively verify the confidentiality of programs in modern computer systems. Specifically, the paper focuses on how to detect and mitigate security vulnerabilities such as information leaks early in the program design phase to prevent severe consequences from modern CPU vulnerabilities like Spectre. The authors propose a framework based on Michael Banks' theory and formalize it into the Isabelle/UTP theorem prover, aiming to automate the checking and verification of program confidentiality properties. Additionally, the paper identifies some theoretical issues in Banks' original framework and proposes corresponding corrective measures. With this tool, researchers can more effectively verify whether a program correctly implements its specifications while ensuring the program's confidentiality.