Paul Zinselmeyer
ba8e969470
All checks were successful
Latex Build / build-latex (Assignment 4 - Protokollsicherheit (Praxis)) (push) Successful in 1m2s
Latex Build / build-latex (Assignment 5 - Software Security - Teil 1) (push) Successful in 1m3s
Latex Build / build-latex (Assignment 6 - Software Security - Teil 2) (push) Successful in 1m0s
Latex Build / build-latex (Assignment 4 - Protokollsicherheit (Praxis)) (pull_request) Successful in 30s
Latex Build / build-latex (Assignment 5 - Software Security - Teil 1) (pull_request) Successful in 10s
Latex Build / build-latex (Assignment 6 - Software Security - Teil 2) (pull_request) Successful in 8s
35 lines
2 KiB
Markdown
35 lines
2 KiB
Markdown
# Linux SGX remote attestation
|
|
Example of a remote attestation with Intel's SGX including the communication with IAS.
|
|
|
|
The code requires the installation of Intel SGX [here](https://github.com/01org/linux-sgx) and
|
|
the SGX driver [here](https://github.com/01org/linux-sgx-driver). Furthermore, also a developer account
|
|
for the usage of IAS has be registered [Deverloper account](https://software.intel.com/en-us/sgx).
|
|
After the registration with a certificate (can be self-signed for development purposes), Intel will
|
|
respond with a SPID which is needed to communicate with IAS.
|
|
|
|
The code consists of two separate programs, the ServiceProvider and the Application.
|
|
The message exchange over the network is performed using Google Protocol Buffers.
|
|
|
|
## Installation
|
|
|
|
Before running the code, some settings have to be set in the ```GeneralSettings.h``` file:
|
|
* The application port and IP
|
|
* A server certificate and private key are required for the SSL communication between the SP and the Application (which can be self-signed)<br />
|
|
e.g. ```openssl req -x509 -nodes -newkey rsa:4096 -keyout server.key -out server.crt -days 365```
|
|
* The SPID provided by Intel when registering for the developer account
|
|
* The certificate sent to Intel when registering for the developer account
|
|
* IAS Rest API url (should stay the same)
|
|
|
|
To be able to run the above code some external libraries are needed:
|
|
|
|
* Google Protocol Buffers (should already be installed with the SGX SDK package) otherwise install ```libprotobuf-dev```, ```libprotobuf-c0-dev``` and ```protobuf-compiler```
|
|
|
|
All other required libraries can be installed with the following command
|
|
```sudo apt-get install libboost-thread-dev libboost-system-dev curl libcurl4-openssl-dev libssl-dev liblog4cpp5-dev libjsoncpp-dev```
|
|
|
|
|
|
After the installation of those dependencies, the code can be compiled with the following commands:<br/>
|
|
```cd ServiceProvider```<br />
|
|
```make```<br />
|
|
```cd ../Application```<br />
|
|
```make SGX_MODE=HW SGX_PRERELEASE=1```
|