Foundational Integration Verification of a Cryptographic Server
Name
3656446.pdf
Size
579.5 KB
Format
Adobe PDF
Checksum (MD5)
29a3ec18553c82f39867d400442498e7
Author(s) • • • • • •
Erbsen, Andres
Philipoom, Jade
Jamner, Dustin
Lin, Ashley
Gruetter, Samuel
Pit-Claudel, Clément
Chlipala, Adam
Date Issued
June 20, 2024
Journal
Proceedings of the ACM on Programming Languages
Publisher
Association for Computing Machinery
Citation
Erbsen, Andres, Philipoom, Jade, Jamner, Dustin, Lin, Ashley, Gruetter, Samuel et al. 2024. "Foundational Integration Verification of a Cryptographic Server." Proceedings of the ACM on Programming Languages, 8 (PLDI).
Version
Final published version
Abstract
We present verification of a bare-metal server built using diverse implementation techniques and languages against a whole-system input-output specification in terms of machine code, network packets, and mathematical specifications of elliptic-curve cryptography. We used very different formal-reasoning techniques throughout the stack, ranging from computer algebra, symbolic execution, and verification-condition generation to interactive verification of functional programs including compilers for C-like and functional languages. All these component specifications and domain-specific reasoning techniques are defined and justified against common foundations in the Coq proof assistant. Connecting these components is a minimalistic specification style based on functional programs and assertions over simple objects, omnisemantics for program execution, and basic separation logic for memory layout. This design enables us to bring the components together in a top-level correctness theorem that can be audited without understanding or trusting the internal interfaces and tools. Our case study is a simple cryptographic server for flipping of a bit of state through public-key authenticated network messages, and its proof shows total functional correctness including static bounds on memory usage. This paper also describes our experiences with the specific verification tools we build upon, along with detailed analysis of reasons behind the widely varying levels of productivity we experienced between combinations of tools and tasks.
MIT Department
Massachusetts Institute of Technology. Department of Electrical Engineering and Computer Science
Massachusetts Institute of Technology. Computer Science and Artificial Intelligence Laboratory
Terms of Use
Creative Commons Attribution
Persistent DSpace Link
DOI of Published Version
https://doi.org/10.1145/3656446