Repository logo

Infoscience

  • English
  • French
Log In
Logo EPFL, École polytechnique fédérale de Lausanne

Infoscience

  • English
  • French
Log In
  1. Home
  2. Academic and Research Output
  3. Journal articles
  4. Foundational Integration Verification of a Cryptographic Server
 
research article

Foundational Integration Verification of a Cryptographic Server

Erbsen, Andres
•
Philipoom, Jade
•
Jamner, Dustin
Show more
June 20, 2024
Proceedings of the ACM on Programming Languages

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.

  • Files
  • Details
  • Metrics
Type
research article
DOI
10.1145/3656446
Scopus ID

2-s2.0-85196853803

Author(s)
Erbsen, Andres

Google LLC

Philipoom, Jade

Google LLC, Europe

Jamner, Dustin

Massachusetts Institute of Technology

Lin, Ashley

Massachusetts Institute of Technology

Gruetter, Samuel

Massachusetts Institute of Technology

Pit-Claudel, Clément  

École Polytechnique Fédérale de Lausanne

Chlipala, Adam

Massachusetts Institute of Technology

Date Issued

2024-06-20

Published in
Proceedings of the ACM on Programming Languages
Volume

8

Article Number

216

Subjects

bare-metal programming

•

elliptic-curve cryptography

•

proof assistants

Editorial or Peer reviewed

REVIEWED

Written at

EPFL

EPFL units
SYSTEMF  
FunderFunding(s)Grant NumberGrant URL

Google

Tezos Foundation

National Science Foundation

2141064,CCF-1521584,CCF-2217064,CCF-2313023,CNS-2130671

Available on Infoscience
January 21, 2025
Use this identifier to reference this record
https://infoscience.epfl.ch/handle/20.500.14299/243093
Logo EPFL, École polytechnique fédérale de Lausanne
  • Contact
  • infoscience@epfl.ch

  • Follow us on Facebook
  • Follow us on Instagram
  • Follow us on LinkedIn
  • Follow us on X
  • Follow us on Youtube
AccessibilityLegal noticePrivacy policyCookie settingsEnd User AgreementGet helpFeedback

Infoscience is a service managed and provided by the Library and IT Services of EPFL. © EPFL, tous droits réservés