system for intel sgx
play

System for Intel SGX Adil Ahmad Kyungtae Kim Muhammad Ihsanulhaq - PowerPoint PPT Presentation

Obliviate: A Data Oblivious File System for Intel SGX Adil Ahmad Kyungtae Kim Muhammad Ihsanulhaq Sarfaraz Byoungyoung Lee 1 Clouds? The Ultimate Dream? User Clouds 2 Clouds? The Ultimate Dream? User Clouds 2 Clouds? The Ultimate


  1. 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

  2. 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

  3. 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

  4. 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

  5. Decoupling file system support Application Enclaves Obliviate Disk 13

  6. Decoupling file system support Application Enclaves Obliviate Pass all FS syscalls using encrypted channel Disk 13

  7. Decoupling file system support Application Enclaves Obliviate Allow Obliviate to worry about securing file access Pass all FS syscalls using encrypted channel Disk 13

  8. 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

  9. Legacy application support Application 14

  10. Legacy application support Application Intercept FS syscalls and encrypt T rusted Proxy 14

  11. Legacy application support Application Intercept FS syscalls and encrypt T rusted Proxy Oblivate Exit-less message queue (SCONE [OSDI16], ELEOS [EuroSys17]) Disk 14

  12. 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

  13. Securing ORAM Obliviate Application Disk 15

  14. Securing ORAM Obliviate Need to store ORAM client Application metadata in enclave Position Map Stash Disk 15

  15. Securing ORAM Obliviate ORAM client Application Position Map Obliviate’s enclave is Stash not side-channel free Disk 15

  16. Securing ORAM Obliviate ORAM client Application Position Map Position Map Stash Disk 15

  17. Securing ORAM Obliviate ORAM client Application Position Map Position Map Load from index Stash Disk 15

  18. 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

  19. 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

  20. 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

  21. 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

  22. 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

  23. Extending Enclave Memory Obliviate Disk 16

  24. Extending Enclave Memory Large enclaves degrade Obliviate performance Program EPC Physical Memory Disk 16

  25. 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

  26. 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

  27. Leveraging asynchronicity Obliviate Application Communication Thread Operation Thread Encrypted ORAM Trees C A B D Disk 17

  28. Leveraging asynchronicity Obliviate Application Communication Thread (a) read(1, 0x18289, 4096) Operation Thread Encrypted ORAM Trees C A B D Disk 17

  29. 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

  30. 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

  31. 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

  32. Implementation 1. Obliviate runs using Intel SGX SDK Library 2. Graphene-SGX integration to run “heavyweight” applications, e.g., SQLite and Lighttpd 18

  33. 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

  34. 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

  35. 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

  36. 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

  37. 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

  38. 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

  39. 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

  40. Conclusion 22

  41. Conclusion 1. All existing SGX filesystems are vulnerable to side-channels 22

  42. Conclusion 1. All existing SGX filesystems are vulnerable to side-channels 2. File system operations can leak sensitive information about program execution. 22

  43. 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

  44. 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

  45. Thanks! Merci! Shukriya! 23

  46. Extra Slides 24

  47. Securing file system 25

  48. Securing file system c a b d 25

  49. Securing file system Single ORAM Tree protects file offset c a b d 25

  50. 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