A Framework for Property-preserving Encryption in Wide Column Store Databases
by Tim Waage
Date of Examination:2017-05-05
Date of issue:2017-08-15
Advisor:Dr. Lena Wiese
Referee:Dr. Lena Wiese
Referee:Prof. Dr. Carsten Damm
Files in this item
Name:main (SUB-Version).pdf
Size:2.10Mb
Format:PDF
Description:Dissertation
Abstract
English
While traditional database software usually relies on the relational SQL model, a lot of alternative approaches, commonly referred to as NoSQL (short for \Not only SQL") databases, occurred within the last years to meet the new requirements of the so called "Web 2.0" services, that are hard to achieve with SQL based systems, especially in terms of availability, partition tolerance and scalability. Nowadays, cloud storage providers widely utilize a particular sub-category of NoSQL databases, namely wide column stores, for outsourcing data, whether it is for backups or reducing operational costs. Unfortunately security was not a primary concern of the NoSQL system designers. In most cases some sort of front end is assumed to take care of authentication, user management, etc. Hence these remote cloud servers are not trustworthy when it comes to storing sensitive data, since at least the administrators have full access. However, data confidentiality can still be achieved by using encryption before outsourcing the data, but that limits the options for interaction, since the encrypted data lacks properties of the plaintext data that the database systems rely on. For instance, equality checks or order comparisons are either not possible any more or lead to wrong results. Various schemes have been proposed for property-preserving encryption in order to overcome these issues, allowing a database to process queries over encrypted data. Only very few of them can be considered feasible or have ever been practically implemented. Beside rare exceptions none of them have been tested with existing database systems at all. Hence, this thesis presents a simple to use a application programming interface that allows using property-preserving encryption in unmodified wide column stores. Therefore appropriate schemes have been identified and implemented. It hides the complexity of the encryption and decryption process and allows various adjustments on concrete use cases in order to achieve a maximum of security, functionality and performance.
Keywords: NoSQL; Wide Colum Stores; Property-preserving Encryption; Database Security
German
Während traditionelle Datenbankanwendungen oftmals auf relationalen Tabellen und SQL basieren, entstanden in den letzten Jahren viele alternative Ansätze, die häufig unter dem Sammelbegriff NoSQL (kurz für "Not only SQL") zusammengefasst werden. Ihr Bestreben ist es hauptsächlich den Anforderungen moderner "Web 2.0" Services gerecht zu werden, die mit SQL Datenbanken nur schwer erreicht werden können, vor allem in punkto Hochverfügbarkeit, Partitionstoleranz und Skalierbarkeit. Heutzutage nutzen Cloud-Speicher Anbieter insbesondere NoSQL Technologien einer bestimmten Kategorie, namentlich der sogenannten Spaltenfamiliendatenbanken. Sie ermöglichen die Auslagerung von Daten in die Cloud, sei es für Backups oder einfach um die eigenen laufenden (Server-)Kosten zu senken. Leider wurden diese Technologien jedoch nicht unter Sicherheitsaspekten konzipiert. So wird in der Regel angenommen, dass der Datenbank ein Front-End vorgeschaltet ist, welches sich um Authentifizierung, Nutzerverwaltung etc. kümmert. Der entfernte NoSQL Datenbankserver ist also erst einmal nicht vertrauenswürdig, wenn es darum geht sensible Daten zu speichern. So können beispielsweise dessen Administratoren den Datenbestand ungehindert einsehen. Einen wirksamen Schutz bietet in diesem Fall die Verschlüsselung der Daten noch bevor diese in der Datenbank abgelegt werden. Leider büßt die Datenbank damit aber auch Funktionalität ein, denn den Schlüsseltexten mangelt es in der Regel an bestimmten Eigenschaften, welche die Datenbank zur Beantwortung von Anfragen benötigt. So ändert sich beispielsweise die Ordnungsrelation von numerischen Werten. Es gibt jedoch viele Ansätze zur Durchführung von Verschlüsselung in einer Art und Weise, die diese Eigenschaften erhält und somit die Datenbank trotz Verschlüsselung weiterhin zur Beantwortung von Anfragen befähigt. Nur wenige davon sind jedoch praktisch einsetzbar. Implementationen, die auch eine Nutzbarkeit im Zusammenspiel mit den Datenbanksystemen bringen, existieren kaum (bzw. in Kontext mit NoSQL Datenbanken gar nicht). Die vorliegende Arbeit präsentiert daher eine benutzerfreundliche Programmierschnittstelle, die es erlaubt eigenschaftsbewahrende Verschlüsselung in unmodifizierten Spaltenfamiliendatenbanken einzusetzen. Dafür wurden geeignete Ansätze identifiziert und implementiert. Die Komplexität der Ver- und Entschlüsselungsprozesse bleibt dem Nutzer dabei verborgen, umfangreiche Möglichkeiten zur Anpassung an konkrete Nutzungsszenarien sind aber trotzdem vorhanden, um ein Maximum an Sicherheit, Funktionalität und Geschwindigkeit zu erzielen.
Schlagwörter: NoSQL; Wide Colum Stores; Property-preserving Encryption; Database Security