Complete Information Flow Tracking from Gates Up Mohit Tiwari, Xun - - PowerPoint PPT Presentation

complete information flow tracking from gates up
SMART_READER_LITE
LIVE PREVIEW

Complete Information Flow Tracking from Gates Up Mohit Tiwari, Xun - - PowerPoint PPT Presentation

Complete Information Flow Tracking from Gates Up Mohit Tiwari, Xun Li, Hassan M G Wassel, Frederic T Chong, Timothy Sherwood Presented by Mengjia Yan Based on slides from Mohit Tiwari Goal: Non-Interference High Low Low system Sink


slide-1
SLIDE 1

Complete Information Flow Tracking from Gates Up

Mohit Tiwari, Xun Li, Hassan M G Wassel, Frederic T Chong, Timothy Sherwood Presented by Mengjia Yan Based on slides from Mohit Tiwari

slide-2
SLIDE 2

Goal: Non-Interference

High Low Low

“system” Source Sink

slide-3
SLIDE 3

Goal: Non-Interference

  • Non-Interference: a change in a High input can never be observed or

inferred from changes in the Low output. That is, High data should never leak to Low

High Low Low

“system” Source Sink

slide-4
SLIDE 4

Goal: Non-Interference

  • Non-Interference: a change in a High input can never be observed or

inferred from changes in the Low output. That is, High data should never leak to Low

  • Confidentiality-Integrity Duality: “High” is more conservative label.

Secret or Tainted/Untrusted.

High Low Low

“system” Source Sink

slide-5
SLIDE 5

Goal: Non-Interference

  • Non-Interference: a change in a High input can never be observed or

inferred from changes in the Low output. That is, High data should never leak to Low

  • Confidentiality-Integrity Duality: “High” is more conservative label.

Secret or Tainted/Untrusted.

High Low Low

X

“system” Source Sink

slide-6
SLIDE 6

Information Flow for Privacy

  • General lattice policies
  • Secret vs. Unclassified Data
  • Secret: data with restricted access permission
  • Unclassified: data with unrestricted access
slide-7
SLIDE 7

Information Flow for Privacy

  • General lattice policies
  • Secret vs. Unclassified Data
  • Secret: data with restricted access permission
  • Unclassified: data with unrestricted access
  • Enforce the property of non-interference:
  • Verify information never flows from high to low.
  • Secret information is never used to modify unclassified data
slide-8
SLIDE 8

Information Flow for Integrity

  • Trusted vs. Untrusted Tasks
  • Trusted: processes which are critical to the correct functionality of the space

vehicle systems

  • Untrusted: mission processes, diagnostics, anything whose malfunction will

not cause a vehicle loss

router

X

passenger avionics

slide-9
SLIDE 9

Information Flow for Integrity

  • Trusted vs. Untrusted Tasks
  • Trusted: processes which are critical to the correct functionality of the space

vehicle systems

  • Untrusted: mission processes, diagnostics, anything whose malfunction will

not cause a vehicle loss

  • Enforce the property of non-interference:
  • Verify information never flows from high to low.
  • Untrusted information is never used to make critical (trusted) decisions nor to

determine the schedule (real-time)

router

X

passenger avionics

slide-10
SLIDE 10

Threat Model

  • Low output can include
  • Program output
  • Timing
  • Contention on system resources

6.888 Fall 2020 5

slide-11
SLIDE 11

Threat Model

  • Low output can include
  • Program output
  • Timing
  • Contention on system resources
  • Not include
  • Untrusted hardware component problem
  • Physical attacks that may tamper with memory
  • Non-digital side-channel attacks (power distribution and RF signals)

6.888 Fall 2020 5

slide-12
SLIDE 12

Highlights

  • A secure SW/HW co-design which is verifiable
  • Gate-level information flow tracking
  • More precise than conventional IFT
  • ISA restrictions to prevent taint explosion
  • Handling conditional branch
  • Handling loops
  • Handling loads/stores

6.888 Fall 2020 6

slide-13
SLIDE 13

Highlights

  • A secure SW/HW co-design which is verifiable
  • Gate-level information flow tracking
  • More precise than conventional IFT
  • ISA restrictions to prevent taint explosion
  • Handling conditional branch
  • Handling loops
  • Handling loads/stores

6.888 Fall 2020 6

A new way to look at IFT from a new perspective.

slide-14
SLIDE 14

Highlights

  • A secure SW/HW co-design which is verifiable
  • Gate-level information flow tracking
  • More precise than conventional IFT
  • ISA restrictions to prevent taint explosion
  • Handling conditional branch
  • Handling loops
  • Handling loads/stores

6.888 Fall 2020 6

A new way to look at IFT from a new perspective.

Usage: GLIFT + Information Flow Policy

slide-15
SLIDE 15

The Vision: Hardware Design for Software Security Verification

slide-16
SLIDE 16

The Vision: Hardware Design for Software Security Verification

Sound Information Flow Analysis

slide-17
SLIDE 17

The Vision: Hardware Design for Software Security Verification

Sound Information Flow Analysis Hardware/Software Design for Verifiable Security

slide-18
SLIDE 18

The Vision: Hardware Design for Software Security Verification

Applications Language Logic Gates Microarchitecture Instruction Set (ISA) Compiler/OS Security Properties Hardware/Software Design for Verifiable Security

slide-19
SLIDE 19

The Vision: Hardware Design for Software Security Verification

Applications Language Logic Gates Microarchitecture Instruction Set (ISA) Compiler/OS Security Properties

slide-20
SLIDE 20

The Vision: Hardware Design for Software Security Verification

Applications Language Logic Gates Microarchitecture Instruction Set (ISA) Compiler/OS Security Properties

slide-21
SLIDE 21

Information Flow Analysis

  • Information flows through Space
  • Registers, Memory, Micro-architectural state etc.
slide-22
SLIDE 22

Information Flow Analysis

  • Information flows through Space
  • Registers, Memory, Micro-architectural state etc.
  • ut1 = ld(high)

(explicit flow)

slide-23
SLIDE 23

Information Flow Analysis

  • Information flows through Space
  • Registers, Memory, Micro-architectural state etc.

if (high == 1)

  • ut1 = 1

else

  • ut2 = 0

(implicit flow)

  • ut1 = ld(high)

(explicit flow)

slide-24
SLIDE 24

Static and Dynamic Information Flow Tracking

6.888 Fall 2020 9

if (high == 1)

  • ut1 = 1

else

  • ut2 = 0

(implicit flow)

  • ut1 = ld(high)
  • ut2 = ld(low)

(explicit flow)

slide-25
SLIDE 25

Static and Dynamic Information Flow Tracking

  • Static analysis is conservative (need alias analysis for precise results)
  • Dynamic analysis has difficulty in analyzing implicit flow

6.888 Fall 2020 9

if (high == 1)

  • ut1 = 1

else

  • ut2 = 0

(implicit flow)

  • ut1 = ld(high)
  • ut2 = ld(low)

(explicit flow)

slide-26
SLIDE 26

Static and Dynamic Information Flow Tracking

  • Static analysis is conservative (need alias analysis for precise results)
  • Dynamic analysis has difficulty in analyzing implicit flow

6.888 Fall 2020 9

if (high == 1)

  • ut1 = 1

else

  • ut2 = 0

(implicit flow)

  • ut1 = ld(high)
  • ut2 = ld(low)

(explicit flow)

  • ut2 is tainted if the

address or the memory value is tainted

slide-27
SLIDE 27

Information Flow Analysis

  • Information flows through Space
  • Registers, Memory, Micro-architectural state etc.
  • Information flows through Time
  • Observable events such as PC, I/O channels etc.
slide-28
SLIDE 28

Information Flow Analysis

  • Information flows through Space
  • Registers, Memory, Micro-architectural state etc.
  • Information flows through Time
  • Observable events such as PC, I/O channels etc.

Memory CPU A CPU B

slide-29
SLIDE 29

The paper addresses two challenges

  • How to account for all information flows in a system?
  • How to construct practical systems that won’t leak?

6.888 Fall 2020 11

slide-30
SLIDE 30

The paper addresses two challenges

  • How to account for all information flows in a system?

à So that the security property can be verifiable

  • How to construct practical systems that won’t leak?

6.888 Fall 2020 11

slide-31
SLIDE 31

The paper addresses two challenges

  • How to account for all information flows in a system?

à So that the security property can be verifiable à Avoid taint explosion

  • How to construct practical systems that won’t leak?

6.888 Fall 2020 11

slide-32
SLIDE 32

The paper addresses two challenges

  • How to account for all information flows in a system?

à So that the security property can be verifiable à Avoid taint explosion

  • How to construct practical systems that won’t leak?

à Use the concept of GLIFT to guide the design

6.888 Fall 2020 11

slide-33
SLIDE 33

High-level View: Track all flows

Separation Kernel P0 P1 CPU Mem I/O Dev

S/W H/W Secure System

slide-34
SLIDE 34

High-level View: Track all flows

  • Flatten design to a (giant) state machine

Separation Kernel P0 P1 CPU Mem I/O Dev

S/W H/W Secure System

001000101

external inputs Combinational Logic external outputs clock state

Equivalent State Machine

1001110101111011 0001011001111111

slide-35
SLIDE 35

High-level View: Track all flows

  • Flatten design to a (giant) state machine
  • Does every output have desired label?

Separation Kernel P0 P1 CPU Mem I/O Dev

S/W H/W Secure System

001000101

external inputs Combinational Logic external outputs clock state

Equivalent State Machine

1001110101111011 0001011001111111

slide-36
SLIDE 36

High-level View: Track all flows

  • Flatten design to a (giant) state machine
  • Does every output have desired label?

Separation Kernel P0 P1 CPU Mem I/O Dev

S/W H/W Secure System

001000101

external inputs Combinational Logic external outputs clock state

Equivalent State Machine

1001110101111011 0001011001111111

slide-37
SLIDE 37

High-level View: Track all flows

  • Insight: All flows explicit at the gate level

Separation Kernel P0 P1 CPU Mem I/O Dev

S/W H/W Secure System

001000101

external inputs external outputs clock state

Equivalent State Machine

1001110101111011 0001011001111111

slide-38
SLIDE 38

High-level View: Track all flows

  • Outputs: Logic function of state and inputs
  • Output Labels: Logic func. of state, inputs, and labels

Separation Kernel P0 P1 CPU Mem I/O Dev

S/W H/W Secure System

001000101

external inputs external outputs clock state

Equivalent State Machine

1001110101111011 0001011001111111

slide-39
SLIDE 39

Analysis Technique: GLIFT

a b

  • AND
slide-40
SLIDE 40

Analysis Technique: GLIFT

a b

  • t
  • a

bt

t

Shadow AND for labels AND

slide-41
SLIDE 41

Analysis Technique: GLIFT

a b

  • t
  • a

bt

t

Shadow AND for labels AND

Conservative. If one of a and b is tainted, the output is tainted.

slide-42
SLIDE 42

Motivation: Require Precise Information Flow

  • Conventional OR-ing of labels monotonic

clock reset D Q

010101…

slide-43
SLIDE 43

Motivation: Require Precise Information Flow

  • Conventional OR-ing of labels monotonic

clock reset D Q

010101…

slide-44
SLIDE 44

Motivation: Require Precise Information Flow

  • Conventional OR-ing of labels monotonic

clock reset D Q

010101…

slide-45
SLIDE 45

Motivation: Require Precise Information Flow

  • Conventional OR-ing of labels monotonic

clock reset D Q

010101…

slide-46
SLIDE 46

Motivation: Require Precise Information Flow

  • Conventional OR-ing of labels monotonic

clock reset D Q

010101…

slide-47
SLIDE 47

Motivation: Require Precise Information Flow

  • Conventional OR-ing of labels monotonic

clock reset D Q

010101…

slide-48
SLIDE 48

Precise Information Flow: AND Gate

0 0 a b o a b

  • untainted

tainted

slide-49
SLIDE 49

Precise Information Flow: AND Gate

0 1 1 a b o a b

  • untainted

tainted

slide-50
SLIDE 50

Precise Information Flow: AND Gate

0 1 1 a b o a b

  • untainted

tainted

When a=0, b can not affect the value of the output. à no-interference

slide-51
SLIDE 51

Precise Information Flow: AND Gate

1 1 1 1 1 1 0 1 a b o a b

  • untainted

tainted

When a=0, b can not affect the value of the output. à no-interference

slide-52
SLIDE 52

Precise Information Flow: AND Gate

1 1 1 1 1 1 0 1 a b o a b

  • Use both inputs and input labels

untainted tainted

When a=0, b can not affect the value of the output. à no-interference

slide-53
SLIDE 53

Analysis Technique: GLIFT

a b

  • t
  • a

bt

t

b a

  • bt

t

a

t

slide-54
SLIDE 54

Sound Composition of Shadow Logic

b a

  • s

t1 t2

slide-55
SLIDE 55

Sound Composition of Shadow Logic

t

  • a

s at

t

s b s bt

t

s t1 t2

slide-56
SLIDE 56

MUX: Gatekeeper of trust

a b s

  • a

b s

1

  • a

b s *

slide-57
SLIDE 57

MUX: Gatekeeper of trust

a b s

  • a

b s

1

  • a

b s *

slide-58
SLIDE 58

MUX: Gatekeeper of trust

a b s

  • a

b s

1

  • a

b s *

slide-59
SLIDE 59

Implicit Information Flows: Taint Explosion

Instr Mem +4 jump target R1 R2 Reg File is jump? through decode PC

slide-60
SLIDE 60

Implicit Information Flows: Taint Explosion

Instr Mem +4 jump target R1 R2 Reg File is jump? through decode PC

if (secret==1)

  • ut = 1

tmp = 5

slide-61
SLIDE 61

Implicit Information Flows: Taint Explosion

Instr Mem +4 jump target R1 R2 Reg File is jump? through decode PC

if (secret==1)

  • ut = 1

tmp = 5

slide-62
SLIDE 62

Implicit Information Flows: Taint Explosion

Instr Mem +4 jump target R1 R2 Reg File is jump? through decode PC PC

if (secret==1)

  • ut = 1

tmp = 5 Conditional execution taints critical state (PC)

slide-63
SLIDE 63

Implicit Information Flows: Taint Explosion

Instr Mem +4 jump target R1 R2 Reg File is jump? through decode PC PC

if (secret==1)

  • ut = 1

tmp = 5 Conditional execution taints critical state (PC)

slide-64
SLIDE 64

Implicit Information Flows: Taint Explosion

Instr Mem +4 jump target R1 R2 Reg File is jump? through decode PC PC

if (secret==1)

  • ut = 1

tmp = 5 Conditional execution taints critical state (PC)

slide-65
SLIDE 65

Implicit Information Flows: Taint Explosion

Instr Mem +4 jump target R1 R2 Reg File is jump? through decode PC PC

if (secret==1)

  • ut = 1

tmp = 5 Conditional execution taints critical state (PC)

slide-66
SLIDE 66

Implicit Information Flows: Taint Explosion

Instr Mem +4 jump target R1 R2 Reg File is jump? through decode PC PC

if (secret==1)

  • ut = 1

tmp = 5

  • ut

tmp Conditional execution taints critical state (PC)

slide-67
SLIDE 67

Convert Implicit Flow to Explicit Flow

6.888 Fall 2020 22

Instr Mem +4 jump target R1 R2 Reg File is jump? through decode PC

if (secret==1)

  • ut = 1

tmp = 5 P0 = secret (P0) out = 1 tmp = 5

slide-68
SLIDE 68

Convert Implicit Flow to Explicit Flow

6.888 Fall 2020 22

Instr Mem +4 jump target R1 R2 Reg File is jump? through decode PC

if (secret==1)

  • ut = 1

tmp = 5 P0 = secret (P0) out = 1 tmp = 5

slide-69
SLIDE 69

Convert Implicit Flow to Explicit Flow

6.888 Fall 2020 22

Instr Mem +4 jump target R1 R2 Reg File is jump? through decode PC

if (secret==1)

  • ut = 1

tmp = 5 P0 = secret (P0) out = 1 tmp = 5

P0

slide-70
SLIDE 70

Convert Implicit Flow to Explicit Flow

6.888 Fall 2020 22

Instr Mem +4 jump target R1 R2 Reg File is jump? through decode PC

if (secret==1)

  • ut = 1

tmp = 5 P0 = secret (P0) out = 1 tmp = 5

P0

  • ut
slide-71
SLIDE 71

Convert Implicit Flow to Explicit Flow

6.888 Fall 2020 22

Instr Mem +4 jump target R1 R2 Reg File is jump? through decode PC

if (secret==1)

  • ut = 1

tmp = 5 P0 = secret (P0) out = 1 tmp = 5

P0

  • ut

P0 = secret (P0) out = 1 tmp = 5

slide-72
SLIDE 72

Convert Implicit Flow to Explicit Flow

6.888 Fall 2020 23

Instr Mem +4 jump target R1 R2 Reg File is jump? through decode PC

if (secret==1)

  • ut = 1

tmp = 5

P0

  • ut

5

P0 = secret (P0) out = 1 tmp = 5

slide-73
SLIDE 73

Convert Implicit Flow to Explicit Flow

6.888 Fall 2020 23

Instr Mem +4 jump target R1 R2 Reg File is jump? through decode PC

if (secret==1)

  • ut = 1

tmp = 5

P0

  • ut

5

P0 = secret (P0) out = 1 tmp = 5

slide-74
SLIDE 74

Convert Implicit Flow to Explicit Flow

6.888 Fall 2020 23

Instr Mem +4 jump target R1 R2 Reg File is jump? through decode PC

if (secret==1)

  • ut = 1

tmp = 5

P0

  • ut

5

tmp

P0 = secret (P0) out = 1 tmp = 5

slide-75
SLIDE 75

Convert Implicit Flow to Explicit Flow

6.888 Fall 2020 23

Instr Mem +4 jump target R1 R2 Reg File is jump? through decode PC

if (secret==1)

  • ut = 1

tmp = 5

P0

  • ut

5

tmp

P0 = secret (P0) out = 1 tmp = 5 P0 = secret (P0) out = 1 tmp = 5

slide-76
SLIDE 76

Similar Mechanisms for Loop/Load/Store

  • Variable length loops à fixed size loops (bounding)
  • Indirect loads/stores à Direct loads/stores

6.888 Fall 2020 24

slide-77
SLIDE 77

Similar Mechanisms for Loop/Load/Store

  • Variable length loops à fixed size loops (bounding)
  • Indirect loads/stores à Direct loads/stores

6.888 Fall 2020 24

  • Harder to program and inefficient

+ Verifiable system

slide-78
SLIDE 78

Similar Mechanisms for Loop/Load/Store

  • Variable length loops à fixed size loops (bounding)
  • Indirect loads/stores à Direct loads/stores
  • Recommend to read their follow-on work:
  • Execution Leases: A Hardware-Supported Mechanism for Enforcing Strong

Non-Interference; Tiwari et al.; MICRO’09

6.888 Fall 2020 24

  • Harder to program and inefficient

+ Verifiable system

slide-79
SLIDE 79

Evaluation

+ Security

  • Area overhead/Power consumption
  • Performance overhead
  • Programmability

6.888 Fall 2020 25

slide-80
SLIDE 80

Evaluation

+ Security

  • Area overhead/Power consumption
  • Performance overhead
  • Programmability

Appropriate use cases:

  • When critical or sensitive operations need to be performed, a co-processor

augmented with these abilities could be an attractive option.

6.888 Fall 2020 25

slide-81
SLIDE 81

Discussion Questions

slide-82
SLIDE 82

Discussion Questions on Taint Tracking

  • Who designates an input as untrusted/trusted? Where in the

architecture/implementation does an input first get marked as untrustworthy?

6.888 Fall 2020 27

slide-83
SLIDE 83

Discussion Questions on Taint Tracking

  • Who designates an input as untrusted/trusted? Where in the

architecture/implementation does an input first get marked as untrustworthy?

  • Can/should there be a method of promoting data from untrusted to

trusted? (from High to Low)

6.888 Fall 2020 27

slide-84
SLIDE 84

Discussion Questions on Taint Tracking

  • Who designates an input as untrusted/trusted? Where in the

architecture/implementation does an input first get marked as untrustworthy?

  • Can/should there be a method of promoting data from untrusted to

trusted? (from High to Low)

  • How does the GLIFT method handle optimizations such as out-of-order

execution, speculation etc? Will the proposed architecture be able to detect covert and side channel attacks such as Meltdown and Spectre?

6.888 Fall 2020 27

slide-85
SLIDE 85

Example MLS System

Example Satellite Application. [Tzvetan Metodi, Aerospace Corp.]

Kernel and Diagnostics Crypto Command Telemetry Interface Time Keeping I/O Secret Mission Secret Mission Unclass. Interrupt Handlers (Non-sensitive)

slide-86
SLIDE 86

Example MLS System

Example Satellite Application. [Tzvetan Metodi, Aerospace Corp.]

Kernel and Diagnostics Crypto Command Telemetry Interface Time Keeping I/O Secret Mission Secret Mission Unclass. Note: Since this is not a real schedule, the processes are not in any sensible execution order

Execution Time Primary Execution Schedule

Interrupt Handlers (Non-sensitive)

slide-87
SLIDE 87

Example MLS System

Example Satellite Application. [Tzvetan Metodi, Aerospace Corp.]

Kernel and Diagnostics Crypto Command Telemetry Interface Time Keeping I/O Secret Mission Secret Mission Unclass. Interrupt Handlers (Sensitive) Note: Since this is not a real schedule, the processes are not in any sensible execution order

Execution Time Primary Execution Schedule

Interrupt Handlers (Non-sensitive)

slide-88
SLIDE 88

Example MLS System

Example Satellite Application. [Tzvetan Metodi, Aerospace Corp.]

Kernel and Diagnostics Crypto Command Telemetry Interface Time Keeping I/O Secret Mission Secret Mission Unclass. Interrupt Handlers (Sensitive) Non-sensitive Sensitive Note: Since this is not a real schedule, the processes are not in any sensible execution order

Execution Time Primary Execution Schedule

Interrupt Handlers (Non-sensitive)

slide-89
SLIDE 89

Example: Satellite System

slide-90
SLIDE 90

Example: Satellite System

Untrusted & Unclassified Untrusted & Secret Trusted & Unclassified Trusted & Secret

slide-91
SLIDE 91

Example: Satellite System

Untrusted & Unclassified Untrusted & Secret Trusted & Unclassified Trusted & Secret

Kernel, Interrupt Handlers (Unclassified), Time Keeping Programs

slide-92
SLIDE 92

Example: Satellite System

Untrusted & Unclassified Untrusted & Secret Trusted & Unclassified Trusted & Secret

Kernel, Interrupt Handlers (Unclassified), Time Keeping Programs Diagnostics, Telemetry Interfaces

slide-93
SLIDE 93

Example: Satellite System

Untrusted & Unclassified Untrusted & Secret Trusted & Unclassified Trusted & Secret

Kernel, Interrupt Handlers (Unclassified), Time Keeping Programs Diagnostics, Telemetry Interfaces Custom code on Secret data

slide-94
SLIDE 94

Example: Satellite System

Untrusted & Unclassified Untrusted & Secret Trusted & Unclassified Trusted & Secret

Kernel, Interrupt Handlers (Unclassified), Time Keeping Programs Diagnostics, Telemetry Interfaces Custom code on Secret data Libraries (e.g. encryption) that operate on Secret data

slide-95
SLIDE 95

Discussion Questions on Use Cases

  • One specific use case: What if we needed to load in a new firmware blob to compute a new
  • function. Could we send it in encrypted and have a way of validating and then trusting it?

6.888 Fall 2020 30

slide-96
SLIDE 96

Discussion Questions on Use Cases

  • One specific use case: What if we needed to load in a new firmware blob to compute a new
  • function. Could we send it in encrypted and have a way of validating and then trusting it?
  • In the end, it seems the ISA is the secure step, and the trust bits are just useful in validating the
  • design. (Does the restricted ISA make program secure against side channels?)

6.888 Fall 2020 30

slide-97
SLIDE 97

Discussion Questions on Use Cases

  • One specific use case: What if we needed to load in a new firmware blob to compute a new
  • function. Could we send it in encrypted and have a way of validating and then trusting it?
  • In the end, it seems the ISA is the secure step, and the trust bits are just useful in validating the
  • design. (Does the restricted ISA make program secure against side channels?)
  • This kind of processor would be a pain to program. If most applications on it are small, important

kernels, such as AES, would it not be better to produce a specially tuned ASIC/IP core?

6.888 Fall 2020 30

slide-98
SLIDE 98

Discussion Questions on Use Cases

  • One specific use case: What if we needed to load in a new firmware blob to compute a new
  • function. Could we send it in encrypted and have a way of validating and then trusting it?
  • In the end, it seems the ISA is the secure step, and the trust bits are just useful in validating the
  • design. (Does the restricted ISA make program secure against side channels?)
  • This kind of processor would be a pain to program. If most applications on it are small, important

kernels, such as AES, would it not be better to produce a specially tuned ASIC/IP core?

  • Are there any programs or algorithms that are rendered impossible (or extremely difficult) to

write as a result of the limitations that they've placed on loops?

6.888 Fall 2020 30

slide-99
SLIDE 99

Discussion Questions on Future Work

  • Rather than implementing a CPU with this restricted ISA, since this is used only for edge case

computation, could an FPGA-based enclave in a traditional CPU be used with this ISA instead as a cost-effective implementation?

6.888 Fall 2020 31

slide-100
SLIDE 100

Discussion Questions on Future Work

  • Rather than implementing a CPU with this restricted ISA, since this is used only for edge case

computation, could an FPGA-based enclave in a traditional CPU be used with this ISA instead as a cost-effective implementation?

  • Rather than apply the concept of gate level flow tracking to the ISA, I envision further work that

could apply the same concepts to FPGA tooling.

6.888 Fall 2020 31

slide-101
SLIDE 101

Discussion Questions on Future Work

  • Rather than implementing a CPU with this restricted ISA, since this is used only for edge case

computation, could an FPGA-based enclave in a traditional CPU be used with this ISA instead as a cost-effective implementation?

  • Rather than apply the concept of gate level flow tracking to the ISA, I envision further work that

could apply the same concepts to FPGA tooling.

6.888 Fall 2020 31

Great idea. Read “HyperFlow: A Processor Architecture for Nonmalleable, Timing- Safe Information Flow Security”; Ferraiuolo et al. CCS’18

slide-102
SLIDE 102

Discussion Questions on Side Channels

  • How does the GLIFT detect a side channel/covert channel? What is the “sink” of taint tracking

in such cases?

32

slide-103
SLIDE 103

Discussion Questions on Side Channels

  • How does the GLIFT detect a side channel/covert channel? What is the “sink” of taint tracking

in such cases?

32

Memory CPU A CPU B

slide-104
SLIDE 104

Discussion Questions on Side Channels

  • How does the GLIFT detect a side channel/covert channel? What is the “sink” of taint tracking

in such cases?

  • If we do not plan to use GLIFT to track side channel leakage, do we need to ISA restriction on

indirect loads? (not indirect stores)

32

Memory CPU A CPU B

slide-105
SLIDE 105

Discussion Questions on Side Channels

  • How does the GLIFT detect a side channel/covert channel? What is the “sink” of taint tracking

in such cases?

  • If we do not plan to use GLIFT to track side channel leakage, do we need to ISA restriction on

indirect loads? (not indirect stores)

  • How GLIFT different from static taint analysis and traditional dynamic taint analysis?

32

Memory CPU A CPU B