TUM Logo

Developing secure storage for the Keystone Enclave

Developing secure storage for the Keystone Enclave

Supervisor(s): Mathias Morbitzer , Lukas Auer
Status: inprogress
Topic: Others
Author: Benedikt Kopf
Submission: 2019-09-16
Type of Thesis: Bachelorthesis
Thesis topic in co-operation with the Fraunhofer Institute for Applied and Integrated Security AISEC, Garching

Description

Processing privacy sensitive data such as health or biomedical data in the cloud offers a lot of
chances but also poses privacy issues, because the data is handled and stored by a third party which
could loose or abuse the data. Trusted Execution Environments (TEEs) are a possible solution for
secure cloud computing where no trust relationship to the server’s Operating System (OS) is
required. In some situations a TEE needs to store information to persistent storage. This feature is
important if the TEE wants to save a partly finished working set in order to resume the computation
to a later point of time.
One implementation of a TEE is the Keystone enclave for the RISC-V Instruction Set Architecture
(ISA). But this enclave implementation lacks the so called data sealing feature, which enables the
enclave to save confidential data to untrusted, non volatile memory. The non volatile memory is
untrusted memory because it is controlled by the untrusted OS.
This work analyzes the existing enclave implementations Intel SGX, Sanctum and OP-TEE with
respect to data sealing and inter enclave communication mechanisms. Based on the gained
knowledge, this thesis presents a data sealing mechanism for the Keystone enclave. This
mechanism enables the enclave to derive a key, which is bound to the identity of the enclave and the
underlying components including the hardware. This key can be used to encrypt the data stored in
untrusted memory.
At last, a proof of concept implementation of the key derivation mechanism is described. The seal
key derivation feature is a useful extension to Keystone because it makes the implementation
suitable for applications that depend on persistent storage.