SlideShare a Scribd company logo
Verifying Implementations of Security Protocols in C
Mihhail Aizatulin (avatar@hot.ee)


   1. Goal
                              Our goal is a tool for cryptographic security analysis at implementation level:
                 Source code of a
                                                                                                                     List of all potential
                 cryptographic
                                                                           Our tools                                 security flaws or
                 protocol
                                                                                                                     proof of security
                 implementation


2. Motivation: an Attack Example                                                             3. Assumptions
 Here is an example vulnerability that we would like to prevent. In January                    We assume that cryptographic primitives (encryption, hash-
2009 a flaw in the OpenSSL library was discovered, permitting a corrupt certifi-               ing) are implemented correctly and are unbreakable.
cate to be recognised as valid. A function return value is wrongly interpreted:
  int check_certificate ( ) {                / / l a t e r in code :                         4. Background
    ...                                      ...
    if ( certificate_malformed )             if ( check_certificate ())         / / oops !     Very little has been done for crypto-verification of low-level
       r e t u r n − 1;                      {                                               languages. We rely on tools for proving security from high-level
    else if ( ! certificate_check_ok )          trust_certificate ();                        specifications of protocols. Currently we are using ProVerif.
       return 0 ;                            }
    else return 1 ; }

 Notice how the -1 return value passes the validity test! An attacker can craft              5. Challenges
a malformed certificate, pretending to be someone else:                                        We cannot simply reuse existing program verification tools,
                                                                                             because we don’t just verify a program, but a system, consisting
           paypal.com Certificate?                                                            of several instances of a program and an unknown attacker.

         Malformed Certificate
  Client                 Attacker (= Internet)                              paypal.com
                                                                                             7. Proposed Method
                                                                                              We propose to use symbolic execution to extract a high-level
Now the attacker can impersonate the client and the bank to each other:
                                                                                             model of the protocol and then use existing tools to verify it.
                                                                                             Suppose we use shared key hashing for message integrity:
                  Password?                             Password?
                                                                                                                        m, hash(m, k shared )
                  Password                         Password + “get $$$”                                              A−−−−−−−−−− B.
                                                                                                                                →
  Client                          Attacker (= Internet)               paypal.com              The client side implementation could look as follows. Note the
                                                                                             extra data added to the message: the payload length and a tag.
We would like to use formal methods to prove absence of similar flaws.
                                                                                                   c l i e n t ( char ∗ payload , i n t payload_len ) {
                                                                                                       i n t msg_len = 5 + l e n + SHA1_LEN ;
6. Symbolic Execution                                                                                  char ∗ msg = malloc ( msg_len ) ;
                                                                                                       char ∗ p = msg ;
 Symbolic execution is a tool to simplify programs and extract their meaning.                          ∗p = l e n ; p += 4 ;            / / add l e n g t h
The program is “executed” with symbols as input, instead of numbers:                                   ∗ ( p++) = 1 ;                   / / add t h e t a g
                                                                                                       memcpy( payload , p , l e n ) ; / / add t h e p a y l o a d
                     Concrete:                          Symbolic:
                                                                                                       sha1 ( msg , 5 + len , p ) ;     / / add t h e h a s h
                x = 2          y = 3               x = a           y = b                               send ( msg , msg_len ) ;         / / send
                                                                                                   }

             int f ( int x , int y ) {          int f ( int x , int y ) {                     Using symbolic execution we can summarise the effect of the
               r e t u r n ++x ∗ y + + ; }        r e t u r n ++x ∗ y + + ; }
                                                                                             function:
                                                                                                                              Symbolic Execution
                          9                               ( a + 1) b
                                                                                                           out(len(payload)|01|payload
 We use symbolic execution to derive the formats of messages that the program
                                                                                                               |sha1(len(payload)|01|payload, kshared ))
generates.
                                                                                              Here “|” stands for bitstring concatenation. High-level verifi-
8. Current Status                                                                            cation tools can’t deal with it directly, so we perform some extra
                                                                                             analysis to prove that concatenation patterns can be abstracted
 Done:                                                                                       as pure symbolic functions:
   • Implemented symbolic execution for fixed bitstring lengths and linear con-                                                           Format Abstraction
     trol flow.
   • Proved correctness of format abstraction.                                                               out(f 1(payload, hash1(payload, kshared )))
 To do:
                                                                                              This is a representation that ProVerif can easily deal with:
   • Implement symbolic execution for variable bitstring lengths.
                                                                                                                                         ProVerif (+ Server Side)
   • Implement format abstraction.
   • Add support for arbitrary control flow.                                                                            Integrity verified.


9. Project
  The project is supervised by Andrew Gordon (Microsoft Research), Jan Jürjens (Dortmund University) and Bashar Nuseibeh (Open University). It
is partially supported through the Microsoft Research PhD Scholarship programme.

More Related Content

What's hot

Embedded device hacking Session i
Embedded device hacking Session iEmbedded device hacking Session i
Embedded device hacking Session i
Malachi Jones
 
661 665
661 665661 665
PowerShell Inside Out: Applied .NET Hacking for Enhanced Visibility by Satosh...
PowerShell Inside Out: Applied .NET Hacking for Enhanced Visibility by Satosh...PowerShell Inside Out: Applied .NET Hacking for Enhanced Visibility by Satosh...
PowerShell Inside Out: Applied .NET Hacking for Enhanced Visibility by Satosh...
CODE BLUE
 
Ch34508510
Ch34508510Ch34508510
Ch34508510
IJERA Editor
 
Latest C Interview Questions and Answers
Latest C Interview Questions and AnswersLatest C Interview Questions and Answers
Latest C Interview Questions and Answers
DaisyWatson5
 
Network Security
Network SecurityNetwork Security
Network Security
Fahad Shaikh
 
SecurePtrs: Proving Secure Compilation with Data-Flow Back-Translation and Tu...
SecurePtrs: Proving Secure Compilation with Data-Flow Back-Translation and Tu...SecurePtrs: Proving Secure Compilation with Data-Flow Back-Translation and Tu...
SecurePtrs: Proving Secure Compilation with Data-Flow Back-Translation and Tu...
Akram El-Korashy
 
ENKI: Access Control for Encrypted Query Processing
ENKI: Access Control for Encrypted Query ProcessingENKI: Access Control for Encrypted Query Processing
ENKI: Access Control for Encrypted Query Processing
Mateus S. H. Cruz
 
Cryptography Workbook
Cryptography WorkbookCryptography Workbook
Cryptography Workbook
ArthyR3
 
rsa-1
rsa-1rsa-1
Listen and look at your PHP code
Listen and look at your PHP codeListen and look at your PHP code
Listen and look at your PHP code
Gabriele Santini
 
Iss lecture 2
Iss lecture 2Iss lecture 2
Iss lecture 2
Ali Habeeb
 
Realizing Fine-Grained and Flexible Access Control to Outsourced Data with At...
Realizing Fine-Grained and Flexible Access Control to Outsourced Data with At...Realizing Fine-Grained and Flexible Access Control to Outsourced Data with At...
Realizing Fine-Grained and Flexible Access Control to Outsourced Data with At...
Mateus S. H. Cruz
 
Java - Concurrent programming - Thread's advanced concepts
Java - Concurrent programming - Thread's advanced conceptsJava - Concurrent programming - Thread's advanced concepts
Java - Concurrent programming - Thread's advanced concepts
Riccardo Cardin
 
OpenMI Developers Training
OpenMI Developers TrainingOpenMI Developers Training
OpenMI Developers Training
Jan Gregersen
 
OpenMI Developers Training
OpenMI Developers TrainingOpenMI Developers Training
OpenMI Developers Training
Jan Gregersen
 
Rfid
Rfid Rfid
Unit 3(1)
Unit 3(1)Unit 3(1)
VHDL Part 4
VHDL Part 4VHDL Part 4
VHDL Part 4
Abhilash Nair
 
Unit 3(1)
Unit 3(1)Unit 3(1)

What's hot (20)

Embedded device hacking Session i
Embedded device hacking Session iEmbedded device hacking Session i
Embedded device hacking Session i
 
661 665
661 665661 665
661 665
 
PowerShell Inside Out: Applied .NET Hacking for Enhanced Visibility by Satosh...
PowerShell Inside Out: Applied .NET Hacking for Enhanced Visibility by Satosh...PowerShell Inside Out: Applied .NET Hacking for Enhanced Visibility by Satosh...
PowerShell Inside Out: Applied .NET Hacking for Enhanced Visibility by Satosh...
 
Ch34508510
Ch34508510Ch34508510
Ch34508510
 
Latest C Interview Questions and Answers
Latest C Interview Questions and AnswersLatest C Interview Questions and Answers
Latest C Interview Questions and Answers
 
Network Security
Network SecurityNetwork Security
Network Security
 
SecurePtrs: Proving Secure Compilation with Data-Flow Back-Translation and Tu...
SecurePtrs: Proving Secure Compilation with Data-Flow Back-Translation and Tu...SecurePtrs: Proving Secure Compilation with Data-Flow Back-Translation and Tu...
SecurePtrs: Proving Secure Compilation with Data-Flow Back-Translation and Tu...
 
ENKI: Access Control for Encrypted Query Processing
ENKI: Access Control for Encrypted Query ProcessingENKI: Access Control for Encrypted Query Processing
ENKI: Access Control for Encrypted Query Processing
 
Cryptography Workbook
Cryptography WorkbookCryptography Workbook
Cryptography Workbook
 
rsa-1
rsa-1rsa-1
rsa-1
 
Listen and look at your PHP code
Listen and look at your PHP codeListen and look at your PHP code
Listen and look at your PHP code
 
Iss lecture 2
Iss lecture 2Iss lecture 2
Iss lecture 2
 
Realizing Fine-Grained and Flexible Access Control to Outsourced Data with At...
Realizing Fine-Grained and Flexible Access Control to Outsourced Data with At...Realizing Fine-Grained and Flexible Access Control to Outsourced Data with At...
Realizing Fine-Grained and Flexible Access Control to Outsourced Data with At...
 
Java - Concurrent programming - Thread's advanced concepts
Java - Concurrent programming - Thread's advanced conceptsJava - Concurrent programming - Thread's advanced concepts
Java - Concurrent programming - Thread's advanced concepts
 
OpenMI Developers Training
OpenMI Developers TrainingOpenMI Developers Training
OpenMI Developers Training
 
OpenMI Developers Training
OpenMI Developers TrainingOpenMI Developers Training
OpenMI Developers Training
 
Rfid
Rfid Rfid
Rfid
 
Unit 3(1)
Unit 3(1)Unit 3(1)
Unit 3(1)
 
VHDL Part 4
VHDL Part 4VHDL Part 4
VHDL Part 4
 
Unit 3(1)
Unit 3(1)Unit 3(1)
Unit 3(1)
 

Viewers also liked

Mouawad
MouawadMouawad
Mouawad
anesah
 
Pantidi
PantidiPantidi
Pantidi
anesah
 
Wilkie
WilkieWilkie
Wilkie
anesah
 
Dupressoir
DupressoirDupressoir
Dupressoir
anesah
 
Abraham
AbrahamAbraham
Abraham
anesah
 
Aizatulin
AizatulinAizatulin
Aizatulin
anesah
 
Session3
Session3Session3
Session3
Jani Kusuma
 
Formal analysis-crypto-proto
Formal analysis-crypto-protoFormal analysis-crypto-proto
Formal analysis-crypto-proto
Dr. Jayaraj Poroor
 
Oops index
Oops indexOops index
Oops index
Hitesh Wagle
 
Teaching Students with Emojis, Emoticons, & Textspeak
Teaching Students with Emojis, Emoticons, & TextspeakTeaching Students with Emojis, Emoticons, & Textspeak
Teaching Students with Emojis, Emoticons, & Textspeak
Shelly Sanchez Terrell
 
Study: The Future of VR, AR and Self-Driving Cars
Study: The Future of VR, AR and Self-Driving CarsStudy: The Future of VR, AR and Self-Driving Cars
Study: The Future of VR, AR and Self-Driving Cars
LinkedIn
 
Hype vs. Reality: The AI Explainer
Hype vs. Reality: The AI ExplainerHype vs. Reality: The AI Explainer
Hype vs. Reality: The AI Explainer
Luminary Labs
 

Viewers also liked (12)

Mouawad
MouawadMouawad
Mouawad
 
Pantidi
PantidiPantidi
Pantidi
 
Wilkie
WilkieWilkie
Wilkie
 
Dupressoir
DupressoirDupressoir
Dupressoir
 
Abraham
AbrahamAbraham
Abraham
 
Aizatulin
AizatulinAizatulin
Aizatulin
 
Session3
Session3Session3
Session3
 
Formal analysis-crypto-proto
Formal analysis-crypto-protoFormal analysis-crypto-proto
Formal analysis-crypto-proto
 
Oops index
Oops indexOops index
Oops index
 
Teaching Students with Emojis, Emoticons, & Textspeak
Teaching Students with Emojis, Emoticons, & TextspeakTeaching Students with Emojis, Emoticons, & Textspeak
Teaching Students with Emojis, Emoticons, & Textspeak
 
Study: The Future of VR, AR and Self-Driving Cars
Study: The Future of VR, AR and Self-Driving CarsStudy: The Future of VR, AR and Self-Driving Cars
Study: The Future of VR, AR and Self-Driving Cars
 
Hype vs. Reality: The AI Explainer
Hype vs. Reality: The AI ExplainerHype vs. Reality: The AI Explainer
Hype vs. Reality: The AI Explainer
 

Similar to Aizatulin poster

SRAVANByCPP
SRAVANByCPPSRAVANByCPP
SRAVANByCPP
aptechsravan
 
Chapter 15 - Security
Chapter 15 - SecurityChapter 15 - Security
Chapter 15 - Security
Wayne Jones Jnr
 
Pascal script maxbox_ekon_14_2
Pascal script maxbox_ekon_14_2Pascal script maxbox_ekon_14_2
Pascal script maxbox_ekon_14_2
Max Kleiner
 
Symbolic Execution (introduction and hands-on)
Symbolic Execution (introduction and hands-on)Symbolic Execution (introduction and hands-on)
Symbolic Execution (introduction and hands-on)
Emilio Coppa
 
Ransomware for fun and non-profit
Ransomware for fun and non-profitRansomware for fun and non-profit
Ransomware for fun and non-profit
Youness Zougar
 
Cypherock Assessment (1).pdf
Cypherock Assessment (1).pdfCypherock Assessment (1).pdf
Cypherock Assessment (1).pdf
PARNIKA GUPTA
 
C sharp chap6
C sharp chap6C sharp chap6
C sharp chap6
Mukesh Tekwani
 
Real-World WebAppSec Flaws - Examples and Countermeasues
Real-World WebAppSec Flaws - Examples and CountermeasuesReal-World WebAppSec Flaws - Examples and Countermeasues
Real-World WebAppSec Flaws - Examples and Countermeasues
volvent
 
Notes on c++
Notes on c++Notes on c++
Notes on c++
Selvam Edwin
 
FORECAST: Fast Generation of Accurate Context-Aware Signatures of Control-Hij...
FORECAST: Fast Generation of Accurate Context-Aware Signatures of Control-Hij...FORECAST: Fast Generation of Accurate Context-Aware Signatures of Control-Hij...
FORECAST: Fast Generation of Accurate Context-Aware Signatures of Control-Hij...
Alexey Smirnov
 
iPhone Seminar Part 2
iPhone Seminar Part 2iPhone Seminar Part 2
iPhone Seminar Part 2
NAILBITER
 
Eight simple rules to writing secure PHP programs
Eight simple rules to writing secure PHP programsEight simple rules to writing secure PHP programs
Eight simple rules to writing secure PHP programs
Aleksandr Yampolskiy
 
DIRA: Automatic Detection, Identification, and Repair of Controll-Hijacking a...
DIRA: Automatic Detection, Identification, and Repair of Controll-Hijacking a...DIRA: Automatic Detection, Identification, and Repair of Controll-Hijacking a...
DIRA: Automatic Detection, Identification, and Repair of Controll-Hijacking a...
Alexey Smirnov
 
Encryption/Decryption Algorithm for Devanagri Script(Affine Cipher)
Encryption/Decryption Algorithm for Devanagri Script(Affine Cipher)Encryption/Decryption Algorithm for Devanagri Script(Affine Cipher)
Encryption/Decryption Algorithm for Devanagri Script(Affine Cipher)
Swati Nagpal
 
Lattice based Merkle for post-quantum epoch
Lattice based Merkle for post-quantum epochLattice based Merkle for post-quantum epoch
Lattice based Merkle for post-quantum epoch
DefCamp
 
EEE 3rd year oops cat 3 ans
EEE 3rd year  oops cat 3  ansEEE 3rd year  oops cat 3  ans
EEE 3rd year oops cat 3 ans
Karthik Venkatachalam
 
Lab manual object oriented technology (it 303 rgpv) (usefulsearch.org) (usef...
Lab manual object oriented technology (it 303 rgpv) (usefulsearch.org)  (usef...Lab manual object oriented technology (it 303 rgpv) (usefulsearch.org)  (usef...
Lab manual object oriented technology (it 303 rgpv) (usefulsearch.org) (usef...
Make Mannan
 
MPI
MPIMPI
venkatesh.pptx
venkatesh.pptxvenkatesh.pptx
venkatesh.pptx
KishoreRedla
 
C tutorial
C tutorialC tutorial
C tutorial
Amit Dhiman
 

Similar to Aizatulin poster (20)

SRAVANByCPP
SRAVANByCPPSRAVANByCPP
SRAVANByCPP
 
Chapter 15 - Security
Chapter 15 - SecurityChapter 15 - Security
Chapter 15 - Security
 
Pascal script maxbox_ekon_14_2
Pascal script maxbox_ekon_14_2Pascal script maxbox_ekon_14_2
Pascal script maxbox_ekon_14_2
 
Symbolic Execution (introduction and hands-on)
Symbolic Execution (introduction and hands-on)Symbolic Execution (introduction and hands-on)
Symbolic Execution (introduction and hands-on)
 
Ransomware for fun and non-profit
Ransomware for fun and non-profitRansomware for fun and non-profit
Ransomware for fun and non-profit
 
Cypherock Assessment (1).pdf
Cypherock Assessment (1).pdfCypherock Assessment (1).pdf
Cypherock Assessment (1).pdf
 
C sharp chap6
C sharp chap6C sharp chap6
C sharp chap6
 
Real-World WebAppSec Flaws - Examples and Countermeasues
Real-World WebAppSec Flaws - Examples and CountermeasuesReal-World WebAppSec Flaws - Examples and Countermeasues
Real-World WebAppSec Flaws - Examples and Countermeasues
 
Notes on c++
Notes on c++Notes on c++
Notes on c++
 
FORECAST: Fast Generation of Accurate Context-Aware Signatures of Control-Hij...
FORECAST: Fast Generation of Accurate Context-Aware Signatures of Control-Hij...FORECAST: Fast Generation of Accurate Context-Aware Signatures of Control-Hij...
FORECAST: Fast Generation of Accurate Context-Aware Signatures of Control-Hij...
 
iPhone Seminar Part 2
iPhone Seminar Part 2iPhone Seminar Part 2
iPhone Seminar Part 2
 
Eight simple rules to writing secure PHP programs
Eight simple rules to writing secure PHP programsEight simple rules to writing secure PHP programs
Eight simple rules to writing secure PHP programs
 
DIRA: Automatic Detection, Identification, and Repair of Controll-Hijacking a...
DIRA: Automatic Detection, Identification, and Repair of Controll-Hijacking a...DIRA: Automatic Detection, Identification, and Repair of Controll-Hijacking a...
DIRA: Automatic Detection, Identification, and Repair of Controll-Hijacking a...
 
Encryption/Decryption Algorithm for Devanagri Script(Affine Cipher)
Encryption/Decryption Algorithm for Devanagri Script(Affine Cipher)Encryption/Decryption Algorithm for Devanagri Script(Affine Cipher)
Encryption/Decryption Algorithm for Devanagri Script(Affine Cipher)
 
Lattice based Merkle for post-quantum epoch
Lattice based Merkle for post-quantum epochLattice based Merkle for post-quantum epoch
Lattice based Merkle for post-quantum epoch
 
EEE 3rd year oops cat 3 ans
EEE 3rd year  oops cat 3  ansEEE 3rd year  oops cat 3  ans
EEE 3rd year oops cat 3 ans
 
Lab manual object oriented technology (it 303 rgpv) (usefulsearch.org) (usef...
Lab manual object oriented technology (it 303 rgpv) (usefulsearch.org)  (usef...Lab manual object oriented technology (it 303 rgpv) (usefulsearch.org)  (usef...
Lab manual object oriented technology (it 303 rgpv) (usefulsearch.org) (usef...
 
MPI
MPIMPI
MPI
 
venkatesh.pptx
venkatesh.pptxvenkatesh.pptx
venkatesh.pptx
 
C tutorial
C tutorialC tutorial
C tutorial
 

More from anesah

Van der merwe
Van der merweVan der merwe
Van der merwe
anesah
 
Thomas
ThomasThomas
Thomas
anesah
 
Taubenberger
TaubenbergerTaubenberger
Taubenberger
anesah
 
Sach
SachSach
Sach
anesah
 
Rae
RaeRae
Rae
anesah
 
Pantidi
PantidiPantidi
Pantidi
anesah
 
Corneli
CorneliCorneli
Corneli
anesah
 
Collins
CollinsCollins
Collins
anesah
 
Xambo
XamboXambo
Xambo
anesah
 
Ullmann
UllmannUllmann
Ullmann
anesah
 
Tran
TranTran
Tran
anesah
 
Quinto
QuintoQuinto
Quinto
anesah
 
Pluss
PlussPluss
Pluss
anesah
 
Pawlik
PawlikPawlik
Pawlik
anesah
 
Overbeeke
OverbeekeOverbeeke
Overbeeke
anesah
 
Nguyen
NguyenNguyen
Nguyen
anesah
 
Murphy
MurphyMurphy
Murphy
anesah
 
Moyo
MoyoMoyo
Moyo
anesah
 
Montrieux
MontrieuxMontrieux
Montrieux
anesah
 
Ma
MaMa
Ma
anesah
 

More from anesah (20)

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
 
Montrieux
MontrieuxMontrieux
Montrieux
 
Ma
MaMa
Ma
 

Recently uploaded

9 CEO's who hit $100m ARR Share Their Top Growth Tactics Nathan Latka, Founde...
9 CEO's who hit $100m ARR Share Their Top Growth Tactics Nathan Latka, Founde...9 CEO's who hit $100m ARR Share Their Top Growth Tactics Nathan Latka, Founde...
9 CEO's who hit $100m ARR Share Their Top Growth Tactics Nathan Latka, Founde...
saastr
 
What is an RPA CoE? Session 1 – CoE Vision
What is an RPA CoE?  Session 1 – CoE VisionWhat is an RPA CoE?  Session 1 – CoE Vision
What is an RPA CoE? Session 1 – CoE Vision
DianaGray10
 
The Microsoft 365 Migration Tutorial For Beginner.pptx
The Microsoft 365 Migration Tutorial For Beginner.pptxThe Microsoft 365 Migration Tutorial For Beginner.pptx
The Microsoft 365 Migration Tutorial For Beginner.pptx
operationspcvita
 
Biomedical Knowledge Graphs for Data Scientists and Bioinformaticians
Biomedical Knowledge Graphs for Data Scientists and BioinformaticiansBiomedical Knowledge Graphs for Data Scientists and Bioinformaticians
Biomedical Knowledge Graphs for Data Scientists and Bioinformaticians
Neo4j
 
HCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAUHCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAU
panagenda
 
JavaLand 2024: Application Development Green Masterplan
JavaLand 2024: Application Development Green MasterplanJavaLand 2024: Application Development Green Masterplan
JavaLand 2024: Application Development Green Masterplan
Miro Wengner
 
Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...
Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...
Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...
saastr
 
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development ProvidersYour One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
akankshawande
 
Freshworks Rethinks NoSQL for Rapid Scaling & Cost-Efficiency
Freshworks Rethinks NoSQL for Rapid Scaling & Cost-EfficiencyFreshworks Rethinks NoSQL for Rapid Scaling & Cost-Efficiency
Freshworks Rethinks NoSQL for Rapid Scaling & Cost-Efficiency
ScyllaDB
 
Apps Break Data
Apps Break DataApps Break Data
Apps Break Data
Ivo Velitchkov
 
Digital Banking in the Cloud: How Citizens Bank Unlocked Their Mainframe
Digital Banking in the Cloud: How Citizens Bank Unlocked Their MainframeDigital Banking in the Cloud: How Citizens Bank Unlocked Their Mainframe
Digital Banking in the Cloud: How Citizens Bank Unlocked Their Mainframe
Precisely
 
5th LF Energy Power Grid Model Meet-up Slides
5th LF Energy Power Grid Model Meet-up Slides5th LF Energy Power Grid Model Meet-up Slides
5th LF Energy Power Grid Model Meet-up Slides
DanBrown980551
 
Main news related to the CCS TSI 2023 (2023/1695)
Main news related to the CCS TSI 2023 (2023/1695)Main news related to the CCS TSI 2023 (2023/1695)
Main news related to the CCS TSI 2023 (2023/1695)
Jakub Marek
 
Monitoring and Managing Anomaly Detection on OpenShift.pdf
Monitoring and Managing Anomaly Detection on OpenShift.pdfMonitoring and Managing Anomaly Detection on OpenShift.pdf
Monitoring and Managing Anomaly Detection on OpenShift.pdf
Tosin Akinosho
 
Connector Corner: Seamlessly power UiPath Apps, GenAI with prebuilt connectors
Connector Corner: Seamlessly power UiPath Apps, GenAI with prebuilt connectorsConnector Corner: Seamlessly power UiPath Apps, GenAI with prebuilt connectors
Connector Corner: Seamlessly power UiPath Apps, GenAI with prebuilt connectors
DianaGray10
 
GNSS spoofing via SDR (Criptored Talks 2024)
GNSS spoofing via SDR (Criptored Talks 2024)GNSS spoofing via SDR (Criptored Talks 2024)
GNSS spoofing via SDR (Criptored Talks 2024)
Javier Junquera
 
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAUHCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
panagenda
 
Driving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success StoryDriving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success Story
Safe Software
 
zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...
zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...
zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...
Alex Pruden
 

Recently uploaded (20)

9 CEO's who hit $100m ARR Share Their Top Growth Tactics Nathan Latka, Founde...
9 CEO's who hit $100m ARR Share Their Top Growth Tactics Nathan Latka, Founde...9 CEO's who hit $100m ARR Share Their Top Growth Tactics Nathan Latka, Founde...
9 CEO's who hit $100m ARR Share Their Top Growth Tactics Nathan Latka, Founde...
 
What is an RPA CoE? Session 1 – CoE Vision
What is an RPA CoE?  Session 1 – CoE VisionWhat is an RPA CoE?  Session 1 – CoE Vision
What is an RPA CoE? Session 1 – CoE Vision
 
The Microsoft 365 Migration Tutorial For Beginner.pptx
The Microsoft 365 Migration Tutorial For Beginner.pptxThe Microsoft 365 Migration Tutorial For Beginner.pptx
The Microsoft 365 Migration Tutorial For Beginner.pptx
 
Biomedical Knowledge Graphs for Data Scientists and Bioinformaticians
Biomedical Knowledge Graphs for Data Scientists and BioinformaticiansBiomedical Knowledge Graphs for Data Scientists and Bioinformaticians
Biomedical Knowledge Graphs for Data Scientists and Bioinformaticians
 
HCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAUHCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAU
 
JavaLand 2024: Application Development Green Masterplan
JavaLand 2024: Application Development Green MasterplanJavaLand 2024: Application Development Green Masterplan
JavaLand 2024: Application Development Green Masterplan
 
Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...
Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...
Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...
 
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development ProvidersYour One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
 
Freshworks Rethinks NoSQL for Rapid Scaling & Cost-Efficiency
Freshworks Rethinks NoSQL for Rapid Scaling & Cost-EfficiencyFreshworks Rethinks NoSQL for Rapid Scaling & Cost-Efficiency
Freshworks Rethinks NoSQL for Rapid Scaling & Cost-Efficiency
 
Apps Break Data
Apps Break DataApps Break Data
Apps Break Data
 
Digital Banking in the Cloud: How Citizens Bank Unlocked Their Mainframe
Digital Banking in the Cloud: How Citizens Bank Unlocked Their MainframeDigital Banking in the Cloud: How Citizens Bank Unlocked Their Mainframe
Digital Banking in the Cloud: How Citizens Bank Unlocked Their Mainframe
 
5th LF Energy Power Grid Model Meet-up Slides
5th LF Energy Power Grid Model Meet-up Slides5th LF Energy Power Grid Model Meet-up Slides
5th LF Energy Power Grid Model Meet-up Slides
 
Main news related to the CCS TSI 2023 (2023/1695)
Main news related to the CCS TSI 2023 (2023/1695)Main news related to the CCS TSI 2023 (2023/1695)
Main news related to the CCS TSI 2023 (2023/1695)
 
Artificial Intelligence and Electronic Warfare
Artificial Intelligence and Electronic WarfareArtificial Intelligence and Electronic Warfare
Artificial Intelligence and Electronic Warfare
 
Monitoring and Managing Anomaly Detection on OpenShift.pdf
Monitoring and Managing Anomaly Detection on OpenShift.pdfMonitoring and Managing Anomaly Detection on OpenShift.pdf
Monitoring and Managing Anomaly Detection on OpenShift.pdf
 
Connector Corner: Seamlessly power UiPath Apps, GenAI with prebuilt connectors
Connector Corner: Seamlessly power UiPath Apps, GenAI with prebuilt connectorsConnector Corner: Seamlessly power UiPath Apps, GenAI with prebuilt connectors
Connector Corner: Seamlessly power UiPath Apps, GenAI with prebuilt connectors
 
GNSS spoofing via SDR (Criptored Talks 2024)
GNSS spoofing via SDR (Criptored Talks 2024)GNSS spoofing via SDR (Criptored Talks 2024)
GNSS spoofing via SDR (Criptored Talks 2024)
 
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAUHCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
 
Driving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success StoryDriving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success Story
 
zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...
zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...
zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...
 

Aizatulin poster

  • 1. Verifying Implementations of Security Protocols in C Mihhail Aizatulin (avatar@hot.ee) 1. Goal Our goal is a tool for cryptographic security analysis at implementation level: Source code of a List of all potential cryptographic Our tools security flaws or protocol proof of security implementation 2. Motivation: an Attack Example 3. Assumptions Here is an example vulnerability that we would like to prevent. In January We assume that cryptographic primitives (encryption, hash- 2009 a flaw in the OpenSSL library was discovered, permitting a corrupt certifi- ing) are implemented correctly and are unbreakable. cate to be recognised as valid. A function return value is wrongly interpreted: int check_certificate ( ) { / / l a t e r in code : 4. Background ... ... if ( certificate_malformed ) if ( check_certificate ()) / / oops ! Very little has been done for crypto-verification of low-level r e t u r n − 1; { languages. We rely on tools for proving security from high-level else if ( ! certificate_check_ok ) trust_certificate (); specifications of protocols. Currently we are using ProVerif. return 0 ; } else return 1 ; } Notice how the -1 return value passes the validity test! An attacker can craft 5. Challenges a malformed certificate, pretending to be someone else: We cannot simply reuse existing program verification tools, because we don’t just verify a program, but a system, consisting paypal.com Certificate? of several instances of a program and an unknown attacker. Malformed Certificate Client Attacker (= Internet) paypal.com 7. Proposed Method We propose to use symbolic execution to extract a high-level Now the attacker can impersonate the client and the bank to each other: model of the protocol and then use existing tools to verify it. Suppose we use shared key hashing for message integrity: Password? Password? m, hash(m, k shared ) Password Password + “get $$$” A−−−−−−−−−− B. → Client Attacker (= Internet) paypal.com The client side implementation could look as follows. Note the extra data added to the message: the payload length and a tag. We would like to use formal methods to prove absence of similar flaws. c l i e n t ( char ∗ payload , i n t payload_len ) { i n t msg_len = 5 + l e n + SHA1_LEN ; 6. Symbolic Execution char ∗ msg = malloc ( msg_len ) ; char ∗ p = msg ; Symbolic execution is a tool to simplify programs and extract their meaning. ∗p = l e n ; p += 4 ; / / add l e n g t h The program is “executed” with symbols as input, instead of numbers: ∗ ( p++) = 1 ; / / add t h e t a g memcpy( payload , p , l e n ) ; / / add t h e p a y l o a d Concrete: Symbolic: sha1 ( msg , 5 + len , p ) ; / / add t h e h a s h x = 2 y = 3 x = a y = b send ( msg , msg_len ) ; / / send } int f ( int x , int y ) { int f ( int x , int y ) { Using symbolic execution we can summarise the effect of the r e t u r n ++x ∗ y + + ; } r e t u r n ++x ∗ y + + ; } function: Symbolic Execution 9 ( a + 1) b out(len(payload)|01|payload We use symbolic execution to derive the formats of messages that the program |sha1(len(payload)|01|payload, kshared )) generates. Here “|” stands for bitstring concatenation. High-level verifi- 8. Current Status cation tools can’t deal with it directly, so we perform some extra analysis to prove that concatenation patterns can be abstracted Done: as pure symbolic functions: • Implemented symbolic execution for fixed bitstring lengths and linear con- Format Abstraction trol flow. • Proved correctness of format abstraction. out(f 1(payload, hash1(payload, kshared ))) To do: This is a representation that ProVerif can easily deal with: • Implement symbolic execution for variable bitstring lengths. ProVerif (+ Server Side) • Implement format abstraction. • Add support for arbitrary control flow. Integrity verified. 9. Project The project is supervised by Andrew Gordon (Microsoft Research), Jan Jürjens (Dortmund University) and Bashar Nuseibeh (Open University). It is partially supported through the Microsoft Research PhD Scholarship programme.