GithubHelp home page GithubHelp logo

dburihabwa / sgx-fs Goto Github PK

View Code? Open in Web Editor NEW
11.0 2.0 1.0 165 KB

Experimental encrypted file system using SGX and FUSE

License: MIT License

Dockerfile 1.08% C++ 85.73% Makefile 9.35% Shell 1.82% C 0.23% Python 1.79%

sgx-fs's Introduction

fusesgx

fusegx is a user-space in-enclave file system.

Dependencies

Most of the dependencies can be installed by running the install.sh script on Ubuntu 16.04:

sudo ./install.sh

On other systems make sure that the following tools and libraries are installed.

  • Intel SGX Driver
  • Intel SGX SDK
  • Intel SGX PSW
  • libfuse 2.9
  • g++

Build

make SGX_MODE=HW SGX_PRERELEASE=1

Run

To run the file system as daemon, run:

./app path/to/mountpoint

To run it in foreground mode, try:

./app -f path/to/mountpoint

To run it in foreground mode with the fuse debug mode, run:

./app -d path/to/mountpoint

sgx-fs's People

Contributors

dburihabwa avatar

Stargazers

Kevin avatar Curl avatar  avatar Benshan Mei avatar Trey Mo avatar Shikhar Vaish avatar XinYao avatar tinyAdapter avatar Quinn Burke avatar Tao Luo avatar Burak Somuncuoğlu avatar

Watchers

 avatar James Cloos avatar

sgx-fs's Issues

Question About sgx-fs Implementation

Hello,
I am trying to understand how do you store the superblock of the file system (or part of it) inside the enclave and preserving it between ECALLs. I see that you have a global file_system pointer and then you initialise it in the function init. Does the new file system object, referenced by the global pointer, exist after the init returns and some other operation is performed via another ECALL? I know that dynamically allocated object inside a function are destroyed after the function returns even if they are referenced by a global pointer. What am i missing? Thank you!

Data races

Data races among the following shared variables and functions.

shared variable function1 function2
_ZL11FILE_SYSTEM enclave_is_file init_filesystem
_ZL11FILE_SYSTEM enclave_mkdir init_filesystem
_ZL11FILE_SYSTEM init_filesystem destroy_filesystem
_ZL11FILE_SYSTEM init_filesystem enclave_readdir
_ZL11FILE_SYSTEM init_filesystem init_filesystem
_ZL11FILE_SYSTEM ramfs_create_file init_filesystem
_ZL11FILE_SYSTEM ramfs_delete_file init_filesystem
_ZL11FILE_SYSTEM ramfs_get init_filesystem
_ZL11FILE_SYSTEM ramfs_get_number_of_entries init_filesystem
_ZL11FILE_SYSTEM ramfs_get_size init_filesystem
_ZL11FILE_SYSTEM ramfs_put init_filesystem
_ZL11FILE_SYSTEM ramfs_trunkate init_filesystem
_ZL11FILE_SYSTEM sgxfs_dump init_filesystem
_ZL11FILE_SYSTEM sgxfs_restore init_filesystem

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.