GithubHelp home page GithubHelp logo

aakahlow / tee-hpc Goto Github PK

View Code? Open in Web Editor NEW

This project forked from lbnl-cybersecurity/tee-hpc

1.0 0.0 0.0 1.19 MB

Artifacts and data for Analysis of Trusted Execution Environments for Secure High Performance Computing

License: Other

Makefile 25.14% Shell 23.90% CMake 50.97%

tee-hpc's Introduction

DOI

tee-hpc

This repository provides artifacts and instructions to use them to perform experiments for the analysis of Trusted Execution Environments (SGX and SEV) for Secure High Performance Computing.

Intel SGX Setup

Intel SGX experiments are performed on an Intel i7-8700 machine. Since, we use SCONE to run SGX experiments there is no need to install the SGX SDK.

Assuming that SGX is enabled in BIOS (look here for instructions, if it is not), the next thing is to install the SGX driver.

The instructions given here can be followed to do that.

To run the SGX experiments:

Follow these instructions to build docker containers for SGX experiments and these instructions to run experiments using the built containers.

AMD SEV Setup

AMD SEV experiments are performed on EPYC-7401P and EPYC-7702 systems. Following instructions can be followed on both systems to set-up the systems to run SEV experiments:

Install few packages that will be needed for the set-up:

apt-get install git flex apt-utils xfce4 xfce4-goodies tightvncserver

We use one of the latest linux kernels (5.4.1) with SEV support to run our experiments. Follow the instructions provided in this link to update the kernel to 5.4.1.

Next, download the official source material for AMD SEV setup and run the provided build script:

git clone --single-branch -b master https://github.com/AMDESE/AMDSEV.git
cd AMDSEV/distros/ubuntu-18.04
./build.sh

This should install required drivers and enable SEV, which can be confirmed using

ls -l /dev/sev

Next, we need to create a VM which will be used to run benchmarks under SEV. Follow the following instructions:

The first step is to create a disk image using qemu-image:

qemu-img create -f qcow2 ubuntu-18.04.qcow2 30G

Next, create a copy of OVMF_VARS.fd which is a "template" used to emulate persistent NVRAM storage (which is needed by each VM)

cp /usr/local/share/qemu/OVMF_VARS.fd OVMF_VARS.fd

Next, download a ubuntu image of your choice from here. We use server edition of ubuntu 18.04:

wget http://releases.ubuntu.com/18.04/ubuntu-18.04.4-live-server-amd64.iso

To install this ubuntu image on the created disk, we need to set up a vnc connection (if this process is performed on a remote server), since ubuntu installer works in graphic mode.

ssh -L 5900+[X]:localhost:5900+X user@[server ip address]

Then run:

launch-qemu.sh -hda ubuntu-18.04.qcow2 -cdrom ubuntu-18.04.4-live-server-amd64.iso -vnc [X] -nosev -console serial

Where, X = Port number to be used - 5900

Follow the instructions there to install ubuntu on the disk image (ubuntu-18.04.qcow2), which will be later used to run guest VM.

SGX and SEV Experiments

To run the benchmarks for both SGX and SEV systems, follow the instructions in run-scripts/README.md.

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.