Offloading Computation to Untrusted Clients
Distributed systems are often designed with untrusted clients in mind. In these systems, centrally managed infrastructure is used to perform computation on behalf of these clients. The main reason for that approach is that system designers refrain from broadly offloading computation to clients due to missing trust. Centrally management infrastructure is thereby inherently trusted, but comes at high asset and management costs. Recently, trusted execution environments have become available in commodity processors. These environments can be used to perform computation on remote infrastructure without fully trusting it. This enables a paradigm shift in the design of many distributed systems: established system architectures can be redesigned by offloading computation to clients that are traditionally untrusted. In this thesis, we propose to redesign certain types of distributed systems by removing costly centrally managed infrastructure. This thesis focuses on systems with centrally managed components such as middleboxes in company networks and web applications. Leveraging trusted execution technology on the client-side, the confidentiality and integrity of computation and associated data can be protected. Depending on the use case scenario and the associated trust relationship, consumed resources need to be accounted in a trusted fashion to reimburse and, thus, incentivise clients.
Die Konzipierung verteilter Systeme geschieht meistens mit Blick auf nicht vertrauenswürdige Clients. In solchen Systemen wird eine zentral verwaltete Infrastruktur verwendet, um Berechnungen im Namen dieser Clients durchzuführen. Der Hauptgrund für diesen Ansatz ist, dass Systementwickler aufgrund von fehlendem Vertrauen von einer weitgehenden Verlagerung von Berechnungen auf Clients absehen. Im Gegensatz dazu ist eine zentral verwaltete Infrastruktur zwar inhärent vertrauenswürdig, aber mit hohen Anschaffungs- und Verwaltungskosten verbunden. Seit kurzem sind vertrauenswürdige Ausführungsumgebungen in Standardprozessoren verfügbar. Diese Umgebungen können zur Ausführung von Berechnungen auf einer entfernten Infrastruktur verwendet werden, ohne, dass dieser vollständig vertraut werden muss. So ermöglichen sie einen einen Paradigmenwechsel bei der Konzipierung vieler verteilter Systeme: Etablierte Systemarchitekturen können so umgestaltet werden, dass Berechnungen auf Clients verlagert werden, welche im herkömmlichen Sinne nicht vertrauenswürdig sind. In dieser Dissertation werden bestimmte Arten von verteilten Systemen neu konzipiert, indem kostspielige, zentral verwaltete Infrastruktur zurück gebaut wird. Dabei konzentriert sich diese Arbeit auf Systeme mit zentral verwalteten Komponenten wie Hardware für Netzwerkanalyse in Unternehmensnetzwerken und Webanwendungen. Durch den Einsatz von Technologien zur vertrauenswürdigen Ausführung auf der Seite von Clients können sowohl die Vertraulichkeit als auch Integrität von Berechnungen und dazugehöriger Daten geschützt werden. Abhängig vom Anwendungsszenario und den damit einhergehenden Vertrauensbeziehungen müssen die dabei benötigten Ressourcen auf vertrauenswürdige Weise abgerechnet werden, um so Clients zu entschädigen und Anreize zur Ausführung zu schaffen.