2011 · 36 citations · 37 references
ComputingComputer ScienceCryptographyFormal MethodsSecurity ProtocolsApi SecurityCryptographic ProtocolsDeductive VerificationProtocol AnalysisProtocol VerificationSecurity Protocol VerificationFormal Verification Of Cryptographic CodeFormal Verification Of Cryptographic ProtocolsFormal Verification Of Security PropertiesFormal Verification Tools For Cryptographic ProtocolsProtocol Security ProofsSecurity ProofsSymbolic Model CheckingSymbolic Protocol Verification
We describe how to verify security properties of C code for cryptographic protocols by using a general-purpose verifier. We prove security theorems in the symbolic model of cryptography. Our techniques include: use of ghost state to attach formal algebraic terms to concrete byte arrays and to detect collisions when two distinct terms map to the same byte array, decoration of a crypto API with contracts based on symbolic terms, and expression of the attacker model in terms of C programs. We rely on the general-purpose verifier VCC, we guide VCC to prove security simply by writing suitable header files and annotations in implementation files, rather than by changing VCC itself. We formalize the symbolic model in Coq in order to justify the addition of axioms to VCC.
37
On the security of public key protocols
Danny Dolev, A. Yao · IEEE Transactions on Information Theory · 1983 · 5.7K citations
An axiomatic proof technique for parallel programs I
Susan Owicki, David Gries · Acta Informatica · 1976 · 1K citations
Formal certification of a compiler back-end or
Xavier Leroy · 2006 · 652 citations