Syncthing statt Cloud

Warum nutzen immer noch viele Leute Cloud-Dienste, um große Datenmengen mit anderen zu teilen? Syncthing ist doch so viel praktischer und sicherer.
Die Homepage von Syncthing

Zusammenfassung

  • Syncthing synchronisiert ausgewählte Ordner über Netzwerkgrenzen hinweg.
  • Man kann Dateien unidirektional auf andere Rechner übertragen oder Ordner gemeinschaftlich nutzen.
  • Man benötigt keinen Server als Zwischenspeicher.
  • Die Synchronisierung erfolgt verschlüsselt.

Immer wieder sendet mir jemand größere Dateien über einen Cloud-Service zu. Ich bekomme dann per E-Mail einen Link zugesendet, über den ich im Webbrowser zum Download gelange. Die Daten, die ich über diesen Weg bekomme, sind zwar vertraulich, aber nicht geheim. In der Regel sind es Informationen über neue Produkte und Dienstleistungen, für die ich als Werbetexter schöne Worte finden soll.

Aber ich frage mich schon, ob die Unternehmen auch personenbezogene, sehr vertrauliche oder sogar geheime Daten ebenfalls über einen solchen Service versenden. Meine Hoffnung ist, dass sich die Unternehmen dann vorher wenigstens einmal die Terms of Service der Dienste anschauen.

An dieser Stelle wollte ich zunächst etwas über zwei bekannte Cloud- bzw. Datenübertragungsdienste schreiben. Ich entschied mich jedoch, die Passage wieder zu streichen, denn ich möchte keinen speziellen Dienst kritisieren.

Wer Daten über einen Cloud- oder Datenübertragungsdienst teilen möchte, sollte vorher in den Terms of Service, den Datenschutzbestimmungen und den AGB des Anbieters nach Antworten auf folgende Fragen suchen:

  1. Werden die Daten verschlüsselt übertragen?
  2. Werden die Daten verschlüsselt auf den Systemen des Anbieters gespeichert?
  3. Kann der Anbieter die Daten auf seinen Systemen entschlüsseln?
  4. Welcher Personenkreis beim Anbieter hat Zugriff auf die Systeme und damit auf die Daten?
  5. Kontrolliert und protokolliert der Anbieter Zugriffe auf die Daten durch Mitarbeiter des Unternehmens?
  6. Wie sichert der Anbieter seine Systeme gegen Angriffe von innen und außen?
  7. Welche Daten gibt der Anbieter unter welchen Bedingungen an Datenhändler, Werbeunternehmen, Strafverfolgungsbehörden oder sonstige Kreise weiter.

Wenn man sich die »Terms of Service« und AGB der Anbieter auf diese Fragen hin anschaut, wird man sich vielleicht fragen, warum es keine bessere Lösung gibt. Denn letztlich muss man blindes Vertrauen zu einem Dienst haben, da man keine Chance hat, die Angaben zu überprüfen. Man kann das Blatt drehen und wenden, wie man will: Wenn man über Cloud-Dienste Daten teilt, liegen diese auf fremden Servern und die Betreiber der Dienste haben prinzipiell Zugriff auf die Daten. Man muss darauf vertrauen, dass wenigstens nicht jeder in der Firma auf die Daten zugreifen kann und dass die Server gegen Angreifer von innen und außen gut geschützt sind.

Alice und Bob – und sonst niemand

Warum aber deponieren wir überhaupt Daten, die wir mit einer Person teilen möchten, auf einem öffentlich zugänglichen Server im Internet? Würden wir einen Schuhkarton mit Urlaubsfotos bei einem Gemüsehändler hinterlegen, wo unsere Urlaubsbekanntschaft die Fotos dann abholen kann? Sehr viel eher würden wir die Fotos doch persönlich aushändigen. Warum zum Teufel machen wir es in der digitalen Welt nicht genau so?

Wenn man Daten teilt, sollte die Zahl der Personen, die Zugriff auf die Daten haben, nicht größer sein, als die Zahl der Personen, mit denen man die Daten teilen möchte. Wenn Alice und Bob Daten miteinander teilen möchten, sollten auch nur Alice und Bob Zugriff auf diese Daten haben – und nicht zusätzlich noch eine unbekannte Anzahl von Mitarbeitern bei einem Cloud-Anbieter.

Eine Möglichkeit, Daten direkt mit einer Person oder einem genau definierten Personenkreis zu teilen, bietet Syncthing. Syncthing ist freie offene Software und für alle Betriebssysteme verfügbar. Da die Softwarequellen offen sind, kann sich eine Vielzahl von Leuten den Code anschauen und prüfen, ob die Software auch wirklich sicher ist und keine Hintertüren besitzt.

Die über Syncthing geteilten Daten werden niemals auf einem zentralen Server gespeichert, sondern immer nur auf den Rechnern von Alice und Bob. Bei der Übertragung der Daten von Alice zu Bob und von Bob zu Alice werden diese verschlüsselt. Und nur Alice und Bob verfügen über den Schlüssel zur Entschlüsselung. Außerdem weisen sich die beiden beteiligten Endgeräte (Desktop, Notebook oder Smartphone) durch ein Zertifikat gegenüber der Gegenstelle aus, sodass man nicht versehentlich mit dem Rechner einer anderen Person Daten austauscht.

In der Praxis funktioniert Syncthing im Prinzip folgendermaßen:

  1. Das Gerät, mit dem man teilen möchte, wird registriert. Alice registriert auf ihrem Notebook die ID des Desktop-Rechners von Bob, und Bob registriert auf seinem Desktop-Rechner die ID des Notebooks von Alice. Die ID oder Registrierungsnummer ist eine lange Zeichenfolge nach diesem Muster: MFZWI3D-BONSGYC-YLTMRWG-C43ENR5-QXGZDMM-FZWI3DP-BONSGYY-LTMRWAD. Jedes Gerät hat eine andere ID.
  2. Man legt fest, welchen Ordner man mit dem registrierten Fremdgerät teilen möchte. Dabei hat man die Wahl, ob die Daten in beide Richtungen synchronisiert werden sollen oder nur in eine Richtung. Wenn man in beide Richtungen synchronisiert, hat man einen Gemeinschaftsordner, in dem Alice und Bob gleichermaßen Dateien anlegen, ändern und löschen können. Synchronisiert man nur in eine Richtung – zum Beispiel von Alice zu Bob – werden nur die Daten von Alice und die Veränderungen, die sie an diesen Daten vornimmt, auf den Rechner von Bob übertragen.

Die Daten werden übertragen, ganz egal, wo sich die Geräte befinden. Sie müssen bloß irgendwo auf der Welt Zugang zum Internet haben.

Wenn man mit anderen Personen Daten teilt, gibt es somit zwei mögliche Ordner-Konfigurationen.

Eingangs- und Ausgangsordner für Syncthing
  1. Ein Gemeinschaftsordner, in dem man gemeinsam Dateien verwaltet. Der Ordner kann dabei beliebig viele Unterordner enthalten.
  2. Ein Eingangs- und/oder ein Ausgangsordner. In einem Eingangsordner empfängt man Daten von einer anderen Person. In den Ausgangsordner steckt man die Daten, die der andere empfangen soll. Wenn ich beispielsweise für den Kunden Acme arbeiten würde, könnte ich einen Eingangsordner Acme-Eingang anlegen, über den mir der Kunde Daten zusendet. Im Ausgangsordner Acme-Ausgang speichere ich dann die Dateien, die der Kunde erhalten soll. Mein Ansprechpartner bei Acme erstellt entsprechende Ordner auf seinem Rechner. Damit wäre der Kreis derjenigen, die Zugriff auf die Daten haben, auf zwei Personen reduziert.

Die Vorteile von Syncthing im Überblick

  1. Es haben nur die Personen Zugriff auf die Daten, die Zugriff haben sollen – und sonst keiner.
  2. Die Daten bleiben auf den Geräten der Personen, die miteinander teilen, und werden nicht auf Systemen von Cloudanbietern abgespeichert.
  3. Da die Speicherung in der Cloud wegfällt, gibt es für Angreifer auch einen Angriffspunkt weniger: nämlich die Systeme des Cloud-Anbieters.
  4. Ich muss mit keinem Cloud-Anbieter in ein Vertragsverhältnis treten und irgendwelchen Richtlinien und AGBs zustimmen.
  5. Die Übertragung der Daten erfolgt über ein verschlüsseltes Peer-to-Peer-Protokoll. Wer die Leitung abhört, sieht nur verschlüsselte Daten.
  6. Es werden keine Nutzerdaten erfasst und möglicherweise an verbundene Unternehmen weitergereicht.

Syncthing dürfte in vielen Fällen ein praktischer Ersatz für Datenübertragungsdienste, Cloudspeicher und sogar Groupware-Lösungen sein. Wer beim Teilen und Versenden von Daten mehr Kontrolle über seine Daten haben möchte, sollte sich Syncthing auf jeden Fall anschauen. Und wer überlegt, eine Groupware-Lösung für sein Team zu installieren, nur um Dateien auszutauschen, sollte ebenfalls zunächst einmal einen Blick auf Syncthing werfen, denn die Installation, Konfiguration und Pflege einer Groupware-Lösung ist zeitaufwändig. Owncloud und ähnliche Lösungen sind eine feine Sache. Aber man installiert damit einen zentralen Datenspeicher im Internet, der natürlich auch gegen Angriffe geschützt werden muss.

Anwendungsbeispiel: Endgeräte synchronisieren

Wer bis hierhin gelesen hat, weiß vermutlich schon, dass Syncthing nicht nur Daten von Rechner zu Rechner überträgt, sondern geteilte Ordner auf verschiedenen Endgeräten miteinander synchronisiert.

Wer wie ich Daten auf verschiedenen Endgeräten vorhalten möchte, ist mit Syncthing bestens bedient. In dem nachfolgenden Screenshot sieht man, wie ich Daten auf verschiedenen Endgeräten miteinander synchronisiere.

Liste der geteilten Ordner
Liste der geteilten Ordner

Die mit einem Schloss versehenen Ordner werden nur in einer Richtung geteilt.

  • Der erste Ordner Bilder wird zurzeit nicht geteilt.
  • Der zweite Ordner Bilder empfängt kontiniuerlich Fotos von meinem Smartphone. Mein Desktop ist in diesem Fall ein reiner Datenempfänger. Es findet keine bidirektionale Synchronisation statt. Wenn ich also auf meinem Desktop ein Foto lösche, weil es mir nicht gefällt, bleibt es auf dem Smartphone erhalten.
  • Beim Ordner Dokumente pausiert die Synchronisation.
  • Im Ordner Jobs befinden sich Dokumente, die ich für meine Arbeit benötige. Da ich sowohl auf dem Desktop als auch auf einem Notebook arbeite, werden die Daten bidirektional synchronisiert. Die Synchronisation erfolgt kontinuierlich im Hintergrund, sodass ich auf beiden Rechnern immer dieselben Daten zur Verfügung habe.
  • Den Ordner Musik komplett teile ich mit meinem Raspberry Pi Mediacenter. Wenn ich neue Musikdateien auf meinem Desktop abspeichere, werden die Dateien sofort auf das Mediacenter kopiert.
  • Über den Ordner Ogg-Musik-Files übertrage ich Musikdateien im OGG-Format auf mein Smartphone.
  • Der Ordner Tangomusik enthält nur Tangos, die auf ein spezielles Notebook übertragen werden, das ich vielleicht einmal als Tango-DJ benutzen will.
  • Der Ordner default wird bei der Installation von Syncthing standardmäßig angelegt.
  • Der Ordner org enthält Org-Mode-Dateien, die ich sowohl auf dem Desktop als auch auf meinem Arbeits-Notebook benötige.

Ich hoffe, es ist klar geworden, dass man mit Syncthing sowohl intern als auch extern mit anderen Personen Daten auf verschiedenen Endgeräten miteinander synchronisieren kann. Syncthing kann im Hintergrund laufen, so dass die Synchronisation kontinuierlich erfolgt, wenn beide Geräte eingeschaltet sind und Zugang zum Netz haben. Befinden sich beide Geräte im gleichen Netz (WLAN), wird über das lokale Netz synchronisiert. Eine Synchronisation übers Internet ist ohne weitere Konfiguration ebenfalls möglich.

Weitere Informationen zu Syncthing findet man in der Dokumentation.