Secure and efficient processing of outsourced data structures using trusted execution environments


Fuhry, Benny


[img] PDF
DissertationBennyFuhry.pdf - Published

Download (2MB)

URL: https://madoc.bib.uni-mannheim.de/58573
URN: urn:nbn:de:bsz:180-madoc-585730
Document Type: Doctoral dissertation
Year of publication: 2020
Place of publication: Mannheim
University: Universität Mannheim
Evaluator: Armknecht, Frederik
Date of oral examination: 12 January 2021
Publication language: English
Institution: School of Business Informatics and Mathematics > Kryptographie (Juniorprofessur) (Armknecht 2010-2015)
Subject: 004 Computer science, internet
Keywords (English): trusted execution environment , secure processing , data structures
Abstract: In recent years, more and more companies make use of cloud computing; in other words, they outsource data storage and data processing to a third party, the cloud provider. From cloud computing, the companies expect, for example, cost reductions, fast deployment time, and improved security. However, security also presents a significant challenge as demonstrated by many cloud computing–related data breaches. Whether it is due to failing security measures, government interventions, or internal attackers, data leakages can have severe consequences, e.g., revenue loss, damage to brand reputation, and loss of intellectual property. A valid strategy to mitigate these consequences is data encryption during storage, transport, and processing. Nevertheless, the outsourced data processing should combine the following three properties: strong security, high efficiency, and arbitrary processing capabilities. Many approaches for outsourced data processing based purely on cryptography are available. For instance, encrypted storage of outsourced data, property-preserving encryption, fully homomorphic encryption, searchable encryption, and functional encryption. However, all of these approaches fail in at least one of the three mentioned properties. Besides approaches purely based on cryptography, some approaches use a trusted execution environment (TEE) to process data at a cloud provider. TEEs provide an isolated processing environment for user-defined code and data, i.e., the confidentiality and integrity of code and data processed in this environment are protected against other software and physical accesses. Additionally, TEEs promise efficient data processing. Various research papers use TEEs to protect objects at different levels of granularity. On the one end of the range, TEEs can protect entire (legacy) applications. This approach facilitates the development effort for protected applications as it requires only minor changes. However, the downsides of this approach are that the attack surface is large, it is difficult to capture the exact leakage, and it might not even be possible as the isolated environment of commercially available TEEs is limited. On the other end of the range, TEEs can protect individual, stateless operations, which are called from otherwise unchanged applications. This approach does not suffer from the problems stated before, but it leaks the (encrypted) result of each operation and the detailed control flow through the application. It is difficult to capture the leakage of this approach, because it depends on the processed operation and the operation’s location in the code. In this dissertation, we propose a trade-off between both approaches: the TEE-based processing of data structures. In this approach, otherwise unchanged applications call a TEE for self-contained data structure operations and receive encrypted results. We examine three data structures: TEE-protected B+-trees, TEE-protected database dictionaries, and TEE-protected file systems. Using these data structures, we design three secure and efficient systems: an outsourced system for index searches; an outsourced, dictionary-encoding–based, column-oriented, in-memory database supporting analytic queries on large datasets; and an outsourced system for group file sharing supporting large and dynamic groups. Due to our approach, the systems have a small attack surface, a low likelihood of security-relevant bugs, and a data owner can easily perform a (formal) code verification of the sensitive code. At the same time, we prevent low-level leakage of individual operation results. For all systems, we present a thorough security evaluation showing lower bounds of security. Additionally, we use prototype implementations to present upper bounds on performance. For our implementations, we use a widely available TEE that has a limited isolated environment—Intel Software Guard Extensions. By comparing our systems to related work, we show that they provide a favorable trade-off regarding security and efficiency.
Translation of the abstract: Seit einigen Jahren nutzen immer mehr Unternehmen Cloud Computing. Hierbei wird die Datenspeicherung und -verarbeitung zu einer dritten Partei, dem sogenannten Cloud-Anbieter, ausgelagert. Von Cloud Computing versprechen sich Unternehmen unter anderem folgende Vorteile: reduzierte Kosten, schnellere Bereitstellung und erhöhte Sicherheit. Zahlreiche Datenpannen haben jedoch gezeigt, dass mangelnde Sicherheit noch immer ein großes Problem beim Cloud Computing darstellt. Für Unternehmen können solche Datenpannen verheerende Folgen haben, wie z.B. Umsatzeinbruche, Reputationsverlust und Verlust von geistigem Eigentum. Diese negativen Konsequenzen können minimiert werden, wenn die ausgelagerten Daten während der Speicherung, Übertragung und Verarbeitung verschlüsselt sind. Neben der Sicherheit der Daten muss dabei stets eine hohe Effizienz sowie die uneingeschränkte Verarbeitung gewährleistet werden. Bei folgenden, beispielhaft aufgeführten Ansätzen der ausgelagerten Datenverarbeitung beruht die Sicherheit nur auf Kryptographie: verschlüsseltes Auslagern von Daten, eigenschaftserhaltende Verschlüsselung (property-preserving encryption), vollhomomorphe Verschlüsselung (fully homomorphic encryption), durchsuchbare Verschlüsselung (searchable encryption) und funktionale Verschlüsselung (functional encryption). Keiner dieser Ansätze vereint die drei obengenannten Kriterien. Daneben gibt es Ansätze, bei denen die Sicherheit neben Kryptographie auch auf Trusted Execution Environments (TEEs) beruht, die beim Cloud-Anbieter für die Datenverarbeitung eingesetzt werden. TEEs bieten eine isolierte Umgebung, die die Integrität und Vertraulichkeit der darin ausgeführten Programme und der verarbeiteten Daten gegenüber anderen Programmen und physischem Zugriff schützt. Außerdem ist die Effizienz der Datenverarbeitung hoch. TEEs können Objekte von unterschiedlicher Granularität absichern: Auf der einen Seite können komplette Applikationen geschützt werden. Wenngleich dabei der Schutz (bestehender) Applikationen mit geringem Aufwand erfolgen kann, ist dennoch die Angriffsflache groß und potenzielle Datenlecks sind schwer zu bestimmen. Da aktuell verfügbare TEEs eine beschränkte Große der isolierten Umgebung haben, ist dieser Ansatz häufig nicht umsetzbar. Auf der anderen Seite können TEEs einzelne, zustandslose Operationen schützen, die dann von ansonsten unveränderten Applikationen aufgerufen werden. Dieser Ansatz leidet zwar nicht unter den zuvor beschriebenen Problemen, aber ein Angreifer kann das (verschlüsselte) Ergebnis jeder Operation und den genauen Programm-Ablauf lernen. In dieser Dissertation wird ein Kompromiss aus den beiden zuvor beschriebenen Lösungen vorgeschlagen: die Nutzung von TEEs, um Datenstrukturen zu verarbeiten. Dabei verwenden ansonsten unveränderte Applikationen Datenstruktur-Operationen, die in sich abgeschlossen von einer TEE verarbeitet werden. Bestandteil der Untersuchung sind drei Datenstrukturen: TEE-geschützte B+-Bäume, TEE-geschützte Datenbank-Wörterbücher und TEE-geschützte Dateisysteme. Mit diesen Datenstrukturen werden drei sichere und effiziente ausgelagerte Systeme entworfen: ein System für Index-Suchen, eine Wörterbuch-basierte, spaltenorientierte, In-Memory-Datenbank und ein System für den gruppenbasierten Austausch von Dateien. Der in dieser Arbeit vorgestellte Ansatz führt dazu, dass die Systeme eine möglichst kleine Angriffsfläche und eine geringe Anfälligkeit für sicherheitsrelevante Programmierfehler haben. Der sicherheitskritische Programmcode ist einfach zu überprüfen und ein Angreifer kann das Ergebnis einzelner Operationen nicht lernen. Ausführliche Sicherheitsevaluierungen zeigen untere Sicherheitsschranken der Systeme und prototypische Implementierungen werden genutzt, um obere Schranken der Performanz aufzuzeigen. Hierbei kommt Intel Software Guard Extensions, eine weit verbreitete TEE mit beschränkter Größe der isolierten Umgebung, zum Einsatz. (German)




Dieser Eintrag ist Teil der Universitätsbibliographie.

Das Dokument wird vom Publikationsserver der Universitätsbibliothek Mannheim bereitgestellt.




Metadata export


Citation


+ Search Authors in

BASE: Fuhry, Benny

Google Scholar: Fuhry, Benny

+ Download Statistics

Downloads per month over past year

View more statistics



You have found an error? Please let us know about your desired correction here: E-Mail


Actions (login required)

Show item Show item