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.
|