Paper 2026/670 Original: eprint.iacr.org/2026/670 ↗
Verification Facade: Masquerading Insecure Cryptographic Implementations as Verified Code
Abstract
Hax is a verification pipeline that translates a subset of Rust into F*, enabling machine-checked proofs of panic freedom and functional correctness for cryptographic implementations being developed in partnership with Google and tested in Signal's post-quantum protocol. We study whether hax's translation preserves the security properties it claims to verify. Through a structural analysis of its 35-phase transformation engine, F* proof libraries, and specification API, we identify three classes of semantic gap between the Rust source and the F* verification target: translation infidelity, where pipeline transformations distort security-relevant semantics; unverifiable trust boundaries, where operations are axiomatized without postconditions; and specification gaming, where escape hatches inject unproven facts into the verification context. We demonstrate each class through five proof-of-concept exploits against ML-DSA (FIPS 204), ML-KEM (FIPS 203), Ed25519 (FIPS 186-5), and ChaCha20 (RFC 8439). Every exploit meets a strict criterion: the Rust code compiles, passes functional tests, and extracts to F* without warnings, while harboring a security gap invisible to testing. We distinguish three gradations: facade gaps where the F* model actively diverges from Rust semantics, a conditional gap dependent on the compilation mode, and a scope gap where the model is faithful but cannot cover a critical property. We call the resulting phenomenon a verification facade: verification that is performed but covers less than it appears to cover.
Metadata
- Available format(s)
PDF
- Category
- Attacks and cryptanalysis
- Publication info
- Preprint.
- History
- 2026-04-07: last updated
- 2026-04-06: published
- Short URL
- https://ia.cr/2026/670
- License
- https://creativecommons.org/licenses/by/4.0/
BibTeX
@misc{cryptoeprint:2026/670,
author = {Nadim Kobeissi},
title = {Verification Facade: Masquerading Insecure Cryptographic Implementations as Verified Code},
howpublished = {Cryptology {ePrint} Archive, Paper 2026/670},
year = {2026},
url = {https://eprint.iacr.org/2026/670}
}