event based methods for security protocols
play

Event-based Methods for Security Protocols Federico Crazzolara - PowerPoint PPT Presentation

Event-based Methods for Security Protocols Federico Crazzolara C&C Laboratories, NEC Europe (joint work with G. Winskel while at BRICS) DIMACS, July 8, 2003 Road map 1) Security Protocol Language (SPL) Transition vs.


  1. Event-based Methods for Security Protocols Federico Crazzolara C&C Laboratories, NEC Europe (joint work with G. Winskel while at BRICS) DIMACS, July 8, 2003

  2. � ✁ ✁ ✁ Road map 1) Security Protocol Language (SPL) Transition vs. event-based semantics 2) Relation between models (finite behaviours) SPL & Basic Nets, Event Structures, Inductive Rules SPL & Strand Spaces Strand Spaces & Event Structures

  3. ✂ ✂ ✂ High level, special purpose language Program, verify & compile program: concise & precise protocol description formal semantics that supports protocol verification => reduce gap between protocol & model compile verified program => correct protocol code

  4. � � � � � � � Security Protocol Language (SPL) asynchronous, process oriented language abstracts concrete network with a tuple space messages: v | k | M,M' | {M} k | prefixing: new-name generation & send: out new(x) M . p input with pattern matching: in pat( ) N . p parallel composition of processes: ∈ I p i i ∈ ∈ ∈

  5. ISO mutual authentication in SPL (1) A B : n (2) B A : {n, m, B, K} Key(A,B) (3) A B : {n, m} Key(A,B) in pat(x) x . Resp(B, A) out new(y,z) {x, y, B, Key(z)} Key(A,B) . in {x, y} Key(A,B) RESP B ∈ Agents A ∈ Agents ! Resp(B,A) ISO p ∈{ INIT,RESP, SPY } p

  6. ✄ ✄ ✄ Transition Semantics provided n ∉ s output: out new(n) M[n/x] <out new(x) M . p, s, t> <p[n/x], s {n}, t {M[n/x]}> provided M[N/ ] ∈ t input: in M[N/ ] <in pat( ) M . p, s, t> <p[N/ ], s , t> parallel composition: <p j , s, t> <p' j , s' , t'> where p' i is p' j for i=j, else p i j: < i p' j , s' , t'> < i p j , s, t>

  7. Transitions & security properties Secrecy of session key : For all runs where resp:B,A:i :out new(m,b) {n, m, B, Key(b)} Key(A,B) <p j , s j , t j > <p j+1 , s j+1 , t j+1 > Key(A,B) t 0 stage w . Key(b) t w Possible proof strategy: assume does not hold => exists earliest violating action derive contradiction from causally preceding events ? Transition semantics masks local dependencies !

  8. ✁ ✁ ✁ ✁ Petri nets with persistence Def : Petri net with persistent conditions consists of B set of conditions, P ⊆ B persistent conditions, E set of events, pre,post: E Pow(B) pre and postcondition maps. Def : Token game: e iff • e ⊆ M & ( M \ ( • e P)) e • = M M' where M' = ( M \ • e) e • ( M P)

  9. Event Semantics SPL Petri net conditions C N O output control names (persistent) events (with pre- and postcondition maps) i:outnew(x) M . p i:inpat( ) M . p M[N/ ] i:outnew(n) M[n/x] i:in M[N/ ] M[n/x] n i:Ic(p[N/ ]) i:Ic(p[n/x]) events can carry indices to identify component

  10. ☎ Net of an SPL process Ev(out new(x) M. p) = i:outnew(x) M . p i:outnew(n) M[n/x] n Ev(p[n/x]) { | n names } M[n/x] n i:Ic(p[n/x]) Ev (in pat ( ) M. p) = i:inpat( ) M . p M[N/ ] M Ev([M/ ]) { | M messages} i:in M[N/ ] i:Ic(p[N/ ]) Ev ( i ∈ I p i ) = I i: Ev(p i ) i

  11. ✄ ✄ Relating transition and event semantics Th : If <p, s, t> <p', s' , t' > e then Ic(p) s t Ic(p') s' t' for some event e with act(e) = . e Th : If Ic(p) s t M act(e) <p, s, t> <p', s' , t' > then and M = Ic(p') s' t' for some closed process term p', names s' and messages t'.

  12. ✁ ✁ ✁ Protocol verification – proof strategy Use event-based semantics of SPL: formalize security property P in terms of events (as safety property), assume the run contains event violating P (take first such event), use dependencies among events & derive contradiction (case analysis on the events of a protocol).

  13. ✁ ✁ ✁ Derived proof principles Well foundedness : in a protocol run at some stage P => first stage s.t. P Freshness of m in a run: at most one event s.t. m e n Precedence : control: if b c e i either e j , j<i s.t. b e c b Ic(p 0 ) or j output input: if M o e i either M t 0 or e j , j<i s.t. M e o j

  14. ✁ ✁ ✁ Summary (I) Event based semantics of SPL non interleaving models useful for security- => protocol analysis. Transition semantics of SPL easy to implement. Relation between event-based & transition sem. + correct impl. of transition sem. properties of protocol model are properties of => protocol implementation.

  15. Relation between models (relate finite behaviours) IR (Paulson) NetPers StrandSp SPL new, special purpose other models Spi, CSP, ... traditional, well studied SPL E (event st.) TL (trace languages) TS (tran. sys.) N (basic nets)

  16. SPL Nets, Trace Languages, Event Structures e P Ø => e does not IR (Paulson) occur more than once in a run NetPers StrandSp SPL new, special purpose traditional, well studied SPL E TL N TS

  17. SPL and Inductive Rules p* SPL process (all actions replicated) NetPers IR (Paulson) StrandSp SPL new, special purpose traditional, well studied SPL E TL N TS

  18. ✆ ✁ ✆ ✆ ✆ ✁ ✁ ✁ Strand Spaces with conflict Strand Spaces: <s i > i ∈ ∈ I ∈ ∈ only limited form of nondeterminism difficult to compose using traditional process op. Extension: (<s i > i ∈ ∈ I , #) ∈ ∈ # ∈ ∈ I × ∈ ∈ × I , symmetric & irreflexive ( conflict relation ) × × unique orig. on the bundles not on entire space Compose Strand Spaces: a.S , S || S' , S+S' ( abbreviation || k ∈ (<s i > i ∈ I , #) = !(<s i > i ∈ I , #) ) ∈ ∈ ∈

  19. ✝ ✝ Conflict relation is inessential Def: binary, symmetric relation s.t. S S' iff b bundle of S => b' bundle of S' s.t. b and b' are isomorphic graphs. Th : b bundle of !(<s i > i ∈ I , #) then b bundle of !(<s i > i ∈ I , ∅ ) b bundle of !(<s i > i ∈ I , ∅ ) then re-indexing s.t. (b) bundle of !(<s i > i ∈ I ,# ). ∈Ι , ∅ ∅ ) ∅ ∅ Cor : !(<s i > i ∈ ∈ I , #) (<s i > i ∈Ι ∈ ∈ ∈Ι ∈Ι

  20. ✞ ✞ ✞ SPL and Strand Spaces max seq. in Ev(p) coinciding at control (p “par” process) i:out M i:out M i:out M # i:in M i i:in M 1 i:in M 1 i:in M i S(p) Net(p) Th : Seq. of events in Net(p) <=> lineariz. of bundle in S(p) ∈ I , ∅ ∅ ∅ ) ∅ if p is “!-par” process then S(p) = !(<s i > i ∈ ∈ I ,# ) !(<s i > i ∈ ∈ ∈ ∈ ∈

  21. ✞ ✞ Prime Event Structures Prime Event Structure (E, # , ) binary conflict relation #, symmetric and irreflexive {e' | e' e} finite e#e' e'' => e#e'' configurations F( E ) are x E s.t. x is conflict free x is left closed (e' e x => e' x)

  22. ✟ ✞ ✟ ✞ Strand Spaces and Event Structures bundles are graphs, i.e. sets of nodes and edges ( B , ) b B bundle, e b e b = {b' B e b' and b' b} (primes) b e b e b' Prop : b'' e b is a bundle if b B then b = {p | p b, p prime}

  23. ✟ ✠ ✠ ✟ Strand Spaces and Event Structures (II) Def : Pr( B ) = ( P ,#, ) P the primes of B p#p' if prime p'' s.t. p p'' and p' p'' (p,p' not compatible) Th : Pr( B ) is a prime event structure & ) (F fin Pr( B ), ) : ( B where (b) = {p | p b, p prime} iso of partial orders with : F fin Pr( B ) inverse B where (x) = x .

  24. Summary (II) e P Ø => e does not p* SPL process (all actions replicated) occur more than once in a run !par SPL processes IR (Paulson) NetPers StrandSp SPL new, special purpose traditional, well studied SPL E TL N TS

  25. ✟ ✟ ✟ ✟ ✟ References F. Crazzolara. Language, Semantics, and Methods for Security Protocols. Ph.D. Thesis, BRICS, May 2003. F. Crazzolara, G. Winskel. Composing Strand Spaces . FSTTCS'02. F. Crazzolara, G. Winskel. Events in Security Protocols . ACM CCS'01. F. Crazzolara, G. Winskel. Petri nets in Cryptographic Protocols . FMPPTA'01. F. Crazzolara, G. Milicia. Implementation of SPL @ www.chispaces.com.

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