Redundancy and Access Permissions in Decentralized File Systems
Total Page:16
File Type:pdf, Size:1020Kb
Lehrstuhl für Netzarchitekturen und Netzdienste Fakultät für Informatik Technische Universität München Redundancy and Access Permissions in Decentralized File Systems Johanna Amann Vollständiger Abdruck der von der Fakultät für Informatik der Technischen Universität München zur Erlangung des akademischen Grades eines Doktors der Naturwissenschaften (Dr. rer. nat.) genehmigten Dissertation. Vorsitzender: Univ.-Prof. Dr. Johann Schlichter Prüfer der Dissertation: 1. Univ.-Prof. Dr. Georg Carle 2. Univ.-Prof. Dr. Kurt Tutschku, Universität Wien 3. TUM Junior Fellow Dr. Thomas Fuhrmann Die Dissertation wurde am 20.06.2011 bei der Technischen Universität München eingereicht und durch die Fakultät für Informatik am 05.09.2011 angenommen. Zusammenfassung Verteilte Dateisysteme sind ein Thema mit dem sich die Informatik immer wieder aufs Neue auseinandersetzt. Die ersten verteilten Dateisysteme sind schon sehr kurz nach dem Aufkommen von Computernetzen entstanden. Traditionell sind solche Systeme serverbasiert, d. h. es gibt eine strikte Unterscheidung zwischen den Systemen welche die Daten speichern und den Systemen welche die Daten abrufen. Diese Architektur hat Vorteile; es wird zum Beispiel angenommen, dass die Server vertrauenswürdig sind. Außerdem gibt es eine inhärente lineare Ordnung der Dateioperationen. Auf der anderen Seite sind solche zentralisierten Systeme schlecht skalierbar, haben einen hohen Administrationsaufwand, eine geringe Fehlertoleranz oder sind teuer im Betrieb. Im Verlauf des letzten Jahrzehnts wurde eine neue Art von verteilten Dateisystemen wiederholt diskutiert. Diese werden dezentrale oder Peer-to-Peer Dateisysteme genannt. Bei diesen Systemen verschwimmt die strenge Trennung zwischen datenspeichernden und datenabrufenden Systemen. Die Daten werden auf allen am Dateisystem teilnehmenden Rechnern gespeichert. Eine solche Systemarchitektur kann viele der Problemstellen server- basierter Systeme ausgleichen. Sie ist unter anderem leicht skalierbar, benötigt wegen der verteilten Architektur eine geringere Bandbreite und hat einen niedrigeren Administrati- onsaufwand. Sie bringt aber neue Herausforderungen mit sich: ihre interne Architektur ist weit komplexer, die benötigten Algorithmen werden noch immer erforscht oder verbessert. Die verschiedenen existierenden Prototypensysteme spielen in der Praxis keine Rolle, da in den bisherigen Betrachtungen einige für die Praxis wichtige Systembestandteile nicht einbezogen wurden. Die vorliegende Arbeit präsentiert einige dieser fehlenden Systembestandteile. Um den Ausfall einzelner Rechner tolerieren zu können, müssen dezentrale Dateisysteme Daten redundant speichern. Diese Arbeit präsentiert ein ressourcensparendes Verfahren, welches eine kontinuierliche Verfügbarkeit der Daten sicherstellt und mit verschiedenen Redundanzalgorithmen verwendet werden kann. In Simulationen, die auf Verkehrsdaten echter Peer-to-Peer Systeme basieren, wird die Effektivität des Verfahrens demonstriert und die Tauglichkeit verschiedener Redundanzalgorithmen für dezentrale Dateispeicherung verglichen. Eine weitere Problematik dezentraler Dateisysteme ist die Durchsetzung von Dateirech- ten. Da es keine vertrauenswürdigen Instanzen gibt, muss die Sicherung der Integrität und Vertraulichkeit durch kryptografische Verfahren erfolgen. Die existierenden Ansätze skalieren nicht, unterstützen keine Benutzergruppen oder benötigen zumindest teilweise vertrauenswürdige Rechner. Diese Arbeit präsentiert ein System, welches Dateirechte nur mittels Kryptografie durchsetzt und gleichzeitig alle diese Voraussetzungen erfüllt. Das 3 System wurde in einem Prototypen implementiert um die Funktionsfähigkeit des Ansatzes zu demonstrieren. Die in dieser Arbeit entwickelten Algorithmen schließen zwei der wichtigsten Funktionali- tätslücken der existierenden Systeme. Es können nun vollkommen dezentrale Dateisysteme, welche für den Nutzer in ihrer Funktionalität nicht von serverbasierenden Systemen un- terscheidbar sind, entwickelt werden. 4 Abstract Distributed file systems are a recurring topic in computer science. The first distributed file systems surfaced shortly after the inception of computer networking. Traditionally these systems are server based; there is a strict distinction between systems that store data and systems that access data. This architecture has advantages; it is e.g. assumed that the servers are trusted and there is an implicit linear order in which the commands are executed. On the other hand, such systems do not scale well, have a high administrative cost, a low tolerance for failure or are expensive to operate. In the last decade, a new kind of distributed file system has been frequently discussed. They are called decentralized or peer-to-peer file systems. In these systems, the strict separation between data storing and data accessing peers becomes blurred. The infor- mation stored in the system is spread among all peers that are part of the file system. Such system architectures are not impeded by many of the problems of server based systems. They are e.g. rapidly scalable, have lower bandwidth requirements because of their decentralized architecture and have a lower administrative overhead. However, these systems also pose new challenges: their internal architecture is much more complex and the required algorithms are still being researched or improved. The existing prototype systems are rarely used in practice because they are missing key features required in the real world. This thesis presents some of these missing system components. To be able to tolerate node failures, decentralized file systems have to use data redundancy. This work shows a resource efficient method that guarantees the continuous availability of the data and can be used with different redundancy algorithms. In simulations that use real-world peer-to-peer network traces, the effectivity of the method is demonstrated and the suitability of the different redundancy algorithms for decentralized data storage is compared. A further problem of decentralized file systems is the enforcement of file access permis- sions. Because there are no trusted nodes in the network, data integrity and confidentiality have to be enforced solely by cryptography. The existing approaches do not scale, do not support user groups or need at least partially trusted network nodes. This thesis presents a cryptographic approach that enforces file permissions and satisfies all these requirements. The system was implemented in a prototype to demonstrate the validity of the approach. The algorithms developed in this thesis close two of the most important functionality gaps of existing systems. They can be used to implement decentralized file systems which are indistinguishable from server based systems from the user’s perspective. 5 Pre-Publications Parts of this dissertation have been pre-published in earlier versions: Adding Cryptographically Enforced Permissions to Fully Decentralized \bullet File Systems Johanna Amann and Thomas Fuhrmann Technical Report TUM-I1107, Technische Universität München, München, Germany, 6. April 2011 A Quantitative Analysis of Redundancy Schemes for Peer-to-Peer Storage \bullet Systems Yaser Houri, Johanna Amann, and Thomas Fuhrmann Proceedings of the 12th International Symposium on Stabilization, Safety, and Security of Distributed Systems (SSS’10), New York City, USA, September 20-22, 2010 Cryptographically Enforced Permissions for Fully Decentralized File \bullet Systems Johanna Amann and Thomas Fuhrmann Proceedings of the 10th IEEE International Conference on Peer-to-Peer Computing 2010 (P2P’10), Delft, the Netherlands, August 25-27, 2010 Unix-like Access Permissions in Fully Decentralized File Systems \bullet Johanna Amann and Thomas Fuhrmann Poster Presentation at the 8th USENIX Conference on File and Storage Technologies (FAST’10), San Jose, California, USA, February 23-26, 2010 IgorFs: A Distributed P2P File System \bullet Johanna Amann, Benedikt Elser, Yaser Houri and Thomas Fuhrmann Proceedings of the 8th IEEE International Conference on Peer-to-Peer Computing (P2P’08), Aachen, Germany, September 8-11, 2008 7 Danksagungen Ich schulde vielen Menschen einen herzlichen Dank, die beim Schreiben dieser Arbeit auf verschiedenste Weise unterstützt haben. Ich danke meinem Doktorvater Dr. Thomas Fuhrmann, ohne dessen Betreuung die- se Dissertation nicht möglich gewesen wäre. Weiterhin danke ich den Mitgliedern der Prüfungskommission Prof. Dr.-Ing. Georg Carle, V.-Prof Dr. Kurt Tutschku sowie dem Vorsitzenden der Prüfungskommission Prof. Dr. Johann Schlichter, ohne deren schnelle Korrektur und zeitliche Flexibilität bei der Terminfindung der Antritt meiner Folgestelle nicht möglich gewesen wäre. Vielen Dank auch an meine Kollegen Benedikt Elser, Björn Saballus und Thomas Nitsche, die sehr zu meiner langfristigen Motivation beigetragen haben. Ich danke weiterhin Florian Sesser, Jean Ledwon, meinem Großvater Horst Rockinger und meinem Vater Anton Amann für die große Hilfe bei der Suche nach Grammatik und Rechtschreibfehlern und für die Kommentare zur Doktorarbeit. Einen besonderen Dank möchte ich noch an Dr. Georg Groh für seine Unterstützung in der Endphase richten. Vielen Dank auch an meine Familie und sowie alle anderen die mich in dieser Zeit unterstützt haben. 9 Contents Zusammenfassung 3 Abstract 5 Pre-publications 7 Danksagungen 9 1. Introduction 17 1.1. Contribution . 19 1.2. Organization . 19 I. Background 23 2. Cryptographic algorithms 25 2.1. Hashing Algorithms . 25 2.2. Symmetric Encryption Algorithms . 26 2.3. Public