On the Trade-Offs in Oblivious Execution Techniques

Slides:



Advertisements
Similar presentations
Algorithms Algorithm: what is it ?. Algorithms Algorithm: what is it ? Some representative problems : - Interval Scheduling.
Advertisements

2. Getting started Hsu, Lih-Hsing. Computer Theory Lab. Chapter 2P Insertion sort Example: Sorting problem Input: A sequence of n numbers Output:
Using Programmer-Written Compiler Extensions to Catch Security Holes Authors: Ken Ashcraft and Dawson Engler Presented by : Hong Chen CS590F 2/7/2007.
Malicious Logic What is malicious logic Types of malicious logic Defenses Computer Security: Art and Science © Matt Bishop.
A Guide to Unix Using Linux Fourth Edition
1 Improving Hash Join Performance through Prefetching _________________________________________________By SHIMIN CHEN Intel Research Pittsburgh ANASTASSIA.
Chapter 3: The Efficiency of Algorithms
Elementary Data Types Scalar Data Types Numerical Data Types Other
BIST vs. ATPG.
Parallel Processing (CS526) Spring 2012(Week 5).  There are no rules, only intuition, experience and imagination!  We consider design techniques, particularly.
Using Unix Shell Scripts to Manage Large Data
UNIX Filters.
Chang Liu, Michael Hicks, Elaine Shi The University of Maryland, College Park.
Secure Embedded Processing through Hardware-assisted Run-time Monitoring Zubin Kumar.
Advanced File Processing
Computer Organization
Unix programming Term: III B.Tech II semester Unit-II PPT Slides Text Books: (1)unix the ultimate guide by Sumitabha Das (2)Advanced programming.
Protecting Data on Smartphones and Tablets from Memory Attacks
Hardware Assisted Control Flow Obfuscation for Embedded Processors Xiaoton Zhuang, Tao Zhang, Hsien-Hsin S. Lee, Santosh Pande HIDE: An Infrastructure.
Analysis of Algorithms These slides are a modified version of the slides used by Prof. Eltabakh in his offering of CS2223 in D term 2013.
Advanced File Processing. 2 Objectives Use the pipe operator to redirect the output of one command to another command Use the grep command to search for.
Disclosure risk when responding to queries with deterministic guarantees Krish Muralidhar University of Kentucky Rathindra Sarathy Oklahoma State University.
CHAPTER 3 GC Java Fundamentals. 2 BASICS OF JAVA ENVIRONMENT  The environment  The language  Java applications programming Interface API  Various.
CISC Machine Learning for Solving Systems Problems Presented by: Alparslan SARI Dept of Computer & Information Sciences University of Delaware
Topic 6: Further System Fundamentals. Fetch-Execute Cycle Review Computer programs are instructions stored in RAM Processor fetches instructions and executes.
Program Efficiency & Complexity Analysis. Algorithm Review An algorithm is a definite procedure for solving a problem in finite number of steps Algorithm.
11 World-Leading Research with Real-World Impact! ZeroVM Backgroud Prosunjit Biswas Institute for Cyber Security University of Texas at San Antonio April.
Abstract With the advent of cloud computing, data owners are motivated to outsource their complex data management systems from local sites to the commercial.
CS 361 – Chapters 8-9 Sorting algorithms –Selection, insertion, bubble, “swap” –Merge, quick, stooge –Counting, bucket, radix How to select the n-th largest/smallest.
Computer Organization & Assembly Language © by DR. M. Amer.
AP Computer Science edition Review 1 ArrayListsWhile loopsString MethodsMethodsErrors
Computer Organization. The digital computer is a digital system that performs various computational tasks Digital computer use binary number system which.
Raccoon: Closing Digital Side- Channels through Obfuscated Execution Author: Ashay Rane, Calvin Lin, Mohit Tiwari Presenter: Rongdong Chai.
Differential Privacy Xintao Wu Oct 31, Sanitization approaches Input perturbation –Add noise to data –Generalize data Summary statistics –Means,
Computer Programming for Biologists Class 4 Nov 14 th, 2014 Karsten Hokamp
Secure Data Outsourcing
Privacy-Preserving Data Aggregation without Secure Channel: Multivariate Polynomial Evaluation Taeho Jung 1, XuFei Mao 2, Xiang-Yang Li 1, Shao-Jie Tang.
All Your Queries are Belong to Us: The Power of File-Injection Attacks on Searchable Encryption Yupeng Zhang, Jonathan Katz, Charalampos Papamanthou University.
Filters and Utilities. Notes: This is a simple overview of the filtering capability Some of these commands are very powerful ▫Only showing some of the.
หัวข้อบรรยาย Stream cipher RC4 WEP (in)security LFSR CSS (in)security.
INTRODUCTION TO COMPUTERS. A computer system is an electronic device used to input data, process data, store data for later use and produce output in.
Panoply: Low-TCB Linux Applications With SGX Enclaves
Topic 36: Zero-Knowledge Proofs
APPENDIX A Hardware and Software Basics
Trusted Computing and the Trusted Platform Module
EnGarde: Mutually Trusted Inspection of SGX Enclaves
OblivP2P: An Oblivious Peer-to-Peer Content Sharing System
Technology Literacy Hardware.
Chapter 6 Filters.
OblivP2P: An Oblivious Peer-to-Peer Content Sharing System
HOP: Hardware makes Obfuscation Practical Kartik Nayak
CS154, Lecture 18:.
This presentation uses a free template provided by FPPT.com PRESENTED BY, R.Mohammed yasik.
563.10: Bloom Cookies Web Search Personalization without User Tracking
Verifiable Oblivious Storage
Secure Processing On-Chip
Memory and Address Protection Covert Channels
Akshay Tomar Prateek Singh Lohchubh
Cloud Security 李芮,蒋希坤,崔男 2018年4月.
Units with – James tedder
Chapter 29: Program Security
Sai Krishna Deepak Maram, CS 6410
SCONE: Secure Linux Containers Environments with Intel SGX
Shielding applications from an untrusted cloud with Haven
Maria Méndez Real, Vincent Migliore, Vianney Lapotre, Guy Gogniat
Bruce Maggs (with some slides from Bryan Parno)
Bruce Maggs (with some slides from Bryan Parno)
TEE-Perf A Profiler for Trusted Execution Environments
Stefano Tempesta Secure Machine Learning with SQL Server Always Encrypted with Secure Enclaves.
COMPUTING.
Presentation transcript:

On the Trade-Offs in Oblivious Execution Techniques Shruti Tople and Prateek Saxena National University of Singapore

Motivation Privacy preserving computation is important Health data, financial data, personal documents Secure computation FHE, PHE, Garbled Circuits Middle ground: Trusted Computing ARM Trustzones AMD Memory Encryption Intel SGX

Problem Beyond ensuring security of each low-level operation A Challenge: Input Oblivious Execution No leakage about input Via execution profile or any side channels We study this problem when: Program runs within hardware isolated enclaves Input and output are encrypted Program I O

Research Questions To understand privacy vs. performance trade-off? What are the fundamental limitations in ensuring input-obliviousness? Do these limitations manifest in practical applications? To understand privacy vs. performance trade-off?

Contributions What are the fundamental limitations in ensuring input-obliviousness? Composibility or logic reuse Leakage Channel Morphism Do these limitations manifest in practical applications? Affirmative based on CoreUtils applications To understand privacy vs. performance trade-off? 2 applications incur exponential overhead

Enclaved Execution Setting

Threat Model Attacker’s knowledge set: Enclave Program Untrusted Program Compromised OS Trusted program within enclave OS can invoke applications / enclaves Filesystem accesses via OS Input / Output Encrypted (Filesystem) Encrypted Storage Read Operating System Syscall Interface Filesystem Mgmt. Write Secure Processor Attacker’s knowledge set: Encrypted input and output, their size Enclave program logic Execution profile of enclave

Leakage Channels Execution profile consists of : Sequence of read/write calls Size of data bytes File Access Patterns Time Interval Goal : To leak no additional information about the input beyond attacker’s knowledge set

Fundamental Limitations

Composibility Composition of leakage from several programs Leaks the frequency of characters! $nl input.txt 1 E (1) E ( ) E (H) E (e) E (l) E(o) fold_out.txt E(Hello) Input.txt $split - l E(1) fold_out.txt 3 E(1) E( ) E(H) E(e) E(l) E(o) s1.txt s2.txt s3.txt s4.txt s5.txt s6.txt s7.txt E(1 Hello) nl_out.txt $fold - w E(1 Hello) nl_out.txt 2 $comm s5.txt s6.txt 4 E(l) Logic-Reuse Attack

Channel Morphism Fixing one channel exacerbates another! while((line2=getline(inbuffer)) != NULL){ if ((linecompare(line1, line2)) == true) match = true; else{ if (match == true){ write(repeat_out, line1, 1, strlen(line1)); match = false; } else write(uniq_out, line1, 1, strlen(line1)); line1 = line2; Original Program while(…) { … if (match ==true) strcat(r_buf, line1); match = false; else strcat(u_buf, line1); } write(repeat_out, r_buf,1, strlen(rbuf)); write(uniq_out, u_buf, 1, stlen(u_buf)); Transformed Program Time of write calls leaks no. of repeated and unique lines in input file To hide leakage from this channel Concatenate lines & Shift write calls outside the while loop Leakage morphs from Time to Size of data The calls write different size of data to each file Fixing one channel exacerbates another!

Exponential Overhead Eliminate all side-channels Exponentially worse runtime Eliminating leakage in ‘split’ program - Splits on new line (‘\n’) - Writes each line to a file - Leaks no. of lines in input file n_read=safe_read(STDIN_FILENO, buf, bufsize); while(true){ bp =memchr(bp, ‘\n’, eob-bp+1); if (bp ==eob) break; ++bp; if (++n >= n_lines){ cwrite(new_file_flag, bp_out, bp – bp_out); bp_out = bp; new_file_flag = true; n = 0;} } For a 1 GB input file Best case – Only 1 line Worst case – 230 lines Thus, hiding leakage incurs exponential blow up in overhead

Defenses and Limitations

Deterministic To ensure same profile for all inputs of same size Padding dummy data bytes Add fake instructions Linear scan all possible files Upper bound for loops Worst-case performance Undecidability of static analysis

Randomization To make execution profiles indistinguishable Addition of noise Random padding Inserting intermittent fake calls Knowledge of input distribution Infeasible profile Inufficient entropy

Evaluation

Case Studies To understand the “privacy vs. performance” trade-off in practice, we select: CoreUtils: Commonly used across platforms 30 file-based input applications Each program executes within enclave paste, sort, shuf, ptx, expand,pr, unexpand,tac, grep, cut, join, sum uniq, comm, fold, od,fmt, nl, cksum mdsum, tr, head, tail, tsort, split, csplit,file, wc, cat, base64

No Overhead 6 applications are input-oblivious by default sum, cksum, cat, base64, od and md5sum while((bytes_read = fread (buf, 1, BUFLEN, fp)) > 0){ unsigned char*cp = buf; length += bytes_read; while(bytes_read--){ crc = (crc << 8) ^ crctab | ((crc >> 24) ^ *cp++); if(feof(fp)) break; } printf (“%u, %s”, crc, fp);

Incur Performance Penalty Transformed with constant overhead 11 applications With O(N) overhead Other 11 applications 2 applications exhibit exponential overhead

Take away Enclaved execution does not directly enable privacy preserving computation Achieving input-obliviousness does exhibit fundamental limitations in practical applications Ensuring privacy incurs exponential overhead in worst case

Thanks! Email : shruti90@comp.nus.edu.sg