Proceedings of the 18th ACM Conference on Computer and Communications Security 2011
DOI: 10.1145/2046707.2046745
|View full text |Cite
|
Sign up to set email alerts
|

Extracting and verifying cryptographic models from C protocol code by symbolic execution

Abstract: Consider the problem of verifying security properties of a cryptographic protocol coded in C. We propose an automatic solution that needs neither a pre-existing protocol description nor manual annotation of source code. First, symbolically execute the C program to obtain symbolic descriptions for the network messages sent by the protocol. Second, apply algebraic rewriting to obtain a process calculus description. Third, run an existing protocol analyser (ProVerif) to prove security properties or find attacks. … Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
2
1

Citation Types

2
64
0

Year Published

2011
2011
2022
2022

Publication Types

Select...
4
3
2

Relationship

1
8

Authors

Journals

citations
Cited by 45 publications
(66 citation statements)
references
References 43 publications
2
64
0
Order By: Relevance
“…In particular, they conclude that approaches for model extraction cannot deal with arbitrary legacy code, but introduce some requirements on how the code should be written, for instance by adding annotated semantic information. A relevant technique is reported in [15]. It aims to automatically create a formal model from an implementation in C. To drive the model extraction process though, it requires input from the analyst which demands him/her to have knowledge about both, the C language and the high level description of the protocol.…”
Section: Related Tools and Approachesmentioning
confidence: 99%
“…In particular, they conclude that approaches for model extraction cannot deal with arbitrary legacy code, but introduce some requirements on how the code should be written, for instance by adding annotated semantic information. A relevant technique is reported in [15]. It aims to automatically create a formal model from an implementation in C. To drive the model extraction process though, it requires input from the analyst which demands him/her to have knowledge about both, the C language and the high level description of the protocol.…”
Section: Related Tools and Approachesmentioning
confidence: 99%
“…More recently, Aizatulin et al [10] and Corin and Manzano [62] have proposed techniques for analyzing C programs by extracting abstract models using symbolic execution. The solution by Aizatulin et al [10] needs neither a pre-existing protocol description nor manual inspection of source code, and uses existing results for the applied pi calculus [20] to establish computational soundness.…”
Section: Related Workmentioning
confidence: 99%
“…The solution by Aizatulin et al [10] needs neither a pre-existing protocol description nor manual inspection of source code, and uses existing results for the applied pi calculus [20] to establish computational soundness. Their current prototype can, however, analyze only a single execution path, so it is limited to protocols with no significant branching.…”
Section: Related Workmentioning
confidence: 99%
“…It guarantees the security of the protocol implementation and provides its reliability's demonstration. Related research achievements include [4][5][6][7]. Sometimes leaks arise in the process of protocol implementations due to the design imperfection, which leads protocol implementations to be insecure (such as the SSL protocol, the TLS protocol).…”
Section: Introductionmentioning
confidence: 99%