Computational Protocol Composition Logic
Download
Report
Transcript Computational Protocol Composition Logic
Symbolic and Computational Analysis
of Network Protocol Security
John Mitchell
Stanford University
Asian 2006
Outline
Protocols
Some examples, some intuition
Symbolic analysis of protocol security
Models, results, tools
Computational analysis
Communicating Turing machines, composability
Combining symbolic, computational analysis
Some alternate approaches
Protocol Composition Logic (PCL)
Symbolic and computational semantics
Many Protocols
Authentication
Kerberos
Key Exchange
SSL/TLS handshake, IKE, JFK, IKEv2,
Wireless and mobile computing
Mobile IP, WEP, 802.11i
Electronic commerce
Contract signing, SET, electronic cash,
See http://www.lsv.ens-cachan.fr/spore/, http://www.avispa-project.org/library
Mobile IPv6 Architecture
Mobile Node (MN)
IPv6
Direct connection via
binding update
Corresponding Node (CN)
Home Agent (HA)
Authentication is a
requirement
Early proposals weak
802.11i Wireless Authentication
Supplicant
UnAuth/UnAssoc
Auth/Assoc
802.1X UnBlocked
Blocked
No Key
PTK/GTK
802.11 Association
EAP/802.1X/RADIUS Authentication
MSK
4-Way Handshake
Group Key Handshake
Data Communication
IKE subprotocol from IPSEC
m1
A, (ga mod p)
A
B, (gb mod p) , signB(m1,m2)
B
m2
signA(m1,m2)
Result: A and B share secret gab mod p
Analysis involves probability, modular exponentiation,
complexity, digital signatures, communication networks
Run of a protocol
Initiate
A
Respond
B
Attacker
C
D
Correct if no security violation in any run
Protocol analysis methods
Cryptographic reductions
Bellare-Rogaway, Shoup, many others
UC [Canetti et al], Simulatability [BPW]
Prob poly-time process calculus [LMRST…]
Symbolic methods
(see also http://www.avispa-project.org/)
Model checking
FDR [Lowe, Roscoe, …], Murphi [M, Shmatikov, …],
Symbolic search
NRL protocol analyzer [Meadows]
Theorem proving
Isabelle [Paulson …], Specialized logics [BAN, …]
“The” Symbolic Model
Messages are algebraic expressions
Nonce, Encrypt(K,M), Sign(K,M), …
Adversary
Nondeterministic
Observe, store, direct all communication
Break messages into parts
Encrypt, decrypt, sign only if it has the key
Example: K1, Encrypt(K1, “hi”)
K1, Encrypt(K1, “hi”) “hi”
Send messages derivable from stored parts
Many formulations
Word problems [Dolev-Yao, Dolev-Even-Karp, …]
Each protocol step is symbolic function from input message to output
message; cancellation law dkekx = x
Rewrite systems [CDLMS, …]
Each protocol step is symbolic function from state and input message
to state and output message
Logic programming [Meadows NRL Analyzer]
Each protocol step can be defined by logical clauses
Resolution used to perform reachability search
Constraint solving [Amadio-Lugiez, … ]
Write set constraints defining messages known at step i
Strand space model [MITRE]
Partial order (Lamport causality), reasoning methods
Process calculus [CSP, Spi-calculus, applied , …)
Each protocol step is process that reads, writes on channel
Spi-calculus: use for new values, private channels, simulate crypto
Complexity results
(see [Cortier et al])
Bounded # of
sessions
Unbounded number of sessions
Co-NP complete
General: undecidable General: undecidable
Without nonces
With nonces
Bounded msg length: Bounded msg length:
DEXP-time complete undecidable
Tagged: exptime
Tagged: decidable
One-copy:
DEXP-time complete
Ping-pong protocols: Ptime
Additional results for variants of basic model (AC, xor, modular exp, …)
Many protocol case studies
Murphi [Shmatikov, He, …]
SSL, Contract signing, 802.11i, …
Meadows NRL tool
Participation in IETF, IEEE standards
Many important examples
Paulson inductive method; Scedrov et al
Kerberos, SSL, SET, many more
Protocol logic
BAN logic and successors (GNY, SvO, …)
DDMP …
Automated tools based on the symbolic model detect important,
nontrivial bugs in practical, deployed, and standardized protocols
Computational model I
“Alice”
oracle tape
“Bob”
oracle tape
Adversary
input tape
work tape
[Bellare-Rogaway, Shoup, …]
Computational model II
Turing machine
Adversary
Turing
machine
Turing
machine
Turing
machine
[Canetti, …]
Computational model III
Program
In(c, x).Send(…)
| In(d,y).new z.
Send(…y z ..)
| In(c, encrypt(k,…)). …
Adversary
Program
program
Program
[Micciancio-Warinschi, …]
Computational security: encryption
Several standard conditions on encryption
Passive adversary
Semantic security
Chosen ciphertext attacks (CCA1)
Adversary can ask for decryption before receiving a
challenge ciphertext
Chosen ciphertext attacks (CCA2)
Adversary can ask for decryption before and after
receiving a challenge ciphertext
Computational model offers more choices
than the symbolic model
Passive Adversary
m0, m1
Challenger
E(mi)
guess 0 or 1
Attacker
Chosen ciphertext CCA1
c
D(c)
m0, m1
Challenger
E(mi)
guess 0 or 1
Attacker
Chosen ciphertext CCA2
c
D(c)
m0, m1
Challenger
E(mi)
c E(mj)
D(c)
guess 0 or 1
Attacker
Slide: R Canetti
Equivalence-based
methods: UC, RSIM
Z
input
Protocol execution
P1
P3
input
P2
P1
P2
S
A
P4
attacker
P4
P3
simulator
F
output
output
Z
Ideal functionality
Can we have best of both worlds?
Symbolic model
[NS78,DY84,…]
Complexity-theoretic
model [GM84,…]
Attacker actions
– Fixed set of actions,
nondeterminism
(ABSTRACTION)
+ Any probabilistic polytime computation
Security properties
– Idealized, e.g., secret
message = not
possessing atomic term
representing message
(ABSTRACTION)
+ Fine-grained, e.g.,
secret message = no
partial information about
bitstring representation
Analysis methods
+ Successful array of
tools and techniques;
– Hand-proofs are
difficult, error-prone,
unsystematic; no
automation
compositionality
Some relevant approaches
Simulation framework
Backes, Pfitzmann, Waidner
Correspondence theorems
Micciancio, Warinschi
Kapron-Impagliazzo logics
Abadi-Rogaway passive equivalence
(K2,{01}K3) , {({101}K2,K5 )}K2, {{K6}K4}K5
… ) , {({101}K2,K5 )}K2, { }K5
(K2,
(K1,
… ) , {({101}K1,K5 )}K1, { }K5
(K1,{K1}K7) , {({101}K1,K5 )}K1, {{K6}K7}K5
Proposed as start of larger plan for computational soundness
[Abadi-Rogaway00, …, Adao-Bana-Scedrov05]
Symbolic methods comp’l results
Pereira and Quisquater, CSFW 2001, 2004
Studied authenticated group Diffie-Hellman protocols
Found symbolic attack in Cliques SA-GDH.2 protocol
Proved no protocol of certain type is secure, for >3
participants
Micciancio and Panjwani, EUROCRYPT 2004
Lower bound for class of group key establishment protocols
using purely Dolev-Yao reasoning
Model pseudo-random generators, encryption symbolically
Lower bounds is tight; matches a known protocol
Rest of talk: Protocol composition logic
Protocol
Honest Principals,
Attacker
Private
Data
Alice’s information
Logic has
symbolic and
computational
semantics
Protocol
Private data
Sends and receives
Example
{ A, Noncea }
A
Kb
{ Noncea, … }
K
a
B
Alice assumes that only Bob has Kb-1
Alice generated Noncea and knows that some
X decrypted first message
Since only X knows Kb-1, Alice knows X=Bob
More subtle example: Bob’s view
{ A, Noncea }
A
Kb
{ Noncea, B, Nonceb }
{ Nonceb}
K
a
B
Kb
Bob assumes that Alice follows protocol
Since Alice responds to second message,
Alice must have sent the first message
Execution model
Protocol
“Program” for each protocol role
Initial configuration
Set of principals and key
Assignment of 1 role to each principal
Run
A
B
C
new x
Position in run
send{x}B
recv{x}B
decr
new z
recv{z}B
send{z}B
Formulas true at a position in run
Action formulas
a ::= Send(P,m) | Receive (P,m) | New(P,t)
| Decrypt (P,t) | Verify (P,t)
Formulas
::= a | Has(P,t) | Fresh(P,t) | Honest(N)
| Contains(t1, t2) | | 1 2 | x
| |
Example
a < b = (b a)
Notation in papers varies slightly …
Modal Formulas
After actions, condition
[ actions ] P
where P = princ, role id
Before/after assertions
[ actions ] P
Composition rule
[S]P
[T]P
[ ST ] P
Logic formulated: [DMP,DDMP]
Related to: BAN, Floyd-Hoare, CSP/CCS, temporal logic, NPATRL
Example: Bob’s view of NSL
Bob knows he’s talking to Alice
[ receive encrypt( Key(B), A,m );
msg1
new n;
send encrypt( Key(A), m, B, n );
receive encrypt( Key(B), n )
]B
msg3
Honest(A) Csent(A, msg1) Csent(A, msg3)
where Csent(A, …) Created(A, …) Sent(A, …)
Proof System
Sample Axioms:
Reasoning about possession:
[receive m ]A Has(A,m)
Has(A, {m,n}) Has(A, m) Has(A, n)
Reasoning about crypto primitives:
Honest(X) Decrypt(Y, enc(X, {m})) X=Y
Honest(X) Verify(Y, sig(X, {m}))
m’ (Send(X, m’) Contains(m’, sig(X, {m}))
Soundness Theorem:
Every provable formula is valid in symbolic model
Modal Formulas
After actions, condition
[ actions ] P
where P = princ, role id
Before/after assertions
[ actions ] P
Composition rule
[S]P
[T]P
[ ST ] P
Composition example: Part 1
Diffie Hellman
A B: ga
B A: gb
Shared secret (with someone)
A deduces:
Knows(Y, gab) (Y = A) ۷ Knows(Y,b)
Authenticated
Composition example: Part 2
Challenge-Response
A B: m, A
B A: n, sigB {m, n, A}
A B: sigA {m, n, B}
Shared secret
Authenticated
A deduces: Received (B, msg1)
Λ Sent (B, msg2)
Composition: Part 3
ISO-9798-3
A B: ga, A
B A: gb, sigB {ga, gb, A}
A B: sigA {ga, gb, B}
Shared secret: gab
Authenticated
m := ga
n := gb
Additional issues
Reasoning about honest principals
Invariance rule, called “honesty rule”
Preserve invariants under composition
If we prove Honest(X) for protocol 1
and compose with protocol 2, is formula
still true?
More about composing protocols
DH Honest(X) …
’
CR Honest(X) …
|- Secrecy
’ |- Authentication
’ |- Secrecy
’ |- Authentication
’ |- Secrecy Authentication [additive]
[nondestructive]
=
DH CR ’
ISO Secrecy Authentication
PCL Computational PCL
PCL
Computational PCL
•Syntax
•Syntax ±
•Proof System
•Proof System ±
Symbolic model
•Semantics
Complexity-theoretic model
•Semantics
Some general issues
Computational PCL
Symbolic logic for proving security properties of network
protocols using public-key encryption
Soundness Theorem:
If a property is provable in CPCL, then property holds in
computational model with overwhelming asymptotic probability.
Benefits
Retain compositionality
Symbolic proofs about computational model
Computational reasoning in soundness proof (only!)
Different axioms rely on different crypto assumptions
symbolic computational generally uses strong crypto assumptions
PCL Computational PCL
Syntax, proof rules mostly the same
Retain compositional approach
But some issues with propositional connectives…
Significant differences
Symbolic “knowledge”
Has(X,t) : X can produce t from msgs that have been observed,
by symbolic algorithm
Computational “knowledge”
Possess(X,t) : can produce t by ppt algorithm
Indist(X,t) : cannot distinguish from rand value in ppt
More subtle system
Some axioms rely on CCA2, some info-theoretically sound, etc.
Computational Traces
Computational trace contains
Symbolic actions of honest parties
Mapping of symbolic variables to bitstrings
Send-receive actions (only) of the adversary
Runs of the protocol
Set of all possible traces
Each tagged with random bits used to generate trace
Tagging set of equi-probable traces
Complexity-theoretic semantics
Given protocol Q, adversary A, security
parameter n, define
T=T(Q,A,n), set of all possible traces
[[]](T) a subset of T that respects in a
specific way
Intuition: valid when [[]](T) is an
asymptotically overwhelming subset of T
Semantics of trace properties
Defined in a straight forward way
[[Send(X, m)]](T)
All traces t such that
t contains a Send(msg) action by X
the bistring value of msg is
the bitstring value of m
Inductive Semantics
[[1
2]] (T) = [[1]] (T) [[2]] (T)
[[1 2]] (T) = [[1]] (T) [[2]] (T)
[[ ]] (T) = T - [[]] (T)
Implication uses a form of conditional probability
[[1
2]] (T) = [[1]] (T)
[[2]] (T’)
where T’ = [[1]] (T)
Semantics of Indistinguishable
Not a trace property
Intuition: Indist(X, m) holds if no algorithm can distinguish m
from a random value, given X’s view of the run
Protocol
Attacker
m
View(X)
C
if b then m
else rand
D
b’
[[Indist(X, m)]] (T, D, e) = T if | #(t: b=b’)-|T|/2 | < e
Validity of a formula
Q |= if adversary A distinguisher D
negligible function f n0 s.t. n > n0
|[[]](T,D,f(n))| / |T| > 1 – f(n)
Fraction of traces where “ is true”
T(Q,A,n)
Fix protocol Q, PPT adversary A
Choose value of security parameter n
Vary random bits used by all programs
Obtain set T=T(Q,A,n) of equi-probable traces
[[]](T,D,f)
Advantages of Computational PCL
High-level reasoning, sound for “real crypto”
Prove properties of protocols without explicit reasoning
about probability, asymptotic complexity
Composability
PCL is designed for protocol composition
Composition of individual steps
Not just coarser composition available with UC/RSIM
Can identify crypto assumptions needed
ISO-9798-3 [DDMW2006]
Kerberos V5 [unpublished]
Thesis: existing deployed protocols have weak security properties, assuming
weak security properties of primitives they use; UC/RSIM may be too strong
CPCL analysis of Kerberos V5
Kerberos has a staged architecture
First stage generates a nonce and sends it encrypted
Second stage uses nonce as key to encrypt another nonce
Third stage uses second-stage nonce to encrypt other msgs
Secrecy
Logic proves “GoodKey” property of both nonces
Authentication
Proved assuming encryption provides ciphertext integrity
Modular proofs using composition theorems
Challenges for computational reasoning
More complicated adversary
Actions of computational adversary do not have a simple
inductive characterization
More complicated messages
Computational messages are arbitrary sequences of bits,
without an inductively defined syntactic structure
Different scheduler
Simpler “non-preemptive” scheduling is typically used in
computational models (change symbolic model for equiv)
Power of induction ?
Indistinguishability, other non-trace-based properties appear
unsuitable as inductive hypotheses
Solution: prove trace property inductively and derive secrecy
Current and Future Work
Investigate nature of propositional fragment
Non-classical implication related to conditional probability
complexity-theoretic reductions
connections with probabilistic logics (e.g. Nilsson86)
Generalize reasoning about secrecy
Work in progress, thanks to Arnab
Need to incorporate insight of “Rackoff’s attack”
Extend logic
More primitives: signature, hash functions,…
Complete case studies
Produce correctness proofs for all widely deployed standards
Collaborate on
Foundational work – please join us !
Implementation and case studies – please help us !
Conclusions
Symbolic model supports useful analysis
Tools, case studies, high-level proofs
Computational model more “correct”
Captures accepted notions in cryptography
Greater expressiveness for security properties
Two approaches can be combined
Several current projects and approaches
One example: computational semantics for
symbolic protocol logic
Credits
Talk this
afternoon
Collaborators
M. Backes, A. Datta, A. Derek, N. Durgin, C. He,
R. Kuesters, D. Pavlovic, A. Ramanathan, A. Roy,
A. Scedrov, V. Shmatikov, M. Sundararajan, V. Teague,
M. Turuani, B. Warinschi, …
More information
Web page on Protocol Composition Logic
http://www.stanford.edu/~danupam/logic-derivation.html
Science is a social process
Needham-Schroeder Protocol
{ A, NonceA }
Kb
A
{ NonceA, NonceB }
Ka
{ NonceB}
B
Kb
Result: A and B share two private numbers
not known to any observer without Ka-1, Kb-1
Anomaly in Needham-Schroeder
[Lowe]
{ A, Na } Ke
A
E
{ Na, Nb } Ka
{ Nb } Ke
Evil agent E tricks
honest A into revealing
private key Nb from B.
Evil E can then fool B.
{ Na, Nb }
{ A, Na }
Ka
B
Kb
Slide: Y Lindell
Universal composability
also “reactive simulatability” [BPW], … see [DKMRS]
For every real
adversary A
Protocol
interaction
there exists an
adversary S
Trusted party
REAL
IDEAL
Proof system
Information-theoretic reasoning
[new n]X (Y X) Indist(Y, n)
Complexity-theoretic reductions
Verify(X, m, Y) Honest(X, Y) Y’ Sign(Y’, m)
Asymptotic calculations
Example
Axiom
Source(Y,u,{m}X) Decrypts(X, {m}X)
Honest(X,Y) (Z X,Y) Indistinguishable(Z, u)
Proof idea: crypto-style reduction
Assume axiom not valid:
A D negligible f n0 n > n0 s.t.
[[]](T,D,f)|/|T| < 1 –f(n)
Construct attacker A’ that uses A, D to break INDCCA2 secure encryption scheme
Conditional implication essential
Parts of proof are similar to [Micciancio, Warinschi]
Applications of PCL
IKE, JFK family key exchange
IKEv2 in progress
802.11i wireless networking
SSL/TLS, 4way handshake, group handshake
Kerberos v5
GDOI
[Cervesato et al]
[Meadows, Pavlovic]
Current work
Use CPCL to understand computational security of these
protocols, reliance on specific crypto properties