ARMOR: A Formally Verified Implementation of X.509 Certificate Chain Validation
Joyanta Debnath, Christa Jenkins, Yuteng Sun, Sze Yiu Chau, Omar Chowdhury
Abstract
We present ARMOR, the first substantial effort towards an X.509 certificate chain validation logic (CCVL) implementation with formal, machine-checked correctness guarantees for a large portion of RFC 5280. ARMOR is designed with the twofold goal of providing 1) a formal, machine checked alternative to the RFC specifications, and 2) a reference implementation and test oracle. ARMOR features a modular architecture in which the X.509 CCVL is decomposed into several modules, each of which is independently specified, implemented, and verified. Currently, the formally verified modules of ARMOR include those for the specification and parsing of (subsets of) the PEM and ASN.1 X.690 DER languages, certificate chain building, and many semantic properties concerning required properties of fields within a single certificate and across certificates in a chain. To empirically evaluate its achievement of these goals, we compare ARMOR with 11 open-source X.509 implementations and an open-source certificate linter for its specificational accuracy and runtime overhead. In our evaluation, although ARMOR incurs a high overhead, through its use we are able to detect several noncompliances. Finally, we show an end-to-end application of ARMOR by integrating it with the TLS 1.3 implementation of BoringSSL and testing it with Curl.
Ask about this paper
Ask your agent about it.
Lune has read the top-tier papers around this one, so every answer names the papers it rests on.
Your agent calls
Lunesearch_papers
Free to start. No credit card required.
Terminal
Install the CLIlune papers get 1f1658bd-8040-42f3-bbbc-fa6283f3113cCited by top-tier papers5
- Formal Security and Functional Verification of Cryptographic Protocol Implementations in RustKarthikeyan Bhargavan, Lasse Letager Hansen, Franziskus Kiefer, Jonas Schneider-Bensch et al.CCS 2025 · 1 citation
- Towards Practical, End-to-End Formally Verified X.509 Certificate Validators with VerdictZhengyao Lin, Michael McLoughlin, Pratap Singh, Rory Brennan-Jones et al.USENIX Security 2025
- Hallucinating Certificates: Differential Testing of TLS Certificate Validation Using Generative Language ModelsMuhammad Talha Paracha, Kyle Posluns, Kevin Borgolte, Martina Lindorfer et al.ICSE 2026
- VUPER: Verified ASN.1 UPER ParserXiaotian Zhou, Kai Tu, Ali Ranjbar, Yilu Dong et al.CCS 2026
- Secure Parsing and Serializing with Separation Logic Applied to CBOR, CDDL, and COSETahina Ramananandro, Gabriel Ebner, Guido Martínez, Nikhil SwamyCCS 2025
Related papers
- On the Unnecessary Complexity of Names in X.509 and Their Impact on ImplementationsYuteng Sun, Joyanta Debnath, Wenzheng Hong, Omar Chowdhury et al.FSE 2025
- On Re-engineering the X.509 PKI with Executable Specification for Better Implementation GuaranteesJoyanta Debnath, Sze Yiu Chau, Omar ChowdhuryCCS 2021 · 8 citations
- SymCerts: Practical Symbolic Execution for Exposing Noncompliance in X.509 Certificate Validation ImplementationsSze Yiu Chau, Omar Chowdhury, Md. Endadul Hoque, Huangyi Ge et al.S&P 2017 · 67 citations
- Simple High-Level Code for Cryptographic Arithmetic - With Proofs, Without CompromisesAndres Erbsen, Jade Philipoom, Jason Gross, Robert Sloan et al.S&P 2019 · 147 citations
- EverParse: Verified Secure Zero-Copy Parsers for Authenticated Message FormatsTahina Ramananandro, Antoine Delignat-Lavaud, Cédric Fournet, Nikhil Swamy et al.USENIX Security 2019 · 70 citations
