28
Bootstrapping Trust in Commodity Computers Bryan Parno, Jonathan McCune, Adrian Perrig 1 Carnegie Mellon University

Bootstrapping Trust in Commodity Computers

  • Upload
    dagmar

  • View
    31

  • Download
    0

Embed Size (px)

DESCRIPTION

Bootstrapping Trust in Commodity Computers. Carnegie Mellon University. Bryan Parno , Jonathan McCune, Adrian Perrig. A Travel Story. Trust is Critical. Will I regret having done this?. Software Engineering &. Programming Languages :. Bootstrapping Trust :. - PowerPoint PPT Presentation

Citation preview

Page 1: Bootstrapping Trust in Commodity Computers

Bootstrapping Trust in Commodity ComputersBryan Parno, Jonathan McCune, Adrian Perrig

1

Carnegie Mellon University

Page 2: Bootstrapping Trust in Commodity Computers

2

A Travel Story

Page 3: Bootstrapping Trust in Commodity Computers

3

Trust is Critical

Will I regret having done this?

Page 4: Bootstrapping Trust in Commodity Computers

4

Bootstrapping Trust What F will this machine compute?

FXAlice YAlice

YOtherXOther

Is F what the programmer intended?Does program P compute F?

Page 5: Bootstrapping Trust in Commodity Computers

5

H( )H( )

Bootstrapping Trust is Hard!

OS

App1

App2App

3App

4App

N

Module 1Module 3

Module 2Module 4

App5

Challenges:• Hardware assurance

• Ephemeral software

• User Interaction

Safe?

Yes!

S1( )S2( )S3( )S4( )S5( )S6( )S7( )S8( )S9( )S10( )S11( )S12( )S13( )S14( )S15( )

Page 6: Bootstrapping Trust in Commodity Computers

6

EvilApp

EvilOS

Bootstrapping Trust is Hard!Challenges:• Hardware assurance

• Ephemeral software

• User Interaction

Safe?

Yes!

Page 7: Bootstrapping Trust in Commodity Computers

7

In the paper…• Bootstrapping foundations

• Transmitting bootstrap data

• Interpretation

• Validation

• Applications

• Human factors

• Limitations

• Future directions

• … and much more!

Page 8: Bootstrapping Trust in Commodity Computers

8

1) Establish Trust in Hardware• Hardware is durable• Establish trust via:– Trust in the manufacturer– Physical security

Open Question: Can we do better?

Page 9: Bootstrapping Trust in Commodity Computers

9

2) Establish Trust in Software

OS

App1

AppN…

• Software is ephemeral• We care about the software

currently in control• Many properties matter:– Proper control flow– Type safety– Correct information flow

…Which property matters most?

Page 10: Bootstrapping Trust in Commodity Computers

10

A Simple Thought Experiment• Imagine a perfect algorithm for analyzing control flow– Guarantees a program always follows intended control flow

• Does this suffice to bootstrap trust? No!PRespects

control flowType SafeWe want code identity

Page 11: Bootstrapping Trust in Commodity Computers

11

What is Code Identity?• An attempt to capture the behavior of a program

• Current state of the art is the collection of:– Program binary– Program libraries– Program configuration files– Initial inputs

• Often condensed into a hash of the above

Function f

Inputs to f

Page 12: Bootstrapping Trust in Commodity Computers

12

Code Identity as Trust Foundation• From code identity, you may be able to infer:– Proper control flow– Type safety– Correct information flow

…• Reverse is not true!

Page 13: Bootstrapping Trust in Commodity Computers

13

What Can Code Identity Do For You?• Research applications

• Commercial applications

• Thwart insider attacks• Protect passwords• Create a Trusted Third Party

• Secure the boot process• Count-limit objects• Improve security of

network protocols

• Secure disk encryption (e.g., Bitlocker)• Improve network access control• Secure boot on mobile phones• Validate cloud computing platforms

Page 14: Bootstrapping Trust in Commodity Computers

14

Establishing Code Identity[Gasser et al. ‘89], [Arbaugh et al. ‘97], [Sailer et al. ‘04], [Marchesini et al. ‘04],…

FXAlice

XOther

YAlice

YOther

Page 15: Bootstrapping Trust in Commodity Computers

15

Establishing Code Identity[Gasser et al. ‘89], [Arbaugh et al. ‘97], [Sailer et al. ‘04], [Marchesini et al. ‘04],…

XAlice

XOther

f1 f2 fN

YAlice

YOther

Page 16: Bootstrapping Trust in Commodity Computers

16

SoftwareN

SoftwareN-1

Software1

Establishing Code Identity

. . . ?Root of

TrustChain of Trust

[Gasser et al. ‘89], [Arbaugh et al. ‘97], [Sailer et al. ‘04], [Marchesini et al. ‘04],…

Page 17: Bootstrapping Trust in Commodity Computers

17

SoftwareN

SoftwareN-1

Software1

Trusted Boot: Recording Code Identity

. . .

Root ofTrust

SW1

SWN

SWN-1

SW2

[Gasser et al. ’89], [England et al. ‘03], [Sailer et al. ‘04],…

Page 18: Bootstrapping Trust in Commodity Computers

18

Attestation: Conveying Records to an External Entity

SoftwareN

SoftwareN-1

Software1 . . .

SW1

SWN

SWN-1

SW2

[Gasser et al. ‘89], [Arbaugh et al. ‘97], [England et al. ‘03], [Sailer et al. ’04]…

random #

Sign ( )Kpriv random #

SW1

SW2

SWN-1

SWN

Controls Kpriv

Page 19: Bootstrapping Trust in Commodity Computers

19

Interpreting Code Identity

BIOS

Bootloader

Drivers 1…NApp 1…N

OS

Option ROMs

[Gasser et al. ‘89], [Sailer et al. ‘04]Traditional

[Marchesini et al. ‘04], [Jaeger et al. ’06]Policy Enforcement

Page 20: Bootstrapping Trust in Commodity Computers

20

Interpreting Code Identity

BIOS

Bootloader

Virtual Machine Monitor

Option ROMs

Virtual Machine

Traditional

[Marchesini et al. ‘04], [Jaeger et al. ’06]Policy Enforcement

[England et al. ‘03], [Garfinkel et al. ‘03]Virtualization

[Gasser et al. ‘89], [Sailer et al. ‘04]

Page 21: Bootstrapping Trust in Commodity Computers

21

Interpreting Code Identity

BIOS

Bootloader

Virtual Machine Monitor

Option ROMs

OS

LateLaunch

VMM

Virtual Machine

Traditional

[Marchesini et al. ‘04], [Jaeger et al. ’06]Policy Enforcement

[England et al. ‘03], [Garfinkel et al. ‘03]Virtualization

Late Launch[Kauer et al. ‘07], [Grawrock ‘08]

[Gasser et al. ‘89], [Sailer et al. ‘04]

Page 22: Bootstrapping Trust in Commodity Computers

22

Interpreting Code IdentityTraditional

[Marchesini et al. ‘04], [Jaeger et al. ’06]Policy Enforcement

[England et al. ‘03], [Garfinkel et al. ‘03]Virtualization

Late Launch[Kauer et al. ‘07], [Grawrock ‘08]

Targeted Late Launch[McCune et al. ‘07]

OS

LateLaunch

Flicker

Flicker

S

Attested

[Gasser et al. ‘89], [Sailer et al. ‘04]

Page 23: Bootstrapping Trust in Commodity Computers

23

Interpreting Code Identity

BIOS

Bootloader

Drivers 1…NApp 1…N

OS

Option ROMs

Flicker

S

Page 24: Bootstrapping Trust in Commodity Computers

24

Load-Time vs. Run-Time Properties• Code identity provides load-time guarantees• What about run time?• Approach #1: Static transformation

Code Compiler

Run-Time Policy

Code’

Attested

[Erlingsson et al. ‘06]

Page 25: Bootstrapping Trust in Commodity Computers

25

Load-Time vs Run-Time Properties• Code identity provides load-time guarantees• What about run time?• Approach #1: Static transformation• Approach #2: Run-Time Enforcement layer

Code

Enforcer

Attested Run Time

Load Time

[Erlingsson et al. ‘06]

[Haldar et al. ‘04], [Kil et al. ‘09]

Open Question: How can we get complete run-time properties?

Page 26: Bootstrapping Trust in Commodity Computers

26

Roots of Trust

0 0 4 2

• General purpose• Tamper

responding

• General purpose• No physical

defenses

• Special purpose

• Timing-based attestation• Require

detailed HW knowledge

[Chun et al. ‘07][Levin et al. ‘09]

[Spinellis et al. ‘00][Seshadri et al. ‘05]

[ARM TrustZone ‘04][TCG ‘04][Zhuang et al. ‘04]

[Weingart ‘87][White et al. ‘91][Yee ‘94][Smith et al. ‘99]

Cheaper

Open Question: What functionality do we need in hardware?

Page 27: Bootstrapping Trust in Commodity Computers

27

Human Factors

SW1

SW2

SWN-1

SWN

Open Questions: How should be communicated to Alice?

What does Alice do with a failed attestation?

How can Alice trust her device?

SW1

SW2

SWN-1

SWN

Page 28: Bootstrapping Trust in Commodity Computers

28

Conclusions• Code identity is critical to bootstrapping trust

• Assorted hardware roots of trust available

• Many open questions remain!

Thank [email protected]