Paper 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.
Note: This update adds a stronger variant to the E1 proof of concept exploit.
Metadata
- Available format(s)
-
PDF
- Category
- Attacks and cryptanalysis
- Publication info
- Preprint.
- Keywords
- high-assurance cryptographyformal verificationverification boundariescryptographic engineering
- Contact author(s)
- nadim @ symbolic software
- History
- 2026-04-07: revised
- 2026-04-06: received
- See all versions
- Short URL
- https://ia.cr/2026/670
- License
-
CC BY
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}
}