SlideShare ist ein Scribd-Unternehmen logo
1 von 4
Downloaden Sie, um offline zu lesen
2010 CRC PhD Student Conference




Verifying Implementations of Security Protocols in C
                             Mihhail Aizatulin
                           m.aizatulin@open.ac.uk


  Supervisors         Dr Andrew Gordon, adg@microsoft.com,
                      Dr Jan J¨rjens, jan.jurjens@cs.tu-dortmund.de,
                               u
                      Prof Bashar Nuseibeh, B.Nuseibeh@open.ac.uk
  Department          Computing
  Status              Full-time
  Probation viva      Passed
  Starting date       November 2008
     Our goal is verification of cryptographic protocol implementations (such as
 OpenSSL or Kerberos), motivated by the desire to minimise the gap between
 verified and executable code. Very little has been done in this area. There are
 numerous tools to find low-level bugs in code (such as buffer overflows and zero
 division) and there are verifiers for cryptographic protocols that work on fairly
 abstract descriptions, but so far very few attempts have been done to verify
 cryptographic security directly on the code, especially for low-level languages
 like C.
     We attempt to verify the protocol code by extracting an abstract model that
 can be used in high-level cryptographic verification tools such as ProVerif or
 CryptoVerif. This is the first such approach that we are aware of. Currently we
 investigate the feasibility of the approach by extracting the model from running
 code, using the so called concolic (concrete + symbolic) execution. We run
 the protocol implementation normally, but at the same time we record all the
 operations performed on binary values and then replay those operations on
 symbolic values. The resulting symbolic expressions reveal the structure of the
 messages sent to the network and the conditions that are checked for incoming
 messages.
     We are able to produce symbolic execution traces for the handshake imple-
 mented in the OpenSSL library. To give an example of what the extracted traces
 look like, consider a simple request-response protocol, protected by hashing with
 a shared key:
                   A → B : m|hash(‘request’|m, kAB ),
                   B → A : m |hash(‘response’|m|m , kAB ).
 We implemented the protocol in about 600 lines of C code, calling to the OpenSSL
 cryptographic library. Our concolic execution tool produces a trace of 8 lines




                                   Page 1 of 125
2010 CRC PhD Student Conference




write(i39)
payload1 = payload()
key2 = key()
write(i14|7c|payload1|HMAC(sha1, i7|7c52657175657374|payload1, key2))
msg3 = read()
var4 = msg3{5,23}
branchF((memcmp(msg3{28,20},
                HMAC(sha1, i8|7c526573706f6e7365|i14|7c|payload1|var4, key2)) != i0))
accept(var4)


Figure 1: An excerpt from the symbolic client trace. X{start, len} denotes
the substring of X starting at start of length len. iN is an integer with value N
(width information is omitted), and branchT and branchF are the true or false
branches taken by the code.


for the client side shown in figure 1: we see the client sending the request and
checking the condition on the server response before accepting it.
    We are currently working to implement symbolic handling of buffer lengths
and sound handling of loops as well as making the extracted models compatible
with those understood by ProVerif and CryptoVerif, in particular simplifying
away any remaining arithmetic expressions from the symbolic trace.
    One obvious drawback of concolic execution is that it only follows the single
path that was actually taken by the code. This is enough to produce an accurate
model when there is only one main path, however, libraries like OpenSSL contain
multiple nontrivial paths. Thus, to achieve verification of those libraries, we
plan to move the analysis towards being fully static in future.

Related Work One of the earliest security verification attempts directly
on code is probably CSur [Goubault-Larrecq and Parrennes, 2005] that deals
directly with C protocol implementations. It translates programs into a set
of Horn clauses that are fed directly into a general purpose theorem prover.
Unfortunately, it never went beyond some very simple implementations and has
not been developed since.
    The work [J¨rjens, 2006] describes an approach of translating Java programs
                u
in a manner similar to above. In our work we try to separate reasoning about
pointers and integers from reasoning about cryptography, in hope to achieve
greater scalability.
    Some work has been done on verification of functional language implementa-
tions, either by translating the programs directly into π-calculus [Bhargavan et
al., 2006; Bhargavan et al., 2008] or by designing a type system that enforces
security [Bengtson et al., 2008]. Unfortunately, it is not trivial to adapt such
approaches to C-like languages.
    ASPIER [Chaki and Datta, 2008] is using model checking for verification and
has been applied to OpenSSL. However, it does not truly start from C code: any
code explicitly dealing with pointers needs to be replaced by abstract summaries




                                  Page 2 of 125
2010 CRC PhD Student Conference




that presumably have to be written manually.
    Concolic execution is widely used to drive automatic test generation, like in
[Cadar et al., 2008] or [Godefroid et al., 2008]. One difference in our concolic
execution is that we need to assign symbols to whole bitstrings, whereas the
testing frameworks usually assign symbols to single bytes. We believe that our
work could be adapted for testing of cryptographic software. Usual testing
approaches try to create an input that satisfies a set of equations resulting from
checks in code. In presence of cryptography such equations will (hopefully) be
impossible to solve, so a more abstract model like ours might be useful.
    A separate line of work deals with reconstruction of protocol message formats
from implementation binaries [Caballero et al., 2007; Lin et al., 2008; Wondracek
et al., 2008; Cui et al., 2008; Wang et al., 2009]. The goal is typically to
reconstruct field boundaries of a single message by observing how the binary
processes the message. Our premises and goals are different: we have the
advantage of starting from the source code, but in exchange we aim to reconstruct
the whole protocol flow instead of just a single message. Our reconstruction
needs to be sound to enable verification — all possible protocol flows should be
accounted for.


References
[Bengtson et al., 2008] Jesper Bengtson, Karthikeyan Bhargavan, C´dric Four-
                                                                 e
  net, Andrew D. Gordon, and Sergio Maffeis. Refinement types for secure
  implementations. In CSF ’08: Proceedings of the 2008 21st IEEE Computer
  Security Foundations Symposium, pages 17–32, Washington, DC, USA, 2008.
  IEEE Computer Society.
[Bhargavan et al., 2006] Karthikeyan Bhargavan, C´dric Fournet, Andrew D.
                                                    e
  Gordon, and Stephen Tse. Verified interoperable implementations of security
  protocols. In CSFW ’06: Proceedings of the 19th IEEE workshop on Computer
  Security Foundations, pages 139–152, Washington, DC, USA, 2006. IEEE
  Computer Society.
[Bhargavan et al., 2008] Karthikeyan Bhargavan, C´dric Fournet, Ricardo Corin,
                                                 e
  and Eugen Zalinescu. Cryptographically verified implementations for TLS.
  In CCS ’08: Proceedings of the 15th ACM conference on Computer and
  communications security, pages 459–468, New York, NY, USA, 2008. ACM.
[Caballero et al., 2007] Juan Caballero, Heng Yin, Zhenkai Liang, and Dawn
  Song. Polyglot: automatic extraction of protocol message format using
  dynamic binary analysis. In CCS ’07: Proceedings of the 14th ACM conference
  on Computer and communications security, pages 317–329, New York, NY,
  USA, 2007. ACM.
[Cadar et al., 2008] Cristian Cadar, Daniel Dunbar, and Dawson Engler. Klee:
  Unassisted and automatic generation of high-coverage tests for complex sys-




                                  Page 3 of 125
2010 CRC PhD Student Conference




  tems programs. In USENIX Symposium on Operating Systems Design and
  Implementation (OSDI 2008), San Diego, CA, december 2008.
[Chaki and Datta, 2008] Sagar Chaki and Anupam Datta. Aspier: An auto-
  mated framework for verifying security protocol implementations. Technical
  Report 08-012, Carnegie Mellon University, October 2008.
[Cui et al., 2008] Weidong Cui, Marcus Peinado, Karl Chen, Helen J. Wang, and
   Luis Irun-Briz. Tupni: automatic reverse engineering of input formats. In CCS
  ’08: Proceedings of the 15th ACM conference on Computer and communications
   security, pages 391–402, New York, NY, USA, 2008. ACM.
[DBL, 2008] Proceedings of the Network and Distributed System Security Sympo-
  sium, NDSS 2008, San Diego, California, USA, 10th February - 13th February
  2008. The Internet Society, 2008.
[Godefroid et al., 2008] Patrice Godefroid, Michael Y. Levin, and David A. Mol-
  nar. Automated whitebox fuzz testing. In NDSS [2008].
[Goubault-Larrecq and Parrennes, 2005] J. Goubault-Larrecq and F. Parrennes.
  Cryptographic protocol analysis on real C code. In Proceedings of the 6th
  International Conference on Verification, Model Checking and Abstract Inter-
  pretation (VMCAI’05), volume 3385 of Lecture Notes in Computer Science,
  pages 363–379. Springer, 2005.
[J¨rjens, 2006] Jan J¨ rjens. Security analysis of crypto-based Java programs
  u                  u
  using automated theorem provers. In ASE ’06: Proceedings of the 21st
  IEEE/ACM International Conference on Automated Software Engineering,
  pages 167–176, Washington, DC, USA, 2006. IEEE Computer Society.
[Lin et al., 2008] Zhiqiang Lin, Xuxian Jiang, Dongyan Xu, and Xiangyu Zhang.
  Automatic protocol format reverse engineering through context-aware moni-
   tored execution. In NDSS [2008].
[Wang et al., 2009] Zhi Wang, Xuxian Jiang, Weidong Cui, Xinyuan Wang, and
  Mike Grace. Reformat: Automatic reverse engineering of encrypted messages.
  In Michael Backes and Peng Ning, editors, ESORICS, volume 5789 of Lecture
  Notes in Computer Science, pages 200–215. Springer, 2009.
[Wondracek et al., 2008] Gilbert Wondracek, Paolo Milani Comparetti, Christo-
  pher Kruegel, and Engin Kirda. Automatic Network Protocol Analysis. In
  15th Symposium on Network and Distributed System Security (NDSS), 2008.




                                  Page 4 of 125

Weitere ähnliche Inhalte

Was ist angesagt?

Encryption and Compression of Audio-Video Data Using Enhanced AES and J-Bit A...
Encryption and Compression of Audio-Video Data Using Enhanced AES and J-Bit A...Encryption and Compression of Audio-Video Data Using Enhanced AES and J-Bit A...
Encryption and Compression of Audio-Video Data Using Enhanced AES and J-Bit A...ijsrd.com
 
IMPROVED SECURE CLOUD TRANSMISSION PROTOCOL
IMPROVED SECURE CLOUD TRANSMISSION PROTOCOLIMPROVED SECURE CLOUD TRANSMISSION PROTOCOL
IMPROVED SECURE CLOUD TRANSMISSION PROTOCOLhiij
 
Improved Secure Cloud Transmission Protocol
Improved Secure Cloud Transmission ProtocolImproved Secure Cloud Transmission Protocol
Improved Secure Cloud Transmission Protocolneirew J
 
User Selective Encryption Method for Securing MANETs
User Selective Encryption Method for Securing MANETs User Selective Encryption Method for Securing MANETs
User Selective Encryption Method for Securing MANETs IJECEIAES
 
EVALUATING GALOIS COUNTER MODE IN LINK LAYER SECURITY ARCHITECTURE FOR WIRELE...
EVALUATING GALOIS COUNTER MODE IN LINK LAYER SECURITY ARCHITECTURE FOR WIRELE...EVALUATING GALOIS COUNTER MODE IN LINK LAYER SECURITY ARCHITECTURE FOR WIRELE...
EVALUATING GALOIS COUNTER MODE IN LINK LAYER SECURITY ARCHITECTURE FOR WIRELE...IJNSA Journal
 
Global DSL workshop slides
Global DSL workshop slidesGlobal DSL workshop slides
Global DSL workshop slidesericupnorth
 
ANALYSIS OF THE SECURITY OF BB84 BY MODEL CHECKING
ANALYSIS OF THE SECURITY OF BB84 BY MODEL CHECKINGANALYSIS OF THE SECURITY OF BB84 BY MODEL CHECKING
ANALYSIS OF THE SECURITY OF BB84 BY MODEL CHECKINGIJNSA Journal
 
AN EFFICIENT SECURE CRYPTOGRAPHY SCHEME FOR NEW ML-BASED RPL ROUTING PROTOCOL...
AN EFFICIENT SECURE CRYPTOGRAPHY SCHEME FOR NEW ML-BASED RPL ROUTING PROTOCOL...AN EFFICIENT SECURE CRYPTOGRAPHY SCHEME FOR NEW ML-BASED RPL ROUTING PROTOCOL...
AN EFFICIENT SECURE CRYPTOGRAPHY SCHEME FOR NEW ML-BASED RPL ROUTING PROTOCOL...IJNSA Journal
 
New Web 2.0 Attacks, B.Sc. Thesis
New Web 2.0 Attacks, B.Sc. ThesisNew Web 2.0 Attacks, B.Sc. Thesis
New Web 2.0 Attacks, B.Sc. ThesisKrassen Deltchev
 
Finding Resource Manipulation Bugs in Linux Code
Finding Resource Manipulation Bugs in Linux CodeFinding Resource Manipulation Bugs in Linux Code
Finding Resource Manipulation Bugs in Linux CodeAndrzej Wasowski
 
Improving Network Security by Modifying RSA Algorithm
Improving Network Security by Modifying RSA AlgorithmImproving Network Security by Modifying RSA Algorithm
Improving Network Security by Modifying RSA Algorithmpaperpublications3
 
Csit77404
Csit77404Csit77404
Csit77404csandit
 
Empirical study of programming to an interface
Empirical study of programming to an interfaceEmpirical study of programming to an interface
Empirical study of programming to an interfacefuhrmanator
 
Balancing Trade-off between Data Security and Energy Model for Wireless Senso...
Balancing Trade-off between Data Security and Energy Model for Wireless Senso...Balancing Trade-off between Data Security and Energy Model for Wireless Senso...
Balancing Trade-off between Data Security and Energy Model for Wireless Senso...IJECEIAES
 
IRJET- Enhancement of Efficiant Data Security Algorithm using Combined AES an...
IRJET- Enhancement of Efficiant Data Security Algorithm using Combined AES an...IRJET- Enhancement of Efficiant Data Security Algorithm using Combined AES an...
IRJET- Enhancement of Efficiant Data Security Algorithm using Combined AES an...IRJET Journal
 

Was ist angesagt? (17)

Encryption and Compression of Audio-Video Data Using Enhanced AES and J-Bit A...
Encryption and Compression of Audio-Video Data Using Enhanced AES and J-Bit A...Encryption and Compression of Audio-Video Data Using Enhanced AES and J-Bit A...
Encryption and Compression of Audio-Video Data Using Enhanced AES and J-Bit A...
 
IMPROVED SECURE CLOUD TRANSMISSION PROTOCOL
IMPROVED SECURE CLOUD TRANSMISSION PROTOCOLIMPROVED SECURE CLOUD TRANSMISSION PROTOCOL
IMPROVED SECURE CLOUD TRANSMISSION PROTOCOL
 
Improved Secure Cloud Transmission Protocol
Improved Secure Cloud Transmission ProtocolImproved Secure Cloud Transmission Protocol
Improved Secure Cloud Transmission Protocol
 
User Selective Encryption Method for Securing MANETs
User Selective Encryption Method for Securing MANETs User Selective Encryption Method for Securing MANETs
User Selective Encryption Method for Securing MANETs
 
EVALUATING GALOIS COUNTER MODE IN LINK LAYER SECURITY ARCHITECTURE FOR WIRELE...
EVALUATING GALOIS COUNTER MODE IN LINK LAYER SECURITY ARCHITECTURE FOR WIRELE...EVALUATING GALOIS COUNTER MODE IN LINK LAYER SECURITY ARCHITECTURE FOR WIRELE...
EVALUATING GALOIS COUNTER MODE IN LINK LAYER SECURITY ARCHITECTURE FOR WIRELE...
 
Global DSL workshop slides
Global DSL workshop slidesGlobal DSL workshop slides
Global DSL workshop slides
 
ANALYSIS OF THE SECURITY OF BB84 BY MODEL CHECKING
ANALYSIS OF THE SECURITY OF BB84 BY MODEL CHECKINGANALYSIS OF THE SECURITY OF BB84 BY MODEL CHECKING
ANALYSIS OF THE SECURITY OF BB84 BY MODEL CHECKING
 
scp
scpscp
scp
 
AN EFFICIENT SECURE CRYPTOGRAPHY SCHEME FOR NEW ML-BASED RPL ROUTING PROTOCOL...
AN EFFICIENT SECURE CRYPTOGRAPHY SCHEME FOR NEW ML-BASED RPL ROUTING PROTOCOL...AN EFFICIENT SECURE CRYPTOGRAPHY SCHEME FOR NEW ML-BASED RPL ROUTING PROTOCOL...
AN EFFICIENT SECURE CRYPTOGRAPHY SCHEME FOR NEW ML-BASED RPL ROUTING PROTOCOL...
 
New Web 2.0 Attacks, B.Sc. Thesis
New Web 2.0 Attacks, B.Sc. ThesisNew Web 2.0 Attacks, B.Sc. Thesis
New Web 2.0 Attacks, B.Sc. Thesis
 
Finding Resource Manipulation Bugs in Linux Code
Finding Resource Manipulation Bugs in Linux CodeFinding Resource Manipulation Bugs in Linux Code
Finding Resource Manipulation Bugs in Linux Code
 
Improving Network Security by Modifying RSA Algorithm
Improving Network Security by Modifying RSA AlgorithmImproving Network Security by Modifying RSA Algorithm
Improving Network Security by Modifying RSA Algorithm
 
Csit77404
Csit77404Csit77404
Csit77404
 
Debugging TV Frame 0x14
Debugging TV Frame 0x14Debugging TV Frame 0x14
Debugging TV Frame 0x14
 
Empirical study of programming to an interface
Empirical study of programming to an interfaceEmpirical study of programming to an interface
Empirical study of programming to an interface
 
Balancing Trade-off between Data Security and Energy Model for Wireless Senso...
Balancing Trade-off between Data Security and Energy Model for Wireless Senso...Balancing Trade-off between Data Security and Energy Model for Wireless Senso...
Balancing Trade-off between Data Security and Energy Model for Wireless Senso...
 
IRJET- Enhancement of Efficiant Data Security Algorithm using Combined AES an...
IRJET- Enhancement of Efficiant Data Security Algorithm using Combined AES an...IRJET- Enhancement of Efficiant Data Security Algorithm using Combined AES an...
IRJET- Enhancement of Efficiant Data Security Algorithm using Combined AES an...
 

Andere mochten auch

Andere mochten auch (7)

Formal analysis-crypto-proto
Formal analysis-crypto-protoFormal analysis-crypto-proto
Formal analysis-crypto-proto
 
Session3
Session3Session3
Session3
 
Oops index
Oops indexOops index
Oops index
 
Mouawad
MouawadMouawad
Mouawad
 
Aizatulin poster
Aizatulin posterAizatulin poster
Aizatulin poster
 
Pantidi
PantidiPantidi
Pantidi
 
Wilkie
WilkieWilkie
Wilkie
 

Ähnlich wie Aizatulin

Dupressoir
DupressoirDupressoir
Dupressoiranesah
 
IMPROVED SECURE CLOUD TRANSMISSION PROTOCOL
IMPROVED SECURE CLOUD TRANSMISSION PROTOCOLIMPROVED SECURE CLOUD TRANSMISSION PROTOCOL
IMPROVED SECURE CLOUD TRANSMISSION PROTOCOLijccsa
 
IMPROVED SECURE CLOUD TRANSMISSION PROTOCOL
IMPROVED SECURE CLOUD TRANSMISSION PROTOCOLIMPROVED SECURE CLOUD TRANSMISSION PROTOCOL
IMPROVED SECURE CLOUD TRANSMISSION PROTOCOLijccsa
 
Performance Analysis of Encryption Algorithm for Network Security on Parallel...
Performance Analysis of Encryption Algorithm for Network Security on Parallel...Performance Analysis of Encryption Algorithm for Network Security on Parallel...
Performance Analysis of Encryption Algorithm for Network Security on Parallel...ijsrd.com
 
Study on Different Code-Clone Detection Techniques & Approaches to MitigateCo...
Study on Different Code-Clone Detection Techniques & Approaches to MitigateCo...Study on Different Code-Clone Detection Techniques & Approaches to MitigateCo...
Study on Different Code-Clone Detection Techniques & Approaches to MitigateCo...IRJET Journal
 
Study on Different Code-Clone Detection Techniques & Approaches to MitigateCo...
Study on Different Code-Clone Detection Techniques & Approaches to MitigateCo...Study on Different Code-Clone Detection Techniques & Approaches to MitigateCo...
Study on Different Code-Clone Detection Techniques & Approaches to MitigateCo...IRJET Journal
 
‘CodeAliker’ - Plagiarism Detection on the Cloud
‘CodeAliker’ - Plagiarism Detection on the Cloud ‘CodeAliker’ - Plagiarism Detection on the Cloud
‘CodeAliker’ - Plagiarism Detection on the Cloud acijjournal
 
Quantum Cryptography Approach for Resolving Cyber Threats
Quantum Cryptography Approach for Resolving Cyber ThreatsQuantum Cryptography Approach for Resolving Cyber Threats
Quantum Cryptography Approach for Resolving Cyber Threatsijtsrd
 
Final Year Project Synopsis: Post Quantum Encryption using Neural Networks
Final Year Project Synopsis: Post Quantum Encryption using Neural NetworksFinal Year Project Synopsis: Post Quantum Encryption using Neural Networks
Final Year Project Synopsis: Post Quantum Encryption using Neural NetworksJPC Hanson
 
Verification of the protection services in antivirus systems by using nusmv m...
Verification of the protection services in antivirus systems by using nusmv m...Verification of the protection services in antivirus systems by using nusmv m...
Verification of the protection services in antivirus systems by using nusmv m...ijfcstjournal
 
Secure Text Transfer Using Diffie-Hellman Key Exchange Based On Cloud
Secure Text Transfer Using Diffie-Hellman Key Exchange Based On CloudSecure Text Transfer Using Diffie-Hellman Key Exchange Based On Cloud
Secure Text Transfer Using Diffie-Hellman Key Exchange Based On CloudIRJET Journal
 
Turn InSecure And High Speed Intra-Cloud and Inter-Cloud Communication
Turn InSecure And High Speed Intra-Cloud and Inter-Cloud CommunicationTurn InSecure And High Speed Intra-Cloud and Inter-Cloud Communication
Turn InSecure And High Speed Intra-Cloud and Inter-Cloud CommunicationRichard Jung
 
Vulnerability Detection Based on Git History
Vulnerability Detection Based on Git HistoryVulnerability Detection Based on Git History
Vulnerability Detection Based on Git HistoryKenta Yamamoto
 
Survey of universal authentication protocol for mobile communication
Survey of universal authentication protocol for mobile communicationSurvey of universal authentication protocol for mobile communication
Survey of universal authentication protocol for mobile communicationAhmad Sharifi
 
Features of genetic algorithm for plain text encryption
Features of genetic algorithm for plain text encryption Features of genetic algorithm for plain text encryption
Features of genetic algorithm for plain text encryption IJECEIAES
 
Randomness evaluation framework of cryptographic algorithms
Randomness evaluation framework of cryptographic algorithmsRandomness evaluation framework of cryptographic algorithms
Randomness evaluation framework of cryptographic algorithmsijcisjournal
 
16 implementation techniques
16 implementation techniques16 implementation techniques
16 implementation techniquesMajong DevJfu
 
Secure Checkpointing Approach for Mobile Environment
Secure Checkpointing Approach for Mobile EnvironmentSecure Checkpointing Approach for Mobile Environment
Secure Checkpointing Approach for Mobile Environmentidescitation
 

Ähnlich wie Aizatulin (20)

Dupressoir
DupressoirDupressoir
Dupressoir
 
IMPROVED SECURE CLOUD TRANSMISSION PROTOCOL
IMPROVED SECURE CLOUD TRANSMISSION PROTOCOLIMPROVED SECURE CLOUD TRANSMISSION PROTOCOL
IMPROVED SECURE CLOUD TRANSMISSION PROTOCOL
 
IMPROVED SECURE CLOUD TRANSMISSION PROTOCOL
IMPROVED SECURE CLOUD TRANSMISSION PROTOCOLIMPROVED SECURE CLOUD TRANSMISSION PROTOCOL
IMPROVED SECURE CLOUD TRANSMISSION PROTOCOL
 
Performance Analysis of Encryption Algorithm for Network Security on Parallel...
Performance Analysis of Encryption Algorithm for Network Security on Parallel...Performance Analysis of Encryption Algorithm for Network Security on Parallel...
Performance Analysis of Encryption Algorithm for Network Security on Parallel...
 
Study on Different Code-Clone Detection Techniques & Approaches to MitigateCo...
Study on Different Code-Clone Detection Techniques & Approaches to MitigateCo...Study on Different Code-Clone Detection Techniques & Approaches to MitigateCo...
Study on Different Code-Clone Detection Techniques & Approaches to MitigateCo...
 
Study on Different Code-Clone Detection Techniques & Approaches to MitigateCo...
Study on Different Code-Clone Detection Techniques & Approaches to MitigateCo...Study on Different Code-Clone Detection Techniques & Approaches to MitigateCo...
Study on Different Code-Clone Detection Techniques & Approaches to MitigateCo...
 
‘CodeAliker’ - Plagiarism Detection on the Cloud
‘CodeAliker’ - Plagiarism Detection on the Cloud ‘CodeAliker’ - Plagiarism Detection on the Cloud
‘CodeAliker’ - Plagiarism Detection on the Cloud
 
Quantum Cryptography Approach for Resolving Cyber Threats
Quantum Cryptography Approach for Resolving Cyber ThreatsQuantum Cryptography Approach for Resolving Cyber Threats
Quantum Cryptography Approach for Resolving Cyber Threats
 
Final Year Project Synopsis: Post Quantum Encryption using Neural Networks
Final Year Project Synopsis: Post Quantum Encryption using Neural NetworksFinal Year Project Synopsis: Post Quantum Encryption using Neural Networks
Final Year Project Synopsis: Post Quantum Encryption using Neural Networks
 
Verification of the protection services in antivirus systems by using nusmv m...
Verification of the protection services in antivirus systems by using nusmv m...Verification of the protection services in antivirus systems by using nusmv m...
Verification of the protection services in antivirus systems by using nusmv m...
 
Resume_Mohan Selvamoorthy_Sec
Resume_Mohan Selvamoorthy_SecResume_Mohan Selvamoorthy_Sec
Resume_Mohan Selvamoorthy_Sec
 
Secure Text Transfer Using Diffie-Hellman Key Exchange Based On Cloud
Secure Text Transfer Using Diffie-Hellman Key Exchange Based On CloudSecure Text Transfer Using Diffie-Hellman Key Exchange Based On Cloud
Secure Text Transfer Using Diffie-Hellman Key Exchange Based On Cloud
 
Turn InSecure And High Speed Intra-Cloud and Inter-Cloud Communication
Turn InSecure And High Speed Intra-Cloud and Inter-Cloud CommunicationTurn InSecure And High Speed Intra-Cloud and Inter-Cloud Communication
Turn InSecure And High Speed Intra-Cloud and Inter-Cloud Communication
 
Vulnerability Detection Based on Git History
Vulnerability Detection Based on Git HistoryVulnerability Detection Based on Git History
Vulnerability Detection Based on Git History
 
Survey of universal authentication protocol for mobile communication
Survey of universal authentication protocol for mobile communicationSurvey of universal authentication protocol for mobile communication
Survey of universal authentication protocol for mobile communication
 
Features of genetic algorithm for plain text encryption
Features of genetic algorithm for plain text encryption Features of genetic algorithm for plain text encryption
Features of genetic algorithm for plain text encryption
 
Randomness evaluation framework of cryptographic algorithms
Randomness evaluation framework of cryptographic algorithmsRandomness evaluation framework of cryptographic algorithms
Randomness evaluation framework of cryptographic algorithms
 
16 implementation techniques
16 implementation techniques16 implementation techniques
16 implementation techniques
 
G04433953
G04433953G04433953
G04433953
 
Secure Checkpointing Approach for Mobile Environment
Secure Checkpointing Approach for Mobile EnvironmentSecure Checkpointing Approach for Mobile Environment
Secure Checkpointing Approach for Mobile Environment
 

Mehr von anesah

Aizatulin slides-4-3
Aizatulin slides-4-3Aizatulin slides-4-3
Aizatulin slides-4-3anesah
 
Abraham
AbrahamAbraham
Abrahamanesah
 
Van der merwe
Van der merweVan der merwe
Van der merweanesah
 
Thomas
ThomasThomas
Thomasanesah
 
Taubenberger
TaubenbergerTaubenberger
Taubenbergeranesah
 
Pantidi
PantidiPantidi
Pantidianesah
 
Corneli
CorneliCorneli
Cornelianesah
 
Collins
CollinsCollins
Collinsanesah
 
Ullmann
UllmannUllmann
Ullmannanesah
 
Quinto
QuintoQuinto
Quintoanesah
 
Pawlik
PawlikPawlik
Pawlikanesah
 
Overbeeke
OverbeekeOverbeeke
Overbeekeanesah
 
Nguyen
NguyenNguyen
Nguyenanesah
 
Murphy
MurphyMurphy
Murphyanesah
 

Mehr von anesah (20)

Aizatulin slides-4-3
Aizatulin slides-4-3Aizatulin slides-4-3
Aizatulin slides-4-3
 
Abraham
AbrahamAbraham
Abraham
 
Van der merwe
Van der merweVan der merwe
Van der merwe
 
Thomas
ThomasThomas
Thomas
 
Taubenberger
TaubenbergerTaubenberger
Taubenberger
 
Sach
SachSach
Sach
 
Rae
RaeRae
Rae
 
Pantidi
PantidiPantidi
Pantidi
 
Corneli
CorneliCorneli
Corneli
 
Collins
CollinsCollins
Collins
 
Xambo
XamboXambo
Xambo
 
Ullmann
UllmannUllmann
Ullmann
 
Tran
TranTran
Tran
 
Quinto
QuintoQuinto
Quinto
 
Pluss
PlussPluss
Pluss
 
Pawlik
PawlikPawlik
Pawlik
 
Overbeeke
OverbeekeOverbeeke
Overbeeke
 
Nguyen
NguyenNguyen
Nguyen
 
Murphy
MurphyMurphy
Murphy
 
Moyo
MoyoMoyo
Moyo
 

Kürzlich hochgeladen

A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?Antenna Manufacturer Coco
 

Kürzlich hochgeladen (20)

A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 

Aizatulin

  • 1. 2010 CRC PhD Student Conference Verifying Implementations of Security Protocols in C Mihhail Aizatulin m.aizatulin@open.ac.uk Supervisors Dr Andrew Gordon, adg@microsoft.com, Dr Jan J¨rjens, jan.jurjens@cs.tu-dortmund.de, u Prof Bashar Nuseibeh, B.Nuseibeh@open.ac.uk Department Computing Status Full-time Probation viva Passed Starting date November 2008 Our goal is verification of cryptographic protocol implementations (such as OpenSSL or Kerberos), motivated by the desire to minimise the gap between verified and executable code. Very little has been done in this area. There are numerous tools to find low-level bugs in code (such as buffer overflows and zero division) and there are verifiers for cryptographic protocols that work on fairly abstract descriptions, but so far very few attempts have been done to verify cryptographic security directly on the code, especially for low-level languages like C. We attempt to verify the protocol code by extracting an abstract model that can be used in high-level cryptographic verification tools such as ProVerif or CryptoVerif. This is the first such approach that we are aware of. Currently we investigate the feasibility of the approach by extracting the model from running code, using the so called concolic (concrete + symbolic) execution. We run the protocol implementation normally, but at the same time we record all the operations performed on binary values and then replay those operations on symbolic values. The resulting symbolic expressions reveal the structure of the messages sent to the network and the conditions that are checked for incoming messages. We are able to produce symbolic execution traces for the handshake imple- mented in the OpenSSL library. To give an example of what the extracted traces look like, consider a simple request-response protocol, protected by hashing with a shared key: A → B : m|hash(‘request’|m, kAB ), B → A : m |hash(‘response’|m|m , kAB ). We implemented the protocol in about 600 lines of C code, calling to the OpenSSL cryptographic library. Our concolic execution tool produces a trace of 8 lines Page 1 of 125
  • 2. 2010 CRC PhD Student Conference write(i39) payload1 = payload() key2 = key() write(i14|7c|payload1|HMAC(sha1, i7|7c52657175657374|payload1, key2)) msg3 = read() var4 = msg3{5,23} branchF((memcmp(msg3{28,20}, HMAC(sha1, i8|7c526573706f6e7365|i14|7c|payload1|var4, key2)) != i0)) accept(var4) Figure 1: An excerpt from the symbolic client trace. X{start, len} denotes the substring of X starting at start of length len. iN is an integer with value N (width information is omitted), and branchT and branchF are the true or false branches taken by the code. for the client side shown in figure 1: we see the client sending the request and checking the condition on the server response before accepting it. We are currently working to implement symbolic handling of buffer lengths and sound handling of loops as well as making the extracted models compatible with those understood by ProVerif and CryptoVerif, in particular simplifying away any remaining arithmetic expressions from the symbolic trace. One obvious drawback of concolic execution is that it only follows the single path that was actually taken by the code. This is enough to produce an accurate model when there is only one main path, however, libraries like OpenSSL contain multiple nontrivial paths. Thus, to achieve verification of those libraries, we plan to move the analysis towards being fully static in future. Related Work One of the earliest security verification attempts directly on code is probably CSur [Goubault-Larrecq and Parrennes, 2005] that deals directly with C protocol implementations. It translates programs into a set of Horn clauses that are fed directly into a general purpose theorem prover. Unfortunately, it never went beyond some very simple implementations and has not been developed since. The work [J¨rjens, 2006] describes an approach of translating Java programs u in a manner similar to above. In our work we try to separate reasoning about pointers and integers from reasoning about cryptography, in hope to achieve greater scalability. Some work has been done on verification of functional language implementa- tions, either by translating the programs directly into π-calculus [Bhargavan et al., 2006; Bhargavan et al., 2008] or by designing a type system that enforces security [Bengtson et al., 2008]. Unfortunately, it is not trivial to adapt such approaches to C-like languages. ASPIER [Chaki and Datta, 2008] is using model checking for verification and has been applied to OpenSSL. However, it does not truly start from C code: any code explicitly dealing with pointers needs to be replaced by abstract summaries Page 2 of 125
  • 3. 2010 CRC PhD Student Conference that presumably have to be written manually. Concolic execution is widely used to drive automatic test generation, like in [Cadar et al., 2008] or [Godefroid et al., 2008]. One difference in our concolic execution is that we need to assign symbols to whole bitstrings, whereas the testing frameworks usually assign symbols to single bytes. We believe that our work could be adapted for testing of cryptographic software. Usual testing approaches try to create an input that satisfies a set of equations resulting from checks in code. In presence of cryptography such equations will (hopefully) be impossible to solve, so a more abstract model like ours might be useful. A separate line of work deals with reconstruction of protocol message formats from implementation binaries [Caballero et al., 2007; Lin et al., 2008; Wondracek et al., 2008; Cui et al., 2008; Wang et al., 2009]. The goal is typically to reconstruct field boundaries of a single message by observing how the binary processes the message. Our premises and goals are different: we have the advantage of starting from the source code, but in exchange we aim to reconstruct the whole protocol flow instead of just a single message. Our reconstruction needs to be sound to enable verification — all possible protocol flows should be accounted for. References [Bengtson et al., 2008] Jesper Bengtson, Karthikeyan Bhargavan, C´dric Four- e net, Andrew D. Gordon, and Sergio Maffeis. Refinement types for secure implementations. In CSF ’08: Proceedings of the 2008 21st IEEE Computer Security Foundations Symposium, pages 17–32, Washington, DC, USA, 2008. IEEE Computer Society. [Bhargavan et al., 2006] Karthikeyan Bhargavan, C´dric Fournet, Andrew D. e Gordon, and Stephen Tse. Verified interoperable implementations of security protocols. In CSFW ’06: Proceedings of the 19th IEEE workshop on Computer Security Foundations, pages 139–152, Washington, DC, USA, 2006. IEEE Computer Society. [Bhargavan et al., 2008] Karthikeyan Bhargavan, C´dric Fournet, Ricardo Corin, e and Eugen Zalinescu. Cryptographically verified implementations for TLS. In CCS ’08: Proceedings of the 15th ACM conference on Computer and communications security, pages 459–468, New York, NY, USA, 2008. ACM. [Caballero et al., 2007] Juan Caballero, Heng Yin, Zhenkai Liang, and Dawn Song. Polyglot: automatic extraction of protocol message format using dynamic binary analysis. In CCS ’07: Proceedings of the 14th ACM conference on Computer and communications security, pages 317–329, New York, NY, USA, 2007. ACM. [Cadar et al., 2008] Cristian Cadar, Daniel Dunbar, and Dawson Engler. Klee: Unassisted and automatic generation of high-coverage tests for complex sys- Page 3 of 125
  • 4. 2010 CRC PhD Student Conference tems programs. In USENIX Symposium on Operating Systems Design and Implementation (OSDI 2008), San Diego, CA, december 2008. [Chaki and Datta, 2008] Sagar Chaki and Anupam Datta. Aspier: An auto- mated framework for verifying security protocol implementations. Technical Report 08-012, Carnegie Mellon University, October 2008. [Cui et al., 2008] Weidong Cui, Marcus Peinado, Karl Chen, Helen J. Wang, and Luis Irun-Briz. Tupni: automatic reverse engineering of input formats. In CCS ’08: Proceedings of the 15th ACM conference on Computer and communications security, pages 391–402, New York, NY, USA, 2008. ACM. [DBL, 2008] Proceedings of the Network and Distributed System Security Sympo- sium, NDSS 2008, San Diego, California, USA, 10th February - 13th February 2008. The Internet Society, 2008. [Godefroid et al., 2008] Patrice Godefroid, Michael Y. Levin, and David A. Mol- nar. Automated whitebox fuzz testing. In NDSS [2008]. [Goubault-Larrecq and Parrennes, 2005] J. Goubault-Larrecq and F. Parrennes. Cryptographic protocol analysis on real C code. In Proceedings of the 6th International Conference on Verification, Model Checking and Abstract Inter- pretation (VMCAI’05), volume 3385 of Lecture Notes in Computer Science, pages 363–379. Springer, 2005. [J¨rjens, 2006] Jan J¨ rjens. Security analysis of crypto-based Java programs u u using automated theorem provers. In ASE ’06: Proceedings of the 21st IEEE/ACM International Conference on Automated Software Engineering, pages 167–176, Washington, DC, USA, 2006. IEEE Computer Society. [Lin et al., 2008] Zhiqiang Lin, Xuxian Jiang, Dongyan Xu, and Xiangyu Zhang. Automatic protocol format reverse engineering through context-aware moni- tored execution. In NDSS [2008]. [Wang et al., 2009] Zhi Wang, Xuxian Jiang, Weidong Cui, Xinyuan Wang, and Mike Grace. Reformat: Automatic reverse engineering of encrypted messages. In Michael Backes and Peng Ning, editors, ESORICS, volume 5789 of Lecture Notes in Computer Science, pages 200–215. Springer, 2009. [Wondracek et al., 2008] Gilbert Wondracek, Paolo Milani Comparetti, Christo- pher Kruegel, and Engin Kirda. Automatic Network Protocol Analysis. In 15th Symposium on Network and Distributed System Security (NDSS), 2008. Page 4 of 125