Hammurabi: A Framework for Pluggable, Logic-Based X.509 Certificate Validation Policies
James Larisch, Waqar Aqeel, Michael Lum, Yaelle Goldschlag, Leah Kannan, Kasra Torshizi, Yujie Wang, Taejoong Chung, Dave Levin, Bruce M. Maggs, Alan Mislove, Bryan Parno, Christo Wilson
Abstract
This paper proposes using a logic programming language to disentangle X.509 certificate validation policy from mechanism. Expressing validation policies in a logic programming language provides multiple benefits. First, policy and mechanism can be more independently written, augmented, and analyzed compared to the current practice of interweaving them within a C or C++ implementation. Once written, these policies can be easily shared and modified for use in different TLS clients. Further, logic programming allows us to determine when clients differ in their policies and use the power of imputation to automatically generate interesting certificates, e.g., a certificate that will be accepted by one browser but not by another. We present a new framework called Hammurabi for expressing validation policies, and we demonstrate that we can express the complex policies of the Google Chrome and Mozilla Firefox web browsers in this framework. We confirm the fidelity of the Hammurabi policies by comparing the validation decisions they make with those made by the browsers themselves on over ten million certificate chains derived from Certificate Transparency logs, as well as 100K synthetic chains. We also use imputation to discover nine validation differences between the two browsers' policies. Finally, we demonstrate the feasibility of integrating Hammurabi into Firefox and the Go language in less than 100 lines of code each. CCS CONCEPTS • Security and privacy → Web protocol security; Logic and verification.
Ask about this paper
Your agent reads all of it.
Lune indexed this paper to the last equation, along with the top-tier papers that cite it. Ask a question and the answer quotes them.
Your agent calls
Luneget_paper_fulltext
Free to start. No credit card required.
Terminal
Install the CLIlune papers fulltext 4e93ad01-06e9-4431-a7f2-16a8882c44d1Cited by top-tier papers1
Ask how each one uses itBuilds on15
- Verified Models and Reference Implementations for the TLS 1.3 Standard CandidateKarthikeyan Bhargavan, Bruno Blanchet, Nadim KobeissiS&P 2017 · 233 citations
- Systematic Fuzzing and Testing of TLS LibrariesJuraj SomorovskyCCS 2016 · 136 citations
- Automated Analysis and Verification of TLS 1.3: 0-RTT, Resumption and Delayed AuthenticationCas Cremers, Marko Horvat, Sam Scott, Thyla van der MerweS&P 2016 · 128 citations
- TLS in the Wild: An Internet-wide Analysis of TLS-based Protocols for Electronic CommunicationRalph Holz, Johanna Amann, Olivier Mehani, Mohamed Ali Kâafar et al.NDSS 2016 · 117 citations
- CRLite: A Scalable System for Pushing All TLS Revocations to All BrowsersJames Larisch, David R. Choffnes, Dave Levin, Bruce M. Maggs et al.S&P 2017 · 105 citations
Related papers
- Hallucinating Certificates: Differential Testing of TLS Certificate Validation Using Generative Language ModelsMuhammad Talha Paracha, Kyle Posluns, Kevin Borgolte, Martina Lindorfer et al.ICSE 2026
- ARMOR: A Formally Verified Implementation of X.509 Certificate Chain ValidationJoyanta Debnath, Christa Jenkins, Yuteng Sun, Sze Yiu Chau et al.S&P 2024 · 6 citations
- Cinderella: Turning Shabby X.509 Certificates into Elegant Anonymous Credentials with the Magic of Verifiable ComputationAntoine Delignat-Lavaud, Cédric Fournet, Markulf Kohlweiss, Bryan ParnoS&P 2016 · 83 citations
- SADT: Syntax-Aware Differential Testing of Certificate Validation in SSL/TLS ImplementationsLili Quan, Qianyu Guo, Hongxu Chen, Xiaofei Xie et al.ASE 2020 · 10 citations
- On Re-engineering the X.509 PKI with Executable Specification for Better Implementation GuaranteesJoyanta Debnath, Sze Yiu Chau, Omar ChowdhuryCCS 2021 · 8 citations
