The progress beyond the state of the art was realised as part of four technical work packages:
• In Work Package 1, the project investigated approaches to provide cloud applications a secure execution environment using Intel Software Guard Extensions (SGX). We succeeded in creating a custom toolchain to run existing applications on SGX. By running the application on SGX, the applications data is protected against manipulation and eavesdropping—even from attackers with access to the hardware. SERECA can run a variety of existing software securely, including web servers (Apache, NGINX), data stores (Memcached, Redis, SQLite) and managed runtimes (Java VM, Javascript V8) on an otherwise untrusted cloud infrastructure.
• In Work Package 2, we extended the Vert.x framework with secure communication channels. In addition, to account for the fact that modern applications spanning multiple servers require coordination, we developed a secure coordination service that protects data confidentiality. For ease of deployment, we added transparent support for existing Linux binaries using a library OS approach. Finally, we added support for deploying distributed enclave applications using Docker Swarm.
• In Work Package 3, we created a set of reusable services that form the foundation of our use case applications. The services allow to store data securely, recover after a failure, and control the placement of data within geographic boundaries. The latter is important to abide to regulatory requirements.
• In Work Package 4, we developed two use case applications to showcase the SERECA innovations. As our first use case, we re-engineered an existing version of a water supply monitoring system to run securely in the cloud. Our second use case is a performance monitoring system: sensitive performance data is collected and evaluated in a cloud-based system. SERECA protects the integrity and confidentiality of data in both cases.