Login


 
Newsletter
Di, 26. August 2014, 14:00

CloudSync - Backup privater Daten in der Cloud

CloudSync ist ein Programm speziell zum sicheren Backup privater Daten in der Cloud. Hier beschreibt der Autor die Motivation und den aktuellen Stand von CloudSync.

Durch die Enthüllungen der letzten Zeit wurde mir wieder ins Gedächtnis gerufen, wie wichtig der Schutz der Privatsphäre und der privaten Daten ist. Sicher ist die Frage »Wer interessiert sich schon für meine Daten?« ein Argument dagegen. Aber allein schon um ein kleines Zeichen zu setzen, beschloss ich, eine private Cloud zuhause aufzusetzen.

Auf Google Drive verschlüsseltes Backup

Holger Hees

Auf Google Drive verschlüsseltes Backup

Cloud als Backup?

Meine Wahl fiel hierbei auf ownCloud. In Kombination mit einem RAID 1 NAS bietet es schon ein gewisses Maß an Datenschutz und Sicherheit. Allerdings war mir auch klar, dass ich niemals die Datensicherheit erreichen werde, welche etablierte Cloudanbieter mit ihren geographisch verteilten Speichersystemen anbieten. Warum also nicht den kommerziellen Cloud-Speicher als billiges, verschlüsseltes Backup-Medium verwenden?

Nach etwas Recherche und diversen Evaluationstests kam ich zu dem Schluss, dass kein Programm meine Anforderungen komplett erfüllt. Bedingt durch meinen ADSL-Anschluss brauchte ich ein inkrementell und verschlüsselt arbeitendes Backup. Einige Programme wie z.B. Duplicity kommen dem schon recht nahe, haben aber den Nachteil, dass sie eine große verschlüsselte Komplettsicherungsdatei und viele darauf aufbauende Änderungsdateien hochladen.

Nun hat man die Wahl, alle paar Monate eine neue riesige Komplettsicherungsdatei hochzuladen oder nach ein paar Jahren mit tausenden von Änderungsdateien hantieren zu müssen. Beides ist mit einer ADSL-Leitung nicht wirklich praktikabel. Außerdem ergibt es keinen Sinn, z.B. alte Fotos, welche sich nie wieder ändern, jedes Mal in einer neuen Komplettsicherungsdatei hochzuladen. Also entschloss ich mich, eine eigene Lösung zu entwickeln.

Anforderungen

Meine Anforderungen waren:

  • Portabel
  • Verschlüsseln sämtlicher Daten einschließlich der Dateinamen
  • Komprimieren der Daten
  • Inkrementelle Sicherung
  • Einfaches Wiederherstellen der Daten
  • Sicherung aller Metadaten wie Zugriffsrechte, Eigentümer, Link-Ziele
  • Schnelles Feststellen der Änderungen

Nach ein paar Wochen veröffentlichte ich mein mittlerweile gereiftes Projekt CloudSync unter github.com/HolgerHees/cloudsync.

Ausgabe der Kommandozeilenhilfe

Holger Hees

Ausgabe der Kommandozeilenhilfe

Arbeitsweise

Um eine möglichst große Entwicklerbasis anzusprechen und um es portabel zu halten, entschied ich mich für Java. Das Programm selbst verschlüsselt sämtliche Daten per OpenPGP mit AES256, Zip-Komprimierung und einem Passwort. Hierdurch sind schon mal die ersten drei Punkte abgehakt. Jede Datei wird einzeln auf den Server hochgeladen, wobei sowohl der Dateiname, als auch der Dateiinhalt und die Metadaten verschlüsselt werden. Zusätzlich kann man per Regex-Parameter bestimmte Dateien ein- oder ausschließen. Fürs Erste wird alles mit einem Passwort gesichert. Später werde ich auch noch Public Key Verschlüsselung einbauen.

Alles, was hochgeladen wurde, wird in einer »Cache«-Datei festgehalten. Hierdurch können später lokale Änderungen im Dateisystem ohne Server-Abfragen festgestellt werden. Im Falle, dass die Cache-Datei korrupt ist oder gelöscht wurde, kann sie durch einen kompletten »Server-Scan« wiederhergestellt werden. Dies dauert dann natürlich etwas länger.

Der Zugriff auf Google Drive wurde in einer separaten »Connector« Klasse gekapselt, so dass es relativ leicht ist, weitere Cloud-Dienste wie z.B. Dropbox oder Microsoft One Drive zu integrieren. Es müssen hierfür nur sechs Methoden des Connector-Interfaces implementiert werden.

Aktueller Status

Mittlerweile ist das Programm unter Linux erfolgreich im Einsatz und hat schon etliche Gigabyte an Daten per Cron-Job gesichert. Weiterhin kam vor kurzem die Unterstützung für Windows und Mac OS X sowie eine umfangreiche Implementierung der ACL- und Fat32-Attribute hinzu.

Ziele

Ziel ist es nun, eine »Gemeinschaft« an Benutzern und Entwicklern für das Projekt zu begeistern, um weitere Cloud-Dienste und Verbesserungen zu integrieren. Außerdem macht es Spaß, etwas zu entwickeln, was auch von anderen Leuten verwendet wird.

Kommentare (Insgesamt: 16 || Alle anzeigen || Kommentieren )
Re: Java? (StefanF, Do, 28. August 2014)
Re: Duplicity? (holger75, Do, 28. August 2014)
Duplicity? (WeissBescheid, Do, 28. August 2014)
Re[4]: Danke (Roadrunner1234, Mi, 27. August 2014)
Re[3]: Danke (Javanaut, Mi, 27. August 2014)
Pro-Linux
Pro-Linux @Facebook
Neue Nachrichten