+ All Categories
Home > Documents > Eran Tromer

Eran Tromer

Date post: 25-Feb-2016
Category:
Upload: nieve
View: 44 times
Download: 0 times
Share this document with a friend
Description:
Information Security – Theory vs. Reality 0368-4474-01, Winter 201 2 -2013 Lecture 8: Integrity on untrusted platforms: Proof-Carrying Data. Eran Tromer. Recall our high-level goal. Ensure properties of a distributed computation when parties are mutually untrusting , - PowerPoint PPT Presentation
27
1 Information Security – Theory vs. Reality 0368-4474-01, Winter 2012-2013 Lecture 8: Integrity on untrusted platforms: Proof-Carrying Data Eran Tromer
Transcript
Page 1: Eran Tromer

1

Information Security – Theory vs. Reality

0368-4474-01, Winter 2012-2013

Lecture 8: Integrity on untrusted platforms:Proof-Carrying Data

Eran Tromer

Page 2: Eran Tromer

2

Recall our high-level goal

Ensure properties of adistributed computation

when parties aremutually untrusting,

faulty, leaky&

malicious.

Page 3: Eran Tromer

3

Approaches

• Assurance using validation, verification and certification

• Attestation using Trusted Platform Module• Cryptographic protocols

– Multiparty computation– Proofs of correctness

(“delegation of computation”)

Page 4: Eran Tromer

4

Toy example (3-party correctness)

Alice

zyF(x)

y

Bob

zG(y)

Carol

is “z=G(F(x))”true?

x, F G

Page 5: Eran Tromer

5

Trivial solution

Carol can recompute everything, but:• Uselessly expensive• Requires Carol to fully know x,F,G

– We will want to represent these via short hashes/signatures

zyF(x)

y zG(y) z’G(F(x))

z’ = z

Alice Bob Carol

?

Page 6: Eran Tromer

6

Secure multiparty computation [GMW87][BGW88][CCD88]

yF(x) zG(y)

Alice Bob Carolx, F G

Preserves integrity, and even secrecy.:

Page 7: Eran Tromer

7

Secure multiparty computation [GMW87][BGW88][CCD88]

yF(x) zG(y)

Alice Bob Carolx, F G

• computational blowup is polynomial in the whole computation, and not in the local computation

• computation (F and G) must be chosen in advance

But:

• does not preserve the communication graph:parties must be fixed in advance, otherwise…

Page 8: Eran Tromer

8

yF(x) zG(y)

Alice Bobx, F G

... must pre-emptively talkto everyone on the Internet!

Carol #1

Carol #2

Carol #3

Secure multiparty computation [GMW87][BGW88][CCD88]

Page 9: Eran Tromer

9

Computationally-sound (CS) proofs [Micali 94]

zG(y)verifyzz

Bob can generate a proof string that is:• Tiny (polylogarithmic in his own computation)• Efficiently verifiable by Carol

z prove( “z=G(F(x))”)

Alice Bob Carolx, F G

yF(x)y z

z=G(F(x))

However, now Bob recomputes everything...

Page 10: Eran Tromer

10

Proof-Carrying Data [Chiesa Tromer 09]following Incrementally-Verifiable Computation [Valiant 08]

yyF(x) zG(y)

Each party prepares a proof string for the next one.Each proof is:• Tiny (polylogarithmic in party’s own computation).• Efficiently verifiable by the next party.

Alice Bob Carolx, F G

y verifyzz

z

z=G(y)and I got a valid proof

that “y=F(x)”

y=F(x)

Page 11: Eran Tromer

11

Generalizing:

TheProof-Carrying Data

framework

Page 12: Eran Tromer

12

Generalizing: distributed computations

Distributed computation:

m1

m2

m3

m 4

m5

m6

m 7

mout

Parties exchange messages and perform computation.

Page 13: Eran Tromer

13

Generalizing: arbitrary interactions

• Arbitrary interactions– communication graph over time is any DAG

m1

m2

m3

m 4

m5

m6

m 7

mout

Page 14: Eran Tromer

14

Generalizing: arbitrary interactions

• Computation and graph are determined on the fly– by each party’s local inputs:

m1

m2

m3

m 4

m5

m6

m 7

mout

human inputs randomness program

Page 15: Eran Tromer

15

Generalizing: arbitrary interactions

• Computation and graph are determined on the fly– by each party’s local inputs:

m1

m2

m3

m 4

m5

m6

m 7

mout

human inputs randomness program

How to definecorrectness

of dynamic distributed computation?

Page 16: Eran Tromer

16

C-compliance

m1

m2

m3

m 4

m5

m6

m7

mout

System designer specifies his notion of correctness via a compliance predicate C(in,code,out)that must be locally fulfilled at every node.

Ccode

in out

accept / reject

(program, human inputs, randomness)

C-compliantdistributed

computation

Page 17: Eran Tromer

17

Examples of C-compliance

correctness is a compliance predicate C(in,code,out) that must be locally fulfilled at every node

Some examples:C = “the output is the result of correctly computing a prescribed

program”

C = “the output is the result of correctly executing some program signed by the sysadmin”

C = “the output is the result of correctly executing some type-safe program” or “… program with a valid formal

proof”

m1

m2

m3

m 4

m5

m6

m7

mout

C

C

C

Page 18: Eran Tromer

18

Dynamically augment computation with proofs strings

In PCD, messages sent between parties are augmented with concise proof strings attesting to their “compliance”.

Distributed computation evolves like before, except that each party also generates on the fly a proof string to attach to each output message.

m1

1

m2

2

m 4

4

m5

5

m6

6

m7

7

mout

out

m3

3

C

Page 19: Eran Tromer

22

Goals

• Allow for any interaction between parties

• Preserve parties’ communication graph– no new channels

• Allow for dynamic computations– human inputs, indeterminism, programs

• Blowup in computation and communication is local and polynomial

Ensure C-compliance while respecting the original distributed computation.

Page 20: Eran Tromer

25

Application:Fault and leakage resilient Information Flow Control

Page 21: Eran Tromer

26

Application:Fault and leakage resilient Information Flow Control

• Computation gets “secret” / “non-secret” inputs• “non-secret” inputs are signed as such• Any output labeled “non-secret” must be

independent of secrets• System perimeter is controlled and all output can be

checked (but internal computation can be leaky/faulty).• C allows only:

– Non-secret inputs:Initial inputs must be signed as “non-secret”.

– IFC-compliant computation:Subsequent computation respectInformation Flow Control rules and follow fixed schedule

• Censor at system’s perimeter inspects all outputs:– Verifies proof on every outgoing message– Releases only non-secret data.

Page 22: Eran Tromer

27

Application:Fault and leakage resilient Information Flow Control

• Computation gets “secret” / “non-secret” inputs• “non-secret” inputs are signed as such• Any output labeled “non-secret” must be

independent of secrets• System perimeter is controlled and all output can be

checked (but internal computation can be leaky/faulty).• C allows only:

– Non-secret inputs:Initial inputs must be signed as “non-secret”.

– IFC-compliant computation:Subsequent computation respectInformation Flow Control rules and follow fixed schedule

• Censor at system’s perimeter inspects all outputs:– Verifies proof on every outgoing message– Releases only non-secret data.

Big assumption, but otherwise no hope for retroactive leakage blocking (by the time you verify, the EM emanations are out of the barn).

Applicable when interface across perimeter is well-understood (e.g., network packets).

Verify using existing assurance methodology.

Page 23: Eran Tromer

28

Application:Simulations and MMO

• Distributed simulation:– Physical models– Virtual worlds (massively multiplayer online virtual reality)

• How can participants prove they have “obeyed the laws of physics”?(e.g., cannot reach through wall into bank safe)

• Traditional: centralized.• P2P architectures strongly motivated but insecure

[Plummer ’04] [GauthierDickey et al. ‘04]• Use C-compliance to enforce the laws of physics.

Page 24: Eran Tromer

29

Application:Simulations and MMO – example

• Alice and Bob playing on an airplane, can later rejoin a larger group of players, and prove they did not cheat while offline.

m, m, m,

m,

“While on the plane,I won a billion dollars, and here is a proof for

that”

m,

Page 25: Eran Tromer

32

More applications

Mentioned:• Fault isolation and accountability, type safety, multilevel

security, simulations.

Many others:• Enforcing rules in financial systems• Proof-carrying code• Distributed dynamic program analysis• Antispam email policies

Security design reduces to “compliance engineering”:write down a suitable compliance predicate C.

• Recurring patterns:signatures, censors, verify-code-then-verify-result…

• Introduce design patterns(a la software engineering)

[GHJV95]

Page 26: Eran Tromer

33

Design patterns

• use signatures to designate parties or properties

• universal compliance: takes as input a (signed) description of a compliance predicate

• user inputs into local computation• keep track of counters / graph structure(maybe mention before examples? some of

these may be used there)

Page 27: Eran Tromer

34

Does this work?

Established: Formal framework• Explicit construction

– “Polynomial time” - not practically feasible (yet).– Requires signature cards

Ongoing and future work:• Full implementation• Practicality• Reduce requirement for signature cards (or prove necessity)• Extensions (e.g., zero knowledge)• Interface with complementary approaches: tie “compliance”

into existing methods and a larger science of security• Applications and “compliance engineering” methodology


Recommended