Modeling and Analysis of Networked Secure Systems
Download
Report
Transcript Modeling and Analysis of Networked Secure Systems
Modeling and Analysis of
Networked Secure Systems
with Application to Trusted
Computing
Jason Franklin
Joint work with Deepak Garg,
Dilsun Kaynar, and Anupam Datta
1
Motivation
•
Despite progress in cryptography and security
protocols, designing secure systems remains
difficult
–
Network protocols and cryptography rely on
secure system assumption
•
Problem: Attackers violate secure system
assumption by exploiting system design flaws
•
Solution: Prove security of system designs
2
Motivating Example
Client
System
Network
Server
System
3
Trusted Computing
• Question: How do we trust remote servers?
• Proposed Solution: Ask servers what
programs they are running?
– Server attests to (vouches for) its running software…
4
Details of Proposed Solution
System and Network Protocol
Analysis
Since I last
rebooted, I’ve
run
How
I’ll
Hey
I trust
ask
do
server!
Iwhat
know
those
0: Operating System
programs
ifWhat
programs
I cancode
trust
they
to
Network Protocol Analysis
1: Web Server
have
protect
that
have
you
server?
run!
my
run?
data!
2: Shopping Cart Server
Request
Client
System
Reply
Network
Server
System
5
In this talk…
• Describe Logic of Secure Systems (LS^2)
– Modeling system designs
– Analysis of system designs
• Analyze trusted computing protocol
• Limitations, work in progress, and conclusion
6
Modeling Protocols as Programs
Hey
I trust
server!
those
What
programs
code to
have
protect
youmy
run?
data!
Since I last rebooted, I’ve
run
0: Operating System
1: Web Server
2: Shopping Cart Server
request
Client
System
Reply
Network
Server
System
Client ≡
Server ≡
request := read question;
r := receive;
send request;
send reply;
reply := receive;
match /reply/trusted/;
7
Components of Model
Key:
Existing
Memory
Memory
Protection
Threads
Explicit
Time
Network
Comm.
Control
Flow
Hash
Hardware
Resets
Encryption
Decryption
Added
Trusted
Computing
Sign/Verify
8
Modeling Details
• Memory
– Read and write named memory locations
• Example: d := read Mem[x];
• Memory Protection
– Exclusive write locks
• Example: lock(Mem[x]);
• Explicit time
– Ordering events
• Read at time TR, Write at time TW and TR < TW
– Expressing invariants
• Mem[x] contains value V during interval (TR,TW)
9
New Adversary Model
I can generate
I can remove,
I’m a malicious local thread!
messages if I
reorder, or
know their
replay
I can write to any unprotected
components!
messages.
memory location!
I can read any memory location!
Client
System
Network
I collude with the network adversary!
Server
System
Standard Network Adversary
10
Overview of Protocol Analysis
Modeling
Analysis
Client ≡
request := read question;
send request;
reply := receive;
Suppose Client code
executed then:
Server is executing
trusted programs
match /reply/trusted/;
11
LS^2, what are you good for?
• Describe Logic of Secure Systems (LS^2)
• Analyze trusted computing protocol
• Limitations, work in progress, and
conclusion
12
Problems with Trusted Computing
Protocol
Hey
I trust
server!
those
What
programs
code to
have
protect
youmy
run?
data!
Since
Since II last
last rebooted,
rebooted, I’ve
I’ve
run
malicious
code.
run linux. Really, I have!
Mwhahaha!!!!
Reply
request
Client
System
Network
Malicious
Server
System
Client ≡
MALICIOUS_Server ≡
request := read question;
r := receive;
send request;
send “linux”;
reply := receive;
match /reply/trusted/;
13
Solution: Trusted Coprocessor
Trusted
Coprocessor
Client
System
Network
Server
System
14
Trusted Coprocessor
• Trusted Computing
– Augments platform with
trusted co-processor
Coprocessor
• Coprocessor includes:
– Crypto. Primitives
– Keys
– Append-only log
Log :
A
B
…
Log.append(A);
Log.append(B);
15
Server with Coprocessor
Server System
Booting ≡
1. append log, os_code;
Web Server
os := read os_code;
3. Append
4. Call
2. call os;
3. append log, web_server_code;
ws := read web_server_code;
OS
2. Call
4. call ws;
1. Append
Coprocessor
Log =
os_code
web_server_code
…
16
Coprocessor Vouching for Log
Signer ≡
_ := receive;
Log =
os_code
ws_code
…
w := read log;
s := sign w, K;
send s
s := SIGN K, (os_code, ws_code)
Client_Receive ≡
Client
System
verify s, seq(os_code, ws_code), K
s := receive;
17
Protocol Analysis
Modeling
Analysis
Client_Receive ≡
s := receive;
verify s, seq(os_code,
ws_code), K
Suppose Client code
executed then:
Server is executing
trusted programs
18
Trusted Computing Analysis
• Suppose that clients’s thread executes code
Client_Receive in time interval [Begin, End) then the
following properties hold:
Begin
End
No Resets during TR to TRead
19
Anyone See Security Vulnerability?
• Reset attack possible after read of log
Verification of
Stale Data
Client believes server
can be trusted!
Begin
End
No Resets during TR to TRead
Server
Reset
20
Adversaries Attack Assumptions
• Assumptions:
– Client is not running in coprocessor
– Coprocessor does not reveal its private key
– Coprocessor only executes Signer
– Programs in memory are write locked
21
Up next…
• Describe Logic of Secure Systems (LS^2)
– Designed for modeling and analysis of system
specifications
• Use LS^2 to analyze trusted computing
protocols
– Specify trusted computing protocols
– State security properties and security proof
– Discuss implications and analysis of proof
• Limitations, work in progress, and conclusion
22
Limitations and Work In Progress
• Control flow and context sensitive analysis
• Composition theorems for modular analysis of
complex systems
• Expanding access control policies
• Analysis of other trusted computing protocols
• Modeling layer diagrams
User Level Programs
Operating System
Hardware
23
Layer Diagram
Related Work
• LS^2 is derived from Protocol Composition
Logic [Datta05-07]
• Related work on program correctness:
– Concurrent separation logic [Brookes04]
– Verification of concurrent systems [TLA,
Lamport84, Owicki&Gries76]
24
Conclusion
• LS^2 is logic for analysis of networked secure
systems including local and network adversaries
• LS^2 models abstract memory protections, time,
hardware resets, and security primitives
• Described formal analysis of trusted computing
– Identified reset attack
• Ongoing work seeks to expand scope of LS^2
25
Take Home Points
• If you are designing secure systems:
– LS^2 enables security analysis of system
design before you implement
• Avoids costly and embarrassing vulnerabilities
• Clarifies security properties of design
• Even if you are just using secure systems:
– LS^2 can provide stronger guarantees about
your security
26
Questions?
• Theory of Secure Systems Project (ToSS)
– http://www.cs.cmu.edu/~jfrankli/toss
• Publications and Manuscripts:
– D. Garg, J. Franklin, D. Kaynar, A. Datta. “Towards a
Theory of Secure Systems” Cylab Technical Report,
Feb. 2008.
– D. Garg, J. Franklin, D. Kaynar, A. Datta. “A Logic for
Reasoning about Networked Secure Systems.” Under
submission to FCS ’08.
– J. Franklin, D. Garg, D. Kaynar, A. Datta. “Modeling
and Security Analysis of Trusted Computing.” In
progress.
27
2
28