All Projects → adombeck → python-sgx

adombeck / python-sgx

Licence: GPL-3.0 license
Python interface to the SGX SDK

Programming Languages

python
139335 projects - #7 most used programming language
c
50402 projects - #5 most used programming language
Makefile
30231 projects
shell
77523 projects

Labels

Projects that are alternatives of or similar to python-sgx

SecretNetwork
𝕊 The Secret Network
Stars: ✭ 466 (+1506.9%)
Mutual labels:  sgx
meta-secure-core
OpenEmbedded layer for the use cases on secure boot, integrity and encryption
Stars: ✭ 80 (+175.86%)
Mutual labels:  sgx
Wasm Micro Runtime
WebAssembly Micro Runtime (WAMR)
Stars: ✭ 2,440 (+8313.79%)
Mutual labels:  sgx
sgx-orchestrator
SGX-aware container orchestrator
Stars: ✭ 35 (+20.69%)
Mutual labels:  sgx
chain
Ternoa's Blockchain to support the secure creation and transfer of Capsules
Stars: ✭ 39 (+34.48%)
Mutual labels:  sgx
cosmix
A Compiler-based System for Secure Memory Instrumentation and Execution in Enclaves
Stars: ✭ 22 (-24.14%)
Mutual labels:  sgx
hardware-attacks-state-of-the-art
Microarchitectural exploitation and other hardware attacks.
Stars: ✭ 29 (+0%)
Mutual labels:  sgx
graphene
Graphene / Graphene-SGX - a library OS for Linux multi-process applications, with Intel SGX support
Stars: ✭ 741 (+2455.17%)
Mutual labels:  sgx
docker-sgx
A Docker image with Intel SGX support.
Stars: ✭ 66 (+127.59%)
Mutual labels:  sgx
lucky
Proof of luck Intel SGX and IPFS based blockchain.
Stars: ✭ 70 (+141.38%)
Mutual labels:  sgx
docker-sgx
Base container for applications using the official Intel SGX SDK
Stars: ✭ 34 (+17.24%)
Mutual labels:  sgx
sgx-tutorial-space18
Tutorial: Uncovering and mitigating side-channel leakage in Intel SGX enclaves
Stars: ✭ 44 (+51.72%)
Mutual labels:  sgx
sgxwallet
sgxwallet is the first-ever opensource high-performance hardware secure crypto wallet that is based on Intel SGX technology. First opensource product on Intel SGX whitelist. Scales to 100,000+ transactions per second. Currently supports ETH and SKALE, and will support BTC in the future. Sgxwallet is under heavy development and use by SKALE network.
Stars: ✭ 50 (+72.41%)
Mutual labels:  sgx
inclavare-containers
A novel container runtime, aka confidential container, for cloud-native confidential computing and enclave runtime ecosystem.
Stars: ✭ 510 (+1658.62%)
Mutual labels:  sgx
confidential-computing-zoo
Confidential Computing Zoo provides confidential computing solutions based on Intel SGX, TDX, HEXL, etc. technologies.
Stars: ✭ 177 (+510.34%)
Mutual labels:  sgx
crust-sworker
sWorker(storage worker) is an offchain storage work inspector of Crust MPoW protocol running inside TEE enclave
Stars: ✭ 30 (+3.45%)
Mutual labels:  sgx

Python SGX

A Python interface to the SGX SDK for Linux. Uses Graphene-SGX to execute Python in an enclave.

Project Status

Not actively maintained as of August 2017.

Probably doesn't even build anymore.

You don't want to use this if you are not prepared to maintain it yourself.

Submodules

The submodules are outdated. Don't file bug reports to the original authors if you use these forks.

  1. Intel SGX Linux Driver

  2. Patched Intel SGX Linux SDK

  3. Patched Graphene Library OS

Installation

  1. Initialize the submodules:

     git submodule update --init
    
  2. Run the submodules' setup scripts:

     cd linux-sgx-driver && ./setup.sh && cd ..
     cd linux-sgx && ./setup.sh && cd ..
     cd graphene && ./setup.sh && cd ..
    
  3. Adjust the paths in config/config.py (or keep the default paths)

  4. Copy the public key of the SGX Remote Attestation Challenger to /etc/python-sgx/challenger_public.key, or delete this line from the config/python3.manifest.template if you don't want to use the remote attestation:

    sgx.trusted_files.challenger_public_key = file:$(CONFIG_DIR)/challenger_public.key

  5. Run the setup script:

     ./setup.sh
    
  6. Add your user to the sgx group:

     sudo usermod -a -G sgx $USER
    

    Note that this will only take effect after a new login.

Uninstallation

  1. Run the uninstallation script:

     sudo ./uninstall.sh
    

Test sealing

python3-sgx tests/test_seal.py seal
python3-sgx tests/test_seal.py unseal
python3-sgx tests/test_sealing_wrapper.py

Note: You have to be in the repository's base directory to be able to run the tests.

Test remote attestation

Note: You need to install the challenger package on the challenging machine and store a copy of the challenger's public key in /etc/python-sgx/challenger_public.key. The SGX Remote Attestation Challenger package contains a script generate_key_pair.py which creates a key in the required format.

  1. Run the Quoting Manager (handles communication with the Quoting Enclave):

     quoting-manager
    
  2. Run the Remote Attestation Manager (handles communication with the challenger):

     sgx-ra-manager
    
  3. Use the SGX Remote Attestation Challenger to connect to the Remote Attestation Manager:

     sgx-ra-challenger -c 127.0.0.1 6789
    
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].