presentation of the proverif tool
play

Presentation of the ProVerif tool St ephanie Delaune January 2018 - PowerPoint PPT Presentation

Presentation of the ProVerif tool St ephanie Delaune January 2018 ProVerif [Blanchet, 01] ProVerif is a verifier for cryptographic protocols that may prove that a protocol is secure or exhibit attacks. http://proverif.inria.fr Advantages


  1. Presentation of the ProVerif tool St´ ephanie Delaune January 2018

  2. ProVerif [Blanchet, 01] ProVerif is a verifier for cryptographic protocols that may prove that a protocol is secure or exhibit attacks. http://proverif.inria.fr Advantages ◮ fully automatic, and quite efficient ◮ a rich process algebra: replication, else branches, . . . ◮ handles many cryptographic primitives ◮ various security properties: secrecy, correspondences, equivalences

  3. ProVerif [Blanchet, 01] ProVerif is a verifier for cryptographic protocols that may prove that a protocol is secure or exhibit attacks. http://proverif.inria.fr Advantages ◮ fully automatic, and quite efficient ◮ a rich process algebra: replication, else branches, . . . ◮ handles many cryptographic primitives ◮ various security properties: secrecy, correspondences, equivalences No miracle ◮ the tool can say “can not be proved”; ◮ termination is not guaranteed

  4. How does ProVerif work?

  5. Some vocabulary First order logic Atoms P ( t 1 , . . . , t n ) where t i are terms, P is a predicate Literals P ( t 1 , . . . , t n ) or ¬ P ( t 1 , . . . , t n ) closed under ∨ , ∧ , ¬ , ∃ , ∀ Clauses: Only universal quantifiers Horn Clauses: at most one positive literal (where A i , B are atoms.) ∀ ˜ x . A 1 , . . . , A n ⇒ B

  6. Modelling using Horn clauses

  7. Modelling the attacker Horn clauses C att reflects the capabilities of the attacker. att( x ) , att( y ) ⇒ att( � x , y � ) pairing att( � x , y � ) ⇒ att( x ) projection att( � x , y � ) ⇒ att( y ) projection att( x ) , att( y ) ⇒ att( { x } y ) encryption att( { x } y ) , att( y ) ⇒ att( x ) decryption

  8. Modelling the protocol (on an example) { pin } Ka {{ pin } Ka } Kb { pin } Kb − → {{ pin } Ka } Kb = {{ pin } Kb } Ka .

  9. Modelling the protocol (on an example) { pin } Ka {{ pin } Ka } Kb { pin } Kb This protocol does not work! (authentication problem)

  10. Modelling the protocol (on an example) { pin } Ka {{ pin } Ka } Kb { pin } Kb This protocol does not work! (authentication problem) { pin } Ka {{ pin } Ka } Ki { pin } Ki

  11. Modelling the protocol (using Horn clauses) Protocol: Horn clauses C P : A → B : { pin } K a ⇒ att( { pin } K a ) B → A : {{ pin } K a } K b att( x ) ⇒ att( { x } K b ) A → B : { pin } K b att( { x } K a ) ⇒ att( x ) − → These clauses model an arbitrary number of executions of the protocol between the two honest participants A and B .

  12. Modelling the security property We consider secrecy as a reachability (accessibility) property, and we consider the Horn clause ¬ att(pin) There exists an attack (in this model) iff C att + C prot + ¬ att(pin) is NOT satisfiable.

  13. Modelling the security property We consider secrecy as a reachability (accessibility) property, and we consider the Horn clause ¬ att(pin) There exists an attack (in this model) iff C att + C prot + ¬ att(pin) is NOT satisfiable. Exercise Do you think that C prot + C att + ¬ att(pin) is satisfiable or not? Justify your answer. What about C prot + C att ? and C prot ?

  14. How to decide satisfiability? − → using resolution techniques

  15. Binary resolution ¬ A ∨ C B ∨ D Binary resolution θ = mgu( A , B ) C θ ∨ D θ Theorem (Soundness and Completeness) Binary resolution is sound and refutationally complete for Horn clauses, i.e. a set of Horn clauses C is not satisfiable if and only if � (the empty clause) can be obtained from C by binary resolution.

  16. Example C = {¬ att( s ) , att( k 1 ) , att( { s } � k 1 , k 1 � ) , att( { x } y ) , att( y ) ⇒ att( x ) , att( x ) , att( y ) ⇒ att( � x , y � ) }

  17. Example C = {¬ att( s ) , att( k 1 ) , att( { s } � k 1 , k 1 � ) , att( { x } y ) , att( y ) ⇒ att( x ) , att( x ) , att( y ) ⇒ att( � x , y � ) } att( k 1 ) att( x ) , att( y ) ⇒ att( � x , y � ) att( { s } � k 1 , k 1 � ) att( { x } y ) , att( y ) ⇒ att( x ) att( k 1 ) att( y ) ⇒ att( � k 1 , y � ) att( � k 1 , k 1 � ) ⇒ att( s ) att( � k 1 , k 1 � ) ¬ att( s ) att( s ) �

  18. But it is not terminating! att( s ) att( x ) , att( y ) ⇒ att( � x , y � ) att( s ) att( y ) ⇒ att( � s , y � ) att( y ) ⇒ att( � s , y � ) att( � s , s � ) att( y ) ⇒ att( � s , y � ) att( � s , � s , s �� ) att( � s , � s , � s , s ��� ) · · · → This does not yield any decidability result.

  19. How does ProVerif work?

  20. ProVerif in a nutshell Two main ideas (extending [Weidenbach, CADE’99]): 1. a simple abstract representation of these protocols, by a set of Horn clauses; − → relying on parametrized terms (called patterns) 2. an efficient solving algorithm based on resolution to find which facts can be derived from these clauses. − → ordered resolution with selection Using this, ProVerif can prove secrecy properties of protocols, or exhibit attacks showing why a message is not secret.

  21. Modelling the attacker using Horn clauses Public key encryption att( x ) ⇒ att(pk( x )) att( x ) , att(pk( y )) ⇒ att(aenc( x , pk( y ))) att((aenc( x , pk( y ))) , att( y ) ⇒ att( x )

  22. Modelling the attacker using Horn clauses Public key encryption att( x ) ⇒ att(pk( x )) att( x ) , att(pk( y )) ⇒ att(aenc( x , pk( y ))) att((aenc( x , pk( y ))) , att( y ) ⇒ att( x ) Signature att( x ) , att( y ) ⇒ att(sign( x , y )) att(sign( x , y )) ⇒ att( x ) Symmetric encryption att( x ) , att( y ) ⇒ att(senc( x , y )) att((senc( x , y )) , att( y ) ⇒ att( x ) Initial knowledge ⇒ att(pk( sk A )) ⇒ att( sk I ) ⇒ att(pk( sk B ))

  23. Modelling the protococol using Horn clauses Denning-Sacco protocol . . . A → B : aenc(sign( k , priv( A )) , pub( B )) B → A : senc( s , k ) . . . using Horn clauses

  24. Modelling the protococol using Horn clauses Denning-Sacco protocol . . . A → B : aenc(sign( k , priv( A )) , pub( B )) B → A : senc( s , k ) . . . using Horn clauses ◮ A talks with any principal represented by its public key pk( x ). att(pk( x )) ⇒ att(aenc(sign( k , sk A ) , pk( x )))

  25. Modelling the protococol using Horn clauses Denning-Sacco protocol . . . A → B : aenc(sign( k , priv( A )) , pub( B )) B → A : senc( s , k ) . . . using Horn clauses ◮ A talks with any principal represented by its public key pk( x ). att(pk( x )) ⇒ att(aenc(sign( k , sk A ) , pk( x ))) ◮ When B receives a message of the expected form, he replies accordingly att(aenc(sign( y , sk A ) , pk( sk B ))) ⇒ att(senc( s , y ))

  26. Modelling the protococol using Horn clauses Denning-Sacco protocol . . . A → B : aenc(sign( k , priv( A )) , pub( B )) B → A : senc( s , k ) . . . using Horn clauses ◮ A talks with any principal represented by its public key pk( x ). att(pk( x )) ⇒ att(aenc(sign( k [ x ] , sk A ) , pk( x ))) ◮ When B receives a message of the expected form, he replies accordingly att(aenc(sign( y , sk A ) , pk( sk B ))) ⇒ att(senc( s , y )) − → names are parametrized to partially modelled their freshness

  27. Modelling the security property using Horn clauses We consider secrecy as a reachability (accessibility) property. Is C att + C prot + ¬ att( s ) satisfiable or not?

  28. Modelling the security property using Horn clauses We consider secrecy as a reachability (accessibility) property. Is C att + C prot + ¬ att( s ) satisfiable or not? Denning Sacco protocol 1 . att( sk I ) initial knowledge

  29. Modelling the security property using Horn clauses We consider secrecy as a reachability (accessibility) property. Is C att + C prot + ¬ att( s ) satisfiable or not? Denning Sacco protocol 1 . att( sk I ) initial knowledge 2 . att(pk( sk I )) using attacker rules on 1

  30. Modelling the security property using Horn clauses We consider secrecy as a reachability (accessibility) property. Is C att + C prot + ¬ att( s ) satisfiable or not? Denning Sacco protocol 1 . att( sk I ) initial knowledge 2 . att(pk( sk I )) using attacker rules on 1 3 . att(aenc(sign( k [ sk I ] , sk A ) , pk( sk I ))) using protocol (rule 1) on 2

  31. Modelling the security property using Horn clauses We consider secrecy as a reachability (accessibility) property. Is C att + C prot + ¬ att( s ) satisfiable or not? Denning Sacco protocol 1 . att( sk I ) initial knowledge 2 . att(pk( sk I )) using attacker rules on 1 3 . att(aenc(sign( k [ sk I ] , sk A ) , pk( sk I ))) using protocol (rule 1) on 2 4 . att(pk( sk B )) initial knowledge

  32. Modelling the security property using Horn clauses We consider secrecy as a reachability (accessibility) property. Is C att + C prot + ¬ att( s ) satisfiable or not? Denning Sacco protocol 1 . att( sk I ) initial knowledge 2 . att(pk( sk I )) using attacker rules on 1 3 . att(aenc(sign( k [ sk I ] , sk A ) , pk( sk I ))) using protocol (rule 1) on 2 4 . att(pk( sk B )) initial knowledge 5 . att(aenc(sign( k [ sk I ] , sk A ) , pk( sk B )) using attacker rules on 3 with 1/4

  33. Modelling the security property using Horn clauses We consider secrecy as a reachability (accessibility) property. Is C att + C prot + ¬ att( s ) satisfiable or not? Denning Sacco protocol 1 . att( sk I ) initial knowledge 2 . att(pk( sk I )) using attacker rules on 1 3 . att(aenc(sign( k [ sk I ] , sk A ) , pk( sk I ))) using protocol (rule 1) on 2 4 . att(pk( sk B )) initial knowledge 5 . att(aenc(sign( k [ sk I ] , sk A ) , pk( sk B )) using attacker rules on 3 with 1/4 6 . att(senc( s , k [ sk I ])) using protocol (rule 2) on 5

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend