Patchable (Indistinguishability) Obfuscation: iO for evolving - - PowerPoint PPT Presentation

patchable indistinguishability obfuscation io for
SMART_READER_LITE
LIVE PREVIEW

Patchable (Indistinguishability) Obfuscation: iO for evolving - - PowerPoint PPT Presentation

Patchable (Indistinguishability) Obfuscation: iO for evolving software Prabhanjan Abhishek Amit Ananth Jain Sahai Software Evolution 1990 Software Evolution 1990 1995 Software Evolution 1997 1990 1995 Software Evolution 1997 1990


slide-1
SLIDE 1

Patchable (Indistinguishability) Obfuscation: iO for evolving software

Prabhanjan

Ananth

Amit

Sahai

Abhishek

Jain

slide-2
SLIDE 2

Software Evolution

1990

slide-3
SLIDE 3

Software Evolution

1990 1995

slide-4
SLIDE 4

Software Evolution

1990 1995 1997

slide-5
SLIDE 5

1990 1995 1997 2000

Software Evolution

slide-6
SLIDE 6

Software Evolution

1990 1995 1997 2000 2003

slide-7
SLIDE 7

1990 1995 1997 2000 2003 2007

Software Evolution

slide-8
SLIDE 8

Software Evolution

1990 1995 1997 2000 2003 2007 2010

slide-9
SLIDE 9

Software Evolution

1990 1995 1997 2000 2003 2007 2013 2010

slide-10
SLIDE 10

Software Evolution

1990 1995 1997 2000 2003 2007 2013 2010 2016

slide-11
SLIDE 11

Why does software evolve?

  • 1. Changes in hardware requirements
  • 2. Changes in functionality requirements
  • 3. Resolve compatibility issues
  • 4. Performance of the system has to be upgraded
  • 5. Fixing bugs

slide-12
SLIDE 12

How to model Software Evolution?

slide-13
SLIDE 13

M

Patch P

Update

M’

slide-14
SLIDE 14

Goal: To protect evolving software

Ensure software privacy from the user yet allowing for software updates

slide-15
SLIDE 15

iO for Evolving Software This Work:

slide-16
SLIDE 16

This Work: Patchable iO

slide-17
SLIDE 17

M M

Why doesn't (static) iO suffice?

iO(M)

slide-18
SLIDE 18

M M Update

Why doesn't (static) iO suffice?

iO(M) P M’

slide-19
SLIDE 19

M M Update M’

Why doesn't (static) iO suffice?

iO(M) iO(M’) P M’

slide-20
SLIDE 20

M M Update M iO( P M

Communication Complexity?

|iO(M’)| ~ |M’|

slide-21
SLIDE 21

Communication complexity

~

P

Patchable iO

slide-22
SLIDE 22

M M

Patchable iO

iO(M) P GenPatch P

slide-23
SLIDE 23

M M ApplyPatch M’

Patchable iO

iO(M) P GenPatch P

slide-24
SLIDE 24

Syntax: Patchable iO

  • Setup(1k) =sk
  • Obfuscate(sk,M) =

M

  • GenPatch(sk,P) = P

,

=

  • ApplyPatch

M P M’

slide-25
SLIDE 25

Syntax: Patchable iO

  • Setup(1k) =sk
  • Obfuscate(sk,M) =

M

  • GenPatch(sk,P) = P

,

=

  • ApplyPatch

M P M’

Efficiency:

| | ~ |P|

P

slide-26
SLIDE 26

Definitional Issues

slide-27
SLIDE 27
  • 1. How to Apply Patches
slide-28
SLIDE 28
  • 1. How to Apply Patches

M0 M1 M2

P1 P2

Sequential Patching:

slide-29
SLIDE 29
  • 2. How many Patches?
slide-30
SLIDE 30
  • 2. How many Patches?

Want: Unbounded number of patches (chosen adaptively)

M0 M1 M2

P1 P2

slide-31
SLIDE 31

M M M M M M

P

  • 3. Patching Multiple Programs
slide-32
SLIDE 32

M M M M M M

P

  • 3. Patching Multiple Programs

P P P P P

slide-33
SLIDE 33

M’ M’ M’ M’ M’ M’

  • 3. Patching Multiple Programs
slide-34
SLIDE 34

M’ M’ M’ M’ M’ M’

Multi-program Patchable iO

slide-35
SLIDE 35

Summary of Requirements

  • Patches can modify the program arbitrarily
  • modeled as Turing machine
  • Patch encoding size only depends on patch size
  • Unbounded number of patches
  • Support for patching multiple programs

(so far)

slide-36
SLIDE 36

Correctness and Security?

slide-37
SLIDE 37

Single-Program Patchable iO

  • 1. Correctness for Sequential Patching
  • For every TM M0 and patch sequence P1,…,PL

,

M2 M1 P2 M1

,

= ApplyPatch

M0 P1 ML

M1=Update(M0, P1) M2=Update(M1, P2) ML=Update(ML-1, PL)

≡ ≡ ≡

= ApplyPatch

,

ML-1 PL

= ApplyPatch

slide-38
SLIDE 38

Single-Program Patchable iO

  • 1. Correctness for Sequential Patching
  • For every TM M0 and patch sequence P1,…,PL

,

M2 M1 P2 M1

  • Remark 1: Patches must be applied sequentially “in order”

,

= ApplyPatch

M0 P1 ML

M1=Update(M0, P1) M2=Update(M1, P2) ML=Update(ML-1, PL)

≡ ≡ ≡

= ApplyPatch

,

ML-1 PL

= ApplyPatch

slide-39
SLIDE 39

Single-Program Patchable iO

  • 1. Correctness for Sequential Patching
  • For every TM M0 and patch sequence P1,…,PL

,

M2 M1 P2 M1

  • Remark 1: Patches must be applied sequentially “in order”

,

= ApplyPatch

M1 P1

,

ML ML-1 PL

  • Remark 2: Each patch can only be used once

M1=Update(M0, P1) M2=Update(M1, P2) ML=Update(ML-1, PL)

≡ ≡ ≡

= ApplyPatch = ApplyPatch

slide-40
SLIDE 40

Single-Program Patchable iO

  • 2. Security for Adaptive Patches

(M0)0, (M1)0 (Mb)0 (P0)i, (P1)i (Pb)i

Adversary Challenger

(M0)j ≡ (M1)j where (M0)j = Update( (M0)j-1, (P0)j) (M1)j = Update( (M1)j-1, (P1)j)

slide-41
SLIDE 41

Single-Program Patchable iO

  • 2. Security for Adaptive Patches

(M0)0, (M1)0 (Mb)0 (P0)i, (P1)i (Pb)i

Adversary Challenger

(M0)j ≡ (M1)j where (M0)j = Update( (M0)j-1, (P0)j) (M1)j = Update( (M1)j-1, (P1)j)

Correctness and Security can be generalized to multiprogram setting in a similar manner

slide-42
SLIDE 42

Our Results

  • Theorem. Assuming sub-exp. iO for circuits and sub-
  • exp. DDH (or sub-exp. LWE),

there exists multi-program patchable iO for TMs*.

* The input length to the TMs is fixed a priori

In paper, we also consider

  • ther types of patching

processes

slide-43
SLIDE 43

Incremental/ Updatable Cryptography

  • Incremental signatures [BGG94,…]
  • Incremental encryption [BGG95,…]

Concurrent work: Incremental Obfuscation [Garg-Pandey’15]

slide-44
SLIDE 44

Theoretical Applications

slide-45
SLIDE 45

Mx=⊥

Set x := y

Functional Encryption for Turing Machines

Functional Key of M Ciphertext of y

Let Mx be an input-less machine that outputs M(x)

slide-46
SLIDE 46

Mx=⊥

Set x := y

Functional Encryption for Turing Machines

Functional Key of M Ciphertext of y

Mx=y

Let Mx be an input-less machine that outputs M(x)

slide-47
SLIDE 47

Mx=⊥

Set x := y

Functional Encryption for Turing Machines

Functional Key of M Ciphertext of y

ADVANTAGE: Simple construction!

previous construction by A-Sahai’16 from iO is more involved

slide-48
SLIDE 48

Other Applications of Patchable iO

  • Multi-Input Functional Encryption for TMs
  • iO for TMs with unbounded input length
  • requires reusable patching mechanism
slide-49
SLIDE 49

Technical Overview

slide-50
SLIDE 50

Template of Single-Program Patchable iO

slide-51
SLIDE 51

Encode(M)

+

  • 1. Decode
  • 2. Evaluate M on x

Obf (

)

Template of Single-Program Patchable iO Patchable Obfuscation of M

Input = ( Encode(M), x ) Use an encoding scheme to encode M

slide-52
SLIDE 52

Encode(M)

+

  • 1. Decode
  • 2. Evaluate M on x

Obf (

)

Template of Single-Program Patchable iO Patchable Obfuscation of M

Input = ( Encode(M), x ) Evaluation

On input x,

  • Evaluate obfuscated ckt on (Encode(M),x) to get M(x)
slide-53
SLIDE 53

What properties should the encoding scheme satisfy?

  • 1. Correctness
  • 2. Hiding
  • 3. Patching

Encode(M)

  • 1. Decode
  • 2. Evaluate M on x

Obf (

)

+ Patchable Obfuscation of M Template of Single-Program Patchable iO

slide-54
SLIDE 54

Properties of Encoding Scheme

  • 1. Correctness:

Decoding ‘Encode(M)’ should yield M

  • 2. Hiding:

Encode(M0) ≈c Encode(M1)

  • 3. Patching:

For patch P: Encode(M) + Encode(P) := Encode(M’)

slide-55
SLIDE 55

Properties of Encoding Scheme

We call such a scheme,

patchable encoding scheme

slide-56
SLIDE 56

Properties of Encoding Scheme

We call such a scheme,

patchable encoding scheme

C a n d i d a t e : F u l l y h

  • m
  • m
  • r

p h i c e n c r y p t i

  • n

!

slide-57
SLIDE 57

Encode(M)

  • 1. Decode
  • 2. Evaluate M on x

Obf (

)

+ Patchable Obfuscation of M Template of Single-Program Patchable iO

Issue: Adversary can apply encoded patches of his choice

slide-58
SLIDE 58

Encode(M)

  • 1. Decode
  • 2. Evaluate M on x

Obf (

)

+ Patchable Obfuscation of M Template of Single-Program Patchable iO

Issue: Adversary can apply encoded patches of his choice Fix: Sign the patches!

slide-59
SLIDE 59

P Encode(P) , sgnPtch Encode(M)

  • 1. Verify
  • 2. Decode+Upd.
  • 3. Evaluate M on x

Obf (

)

+

M

Input = ( Encode(M), Encode(P), sgnPtch, x )

slide-60
SLIDE 60

Encode(M)

  • 1. Verify
  • 2. Decode+Upd.
  • 3. Evaluate M on x

Obf (

)

+

M P Encode(P) , sgnPtch

Issue: Adversary can apply patches out of order Apply P50, P4, P10, …

slide-61
SLIDE 61

Encode(M)

  • 1. Verify
  • 2. Decode+Upd.
  • 3. Evaluate M on x

Obf (

)

+

M Encode(P) , sgnPtch

Issue: Adversary can apply patches out of order Fix: Authenticate the patched machine!

P

slide-62
SLIDE 62

Encode(M)

  • 1. Verify
  • 2. Decode+Upd.
  • 3. Evaluate M on x

Obf (

)

+

M Encode(P) , sgnM/c

sgnM/c ensures that Encode(P) is only applied to Encode(M)

P sgnM/c

signature on Encode(M’)

slide-63
SLIDE 63

Encode(M)

  • 1. Verify
  • 2. Decode + Update
  • 3. Evaluate M on x )

+

(

STATE:= Encode(M), SK

slide-64
SLIDE 64

Encode(M)

  • 1. Verify
  • 2. Decode + Update
  • 3. Evaluate M on x )

+

(

STATE:= Encode(M), SK

Update

Encode(P)

P

Encode(M’)

Sign Encode(M’) to get sgnM/c

Encode(P) + sgnM/c

slide-65
SLIDE 65

Issue: Authority needs to maintain large state! Not scalable to multiple programs

STATE:= Encode(M), SK

slide-66
SLIDE 66

Issue: Authority needs to maintain large state! Solution: Reverse delegation

STATE:= Encode(M), SK

slide-67
SLIDE 67

Issue: Authority needs to maintain large state! Solution: Reverse delegation (delegate to client)

STATE:= Encode(M), SK

slide-68
SLIDE 68

Implementation Issues

  • 1. The state should be hidden from the user
  • 2. How does Apple generate secure patches?
  • state contains secret information
  • It no longer has access to the state
slide-69
SLIDE 69

Implementation Issues

  • 1. The state should be hidden from the user
  • 2. How does Apple generate secure patches?
  • state contains secret information
  • It no longer has access to the state

TOOL: Adaptive garbled TMs for persistent memory

[Canetti-Chen-Holmgren-Raykova’16, A-Chen-Chung-Lin-Lin’16]

slide-70
SLIDE 70
  • 1. The state should be hidden from the user
  • 2. How does Apple generate secure patches?
  • state contains secret information
  • It no longer has access to the state

TOOL: Adaptive garbled TMs for persistent memory

[Canetti-Chen-Holmgren-Raykova’16, A-Chen-Chung-Lin-Lin’16]

For simpler updates, can use garbled RAMs based on owfs

Implementation Issues

slide-71
SLIDE 71

Single-Program to Multi-Program?

  • 1. Apple maintains garbled TM secret keys for every

user

  • 2. The storage capacity puts a bound on number of

users

Idea: Maintain the garbling key at user’s end

slide-72
SLIDE 72

Single-Program to Multi-Program?

  • 1. Apple maintains garbled TM secret keys for every

user

  • 2. The storage capacity puts a bound on number of

users

Idea: Maintain the garbling key at user’s end

TOOL: Functional Encryption [Yao’86, BSW’11, GKPVZ’13, GGHRSW’13]

slide-73
SLIDE 73

So far…

  • 1. Template for single-program patchable iO
  • 2. Single-Program to Multi-program patchable iO
slide-74
SLIDE 74

How to implement the template of single-program patchable iO?

slide-75
SLIDE 75

Encode(M)

+

  • 1. Decode
  • 2. Evaluate M on x

Obf (

)

Recall: Template of Single-Program Patchable iO Patchable Obfuscation of M

REQUIRE:

iO for Turing machines construction with the above structure

slide-76
SLIDE 76

Encode(M)

+

  • 1. Decode
  • 2. Evaluate M on x

Obf (

)

Recall: Template of Single-Program Patchable iO Patchable Obfuscation of M

REQUIRE:

iO for Turing machines construction with the above structure

i O w i t h c

  • n

s t a n t

  • v

e r h e a d

A-Jain-Sahai'15

slide-77
SLIDE 77

Implementation Issues

(TECHNICAL PART)

  • 1. Make sure the encoding scheme used in AJS’15 is

patchable

  • 2. Need to refresh the obfuscated circuit after every

update …

SEE PAPER

slide-78
SLIDE 78

Questions?