Chang Liu, Michael Hicks, Elaine Shi The University of Maryland, College Park.

Slides:



Advertisements
Similar presentations
Decision Structures - If / Else If / Else. Decisions Often we need to make decisions based on information that we receive. Often we need to make decisions.
Advertisements

GCSE Computing Lesson 5.
Instruction Set Design
DAP teaching computer architecture at Berkeley since 1977
Compilation 2011 Static Analysis Johnni Winther Michael I. Schwartzbach Aarhus University.
1 Hardware Support for Isolation Krste Asanovic U.C. Berkeley MURI “DHOSA” Site Visit April 28, 2011.
Stanford University CS243 Winter 2006 Wei Li 1 Register Allocation.
1 Software Development Programming Language Features – Branching.
Kai-Min Chung (Academia Sinica) joint work with Zhenming Liu (Princeton) and Rafael Pass (Cornell NY Tech)
Information Security and Cloud Computing Naresh K. Sehgal, Sohum Sohoni, Ying Xiong, David Fritz, Wira Mulia, and John M. Acken 1 NKS.
 Alexandra Constantin  James Cook  Anindya De Computer Science, UC Berkeley.
COE Computer Organization & Assembly Language
ORAM – Used for Secure Computation by Venkatasatheesh Piduri 1.
Automating Efficient RAM- Model Secure Computation Chang Liu, Yan Huang, Elaine Shi, Jonathan Katz, Michael Hicks University of Maryland, College Park.
Protecting User Data in Ubiquitous Computing: Towards Trustworthy Environments Yitao Duan and John Canny UC Berkeley.
CS412/413 Introduction to Compilers Radu Rugina Lecture 16: Efficient Translation to Low IR 25 Feb 02.
Copyright © 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Starting Out with Programming Logic & Design First Edition by Tony Gaddis.
ENEE350 Spring07 1 Ankur Srivastava University of Maryland, College Park Adapted from Computer Organization and Design, Patterson & Hennessy, © 2005.”
Slides prepared by Rose Williams, Binghamton University Chapter 3 Flow of Control Loops in Java.
ENEE350 Ankur Srivastava University of Maryland, College Park Based on Slides from Mary Jane Irwin ( )
PhD/Master course, Uppsala  Understanding the interaction between your program and computer  Structuring the code  Optimizing the code  Debugging.
outline Purpose Design Implementation Market Conclusion presentation Outline.
November 18, 2004 Embedded System Design Flow Arkadeb Ghosal Alessandro Pinto Daniele Gasperini Alberto Sangiovanni-Vincentelli
ObliviStore High Performance Oblivious Cloud Storage Emil StefanovElaine Shi
Fine-Tuning Groth-Sahai Proofs Alex Escala Scytl Secure Electronic Voting Jens Groth University College London.
Operating Systems Should Manage Accelerators Sankaralingam Panneerselvam Michael M. Swift Computer Sciences Department University of Wisconsin, Madison,
Basic Microcomputer Design. Inside the CPU Registers – storage locations Control Unit (CU) – coordinates the sequencing of steps involved in executing.
Oblivious Data Structures Xiao Shaun Wang, Kartik Nayak, Chang Liu, T-H. Hubert Chan, Elaine Shi, Emil Stefanov, Yan Huang 1.
Instructor: Yuzhuang Hu Memory Hierarchy.
ObliVM: A Programming Framework for Secure Computation
CISC105 General Computer Science Class 1 – 6/5/2006.
Cosc 2150: Computer Organization
Hardware Assisted Control Flow Obfuscation for Embedded Processors Xiaoton Zhuang, Tao Zhang, Hsien-Hsin S. Lee, Santosh Pande HIDE: An Infrastructure.
S2008Final_part1.ppt CS11 Introduction to Programming Final Exam Part 1 S A computer is a mechanical or electrical device which stores, retrieves,
The Central Processing Unit (CPU) and the Machine Cycle.
Accelerating Error Correction in High-Throughput Short-Read DNA Sequencing Data with CUDA Haixiang Shi Bertil Schmidt Weiguo Liu Wolfgang Müller-Wittig.
M. Mateen Yaqoob The University of Lahore Spring 2014.
Computer Structure & Architecture 7b - CPU & Buses.
Chapter 1 Introduction Major Data Structures in Compiler
Lecture#15. Cache Function The data that is stored within a cache might be values that have been computed earlier or duplicates of original values that.
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
Exploiting Instruction Streams To Prevent Intrusion Milena Milenkovic.
By Tom and James. Hardware is a physical part of the system that you can pick up and move. There are two types of hardware, external and internal. External.
Dynamic Taint Analysis for Automatic Detection, Analysis, and Signature Generation of Exploits on Commodity Software Paper by: James Newsome and Dawn Song.
1 Overview of Programming Principles of Computers.
KNOWLEDGE-ORIENTED MULTIPARTY COMPUTATION Piotr (Peter) Mardziel, Michael Hicks, Jonathan Katz, Mudhakar Srivatsa (IBM TJ Watson)
Flow Control in Imperative Languages. Activity 1 What does the word: ‘Imperative’ mean? 5mins …having CONTROL and ORDER!
Memory Management Chapter 5 Advanced Operating System.
Interrupts and Exception Handling. Execution We are quite aware of the Fetch, Execute process of the control unit of the CPU –Fetch and instruction as.
A Framework For Trusted Instruction Execution Via Basic Block Signature Verification Milena Milenković, Aleksandar Milenković, and Emil Jovanov Electrical.
CIT 140: Introduction to ITSlide #1 CSC 140: Introduction to IT Operating Systems.
Qin Zhao1, Joon Edward Sim2, WengFai Wong1,2 1SingaporeMIT Alliance 2Department of Computer Science National University of Singapore
Secure Information Flow for Reactive Programming Paradigm Zhengqin Luo SAFA workshop 2009.
Compilers: History and Context COMP Outline Compilers and languages Compilers and architectures – parallelism – memory hierarchies Other uses.
Introduction
Hybrid Cloud Architecture for Software-as-a-Service Provider to Achieve Higher Privacy and Decrease Securiity Concerns about Cloud Computing P. Reinhold.
HOP: Hardware makes Obfuscation Practical Kartik Nayak
5.2 Eleven Advanced Optimizations of Cache Performance
Implementation of Efficient Check-pointing and Restart on CPU - GPU
פרק 2: חיווט, זיכרונות בנקים זוגיים ואי-זוגיים
CMSC 341 Prof. Michael Neary
Implementation of IDEA on a Reconfigurable Computer
Verifiable Oblivious Storage
JavaScript Selection Statement Creating Array
What is an Operating System?
SCONE: Secure Linux Containers Environments with Intel SGX
Programming Concepts and Database
Understand the interaction between computer hardware and software
Segmentation Observation: Programmers don’t think in pages!
Presentation transcript:

Chang Liu, Michael Hicks, Elaine Shi The University of Maryland, College Park

Motivation Cloud computing compromise users’ privacy Transfer both code and data to the cloud provider Threat Model CPU and secure co-processor can be trusted All other hardware is not trusted Memory Memory bus Etc. Encryption is not enough Memory access trace may leak information about secret data

Scenario 1 Program a[x]:=1 Memory bus read(x) readarr(a, x)

Scenario 2 Program if(s) then x:=1 else y:=1 Memory bus read(s) true branch: write (x) false branch: write (y)

Scenario 3 Program 1: if(s) then 2:x:=1 3: else 4:x:=1 Memory bus read(s) true branch: fetch instruction 2 false branch: fetch instruction 4

Oblivious RAM (ORAM)

Problem with ORAM a[] can be store in DRAM w/o encryption a[] can be store in DRAM w/ encryption a[] can be stored in DRAM w/ encryption; b[] and c[] can be stored in two ORAM banks

Observations Some data can be stored in DRAM w/ or w/o encryption Some data need be stored in ORAM We can use multiple ORAM banks to store different data

Question ORAM Secure Inefficient Normal Program Insecure Efficient Tradeoff (This work) Secure Efficient

Questions: How to do this safely? Q1: What programs are secure Memory trace non-interference Q2: How to check if a program is secure A security type system with trace Q3: How to get a secure program A security compiler

Language Syntax

Trace

Memory

Semantics

Memory Trace Non-interference

Security Type System

Security Type System (cont’d)

Soundness

Compilation 1. Type checking Standard 2. Allocating variables to ORAM banks Allocate each secret variable in a separate ORAM bank Other allocation strategy (open) 3. Insert padding instructions (for If) Least common subsequence problem

Evaluation

Asymptotic Analysis Progra m Memory accesses for dataMemory accesses for instructions StrawmanOpt 1Opt 2StrawmanOpt 1Opt 2 Dijstra K-means Mat. mul. Find max.

Simulation Results

Conclusion

Q&A