Title: The Wolf Within
1The Wolf Within
- Iliano Cervesato iliano_at_itd.nrl.navy.mil
- ITT Industries, Inc _at_ NRL Washington DC
- http//www.cs.stanford.edu/iliano/
2Outline
Work in progress
- MSR in brief
- Data Access Specification
- Dolev-Yao intruder
- DAS ? DY Intruder
- Protocol Spec. ? DAS
3 4MSR
- Follows the Dolev-Yao abstraction
- Based on
- Multiset rewriting, linear logic
- Type theory
- Used to prove
- Undecidability of protocol verification
- Completeness of Dolev-Yao intruder
- Specifications
- So many protocols so little time
- Related to CIL, strands, spi-calculus
5Whats in MSR 2.0 ?
- Multiset rewriting with existentials
- Dependent types w/ subsorting
- Memory predicates
- Constraints
New
New
New
6Roles
- Genericroles
- Anchoredroles
7Rules
- N(t) Network
- L(t, , t) Local state
- MA(t, , t) Memory
- c Constraints
- N(t) Network
- L(t, , t) Local state
- MA(t, , t) Memory
8NS Initiator
A ? B nA, AkB B ? A nA, nBkA A ? B nBkB
9NS Responder
A ? B nA, AkB B ? A nA, nBkA A ? B nBkB
?B
?L princ(B) x pubK B(kB) x privK kB x nonce.
10Type Checking
New
? P
G t t
t has type t in G
P is well-typed in S
- Catches
- Encryption with a nonce
- Transmission of a long term key
- Circular key hierarchies,
11Data Access Specification
New
? ? P
r is DAS-valid for A in G
G ?A r
P is DAS-valid in S
- Catches
- A signing/encrypting with Bs key
- A accessing Bs private data,
- Gives meaning to Dolev-Yao intruder
12 pictorially
s
a
ka
kb
13An Overview of DAS
- Interpret incoming information
- Collect received data
- Access unknown data
- Construct outgoing information
- Generate data
- Use known data
- Access new data
- all along, verify access to data
14Verifying a Rule
Context
G ?A lhs D G D ?A rhs G ?A lhs ? rhs
Role owner
15Processing Predicates on the LHS
G D ?A t D G D ?A N(t) D
G D ?A t1,,tn D G D ?A MA(t1,,tn) D
16Interpreting Data on the LHS
G D ?A t1, t2 D G D ?A (t1, t2) D
G D ?A k D G D ?A t D G D ?A tk
D
G (D,x) ?A x (D,x)
(G,x?) D ?A x (D,x)
17Accessing Data on the LHS
G (D,k) ?A k (D,k)
(G,xshK A B) D ?A x (D,x)
(G,kpubK A,kprivK k) (D,k) ?A k (D,k)
(G,kpubK A,kprivK k) D ?A k (D,k)
18Generating Data on the RHS
(G, xnonce) (D, x) ?A rhs G D ?A ?xnonce.
rhs
19Constructing Terms on the RHS
G D ?A t1 G D ?A t2 G D ?A (t1, t2)
G D ?A t G D ?A k G D ?A tk
20Accessing Data on the RHS
G, Bprinc ?A B
G, Bprinc, kshK A B ?A k
G, Bprinc, kpubK B ?A k
G, kpubK A, kprivK k ?A k
21- Part II
- Data Access Specification
- ?Dolev-Yao Intruder
22The Dolev-Yao Intruder Model
- Interpret incoming information
- Collect received data
- Access unknown data
- Construct outgoing information
- Generate data
- Use known data
- Access new data
23DAS ? DY
- Interpret messages on LHS
- Access data (keys) on LHS
- Generate data on RHS
- Construct messages on RHS
- Access data on RHS
24Accessing Principal Names
25What did we do?
- RHS data access
- Instantiate acting principal to I
- Accessed data ? Intruder knowledge
- Meta-variables ? Rule variables
- Context provides types
26Checking it out Shared Keys
G, Aprinc, Bprinc, kshK A B ?A k
dual
27Getting Confident Pub./Priv. Keys
28DAS ? DY
- Interpret messages on LHS
- Access data (keys) on LHS
- Generate data on RHS
- Construct messages on RHS
- Access data on RHS
29Constructing Messages Pairs
G D ?A t1 G D ?A t2 G D ?A (t1, t2)
30Now, what did we do?
- RHS message construction
- Instantiate acting principal to I
- Meta-variables ? Rule variables
- Premises ? antecedent
- Conclusion ? consequent
- Types from auxiliary typing derivation
31Carrying on Shared-Key Encrypt.
G D ?A t G D ?A k G D ?A tk
Similar for public-key encryption
32DAS ? DY
- Interpret messages on LHS
- Access data (keys) on LHS
- Generate data on RHS
- Construct messages on RHS
- Access data on RHS
33Generating Nonces
(G, xnonce) (D, x) ?A rhs G D ?A ?xnonce.
rhs
I
? ? ?xnonce. MI(x)
Similarly for other generated data
34Now, what did we do?
- Data generation on the RHS
- Instantiate acting principal to I
- Auxiliary typing derivation gives types
- Remember generated object
- Follow knowledge acquisition flow
35DAS ? DY
- Interpret messages on LHS
- Access data (keys) on LHS
- Generate data on RHS
- Construct messages on RHS
- Access data on RHS
36Accessing Shared Keys on the LHS
(G, kshK A B) D ?A k (D,k)
Similarly for other keys
37Now, what did we do?
- LHS data access
- Instantiate acting principal to I
- Meta-variables ? Rule variables
- Types from auxiliary typing derivation
- Follow knowledge acquisition flow
- Remember generated object
Same target rules as for RHS data access
38DAS ? DY
- Interpret messages on LHS
- Access data (keys) on LHS
- Generate data on RHS
- Construct messages on RHS
- Access data on RHS
39Interpreting Shared-Key Encrypt.
G D ?A k D G D ?A t D G D ?A
tk D
Similar for public-key encryption and pairing
40Now, what did we do?
- LHS message interpretation
- Instantiate acting principal to I
- Meta-variables ? Rule variables
- Types from auxiliary typing derivation
- Follow knowledge acquisition flow
- Conclusion ? antecedant
- Last premises ? consequent
41Network Rules
LHS
G D ?A t D G D ?A N(t) D
RHS
G D ?A t G D ?A N(t)
42 Other Rules?
- Either
- redundant, or
- or, innocuous (but sensible)
43- Part III
- Protocol Spec.
- ?Data Access Spec. Rules
44Automating DAS Rule Design?
- One size does not fit all
- Look at protocol
- Typed MSR spec.
- Usage of constructs
- Involve construct declarations
- Not sufficient
- Use annotations
45Generating DAS rules from use
Constructors atoms ? ? ? ? ? ? ?
- Interpret messagecomponents on LHS
- Access data (keys) on LHS
- Generate data on RHS
- Construct messages on RHS
- Access data on RHS
46Accessing data
47Generating data
nonce type
shK princ - princ - type
48Pattern-matching constructors
- Mark arguments as input or output
49Annotating Declarations
- Integrates semantics of types and constructors
- Trimmed down version of DAS
- Allows constructing DAS rules
- and Dolev-Yao intruder
50 alternatively
- Compute DAS rules from protocol
- There are finitely many annotations
- Check protocol against each of them
- Keep the most restrictive ones that validate the
protocol - Exponential!
- More efficient algorithms?
51Further Questions
- Relationship to intruder-less languages
- E.g. Spi-calculus