Open sbellem opened 3 years ago
Let's containerize the server and client to make the distinction between the different tasks involved clearer.
The server is responsible for executing the enclave-based application, which includes both trusted and untrusted code:
The client's main goal is to verify that it is interacting with a genuine enclave which is executed some trusted source code.
The first iteration of the prototype can use docker shared volumes for the communication between the server and client.
A second iteration could implement a tiny & lightweight python-based HTTP server, mainly serving two endpoints: GET /quote
& GET /sensordata
.
For demonstration purposes, it may be useful to clearly distinguish between the different phases:
Instead of using the public key that is written to file (
secp256r1.pem
) file to verify the signature, the demo should use the public key from the report data.The remote attestation part plays a key role to establish trust in the public key, meaning that the public key was generated in an genuine enclave, with specific characteristics such as MRENCLAVE and MRSIGNER.