In DITAS, the TUB team works on privacy and security solutions, which can satisfy non-functional requirements for the virtual data containers (VDCs). Thus, this blog post is used to introduce two components to enhance microservice-based applications in DITAS with additionally required security and privacy mechanisms.

Both solutions are implemented as proxies and following the sidecar pattern to be able to enhance existing services or applications easily. They can be used to augment established architectures concerning security and privacy features.

Security Proxy

The security proxy is one of the sidecars used to observe and augment the behavior of VDCs within the DITAS project. The agent acts as an ingress controller to the VDC and observes any incoming and outgoing traffic. It can automatically add transport encryption to older systems or legacy services. It can auto-generate new SSL certificates when they are needed. Alternatively, it can use the infrastructure to generate new certificates via lets encrypt, that are automatically trusted by most browsers.

Furthermore, it supports the OpenTracing protocol and offers logic to add specific tracing based on the content of a request. Lastly, the Security Proxy supports OAuth 2.0 and can be used to reject all incoming HTTP(S) requests that do not contain a valid token. Therefore, it can act as a simple and easily integrable access control solution.

This proxy can of course be used not only within the DITAS context but can, with a little modification, add the same benefits to other microservice deployments. For more information on how to use it, have a look at github.

(original image not part of the content)
Figure 1: Security Proxy Component Overview

Privacy Proxy

The privacy proxy aims to facilitate GDPR compliant data processing based on technical mechanisms for consent management and purpose-limitation. Like the security proxy, it can be used as a sidecar that acts as an ingress controller. Following this pattern, the privacy proxy enhances existing services used to request user data with an easily integrable purpose-based access control mechanism. Data subjects can specify their preferences regarding the usage of their data, and these preferences are stored as privacy policies. In case of an incoming data request, the privacy proxy analyses the corresponding privacy policy and regulates the access to the requested data according to the preferences of the data subject. The proxy does not need to modify any existing data and instead can enforce purpose-based access control for any existing API. This work is based on our previous project, EMIDD. For some scientific background, see this paper.

(original image not part of the content)
Figure 2: Privacy Proxy Architecture

Status

While the implementation of the security proxy is finished and the component can be used immediately, the development of the privacy proxy is an ongoing process and will be finished at the latest by the end of the project.