proving properties of security protocols by induction
play

Proving Properties of Security Protocols by Induction Lawrence C. - PowerPoint PPT Presentation

Proving Security Protocols 1 L. C. Paulson Proving Properties of Security Protocols by Induction Lawrence C. Paulson Computer Laboratory University of Cambridge Proving Security Protocols 2 L. C. Paulson Cryptographic Protocol Analysis


  1. Proving Security Protocols 1 L. C. Paulson Proving Properties of Security Protocols by Induction Lawrence C. Paulson Computer Laboratory University of Cambridge

  2. Proving Security Protocols 2 L. C. Paulson Cryptographic Protocol Analysis • Finite-state checking Lowe, Millen, . . . + find attacks quickly − drastic simplifying assumptions • Belief logics Burrows, Abadi, Needham, . . . + short, abstract proofs − some variants are complicated & ill-motivated

  3. Proving Security Protocols 3 L. C. Paulson An Inductive Approach • Traces of events: A sends X to B • Any number of interleaved runs • Algebraic theory of messages • A general attacker • Modelling of accidents • Mechanized proofs

  4. Proving Security Protocols 4 L. C. Paulson Agents and Messages = Server | Friend i | Spy agent A, B, . . . = msg X, Y, . . . Agent A | Nonce N | Key K | { | X, X ′ | } | Hash X | Crypt KX

  5. Proving Security Protocols 5 L. C. Paulson Processing Sets of Messages Crypt KX � X parts: message components Crypt KX, K − 1 � X analz: message decryption X, K � Crypt KX synth: message faking Regularity lemmas stated using parts H Secrecy theorems stated using analz H Spoof messages drawn from synth ( analz H )

  6. Proving Security Protocols 6 L. C. Paulson Inductive Definition: parts H Crypt KX ∈ parts H X ∈ H X ∈ parts H X ∈ parts H { | X, Y | } ∈ parts H { | X, Y | } ∈ parts H X ∈ parts H Y ∈ parts H parts G ∪ parts H = parts ( G ∪ H )

  7. Proving Security Protocols 7 L. C. Paulson Inductive Definition: analz H K − 1 ∈ analz H Crypt KX ∈ analz H X ∈ H X ∈ analz H X ∈ analz H { | X, Y | } ∈ analz H { | X, Y | } ∈ analz H X ∈ analz H Y ∈ analz H analz G ∪ analz H ⊆ analz ( G ∪ H )

  8. Proving Security Protocols 8 L. C. Paulson Inductive Definition: synth H X ∈ H Agent A ∈ synth H X ∈ synth H X ∈ H Hash X ∈ synth H X ∈ synth H Y ∈ synth H X ∈ synth H K ∈ H { | X, Y | } ∈ synth H Crypt KX ∈ synth H G ⊆ H = ⇒ synth G ⊆ synth H

  9. Proving Security Protocols 9 L. C. Paulson Simplification Laws  parts ( parts H ) = parts H    analz ( analz H ) = analz H idempotence  synth ( synth H ) = synth H   parts ( analz H ) = analz ( parts H ) = parts H parts ( synth H ) = parts H ∪ synth H analz ( synth H ) = analz H ∪ synth H synth ( analz H ) = ??

  10. Proving Security Protocols 10 L. C. Paulson Symbolic Evaluation of parts ( ins XH ) ins XH = { X } ∪ H parts ( ins ( Key K ) H ) = ins ( Key K )( parts H ) parts ( ins ( Hash X ) H ) = ins ( Hash X )( parts H ) parts ( ins { | X, Y | } H ) = ins { | X, Y | } ( parts ( ins X ( ins Y H ))) parts ( ins ( Crypt KX ) H ) = ins ( Crypt KX )( parts ( ins XH ))

  11. Proving Security Protocols 11 L. C. Paulson Symbolic Evaluation of analz ( ins XH ) analz ( ins ( Key K ) H ) = ins ( Key K )( analz H ) K �∈ keysFor ( analz H ) analz ( ins ( Crypt KX ) H )  K − 1 ∈ analz H ins ( Crypt KX )( analz ( ins XH ))  = ins ( Crypt KX )( analz H ) otherwise 

  12. Proving Security Protocols 12 L. C. Paulson Deductions from synth H Nonce N ∈ synth H = ⇒ Nonce N ∈ H Key K ∈ synth H = ⇒ Key K ∈ H Crypt KX ∈ synth H = ⇒ Crypt KX ∈ H X ∈ synth H ∧ K ∈ H or A similar law for { | X, Y | } ∈ synth H

  13. Proving Security Protocols 13 L. C. Paulson Spoof Messages: Limiting the Damage Breaking down the spoof message: { | X, Y | } ∈ synth ( analz H ) ⇐ ⇒ X ∈ synth ( analz H ) ∧ Y ∈ synth ( analz H ) Eliminating the spoof message: X ∈ synth ( analz G ) = ⇒ parts ( ins X H ) ⊆ synth ( analz G ) ∪ parts G ∪ parts H

  14. Proving Security Protocols 14 L. C. Paulson The Shared-Key Model Says A B X Traces as lists of events: shrK A Alice’s shared key: used evs Items already used in this trace: Reading the traffic (with the help of lost keys): spies ( Says A B X # evs ) = { X } ∪ spies evs spies [] = { shrK A | A ∈ lost }

  15. Proving Security Protocols 15 L. C. Paulson The Simplified Otway-Rees Protocol 1 . A → B : Na, A, B, { | Na, A, B | } Kas 2 . B → S : Na, A, B, { | Na, A, B | } Kas , Nb, { | Na, A, B | } Kbs 3 . S → B : Na, { | Na, Kab | } Kas , { | Nb, Kab | } Kbs 4 . B → A : Na, { | Na, Kab | } Kas

  16. Proving Security Protocols 16 L. C. Paulson Inductively Defining the Protocol, 1–2 1. If evs is a trace and Na is unused, may add Says A B { | Na, A, B, Crypt ( shrK A ) { | Na, A, B | }| } 2. If evs has Says A ′ B { | Na, A, B, X | } and Nb is unused, may add Says B Server { | Na, A, B, X, Nb, Crypt ( shrK B ) { | Na, A, B | }| } B doesn’t know the true sender & can’t read X

  17. Proving Security Protocols 17 L. C. Paulson Inductively Defining the Protocol, 4 4. If evs contains the events | Na, A, B, X ′ , Nb, Crypt ( shrK B ) { Says B Server { | Na, A, B | }| } Says S ′ B { | Na, X, Crypt ( shrK B ) { | Nb, K | }| } may add Says B A { | Na, X | } Rule applies only if nonces agree, etc.

  18. Proving Security Protocols 18 L. C. Paulson Modelling Attacks and Accidents Fake. If X ∈ synth ( analz ( spies evs )) , may add Says Spy B X Oops. If server distributes key K , may add Says A Spy { | Na, Nb, K | } Nonces show the time of the loss

  19. Proving Security Protocols 19 L. C. Paulson Regularity & Unicity • Agents don’t talk to themselves • Secret keys are never lost (except initially) • Nonces & keys uniquely identify creating message Easily proved by induction & simplification of parts

  20. Proving Security Protocols 20 L. C. Paulson Secrecy • Keys, if secure, are never encrypted using any session keys • Distributed keys remain confidential — to recipients! • Yahalom: nonce Nb remains secure Simplification of analz: case analysis, big formulas

  21. Proving Security Protocols 21 L. C. Paulson An Attack 1 . A → B × : Na, A, B, { | Na, A, B | } Kas 1 ′ . C → A : Nc, C, A, { | Nc, C, A | } Kcs 2 ′ . A → S × : Nc, C, A, { | Nc, C, A | } Kcs , Na ′ , { | Nc, C, A | } Kas 2 ′′ . C A → S : Nc, C, A, { | Nc, C, A | } Kcs , Na, { | Nc, C, A | } Kas 3 ′ . S → A × : Nc, { | Nc, Kca | } Kcs , { | Na, Kca | } Kas 4 . C B → A : Na, { | Na, Kca | } Kas

  22. Proving Security Protocols 22 L. C. Paulson New Guarantees of Fixed Protocol B can trust the message if he sees Says S ′ B { | Na, X, Crypt ( shrK B ) { | Nb, K | }| } | Na, A, B, X ′ , Crypt ( shrK B ) { Says B Server { | Na, Nb, A, B | }| } A can trust the message if she sees Says B ′ A { | Na, Crypt ( shrK A ) { | Na, K | }| } Says A B { | Na, A, B, Crypt ( shrK A ) { | Na, A, B | }| }

  23. Proving Security Protocols 23 L. C. Paulson Statistics • 200 theorems about 10 protocol variants ( 3 × Otway-Rees, 2 × Yahalom, Needham-Schroeder, . . . ) • 110 laws proved concerning messages • 2–9 minutes CPU time per protocol • few hours or days human time per protocol • over 1200 proof commands in all

  24. Proving Security Protocols 24 L. C. Paulson Conclusions • A feasible method of analyzing protocols • Guarantees proved in a clear framework • Complementary to other methods: – Finite-state: finding simple attacks automatically – Belief logics: freshness analysis • Related work by Dominique Bolignano

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