Obliviate: memory charm against the OS ☺ Application Enclave Filesystem Enclave Obliviate T rusted Proxy ORAM Trees C A B D 2. Encrypted Disk Channel 12
Obliviate: memory charm against the OS ☺ 3. Data Oblivious Application Enclave Filesystem Enclave Metadata Handling Obliviate T rusted Proxy ORAM Trees C A B D Disk 12
Obliviate: memory charm against the OS ☺ Application Enclave Filesystem Enclave Obliviate 4. Asynchronous ORAM Operation T rusted Proxy ORAM Trees C A B D Disk 12
Obliviate: memory charm against the OS ☺ Application Enclave Filesystem Enclave Obliviate T rusted Proxy ORAM Trees C A B D 5. Extended Disk Secure Region 12
Decoupling file system support Application Enclaves Obliviate Disk 13
Decoupling file system support Application Enclaves Obliviate Pass all FS syscalls using encrypted channel Disk 13
Decoupling file system support Application Enclaves Obliviate Allow Obliviate to worry about securing file access Pass all FS syscalls using encrypted channel Disk 13
Decoupling file system support Application Enclaves Obliviate Allow Obliviate to worry about securing file access Separation of functions facilitates development! Pass all FS syscalls using encrypted channel Disk 13
Legacy application support Application 14
Legacy application support Application Intercept FS syscalls and encrypt T rusted Proxy 14
Legacy application support Application Intercept FS syscalls and encrypt T rusted Proxy Oblivate Exit-less message queue (SCONE [OSDI16], ELEOS [EuroSys17]) Disk 14
Legacy application support Application Intercept FS syscalls and encrypt No changes from the app developer! T rusted Proxy Oblivate Exit-less message queue (SCONE [OSDI16], ELEOS [EuroSys17]) Disk 14
Securing ORAM Obliviate Application Disk 15
Securing ORAM Obliviate Need to store ORAM client Application metadata in enclave Position Map Stash Disk 15
Securing ORAM Obliviate ORAM client Application Position Map Obliviate’s enclave is Stash not side-channel free Disk 15
Securing ORAM Obliviate ORAM client Application Position Map Position Map Stash Disk 15
Securing ORAM Obliviate ORAM client Application Position Map Position Map Load from index Stash Disk 15
Securing ORAM Last-Level Cache Obliviate cache-set 0 cache-set 1 ORAM client Application cache-set 2 cache-set 3 Position Map Position Map Stash Page T able Access Frame # 0 0x1000 0 0x1001 0 0x1002 1 0 0x1003 0x1003 Disk 15
Securing ORAM Last-Level Cache Obliviate Use Conditional Move cache-set 0 cache-set 1 (CMOV) ORAM client Application cache-set 2 cache-set 3 Position Map Position Map Stash Page T able Access Frame # 0 0x1000 0 0x1001 0 0x1002 1 0 0x1003 0x1003 Disk 15
Securing ORAM Last-Level Cache Obliviate Use Conditional Move cache-set 0 cache-set 0 cache-set 1 cache-set 1 (CMOV) ORAM client Application cache-set 2 cache-set 2 cache-set 3 Position Map Position Map Stash Page T able Access Frame # 1 0 0x1000 0x1000 0 1 0x1001 0x1001 0 1 0x1002 0x1002 0 1 0x1003 0x1003 Disk 15
Securing ORAM Last-Level Cache Obliviate Use Conditional Move cache-set 0 cache-set 0 cache-set 1 cache-set 1 (CMOV) ORAM client Application cache-set 2 cache-set 2 cache-set 3 Position Map Position Map Stash Page T able Access Frame # 0 1 0x1000 0x1000 0 1 0x1001 0x1001 1 0 0x1002 0x1002 1 0 0x1003 0x1003 The attacker cannot distinguish CMOV from MOV Disk 15
Securing ORAM Last-Level Cache Obliviate Use Conditional Move cache-set 0 cache-set 0 cache-set 1 cache-set 1 (CMOV) ORAM client Application cache-set 2 cache-set 2 Side-channel resistant ORAM implementation! cache-set 3 Position Map Position Map Stash Page T able Access Frame # 0 1 0x1000 0x1000 1 0 0x1001 0x1001 1 0 0x1002 0x1002 0 1 0x1003 0x1003 The attacker cannot distinguish CMOV from MOV Disk 15
Extending Enclave Memory Obliviate Disk 16
Extending Enclave Memory Large enclaves degrade Obliviate performance Program EPC Physical Memory Disk 16
Extending Enclave Memory Large enclaves degrade Obliviate performance ORAM Client Program Position Map Metadata ( small ) inside enclave EPC Stash Physical Memory ORAM Trees ( large ) outside enclave Encrypted ORAM Trees C A B D Disk 16
Extending Enclave Memory Large enclaves degrade Obliviate performance ORAM Client Program Position Map Metadata ( small ) inside enclave EPC Encrypted ORAM trees outside enclave! Stash Physical Memory ORAM Trees ( large ) outside enclave Encrypted ORAM Trees C A B D Disk 16
Leveraging asynchronicity Obliviate Application Communication Thread Operation Thread Encrypted ORAM Trees C A B D Disk 17
Leveraging asynchronicity Obliviate Application Communication Thread (a) read(1, 0x18289, 4096) Operation Thread Encrypted ORAM Trees C A B D Disk 17
Leveraging asynchronicity Obliviate Application Communication Thread (a) read(1, 0x18289, 4096) Operation Thread (b) Read(A) Encrypted ORAM Trees C A B D Disk 17
Leveraging asynchronicity Obliviate Application Communication Thread (a) read(1, 0x18289, 4096) Operation Thread (c) Reply to the request (c) Write-back(A) (b) Read(A) Encrypted ORAM Trees C A B D Disk 17
Leveraging asynchronicity Obliviate Application Communication Thread (a) read(1, 0x18289, 4096) Perform Asynchronous ORAM write-back! Operation Thread (c) Reply to the request (c) Write-back(A) (b) Read(A) Encrypted ORAM Trees C A B D Disk 17
Implementation 1. Obliviate runs using Intel SGX SDK Library 2. Graphene-SGX integration to run “heavyweight” applications, e.g., SQLite and Lighttpd 18
Performance Evaluation Evaluated filesystems: 1. Native Filesystem (Non-SGX) 2. In-memory Filesystem (SGX, based on Graphene-SGX) 3. Obliviate (SGX, based on Intel SGX SDK) 19
Iozone Benchmarks 10000000 10000000 1000000 1000000 100000 100000 10000 10000 1000 1000 100 100 10 10 1 1 2M 128M 512M 1G 2M 128M 512M 1G Native FS In-memory FS Obliviate Native FS In-memory FS Obliviate a) Sequential Reads (Bytes/sec) b) Sequential Writes (Bytes/sec) 20
Iozone Benchmarks 2-3x overhead over the in-memory FS 10000000 10000000 1000000 1000000 100000 100000 10000 10000 1000 1000 100 100 10 10 1 1 2M 128M 512M 1G 2M 128M 512M 1G Native FS In-memory FS Obliviate Native FS In-memory FS Obliviate a) Sequential Reads (Bytes/sec) b) Sequential Writes (Bytes/sec) 20
Iozone Benchmarks In-memory FS exerts a 2-3x overhead over lot of pressure on EPC the in-memory FS 10000000 10000000 1000000 1000000 100000 100000 10000 10000 1000 1000 100 100 10 10 1 1 2M 128M 512M 1G 2M 128M 512M 1G Native FS In-memory FS Obliviate Native FS In-memory FS Obliviate a) Sequential Reads (Bytes/sec) b) Sequential Writes (Bytes/sec) 20
Comparable performance Iozone Benchmarks for smaller file sizes In-memory FS exerts a 2-3x overhead over lot of pressure on EPC the in-memory FS 10000000 10000000 1000000 1000000 100000 100000 10000 10000 1000 1000 100 100 10 10 1 1 2M 128M 512M 1G 2M 128M 512M 1G Native FS In-memory FS Obliviate Native FS In-memory FS Obliviate a) Sequential Reads (Bytes/sec) b) Sequential Writes (Bytes/sec) 20
Macro-Benchmarks 2500 10000 2000 1500 1000 1000 500 0 100 INSERT SELECT 1K 16K 128K 1M In-memory FS Obliviate In-memory FS Obliviate a) SQLite Response Times (milli-sec) b) Lighttpd Throughput (Req/s) 21
Macro-Benchmarks ~2x overhead over in-memory FS 2500 10000 2000 1500 1000 1000 500 0 100 INSERT SELECT 1K 16K 128K 1M In-memory FS Obliviate In-memory FS Obliviate a) SQLite Response Times (milli-sec) b) Lighttpd Throughput (Req/s) 21
Conclusion 22
Conclusion 1. All existing SGX filesystems are vulnerable to side-channels 22
Conclusion 1. All existing SGX filesystems are vulnerable to side-channels 2. File system operations can leak sensitive information about program execution. 22
Conclusion 1. All existing SGX filesystems are vulnerable to side-channels 2. File system operations can leak sensitive information about program execution. 3. Obliviate provides theoretically-strong defense against side- channels. 22
Conclusion 1. All existing SGX filesystems are vulnerable to side-channels 2. File system operations can leak sensitive information about program execution. 3. Obliviate provides theoretically-strong defense against side- channels. Opensource: https://github.com/adilahmad17/Obliviate Contact: ahmad37@purdue.edu 22
Thanks! Merci! Shukriya! 23
Extra Slides 24
Securing file system 25
Securing file system c a b d 25
Securing file system Single ORAM Tree protects file offset c a b d 25
Securing file system Single ORAM Tree protects file offset c a b d c c Hierarchical a b d a b d ORAM Trees can protect files c c c c a b d a b d a a b d b d 25
Recommend
More recommend