NeXUS: Practical and Secure Access Control on Untrusted Storage Platforms using Client-Side SGX

With the rising popularity of file-sharing services such as Google Drive and Dropbox in the workflows of individuals and corporations alike, the protection of client-outsourced data from unauthorized access or tampering remains a major security concern. Existing cryptographic solutions to this problem typically require server-side support, involve non-trivial key management on the part of users, and suffer from severe re-encryption penalties upon access revocations. This combination of performance overheads and management burdens makes this class of solutions undesirable in situations where performant, platform-agnostic, dynamic sharing of user content is required. We present NEXUS, a stackable filesystem that leverages trusted hardware to provide confidentiality and integrity for user files stored on untrusted platforms. NEXUS is explicitly designed to balance security, portability, and performance: it supports dynamic sharing of protected volumes on any platform exposing a file access API without requiring server-side support, enables the use of fine-grained access control policies to allow for selective sharing, and avoids the key revocation and file re-encryption overheads associated with other cryptographic approaches to access control. This combination of features is made possible by the use of a client-side Intel SGX enclave that is used to protect and share NEXUS volumes, ensuring that cryptographic keys never leave enclave memory and obviating the need to reencrypt files upon revocation of access rights. We implemented a NEXUS prototype that runs on top of the AFS filesystem and show that it incurs ×2 overhead for a variety of common file and database operations.

[1]  Hovav Shacham,et al.  SiRiUS: Securing Remote Untrusted Storage , 2003, NDSS.

[2]  Jian Jhen Chen,et al.  LPAD : Building Secure Enclave Storage using Authenticated Log-Structured Merge Trees , 2018 .

[3]  Donald E. Porter,et al.  Graphene-SGX: A Practical Library OS for Unmodified Applications on SGX , 2017, USENIX Annual Technical Conference.

[4]  Jacob R. Lorch,et al.  Farsite: federated, available, and reliable storage for an incompletely trusted environment , 2002, OSDI '02.

[5]  Dongsu Han,et al.  Enhancing Security and Privacy of Tor's Ecosystem by Using Trusted Execution Environments , 2017, NSDI.

[6]  Kyungtae Kim,et al.  OBLIVIATE: A Data Oblivious Filesystem for Intel SGX , 2018, NDSS.

[7]  Pascal Felber,et al.  IBBE-SGX: Cryptographic Group Access Control Using Trusted Execution Environments , 2018, 2018 48th Annual IEEE/IFIP International Conference on Dependable Systems and Networks (DSN).

[8]  Christof Fetzer,et al.  Pesos: policy enhanced secure object store , 2018, EuroSys.

[9]  Luigi Catuogno,et al.  A secure file sharing service for distributed computing environments , 2013, The Journal of Supercomputing.

[10]  Johannes Behl,et al.  Troxy: Transparent Access to Byzantine Fault-Tolerant Systems , 2018, 2018 48th Annual IEEE/IFIP International Conference on Dependable Systems and Networks (DSN).

[11]  E. Miller,et al.  Strong security for distributed file systems , 2001, Conference Proceedings of the 2001 IEEE International Performance, Computing, and Communications Conference (Cat. No.01CH37210).

[12]  Carlos V. Rozas,et al.  Intel® Software Guard Extensions (Intel® SGX) Support for Dynamic Memory Management Inside an Enclave , 2016, HASP 2016.

[13]  Shweta Shinde,et al.  BesFS: Mechanized Proof of an Iago-Safe Filesystem for Enclaves , 2018, ArXiv.

[14]  Christopher W. Fletcher,et al.  ZeroTrace : Oblivious Memory Primitives from Intel SGX , 2018, NDSS.

[15]  Steven Myers,et al.  On the Practicality of Cryptographically Enforcing Dynamic Access Control Policies in the Cloud , 2016, 2016 IEEE Symposium on Security and Privacy (SP).

[16]  Valerio Schiavoni,et al.  SGX-FS: Hardening a File System in User-Space with Intel SGX , 2018, 2018 IEEE International Conference on Cloud Computing Technology and Science (CloudCom).

[17]  Dennis Shasha,et al.  Building secure file systems out of byzantine storage , 2002, PODC '02.

[18]  Zhiguang Qin,et al.  A Survey of Proxy Re-Encryption for Secure Data Sharing in Cloud Computing , 2016 .

[19]  Dennis Shasha,et al.  Secure Untrusted Data Repository (SUNDR) , 2004, OSDI.

[20]  David M. Eyers,et al.  LibSEAL: revealing service integrity violations using trusted execution , 2018, EuroSys.

[21]  Yehuda Lindell,et al.  GCM-SIV: Full Nonce Misuse-Resistant Authenticated Encryption at Under One Cycle per Byte , 2015, CCS.

[22]  Ruby B. Lee,et al.  A software-hardware architecture for self-protecting data , 2012, CCS.

[23]  Avishai Wool,et al.  CRUST: Cryptographic Remote Untrusted Storage without Public Keys , 2007, IEEE Security in Storage Workshop.

[24]  Cécile Delerablée,et al.  Identity-Based Broadcast Encryption with Constant Size Ciphertexts and Private Keys , 2007, ASIACRYPT.

[25]  Emmett Witchel,et al.  Ryoan: A Distributed Sandbox for Untrusted Computation on Secret Data , 2016, OSDI.

[26]  Ittai Anati,et al.  Innovative Technology for CPU Based Attestation and Sealing , 2013 .

[27]  Michael Backes,et al.  Lazy revocation in cryptographic file systems , 2005, Third IEEE International Security in Storage Workshop (SISW'05).

[28]  Qian Wang,et al.  Plutus: Scalable Secure File Sharing on Untrusted Storage , 2003, FAST.

[29]  Rüdiger Kapitza,et al.  EndBox: Scalable Middlebox Functions Using Client-Side Trusted Execution , 2018, 2018 48th Annual IEEE/IFIP International Conference on Dependable Systems and Networks (DSN).