HOP: Hardware makes Obfuscation Practical Kartik Nayak

Slides:



Advertisements
Similar presentations
Multithreading processors Adapted from Bhuyan, Patterson, Eggers, probably others.
Advertisements

Vector Processing. Vector Processors Combine vector operands (inputs) element by element to produce an output vector. Typical array-oriented operations.
Linear Obfuscation to Combat Symbolic Execution Zhi Wang 1, Jiang Ming 2, Chunfu Jia 1 and Debin Gao 3 1 Nankai University 2 Pennsylvania State University.
S EMANTICALLY - SECURE FUNCTIONAL ENCRYPTION : P OSSIBILITY RESULTS, IMPOSSIBILITY RESULTS AND THE QUEST FOR A GENERAL DEFINITION Adam O’Neill, Georgetown.
Modeling Insider Attacks on Group Key Exchange Protocols Jonathan Katz Ji Sun Shin University of Maryland.
Jointly Restraining Big Brother: Using cryptography to reconcile privacy with data aggregation Ran Canetti IBM Research.
On Everlasting Security in the Hybrid Bounded Storage Model Danny Harnik Moni Naor.
Chapter 8.  Cryptography is the science of keeping information secure in terms of confidentiality and integrity.  Cryptography is also referred to as.
Chang Liu, Michael Hicks, Elaine Shi The University of Maryland, College Park.
ObliviStore High Performance Oblivious Cloud Storage Emil StefanovElaine Shi
Secure Embedded Processing through Hardware-assisted Run-time Monitoring Zubin Kumar.
Minimum Cost Blocking Problem in Multi-path Wireless Routing Protocols.
Oblivious Data Structures Xiao Shaun Wang, Kartik Nayak, Chang Liu, T-H. Hubert Chan, Elaine Shi, Emil Stefanov, Yan Huang 1.
ObliVM: A Programming Framework for Secure Computation
ObliVM: A Programming Framework for Secure Computation
GraphSC: Parallel Secure Computation Made Easy Kartik Nayak With Xiao Shaun Wang, Stratis Ioannidis, Udi Weinsberg, Nina Taft, Elaine Shi 1.
1 Architectural Support for Copy and Tamper Resistant Software David Lie, Chandu Thekkath, Mark Mitchell, Patrick Lincoln, Dan Boneh, John Mitchell and.
Hardware Assisted Control Flow Obfuscation for Embedded Processors Xiaoton Zhuang, Tao Zhang, Hsien-Hsin S. Lee, Santosh Pande HIDE: An Infrastructure.
On the Communication Complexity of SFE with Long Output Daniel Wichs (Northeastern) joint work with Pavel Hubáček.
Privacy Preserving Payments in Credit Networks By: Moreno-Sanchez et al from Saarland University Presented By: Cody Watson Some Slides Borrowed From NDSS’15.
Raccoon: Closing Digital Side- Channels through Obfuscated Execution Author: Ashay Rane, Calvin Lin, Mohit Tiwari Presenter: Rongdong Chai.
Cryptography Against Physical Attacks Dana Dachman-Soled University of Maryland
Onion ORAM: A Constant Bandwidth Blowup ORAM
Fast Transmission to Remote Cooperative Groups: A New Key Management Paradigm.
Efficient Leakage Resilient Circuit Compilers
Lower Bounds on Assumptions behind Indistinguishability Obfuscation
Carmit Hazay (Bar-Ilan University, Israel)
CS2100 Computer Organization
Cryptographic hash functions
A Memory Aliased Instruction Set Architecture
OblivP2P: An Oblivious Peer-to-Peer Content Sharing System
Cryptographic Hash Functions
TCC 2016-B Composable Security in the Tamper-Proof Hardware Model under Minimal Complexity Carmit Hazay Bar-Ilan University, Israel Antigoni Ourania.
What's the buzz about HORNET?
Atomic Operations in Hardware
Atomic Operations in Hardware
Group theory exercise.
Architecture Background
Laconic Oblivious Transfer and its Applications
Modern symmetric-key Encryption
Cryptographic Hash Functions
Topic 14: Random Oracle Model, Hashing Applications
Lecture 11: DMBS Internals
Defending against malicious hardware
Cryptographic Hash Functions Part I
Implementation of IDEA on a Reconfigurable Computer
Verifiable Oblivious Storage
Cryptography Lecture 19.
Applications of Blockchains - III
Unconditional One Time Programs and Beyond
Cryptography for Quantum Computers
Cryptography Lecture 24.
AEGIS: Secure Processor for Certified Execution
User-mode Secret Protection (SP) architecture
SPHINCS: practical stateless hash-based signatures
Towards A Standard for Practical Hash-based Signatures
Security Of Wireless Sensor Networks
MICRO-2018 Gururaj Saileshwar1 Prashant Nair1 Prakash Ramrakhyani2
Cryptographic Hash Functions Part I
Sai Krishna Deepak Maram, CS 6410
Security of Wireless Sensor Networks
Shielding applications from an untrusted cloud with Haven
Hashing Hash are the auxiliary values that are used in cryptography.
Helen: Maliciously Secure Coopetitive Learning for Linear Models
Cryptography Lecture 13.
Cryptography Lecture 15.
Cryptography Lecture 18.
Path Oram An Extremely Simple Oblivious RAM Protocol
Cryptography Lecture 15.
Blockchains Lecture 4.
Presentation transcript:

HOP: Hardware makes Obfuscation Practical Kartik Nayak With Christopher W. Fletcher, Ling Ren, Nishanth Chandran, Satya Lokam, Elaine Shi and Vipul Goyal

Compression 1 MB 1 KB Used by everyone, perhaps license it No one should “learn” the algorithm - VBB Obfuscation Another scenario: Release patches without disclosing vulnerabilities

Known Results Heuristic approaches to obfuscation [KKNVT’15, SK’11, ZZP’04] Efficient No guarantees - “Confuse” the user Impossible to achieve program obfuscation in general [BGIRSVY’01]

Approaches Cryptography Secure Processors Indistinguishability Obfuscation [BGIRSVY’01, GGHRSW’13] Not strong enough in practice Non standard assumptions Inefficient [AHKM’14] Cryptography 1. Intel SGX, AEGIS, XOM [SCGDD’03, LTMLBMH’00] Reveal access patterns Obfuscation against s/w only adversaries Secure Processors Using Trusted Hardware Tokens [GISVW’10, DMMN’11, CKZ’13] Boolean circuits Inefficient (FHE, NIZKs) Ascend, GhostRider [FDD’12, LHMHTS’15] Assume public programs

Key Contributions FHE, NIZKs Boolean circuits Efficient obfuscation of RAM programs using stateless trusted hardware token 1 Design and implement hardware system called HOP using stateful tokens 2 5x-238x better than a baseline scheme 8x-76x slower than an insecure system 3 Scheme Optimizations

Using Trusted Hardware Token Sender (honest) Receiver (malicious) Store Key Obfuscate Input2 Input Input3 Output3 Output2 Output Execute

Stateful Token Oblivious RAM Authenticate memory Maintain state between invocations Oblivious RAM load a5, 0(s0) add a5, a4, a5 add a5, a5, a5 Authenticate memory auth Run for a fixed time T oramSt

A scheme with stateless tokens is more challenging Advantage: Enables context switching Given a scheme with stateless tokens, using stateful tokens can be viewed as an optimization

Stateless Token Oblivious RAM Authenticated Encryption Does not maintain state between invocations Oblivious RAM load a5, 0(s0) add a5, a4, a5 add a5, a5, a5 Authenticated Encryption auth PID oramSt auth PID oramSt

Oblivious RAMs are generally not secure against rewinding adversaries Stateless Token - Rewinding load a5, 0(s0) add a5, a4, a5 add a5, a5, a5 Oblivious RAM Time 0: load a5, 0(s0) Time 1: add a5, a4 a5 Rewind! auth’ PID oramSt’ Oblivious RAMs are generally not secure against rewinding adversaries

A Rewinding Attack! Rewind! Rewind! Access Pattern: 3, 3 0 1 2 3 4 5 6 7 A Rewinding Attack! Access Pattern: 3, 3 Access Pattern: 3, 4 4 3 1 4 3 4 7 2 T=0 T=1 T=1 T=0 T = 0: leaf 4, reassigned 2 T = 1: leaf 2, reassigned … Time 0: leaf 4, reassigned … Time 1: leaf 1, reassigned … Rewind! Rewind! T = 0: leaf 4, reassigned 7 T = 1: leaf 7, reassigned … Time 0: leaf 4, reassigned … Time 1: leaf 1, reassigned …

For rewinding attacks, ORAM uses PRFK(program digest, input digest)

Stateless Token – Rewinding on inputs Oblivious RAM auth’ PID oramSt’

For rewinding on inputs, adversary commits input digest during initialization

Main Theorem: Informal Our scheme UC realizes the ideal functionality in the Ftoken-hybrid model assuming ORAM satisfies obliviousness sstore adopts a semantically secure encryption scheme and a collision resistant Merkle hash tree scheme and Assuming the security of PRFs Proof in the paper.

1. Interleaving arithmetic and memory instructions Efficient obfuscation of RAM programs using stateless trusted hardware token 1 Next: 1. Interleaving arithmetic and memory instructions 2. Using a scratchpad Scheme Optimizations 2 Design and implement hardware system called HOP 3

Optimizations to the Scheme – 1. ANM Scheduling Types of instructions – Arithmetic and Memory Naïve schedule: A M A M A M … 1 cycle ~3000 cycles Memory accesses visible to the adversary 12000 extra cycles 1170: load a5,0(a0) 1174: addi a4,sp,64 1178: addi a0,a0,4 117c: slli a5,a5,0x2 1180: add a5,a4,a5 1184: load a4,-64(a5) 1188: addi a4,a4,1 118c: bne a3,a0,1170 M A M A M A M A M A M A Histogram – main loop

Optimizations to the Scheme – 1. ANM Scheduling Types of instructions – Arithmetic and Memory Naïve schedule: A M A M A M … 1 cycle ~3000 cycles Memory accesses visible to the adversary 12000 extra cycles 1170: load a5,0(a0) 1174: addi a4,sp,64 1178: addi a0,a0,4 117c: slli a5,a5,0x2 1180: add a5,a4,a5 1184: load a4,-64(a5) 1188: addi a4,a4,1 118c: bne a3,a0,1170 M A What if a memory access is performed after “few” arithmetic instructions? A A A M AA A A4M schedule: A 2 extra cycles Histogram – main loop

Optimizations to the Scheme - 1. ANM Scheduling Ideally, N should be program independent 𝑁= 𝑀𝑒𝑚𝑜𝑟𝑦 𝐴𝑐𝑐𝑒𝑠𝑠 𝐿𝑎𝑡𝑒𝑛𝑐𝑦 𝐴𝑟𝑖𝑡ℎ𝑚𝑒𝑡𝑖𝑐 𝐴𝑐𝑐𝑒𝑠𝑠 𝐿𝑎𝑡𝑒𝑛𝑐𝑦 = 3000 1 A A A A M A A M 6006 cycles of actual work 2996 A 2998 A < 6000 cycles of dummy work

Amount of dummy work < 50% of the total work Our schedule incurs ≤ 2x- overhead relative to best schedule with no dummy work

Optimizations to the Scheme – 2. Using a Scratchpad void bwt-rle(char *a) { bwt(a, LEN); rle(a, LEN); } void main() { char *inp = readInput(); for (i=0; i < len(inp); i+=LEN) spld(inp + i, LEN, 0); len = bwt-rle(inp + i); Program Why does a scratchpad help? Memory accesses served by scratchpad Why not use regular hardware caches? Cache hit/miss reveals information as they are program independent

For efficiency, use stateful tokens HOP Architecture 512 KB Variant of Path ORAM - Freecursive ORAM - PMMAC - 64 byte block, - 4 GB memory 1. single stage 32b integer base 2. spld 16 KB For efficiency, use stateful tokens

Slowdown Relative to Insecure Schemes 8x-76x Slowdown to Insecure

Conclusion We are the first to design and prototype a secure processor with a matching cryptographically sound formal abstraction in the UC framework Thank You! kartik@cs.umd.edu