DocumentCode
2867547
Title
Guiding a General-Purpose C Verifier to Prove Cryptographic Protocols
Author
Dupressoir, François ; Gordon, Andrew D. ; Jürjens, Jan ; Naumann, David A.
fYear
2011
fDate
27-29 June 2011
Firstpage
3
Lastpage
17
Abstract
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.
Keywords
application program interfaces; cryptographic protocols; C program; cryptographic protocol; formal algebraic term; general purpose C verifier; general-purpose verifier VCC; security theorem; symbolic model; Concrete; Cryptography; Encoding; Payloads; Protocols; Safety;
fLanguage
English
Publisher
ieee
Conference_Titel
Computer Security Foundations Symposium (CSF), 2011 IEEE 24th
Conference_Location
Cernay-la-Ville
ISSN
1940-1434
Print_ISBN
978-1-61284-644-6
Type
conf
DOI
10.1109/CSF.2011.8
Filename
5992151
Link To Document