statverif modelling protocols that involve persistent
play

StatVerif: Modelling protocols that involve persistent state Mark - PowerPoint PPT Presentation

StatVerif: Modelling protocols that involve persistent state Mark D. Ryan University of Birmingham Joint work with Myrto Arapinis, St ephanie Delaune, Steve Kremer, Joshua Phillips and Graham Steel 78 December 2011 Outline The ProVerif


  1. StatVerif: Modelling protocols that involve persistent state Mark D. Ryan University of Birmingham Joint work with Myrto Arapinis, St´ ephanie Delaune, Steve Kremer, Joshua Phillips and Graham Steel 7–8 December 2011

  2. Outline The ProVerif method Protocols with persistent state The TPM StatVerif

  3. Verifying cryptographic protocols “Provable/computational “Formal/symbolic methods” security” 1 Idealised (worst case) 1 Computationally bounded attacker (polynomial) attacker 2 Idealised (best case) perfect 2 Exact cryptographic cryptography operations on bitstrings 3 Symbolic (more abstract) 3 Bitstring (more concrete) model of protocol model 4 Prove impossibility of 4 Prove difficulty of violating violating security property security property is within the model equivalent to solving a hard problem

  4. Attacker model We model a very powerful attacker, with “Dolev-Yao” capabilities: it completely controls the communication channels, so it is able to record, alter, delete, insert, redirect, reorder, and reuse past or current messages, and inject new messages. (The network is the attacker.) manipulate data in arbitrary ways, including applying crypto operations provided has the necessary keys. It controls dishonest participants. “It’s always better to assume the worst. Assume your adversaries are better than they are. Assume science and technology will soon be able to do things they cannot yet. Give yourself a margin for error. Give yourself more security than you need today.” - Bruce Schneier

  5. Coding protocols as processes Handshake protocol S C new k Original handshake protocol: enc pkC (sign skS ( k )) − − − − − − − − − − − → senc k ( s ) ← − − − − − − − − − − − let Server = in (ch, pkC’); new k; out (ch, enc(pkC’, sign(skS, k ) )); in (ch, m); 0.

  6. The handshake protocol in full free ch. (* Public key cryptography *) fun pk/1. fun enc/2. fun dec/2. equation dec(x, enc(pk(x), y) ) = y. (* Signatures *) fun sign/2. fun checksign/2. fun getmess/1. fun ok/0. equation checksign(pk(x), sign(x,y)) = ok. equation getmess(sign(x,y)) = y. (* Shared-key cryptography *) fun senc/2. fun sdec/2. equation sdec(senc(x,y),x) = y.

  7. The handshake protocol in full 2 let Server = in (ch, pkC’); new k; out (ch, enc(pkC’, sign(skS, k ) )); in (ch, m); 0. let Client = in (ch, pkS’); in (ch, m); let m’ = dec(skC, m) in if checksign(pkS’, m’) = ok then let k’ = getmess(m) in if pkS’ = pkS then out (ch, senc(k’, s)).

  8. Security properties The applied pi calculus can model the following: Reachability properties (e.g., secrecy) Correspondence assertions (e.g., authentication) Observational equivalence (e.g., strong secrecy; for instance, ballot secrecy; )

  9. Handshake protocol - analysis S I C new k new s pkC ← − − − − − − − − − − − pkM ← − − − − − − − − − − − enc pkM (sign skS ( k )) − − − − − − − − − − − → enc pkC (sign skS ( k )) − − − − − − − − − − − → senc k ( s ) ← − − − − − − − − − − − Adversary process I C publishes her public key in (c, xPK ); I starts a session with S out (c, pkM ); I learns sign skS ( k ) and k in (c, y ); let sig = dec skM ( y ) in I replays sign skS ( k ) in a out (c, enc xPK ( sig ) ); session with S in (c, z ); I is able to output secrect s out (c, sdec getmsg ( sig ) ( z ) )

  10. Protocols with persistent state

  11. Persistent state Agents that have persistent state: Web servers, database servers, . . . Hardware tokens Smart cards: capabilities, . . . RFID tags: their identity, . . . TPM: PCR values, session nonces, . . . HSM: PIN codes, . . . Trusted party in contract signing protocols VANETs . . .

  12. The trusted platform module

  13. Digital rights management t e r o l b p a e e r g n r o o f i t n a u r u g i f n o c Secure environment

  14. “With a plan they call trusted computing , large media corporations, together with computer companies such as Microsoft and Intel, are planning to make your computer obey them instead of you.” He calls it “treacherous Richard Stallman computing”. Creator of GNU, Emacs, GCC, GPL, the Free Software Foundation

  15. “TC can support remote censorship. In its simplest form, applications may be designed to delete pirated music under remote control.” “In 2010 President Clinton may have two red buttons on her desk - one that sends the missiles to China, and another that turns off all the PCs in China.” He also talks of commercial bullying, economic warfare and Ross Anderson political censorship. Professor of Computer Security, University of Cambridge

  16. Secure environment Attestation from cloud Cloud server

  17. Platform configuration registers The TPM has 24 platform configuration registers, PCRs. Updating a PCR The command TPM Extend(PCR p, Data x) effects the assignment p := SHA-1( p || x )

  18. StatVerif

  19. StatVerif syntax: processes P , Q ::= processes out( M , N ); P output in( M , x ); P input P | Q parallel composition ! P replication new a ; P restriction let x = g ( M 1 , . . . , M n ) in P else Q destructor application if M = N then P else Q conditional [ s �→ M ] state cell read s as x ; P read s := M ; P write lock; P begin locked section unlock; P end locked section

  20. Coding processes as Horn clauses: ProVerif let Server = in (ch, x); new n; out (ch, enc(k, (x,n) )); attacker:x → attacker:enc(k[], (x,n[x]) );

  21. Coding processes as Horn clauses: StatVerif let Server = in (ch, x); new n; out (ch, enc(k, (x,n) )); attacker:x → attacker:enc(k[], (x,n[x]) ); attacker:u,x → attacker:u,enc(k[], (x,n[x]) );

  22. Assignments let Server = in (ch, x); u := h(u,x); attacker:u,x ∧ attacker:u,y → attacker:h(u,x),y;

  23. The Horn clauses representation The translation of a StatVerif process generates clauses built around the following two predicates att( ˜ M , N ) means that state ˜ M is reachable and in that state the attacker knows the value N ; mes( ˜ M , K , N ) means that state ˜ M is reachable and in that state the value N is available on channel K .

  24. Attacker clauses: constructors and destructors The attacker can build new messages by applying any constructor to messages he knows. For each constructor f ( M 1 , . . . , M n ) att( xs , M 1 ) ∧ · · · ∧ att( xs , M n ) → att( xs , f ( M 1 , . . . , M n )) Asymmetric encryption att( xs , xk ) ∧ att( xs , xm ) → att( xs , aenc( xk , xm )) The attacker can analyse messages by applying any destructor to messages he knows . For each destructor g ( M 1 , . . . , M n ) → M att( xs , M 1 ) ∧ · · · ∧ att( xs , M n ) → att( xs , M ) Asymmetric-key decryption att( xs , xk ) ∧ att( xs , aenc(pbk( xk ) , xm )) → att( xs , xm )

  25. Attacker clauses: public channels The attacker can send messages on public channels att( xs , xc ) ∧ att( xs , xm ) → mes( xs , xc , xm ) The attacker can eavesdrop on public channels att( xs , xc ) ∧ mes( xs , xc , xm ) → att( xs , xm )

  26. Attacker clauses: public state cells Consider the protocol new ˜ m ; ([ s 1 �→ M 1 ] | · · · | [ s n �→ M n ] | P ) The attacker can read from public state cells For all i ∈ { 1 , . . . , n } att(( xs 1 , . . . , xs n ) , s i []) → att(( xs 1 , . . . , xs n ) , xs i ) The attacker can write to public state cells For all i ∈ { 1 , . . . , n } att(( xs 1 , . . . xs i , . . . , xs n ) , s i []) ∧ att(( xs 1 , . . . , xs i , . . . , xs n ) , ys i ) ∧ mes(( xs 1 , . . . , xs i , . . . , xs n ) , zc , zm ) → mes(( xs 1 , . . . , ys i , . . . , xs n ) , zc , zm ) att(( xs 1 , . . . xs i , . . . , xs n ) , s i []) ∧ att(( xs 1 , . . . , xs i , . . . , xs n ) , ys i ) ∧ att(( xs 1 , . . . , xs i , . . . , xs n ) , zm ) → att(( xs 1 , . . . , ys i , . . . , xs n ) , zm )

Recommend


More recommend