Technische Universität Chemnitz Fakultät für Informatik Lehrstuhl Rechnernetze und verteilte Systeme

Ähnliche Dokumente
Datensicherung. Beschreibung der Datensicherung

Fachbericht zum Thema: Anforderungen an ein Datenbanksystem

Informatik für Ökonomen II HS 09

FTP-Leitfaden RZ. Benutzerleitfaden

Spotlight 5 Gründe für die Sicherung auf NAS-Geräten

Verwendung des IDS Backup Systems unter Windows 2000

Inkrementelles Backup

Verschlüsselung. Kirchstraße 18 Steinfelderstraße Birkweiler Bad Bergzabern Fabian Simon Bfit09

peer-to-peer Dateisystem Synchronisation

Verschlüsseln Sie Ihre Dateien lückenlos Verwenden Sie TrueCrypt, um Ihre Daten zu schützen.

Einrichten einer Festplatte mit FDISK unter Windows 95/98/98SE/Me

Digitale Magazine ohne eigenen Speicher

11. Das RSA Verfahren und andere Verfahren

Übersicht. Was ist FTP? Übertragungsmodi. Sicherheit. Öffentliche FTP-Server. FTP-Software

Digitale Signaturen. Sven Tabbert

Upgrade auf die Standalone Editionen von Acronis Backup & Recovery 10. Technische Informationen (White Paper)

KURZANLEITUNG CLOUD OBJECT STORAGE

Lizenzen auschecken. Was ist zu tun?

Verteilte Systeme Unsicherheit in Verteilten Systemen

Das Handbuch zu Simond. Peter H. Grasch

Anleitung zum Prüfen von WebDAV

FrogSure Installation und Konfiguration

Inhalt. 1 Einleitung AUTOMATISCHE DATENSICHERUNG AUF EINEN CLOUDSPEICHER

Virtual Private Network. David Greber und Michael Wäger

Avira Support Collector. Kurzanleitung

Das RSA-Verschlüsselungsverfahren 1 Christian Vollmer

Senden von strukturierten Berichten über das SFTP Häufig gestellte Fragen

Netzsicherheit I, WS 2008/2009 Übung 12. Prof. Dr. Jörg Schwenk

Backup Premium Kurzleitfaden

10.6 Authentizität. Geheimhaltung: nur der Empfänger kann die Nachricht lesen

Anleitung zur Erstellung einer Batchdatei. - für das automatisierte Verbinden mit Netzlaufwerken beim Systemstart -

Zeichen bei Zahlen entschlüsseln

Speicher in der Cloud

Funktion rsync mit den actinas Cube Systemen.

Man liest sich: POP3/IMAP

.htaccess HOWTO. zum Schutz von Dateien und Verzeichnissen mittels Passwortabfrage

Verteilte Systeme. Übung 10. Jens Müller-Iden

SDD System Design Document

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

Erstellen einer digitalen Signatur für Adobe-Formulare

Avira Management Console Optimierung für großes Netzwerk. Kurzanleitung

Datenempfang von crossinx

Verwendung des Terminalservers der MUG

Daten Sichern mit dem QNAP NetBak Replicator 4.0

Root-Server für anspruchsvolle Lösungen

Meldung Lokale Anwendung inkompatibel oder Microsoft Silverlight ist nicht aktuell bei Anmeldung an lokal gespeicherter RWE SmartHome Anwendung

SafeRun-Modus: Die Sichere Umgebung für die Ausführung von Programmen

Das Kerberos-Protokoll

Schrittweise Anleitung zur Installation von Zertifikaten der Bayerischen Versorgungskammer im Mozilla Firefox ab Version 2.0

Einrichtung des Cisco VPN Clients (IPSEC) in Windows7

GFAhnen Datensicherung und Datenaustausch

Abamsoft Finos im Zusammenspiel mit shop to date von DATA BECKER

Um dies zu tun, öffnen Sie in den Systemeinstellungen das Kontrollfeld "Sharing". Auf dem Bildschirm sollte folgendes Fenster erscheinen:

Verwalten und Organisieren von Fotos,

IntelliRestore Seedload und Notfallwiederherstellung

Leitfaden zur ersten Nutzung der R FOM Portable-Version für Windows (Version 1.0)

Memeo Instant Backup Kurzleitfaden. Schritt 1: Richten Sie Ihr kostenloses Memeo-Konto ein

Anti-Botnet-Beratungszentrum. Windows XP in fünf Schritten absichern

Übung: Verwendung von Java-Threads

dpa-infocom - Datenlieferung

crm-now/ps Webforms Webdesigner Handbuch Erste Ausgabe

Umgang mit der Software ebuddy Ändern von IP Adresse, Firmware und erstellen von Backups von ewon Geräten.

Universal Dashboard auf ewon Alarmübersicht auf ewon eigener HTML Seite.

Anleitung zum ebanking KOMPLETT - Computercheck So aktualisieren Sie Ihr Microsoft-Betriebssystem

geben. Die Wahrscheinlichkeit von 100% ist hier demnach nur der Gehen wir einmal davon aus, dass die von uns angenommenen

2 Die Terminaldienste Prüfungsanforderungen von Microsoft: Lernziele:

Datenübertragungsportal

Sichern der persönlichen Daten auf einem Windows Computer

SANDBOXIE konfigurieren

Firmware-Update, CAPI Update

ANYWHERE Zugriff von externen Arbeitsplätzen

Beschreibung und Bedienungsanleitung. Inhaltsverzeichnis: Abbildungsverzeichnis: Werkzeug für verschlüsselte bpks. Dipl.-Ing.

Ist das so mit HTTPS wirklich eine gute Lösung?

Handbuch ECDL 2003 Basic Modul 5: Datenbank Grundlagen von relationalen Datenbanken

Anleitung zum Computercheck Windows Firewall aktivieren oder eine kostenlose Firewall installieren

BOKUbox. Zentraler Informatikdienst (ZID/BOKU-IT) Inhaltsverzeichnis

Erste Hilfe. «/IE Cache & Cookies» Logout, alte Seiten erscheinen, Erfasstes verschwindet?

Quickstep Server Update

Bayerische Versorgungskammer

Folgende Einstellungen sind notwendig, damit die Kommunikation zwischen Server und Client funktioniert:

Datenbank-Verschlüsselung mit DbDefence und Webanwendungen.

Angebot & Rechnung, Umsatzsteuer, Mein Büro Einrichtung automatischer Datensicherungen

5. Testen ob TLS 1.0 auf Ihrem System im Internet-Explorer fehlerfrei funktioniert

Konfiguration VLAN's. Konfiguration VLAN's IACBOX.COM. Version Deutsch

Umstellung des Schlüsselpaares der Elektronischen Unterschrift von A003 (768 Bit) auf A004 (1024 Bit)

Seite 1 von 14. Cookie-Einstellungen verschiedener Browser

Kryptographische Anonymisierung bei Verkehrsflussanalysen

Helmut Kleinschmidt. Pflicht ab

Information zum SQL Server: Installieren und deinstallieren. (Stand: September 2012)

PeDaS Personal Data Safe. - Bedienungsanleitung -

Prozessbewertung und -verbesserung nach ITIL im Kontext des betrieblichen Informationsmanagements. von Stephanie Wilke am

2. Zusätzliche tägliche Sicherung im Ordner Upload

Bernd Blümel. Verschlüsselung. Prof. Dr. Blümel

Task: Nmap Skripte ausführen

Step by Step Webserver unter Windows Server von Christian Bartl

Die Beschreibung bezieht sich auf die Version Dreamweaver 4.0. In der Version MX ist die Sitedefinition leicht geändert worden.

Transkript:

Technische Universität Chemnitz Fakultät für Informatik Lehrstuhl Rechnernetze und verteilte Systeme Diplomarbeit Verteilte Datensicherung unter Nutzung von Peer-to-Peer-Konzepten erstellt von: Christian Krause Betreuender Hochschullehrer: Prof. Dr. Uwe Hübner Beginn: 1. Mai 2002 Abgabedatum: 14. November 2002 Dieses Dokument entstand unter Verwendung des Textsatzsystems LATEX. Die Arbeit wurde nach den Regeln der neuen amtlichen Rechtschreibung verfasst. Die in diesem Dokument erwähnten Produktbezeichnungen sind in den meisten Fällen auch eingetragene Warenzeichen und unterliegen als solche den gesetzlichen Bestimmungen.

Zusammenfassung Diese Arbeit beschreibt ein Konzept für eine verteilte Datensicherung unter Nutzung freier Ressourcen von Arbeitsplatzrechnern. Das vorzustellende System beinhaltet entsprechende Maßnahmen, um sowohl die Authentizität und Vertraulichkeit der zu sichernden Daten zu gewährleisten, als auch eine möglichst hohe Wahrscheinlichkeit für die Wiederherstellung zu erreichen. iii

Erklärungen Haftungsausschluss Der Autor und die Technische Universität Chemnitz übernehmen keine Haftung für Schäden, die sich aus der Benutzung dieser Arbeit oder der zugehörigen Software ergeben. Schutzrechte Eingetragene Waren- und Markenzeichen sind im Text nicht als solche gekennzeichnet. Das Fehlen der Kennzeichnung bedeutet nicht, dass diese Zeichen frei verwendbar sind. Mir sind zum Zeitpunkt der Abgabe keine Ansprüche Dritter an dieser Arbeit und der zugehörigen Software bekannt. Selbständigkeitserklärung Ich versichere mit meiner Unterschrift, dass ich diese Diplomarbeit selbständig verfasst und nur die angegebenen Quellen und Hilfsmittel verwendet habe. Chemnitz, den 14. November 2002 Christian Krause v

Aufgabenstellung Nutzung von Ressourcen von Arbeitsplatzrechnern zur Datensicherung. Verschiedene konzeptionelle Möglichkeiten einer verteilten Datensicherung sind zu untersuchen und hinsichtlich ihrer Eignung und Realisierbarkeit zu beurteilen. Ebenso sind vorhandene Ansätze auf diesem Gebiet zu recherchieren und zu bewerten. Bestandteil der Arbeit soll ein Bewertungssystem für die Zuverlässigkeit der Klienten sein. Das Potential und die Verwendbarkeit vorhandener Protokolle, Algorithmen und Open-Source-Software ist abzuschätzen. Die Brauchbarkeit der Konzepte soll mit einer Prototyp-Implementierung gezeigt werden. vii

Inhaltsverzeichnis 1 Einleitung 1 1.1 Motivation................................... 1 1.2 Sicherheitsaspekte............................... 1 1.3 Einordnung und vorhandene Lösungen.................... 2 1.3.1 Systeme mit verteilter Datenspeicherung............... 2 1.3.2 Einordnung der verteilten Datensicherung.............. 3 1.3.3 pstore.................................. 4 1.3.4 India Projekt.............................. 4 1.3.5 PASIS Architektur........................... 5 1.3.6 Linux Network Block Devices..................... 6 1.4 Mögliche Anwendungsgebiete......................... 6 2 Konzepte und Lösungsvarianten 7 2.1 Anforderungen an Datensicherungen..................... 7 2.2 Kurzbeschreibung des Systems........................ 8 2.2.1 Architektur............................... 8 2.2.2 Schnittstelle nach außen........................ 8 2.3 Sicherheit.................................... 10 2.3.1 Zuverlässigkeit............................. 10 2.3.2 Vertraulichkeit............................. 12 2.3.3 Integrität................................ 14 2.4 Bewertung.................................... 14 2.4.1 Allgemein................................ 14 2.4.2 Bewertungskriterien beim verteilten Backup............. 15 2.4.3 Ermittlung der Statistikdaten..................... 15 2.4.4 Auswertung und Wichtung der Daten................ 17 2.5 Verwaltung der Metadaten beim Klienten.................. 17 2.5.1 Nicht wiederbeschaffbare Daten.................... 18 2.5.2 Konfigurationsdaten.......................... 18 2.5.3 Wiederbeschaffbare Daten....................... 18 2.6 Finden der Server................................ 19 2.7 Software beim Server.............................. 19 2.7.1 Zu nutzende Protokolle........................ 20 2.8 Einordnung in vorhandene Konzepte..................... 20 ix

3 Grundlagen 21 3.1 Kommunikationsmodelle............................ 21 3.1.1 Klient-Server.............................. 21 3.1.2 Peer-To-Peer.............................. 21 3.2 Verschlüsselungsalgorithmen.......................... 22 3.2.1 Blowfish................................. 22 3.2.2 Modi von blockorientierten Verschlüsselungsverfahren....... 23 3.3 Verdichtungsalgorithmen............................ 24 3.3.1 Einweg-Hashfunktionen........................ 24 3.3.2 SHA-1.................................. 24 3.3.3 HMAC................................. 24 3.4 Verteilungsalgorithmen............................. 25 3.4.1 RAID.................................. 25 3.4.2 IDA................................... 26 3.4.3 AIDA.................................. 28 3.5 Protokolle.................................... 28 3.5.1 HTTP.................................. 28 3.5.2 SSL/TLS................................ 30 3.6 Multicast.................................... 31 4 Implementierung 33 4.1 Entwurf..................................... 33 4.1.1 Überblick................................ 33 4.1.2 Schnittstelle............................... 33 4.1.3 Unterstützung für dynamische IPs.................. 34 4.1.4 Ablauf der Kommunikation...................... 34 4.1.5 Semantik beim Server......................... 34 4.1.6 Semantik beim Klienten........................ 36 4.1.7 HTTP-Übertragungsprotokoll..................... 37 4.1.8 Multicast-Signalisierungprotokoll................... 37 4.1.9 Control-Datei.............................. 38 4.2 Entwicklungsumgebung............................ 38 4.2.1 System................................. 38 4.2.2 Programmiersprache.......................... 38 4.2.3 Erweiterungen............................. 38 4.3 Komponenten.................................. 39 4.3.1 Klient.................................. 39 4.3.2 Server.................................. 41 4.3.3 Gemeinsam genutzte Module..................... 41 4.4 Test....................................... 41 4.4.1 Speicherverbrauch........................... 41 4.4.2 CPU-Last................................ 42 4.5 Bekannte Probleme............................... 42 x

5 Auswertung und Ausblick 43 5.1 Auswertung................................... 43 5.1.1 Proof of Concept........................... 43 5.1.2 Sicherheit................................ 43 5.2 Praktischer Einsatz............................... 43 5.2.1 Aufwandsabschätzung......................... 44 5.3 Ausblick..................................... 44 5.3.1 Zukunft des Projektes......................... 44 5.3.2 Verbesserungen............................. 45 A Bedienungsanleitung 49 A.1 Installation................................... 49 A.1.1 Voraussetzungen............................ 49 A.1.2 Installation............................... 49 A.2 Betrieb..................................... 50 xi

Abbildungsverzeichnis 1.1 p-m-n general threshold scheme....................... 5 2.1 Übersicht.................................... 9 3.1 Klient-Server-Modell.............................. 21 3.2 Peer-to-Peer-Modell.............................. 21 3.3 Struktur des OFB-Modus........................... 23 3.4 Struktur des HMAC-Algorithmus....................... 25 3.5 SSL Handshake................................. 30 4.1 Kommunikationsablauf............................. 35 4.2 Modul-Abhängigkeiten............................. 40 xiii

Tabellenverzeichnis 2.1 Speicherverbrauch bei vollständiger Kopie für p = 0.5........... 11 2.2 Speicherverbrauch bei Nutzung vom IDA für p = 0.5............ 12 4.1 Befehle des Übertragungsprotokolls...................... 37 4.2 Befehle des Signalisierungsprotokolls..................... 37 4.3 Control-Datei.................................. 38 xv

Abkürzungsverzeichnis AFS Andrew File System AIDA Adaptive Information Dispersal Algorithm CA Certification Authority CFB Cipher Feedback CFS Cooperative File System CIFS Common Internet File System CMU Carnegie Mellon University CRC Cyclic Redundancy Check DSA Digital Signature Algorithm FTP File Transfer Protocol HMAC Keyed-Hashing Message Authentication HTTP Hypertext Transfer Protocol IDA Information Dispersal Algorithm IGMP Internet Group Management Protocol LGPL GNU Lesser General Public License GPL GNU General Public License MIME Multipurpose Internet Mail Extensions MIT Massachusetts Institute of Technology NFS Network File System NIST National Institute of Standards and Technology NSA National Security Agency OFB Outer Feedback xvii

PDU Protocol Data Unit PIM Protocol Independent Multicast RAID Redundant Array of Independent Disks RMI Remote Method Invocation RSA Rivest, Shamir, Adleman Ein Verschlüsselungsalgorithmus. SFSRO Fast and Secure Distributed Read-Only File System SHA-1 Secure Hash Algorithm SMB Server Message Block SSL Secure Socket Layer TLS Transport Layer Security UDP User Datagram Protocol URL Uniform Ressource Locator URI Uniform Ressource Identifier xviii

1 Einleitung Im folgenden Kapitel wird auf die hinter der Arbeit stehende Motivation eingegangen und es wird ein Überblick über das ausgearbeitete System zur Umsetzung einer verteilten Datensicherung gegeben. 1.1 Motivation Arbeitsplatzrechner, wie sie z.b. in Computer-Pools von Universitäten und Schulen, in Büros von Unternehmen oder in Privathaushalten zu finden sind, werden in heutiger Zeit oft mit überdimensionierten Ressourcen ausgestattet. Dies gilt insbesondere für den Festplattenspeicher und die Rechenkapazität des Prozessors, welche bei normaler Nutzung eher selten komplett beansprucht werden. Für diesen Ressourcenüberschuss gibt es verschiedene Gründe. So ist z.b. die durchschnittliche Auslastung des Prozessors recht gering, jedoch die kurzzeitigen Beanspruchungen so hoch, dass die entsprechende Rechenkapazität gerechtfertigt ist. Beim Festplattenspeicher hingegen ist die Überdimensionierung eher dem rapiden Preisverfall in diesem Sektor zuzuschreiben. So gibt es in vielen Fällen bei entsprechender Sorgfalt und Organisation noch genügend freien Speicherplatz, der anderweitig genutzt werden könnte. Ziel dieser Diplomarbeit ist es, freie Kapazitäten der Ressource Festplattenspeicher zu nutzen. Es wird ein Backupsystem entworfen, welches als Datenspeicher keine Bandlaufwerke oder Festplatten-Arrays nutzt, sondern die Daten auf Rechnern mit freier Kapazität verteilt. Da über die Erreichbarkeit und Zuverlässigkeit dieser Rechner keine sicheren Aussagen gemacht werden können, werden sie als potentiell unsicher eingestuft. Es müssen Vorkehrungen getroffen werden, um mit dieser Unsicherheit umzugehen, wobei z.b. eine Erhöhung der Redundanz bei der Verteilung in Betracht gezogen wird. Besonders interessant könnte eine solche Lösung für Institutionen wie Universitäten, Schulen oder Firmen mit einer Vielzahl von homogenen Systemen sein. Eine wechselseitige Datensicherung auf Privatrechnern von Internetnutzern ist ebenfalls denkbar und möglich. 1.2 Sicherheitsaspekte Da es keine Garantien bezüglich der Verfügbarkeit und Verlässlichkeit der Rechner gibt, auf die die Daten verteilt werden, müssen entsprechende Maßnahmen getroffen werden,

2 KAPITEL 1. EINLEITUNG damit die Wahrscheinlichkeit eines Verlustes der gesicherten Daten auf ein Minimum reduziert wird. Für eine hohe Sicherheit der Daten ist eine entsprechend redundante Verteilung unumgänglich. Damit die Höhe der Redundanz an die jeweiligen Erfordernisse im Einsatzumfeld angepasst werden kann, ist ein Bewertungssystem notwendig. Grundlage dafür sind über die teilnehmenden Rechner gesammelte Daten, die positive und negative Erfahrungen widerspiegeln. Das Bewertungssystem ermöglicht es weiterhin, die Qualität der Rechner bzgl. der von ihnen erbrachten Leistung zu bewerten, um je nach Einsatzzweck leistungsabhängige Vergütungen zu ermöglichen. Um die Vertraulichkeit der eigenen Daten zu gewährleisten, müssen Verschlüsselungsverfahren eingesetzt werden. 1.3 Einordnung und vorhandene Lösungen Im folgenden Abschnitt wird eine Einordnung des Prinzips des verteilten Backups in das Feld von Datensicherungs-, Filesharing- und verteilten Dateisystemen vorgenommen. Zusätzlich werden ähnliche Konzepte, Lösungen und Softwareprojekte vorgestellt und es wird jeweils kurz auf einige Aspekte eingegangen. 1.3.1 Systeme mit verteilter Datenspeicherung Es gibt eine Vielzahl von Möglichkeiten, Daten verteilt zu speichern. Aus unterschiedlichen Absichten sind verschiedene Ansätze und Realisierungen hervorgegangen. Netzwerk-Dateisysteme Netzwerk-Dateisysteme ermöglichen es, auf entfernte Daten so zuzugreifen, als wären sie lokal im Dateisystem vorhanden. Bekannte Beispiele sind hier AFS 1, NFS 2 von Sun und SMB 3 bzw. CIFS 4 aus dem Windows-Umfeld. Ziel dieser Systeme ist es zum einen, Rechnern mit wenig oder keiner Festplattenkapazität 5 einen Zugriff auf entfernte Speicherressourcen zu ermöglichen. Zum anderen kann Nutzern eine homogene Arbeitsumgebung an verschiedenen Arbeitsplätzen zur Verfügung gestellt werden. Ein positiver Nebeneffekt ist hierbei die Vermeidung unnötiger Redundanz im Netzwerk. Netzwerk-Dateisysteme arbeiten nach dem Klient-Server-Prinzip. Es gibt einen Dienstanbieter 6 (z.b. NFS-Server) und einen oder mehrere Klienten, die auf diesen zugreifen. Bei verteilten Dateisystemen steht wie bei allen Dateisystemen die Geschwindigkeit und Zuverlässigkeit im Vordergrund, jedoch erfolgt die Speicherung explizit redundant 1 Andrew File System 2 Network File System 3 Server Message Block 4 Common Internet File System 5 u.a. diskless workstations 6 Dieser kann wie z.b. beim AFS auch aus mehreren einzelnen Servern zusammengesetzt sein.

1.3. EINORDNUNG UND VORHANDENE LÖSUNGEN 3 auf mehreren Servern. Als Beispiele können hier SFSRO 7 [8] und CFS 8 [4] genannt werden. Filesharing-Systeme Im Gegensatz zu den Netzwerk-Dateisystemen ist das Ziel von Filesharing-Systemen das Verteilen von Daten und die gemeinsame Nutzung freien Speicherplatzes. Die bekanntesten Vertreter sind u.a. Gnutella, Napster, edonkey und Kazaa. Das Prinzip dieser Systeme beruht auf dem wechselseitigen Anbieten und Konsumieren von Daten, wobei immer direkte Verbindungen zwischen Anbieter 9 und Konsument aufgebaut werden. Unterschiede bestehen zwischen den angebotenen Index-Diensten 10, die z.b. bei Napster zentral und bei Gnutella dezentral sind. Ein weiteres, jedoch nicht so verbreitetes Ziel von Filesharing-Systemen ist die Sicherstellung der Anonymität von Anbieter und Konsument. Projekte wie Freenet oder Eternity erreichen dieses Ziel mittels kryptographischer Verfahren und dem Versenden von Dateneinheiten zwischen benachbarten Teilnehmern, so dass ein Zurückverfolgen zum ursprünglichen Anbieter nahezu unmöglich ist. Diese Systeme tragen wesentlich zum Erhalt freier Meinungsäußerung bei, da sie eine Zensur der Daten nahezu vollständig verhindern. Alle vorgestellten Filesharing-Systeme gehören aufgrund des Fehlens eines zentralen Servers 11 zu den Peer-To-Peer-Technologien. 1.3.2 Einordnung der verteilten Datensicherung Eine verteilte Datensicherung ist mit allen bisher genannten Systemen verwandt, jedoch nicht identisch. Folgende Gemeinsamkeiten und Unterschiede lassen sich herausarbeiten: Gemeinsamkeiten Wie bei verteilten Dateisystemen und Filesharing-Systemen erfolgt eine Verteilung der Daten auf unterschiedliche Rechner. Vergleichbar mit Netzwerk- und verteilten Dateisystemen soll eine hohe Verfügbarkeit der Daten gewährleistet werden. Unterschiede Ziel ist nicht die Verteilung der Daten wie bei Filesharing-Systemen, sondern deren sichere Verwahrung. Anders als bei zensur-resistenten Systemen soll jedoch auch die Löschung von Daten unterstützt werden. 7 Fast and Secure Distributed Read-Only File System 8 Cooperative File System 9 Im Falle von edonkey ist auch ein Konsument, der schon einen Teil einer Datei erhalten hat, Anbieter dieses Teiles. 10 Der Index-Dienst ist ein durchsuchbares lokales oder globales Verzeichnis der angebotenen Dateien. 11 Ausnahmen sind nur zentrale Index-Server. Die eigentlichen Daten werden nicht zentral gespeichert.

4 KAPITEL 1. EINLEITUNG Im Gegensatz zu verteilten oder Netzwerk-Dateisystemen ist eine hohe Zugriffsgeschwindigkeit nicht erforderlich. 1.3.3 pstore Das am MIT 12 entwickelte Projekt pstore A Secure Distributed Backup System [1] wählt einen ähnlichen Ansatz wie das vorgestellte Konzept. Es werden ebenfalls Backup- Daten redundant auf potentiell unsichere Rechner verteilt. Die Redundanz entsteht durch mehrfache Replikation der Daten. Die Grundlage von pstore ist das Aufteilen einer Datei in Blöcke. Diese werden verschlüsselt und redundant bei den anderen Teilnehmern des Systems gespeichert. Es wurde eine Versionsverwaltung entwickelt, die mehrere Versionen einer Datei effizient speichern kann. Dazu werden die schon gespeicherten Daten einer Datei mit den Blöcken der neuen Version verglichen 13, und nur die noch nicht im Backup vorhandenen bzw. geänderten Blöcke gespeichert. Die Zuordnung der einzelnen Blöcke zu den unterschiedlichen Versionen geschieht mittels einer Fileblock-Liste pro Datei. Zusammenfassend kann man als großen Vorteil von pstore die Unterstützung von Versioning nennen. Nachteilig wirkt sich die statische Konfiguration der Klienten, das Nutzen einfacher Replikation und eine fehlende Bewertung der Server aus. 1.3.4 India Projekt Beim India Projekt [15] werden Daten ebenfalls redundant verteilt gespeichert, wobei auf eine Versionsverwaltung verzichtet wurde. Das Ziel vom India Projekt ist laut [7]: The goal [...] is to explore the potential of the IDA [...] as the basis for an efficient, highly available, fault tolerant, and secure distributed data storage system. Wichtige Designentscheidungen waren Einfachheit und Skalierbarkeit, um zum einen eine möglichst geringe Komplexität zu erhalten und zum anderen, um auch mit größeren Datenmengen umgehen zu können. Ein Prototyp wurde in Java entwickelt. India nutzt gegenseitige Authentifizierung der Klienten und Server, wobei jegliche Kommunikation zwischen beiden mittels Java RMI 14 geschieht. Standardmäßig erfolgt keine Verschlüsselung der Verbindung. Eine Integritätssicherung der Daten erfolgt nur dann, wenn mehr als m Fragmente 15 von den Servern zurückübertragen wurden, so dass eine Fehlererkennung möglich ist. Desweiteren ist eine Konfiguration der möglichen Server notwendig, wodurch sich dieses Projekt nicht für dynamische Umgebungen eignet. Für einige der aufgezeigten Nachteile wurden Lösungen als mögliche Erweiterungen für India in [7] betrachtet. 12 Massachusetts Institute of Technology 13 Der Vergleich erfolgt unter Zuhilfenahme von Hashwerten, so dass die schon verteilt gesicherten Datenblöcke nicht zurückübertragen werden müssen. 14 Remote Method Invocation 15 In diesem Fall bezeichnet m die minimale Anzahl an Fragmenten, die vorhanden sein müssen, um die Originaldaten rekonstruieren zu können. Eine genaue Erklärung wird in Abschnitt 3.4.2 gegeben.

1.3. EINORDNUNG UND VORHANDENE LÖSUNGEN 5 1.3.5 PASIS Architektur Die PASIS Architektur [17] kombiniert technologies for constructing information storage systems whose availability, confidentiality, and integrity policies can survive component failures and malicious attacks. Damit wird ebenfalls eine verteilte Datenspeicherung ermöglicht, jedoch gibt es einige wichtige Besonderheiten. In PASIS gibt es dedizierte Server, so genannte storage nodes, und Klienten. Die Klienten kommunizieren mittels eines PASIS agent mit den Servern, um Daten abzuspeichern. Um sowohl die Verfügbarkeit zu erhöhen, als auch die Vertraulichkeit der auf den Servern gespeicherten Daten zu gewährleisten, werden Treshold schemes 16 genutzt. Es erfolgt keine zusätzliche Verschlüsselung der Daten, da die Vertraulichkeit automatisch mittels des Verteilungsalgorithmus gelöst wird. Ein Vorteil ist hierbei, dass die Klienten keine weiteren Schlüssel speichern müssen. Nachteilig wirkt sich dies genau dann aus, wenn eine Vielzahl von Servern kompromittiert wäre, da dann die Information unauthorisiert zusammengefügt werden könnte. PASIS schließt in diesem Fall einen Kompromiss zwischen Sicherheit und Verfügbarkeit 17. In PASIS wird ein p-m-n general threshold scheme genutzt. Abbildung 1.1 illustriert die folgenden Eigenschaften: 0 p m n (1) (2) (3) (4) Abbildung 1.1: p-m-n general threshold scheme Die Information wird in n Fragmente aufgeteilt, jeder Server erhält genau ein Fragment. Mindestens m Fragmente sind nötig, um die Information zu rekonstruieren. (2) Mit mehr als m Fragmenten ist eine Integritätsprüfung möglich. (1) Sind weniger als p Fragmente verfügbar, wird keinerlei Information preisgegeben. (4) Sind zwischen p und m Fragmente verfügbar, sind Aussagen über die originalen Daten möglich. Vollständig rekonstruierbar sind sie jedoch nicht. (3) 16 Dies können sowohl Algorithmen wie IDA als auch secret sharing schemes sein. 17 Je mehr Fragmente für die Rekonstruktion benötigt werden, desto geringer ist die Verfügbarkeit.

6 KAPITEL 1. EINLEITUNG 1.3.6 Linux Network Block Devices Dieses Projekt 18 bezieht sich nicht auf Netzwerk-Dateisysteme, sondern ist eine Betriebssystemschicht darunter anzusiedeln. Network Block Devices erlauben es, entfernte Ressourcen über lokale Blockdevices 19 zu nutzen und so z.b. auf einer entfernten Festplatte beliebige Daten zu speichern. Das Dateisystem kann selbst gewählt werden oder je nach Einsatzzweck sogar weggelassen werden. Der Nutzen dieses Projekts in einem verteilten Datensicherungssystem könnte in der Minimierung des Aufwands für das Speichern von Daten gesehen werden, da die Dateisystemschicht beim Server wegfallen würde. Dieser Vorteil kommt genau dann zum Tragen, wenn das Backupsystem eine einfachere Struktur als ein Dateisystem erzeugt. 1.4 Mögliche Anwendungsgebiete Eine verteilte Datensicherung kann in vielen Bereichen zum Einsatz kommen. Firmen oder Institutionen mit einer großen Anzahl von homogenen Systemen könnten somit ein kosteneffizientes Backup durchführen, da keine weitere Hardware angeschafft werden müsste. Ein weiterer möglicher Einsatzzweck ist ein wechselseitiges Backup einer Gruppe von Rechnern, um sich jeweils vor Datenverlust zu schützen. 18 http://nbd.sourceforge.net/ 19 Ein Blockdevice ist eine Schnittstelle zum Kernel eines Betriebssystems, die den Zugriff auf blockorientierte Geräte, wie z.b. eine Festplatte ermöglicht. Die wichtigsten Operationen sind hierbei das Lesen und das Schreiben von Datenblöcken.

2 Konzepte und Lösungsvarianten Dieses Kapitel stellt ein System zur verteilten Datensicherung vor. Es werden dabei einzelne Teilprobleme und verschiedene konzeptionelle Ansätze für deren Lösung näher betrachtet und verglichen. Der jeweils für das implementierte System ausgewählte Ansatz wird benannt und die Entscheidung begründet. 2.1 Anforderungen an Datensicherungen Eine Sicherung von Daten wird genau dann durchgeführt, wenn man sich vor deren Verlust schützen möchte. Daten können aufgrund von Hardware-Ausfällen, Software- oder Bedienfehlern verloren gehen. Um bei einem Datenverlust den Schaden so gering wie möglich zu halten, muss eine Datensicherung verschiedenen Anforderungen genügen, die im Folgenden erläutert werden: Die Zuverlässigkeit der Datensicherung hängt von verschiedenen Faktoren ab. Ein wesentlicher Gesichtspunkt ist die Art der genutzten Speichermedien (z.b. Magnetbänder, magneto-optische Medien, Festplatten). Des Weiteren spielt auch die räumliche Verteilung der Daten eine große Rolle, um Datenverlust in Katastrophenfällen (z.b. Feuer oder Überschwemmung) vorzubeugen. Regelmäßige Tests der Wiederherstellbarkeit sind ebenfalls essentiell für ein zuverlässiges Backup. In der Praxis besteht oftmals die Anforderung, bei Bedarf auf den Datenstand einer bestimmten vorherigen Sicherung zurückgreifen zu können. Das ist die Aufgabe einer Versionsverwaltung. Bei einem Verlust der aktuellen Daten ist die Bereitstellung einer möglichst zeitnah zurückliegenden Kopie der Daten erforderlich. Demzufolge besteht ein komplettes Backupsystem aus zwei Teilen: einem Storage- System, welches sich um das Abspeichern der Daten kümmert (z.b. auf Magnetband, auf Festplatte oder verteilt in einem Netzwerk) und einer Versionsverwaltung, die einen Zugriff auf verschiedene Versionen einer Datei ermöglicht. Letztere ist jedoch nicht Bestandteil der Diplomarbeit, da sie den Umfang der zu implementierenden Software über den Rahmen einer Diplomarbeit hinaus vergrößert hätte. In realen Datensicherungssystemen ist die Zugriffsgeschwindigkeit meist ein Kompromiss bezüglich der Zuverlässigkeit. So ist der Zugriff auf Daten eines Festplattenverbundes wesentlich schneller als auf Speichermedien, welche aus Sicherheits-

8 KAPITEL 2. KONZEPTE UND LÖSUNGSVARIANTEN gründen räumlich getrennt vom Backupsystem gelagert werden. Damit die Datensicherung möglichst alle Anforderungen erfüllt, werden in der Praxis mehrstufige und zweckangepasste Backupkonzepte genutzt. So könnte zum Beispiel für eine tägliche Datensicherung eine Speicherung auf Fesplatte erfolgen, jedoch sollten für die wöchentliche Komplettsicherung möglichst Magnetbänder genutzt werden, welche dann räumlich getrennt und sicher in einem Tresor gelagert werden können. Um zu gewährleisten, dass die zurückgelesenen Daten identisch mit den abgespeicherten sind und z.b. nicht durch Fehler der Datenträger verfälscht wurden, ist eine Überprüfung der Integrität der Daten notwendig. Werden die Datenträger in für unautorisierte Personen zugänglichen Bereichen gelagert, so muss die Vertraulichkeit sichergestellt werden. Dies wird im Allgemeinen durch Verschlüsselung der Daten erreicht. 2.2 Kurzbeschreibung des Systems Das vorgestellte System realisiert ein verteiltes Backup. Die zu sichernden Daten werden auf teilnehmende Rechner mit freien Ressourcen verteilt und können für die Rekonstruktion zurückgelesen werden. 2.2.1 Architektur Das verteilte Backup nutzt eine Klient-Server-Architektur 1. Als Server werden diejenigen Rechner bezeichnet, die Speicherplatz zur Verfügung stellen, da sie die Anbieter eines Dienstes sind. Klient hingegen wird der Rechner genannt, der Daten sichern möchte, da er der Nutzer des angebotenen Dienstes ist. 2 Ein Klient kommuniziert dazu mit mehreren Servern. Wird das vorgestellte System wechselseitig von einer Gruppe von Rechnern benutzt, d.h. jeweils ein Rechner verteilt die Daten auf die restlichen Mitglieder der Gruppe, so wird deutlich, dass es sich um eine Peer-To-Peer-Technologie 3 handelt. Abbildung 2.1 zeigt eine Beispielkonstellation mit 3 Teilnehmern. Rechner 1 und 3 verteilen hier Daten auf die jeweils anderen. 2.2.2 Schnittstelle nach außen Das System stellt nach außen die folgenden elementaren Funktionen zur Verfügung: Verteilen einer Datei Der Klient spaltet die Datei in Fragmente auf und verteilt diese auf vorher ausgewählte Server. 1 siehe auch Abschnitt 3.1 2 Die Benennung der Klienten und Server wurde im Gegensatz zur Aufgabenstellung vertauscht, da so die Rollen der Server als Anbieter und die der Klienten als Nutzer konsistenter bezüglich ihrer Definition genutzt werden. 3 siehe auch Abschnitt 3.1.2

2.2. KURZBESCHREIBUNG DES SYSTEMS 9 Rechner 2 Daten zur Verfügung gestellter Speicher Rechner 1 Rechner 3 Daten zur Verfügung gestellter Speicher Daten zur Verfügung gestellter Speicher Abbildung 2.1: Übersicht Wiederherstellen einer Datei Der Klient ermittelt die Server, auf denen Fragmente der Datei gespeichert sind, überträgt die benötigte Anzahl zurück und fügt sie zur entsprechenden Ursprungsdatei zusammen. Löschen einer Datei Auch bei dieser Operation ermittelt der Klient diejenigen Server, die Fragmente der Datei gespeichert haben. Diese erhalten daraufhin die Anweisung, die entsprechenden Daten zu löschen. Bei der Operation Löschen einer Datei kann es jedoch vorkommen, dass ein Server mit dazugehörigem Fragment gerade nicht erreichbar ist. Es gibt nun mehrere Möglichkeiten, mit dem Problem umzugehen: Die bei den Servern gespeicherten Fragmente könnten mit einem Haltbarkeitsdatum versehen werden, nach dessen Ablauf die Server-Software sie selbstständig löschen könnte. Die Löschoperation könnte beim Klienten in eine Warteschlange eingetragen werden und in gewissen Zeitabständen versendet werden, bis alle Server die Fragmente der Datei gelöscht haben. 4 Wenn man von relativ zuverlässig erreichbaren Servern ausgeht, wird das Problem nur selten auftreten. Da selbst dann am System kein Schaden entsteht, können die Klienten das Problem auch ignorieren. Bei der Implementierung der Software wurde die letzte Möglichkeit gewählt, um die Semantik des Systems überschaubar zu halten. 4 Da ein Server überhaupt nicht mehr vorhanden sein kann, sollte auch hier eine maximale zeitliche Obergrenze gesetzt werden.

10 KAPITEL 2. KONZEPTE UND LÖSUNGSVARIANTEN 2.3 Sicherheit Da die Rechner, auf die die Daten verteilt werden, sich auch außerhalb des eigenen Einflussbereiches befinden können, müssen eine Reihe von Sicherheitsvorkehrungen getroffen werden, um die Vertraulichkeit, Verfügbarkeit und Integrität der Daten zu sichern. 2.3.1 Zuverlässigkeit Da an dieser Stelle von potentiell unsicheren Servern ausgegangen werden muss, ist es entsprechend schwierig, die Verfügbarkeit der Daten zu gewährleisten. Die jeweiligen Rechner könnten momentan nicht erreichbar sein, die Daten gelöscht oder sogar verändert haben. Um trotzdem mit einer möglichst hohen Wahrscheinlichkeit die Daten korrekt zurückzuerhalten, müssen diese redundant gespeichert werden. Es gibt verschiedene Möglichkeiten, dies zu erreichen. Bei den nun folgenden Formeln bezeichnet s die Größe einer Dateneinheit und die Zufallsvariable X ist die Anzahl der Server, von denen das zur entsprechenden Dateneinheit gehörende Fragment bzw. die Kopie der Dateneinheit korrekt zurückgespielt worden ist. Vollständige Kopie Der triviale Ansatz ist die Speicherung kompletter Kopien der Daten auf verschiedenen Servern, so wie es auch beim Projekt pstore realisiert ist. Diese Vorgehensweise hat jedoch den Nachteil, dass sich die insgesamt in Anspruch genommene Kapazität bei den Servern je nach nötiger Sicherheit und damit verbundener entsprechender Redundanz stark erhöht. Genau bedeutet dies, dass pro Kopie Speicher der Höhe von s verbraucht wird und insgesamt bei einer n-fachen Redundanz n s Speicherplatz. Zur Wiederherstellung der Daten ist jedoch nur eine Kopie nötig. Es wird die Annahme gemacht, dass ein Server eine Kopie mit einer Wahrscheinlichkeit von p korrekt zurückliefert. Genau genommen sinkt die Wahrscheinlichkeit mit der Zeit, dass ein Server die Daten auch wirklich aufbewahrt. Für diesen Vergleich gehe ich jedoch von der Wahrscheinlichkeit zu einem bestimmten Zeitpunkt aus, so dass hier eine Binomialverteilung angenommen werden kann. Dabei wird angenommen, dass die Wahrscheinlichkeiten, dass von den verschiedenen Servern jeweils eine Kopie korrekt zurückgeliefert wird, unabhängig voneinander sind. Demzufolge kann vom Modell eines n-mal wiederholten Zufallsversuches ausgegangen werden P (recover) = P (X 1) = 1 P (X < 1) = 1 P (X 0) = 1 F n,p (0)