Syncscript.sh: Difference between revisions

From Elch-Wiki
Jump to navigationJump to search
(New page: == Grundidee == Seit Version 1.5 beherrscht Encfs die sog. Reverse-Encryption. Dabei wird ein Klartext-Verzeichniss als Chiffrat gemountet (normal wäre ja umgekehrt: Die Daten liegen als ...)
 
No edit summary
Line 8: Line 8:


Auf diese Art kann die grösstmögliche "plausable deniability" erreicht werden: Der Eigner des Ziel-Systems '''kann''' nicht wissen, was für Daten abgelegt werden. Er kann auch den entsprechenden Verschlüsselungs-Schlüssel weder mitsniffen noch sonst wie erhalten.
Auf diese Art kann die grösstmögliche "plausable deniability" erreicht werden: Der Eigner des Ziel-Systems '''kann''' nicht wissen, was für Daten abgelegt werden. Er kann auch den entsprechenden Verschlüsselungs-Schlüssel weder mitsniffen noch sonst wie erhalten.
== In- und Exclusions ==
Knifflig war die Umsetzung von In- und Exclusions: Damit wie bei rsync üblich mit include- und exclude-files verwendet werden können, muss syncshript.sh die '''verschlüsselten''' Namen der In- und Excluded Files und Directories ermitteln. Dies wird durch ein temporär erzeugtes Encfs-Volume erreicht. Dieses wird kurz erzeugt, mittels der In- und Exclude-Files werden die verschlüsselten Namen darin erzeugt und diese dann für die effektiven In- und Exclude-Files für den rsync verwendet.


== Implementierung ==
== Implementierung ==

Revision as of 10:58, 1 June 2009

Grundidee

Seit Version 1.5 beherrscht Encfs die sog. Reverse-Encryption. Dabei wird ein Klartext-Verzeichniss als Chiffrat gemountet (normal wäre ja umgekehrt: Die Daten liegen als Chiffrat auf der Platte und werden dann zum Klartext gemountet). Mit dieser Reverse-Encryption lässt sich folgendes erreichen:

  • Auf dem Quell-System werden die Klartext-Verzeichnisse mittels Reverse-Encryption in ein temporäres Verzeichnis gemountet
  • Das temporäre Verzeichnis wird per rsync auf das Ziel-System synchronisiert
  • Auf dem Ziel-System muss zu keiner Zeit der Verschlüsselungs-Schlüssel vorliegen!

Auf diese Art kann die grösstmögliche "plausable deniability" erreicht werden: Der Eigner des Ziel-Systems kann nicht wissen, was für Daten abgelegt werden. Er kann auch den entsprechenden Verschlüsselungs-Schlüssel weder mitsniffen noch sonst wie erhalten.


In- und Exclusions

Knifflig war die Umsetzung von In- und Exclusions: Damit wie bei rsync üblich mit include- und exclude-files verwendet werden können, muss syncshript.sh die verschlüsselten Namen der In- und Excluded Files und Directories ermitteln. Dies wird durch ein temporär erzeugtes Encfs-Volume erreicht. Dieses wird kurz erzeugt, mittels der In- und Exclude-Files werden die verschlüsselten Namen darin erzeugt und diese dann für die effektiven In- und Exclude-Files für den rsync verwendet.


Implementierung

Hier ein paar Details zur Implementierung auf fish-serv:

  • syncscript.sh und die dazugehörigen Dateien liegen im Home von root und werden als root ausgeführt
  • Die nicht-sensitiven Bereiche des Offsite-Backup (wwwrun, mp3) werden unverschlüsselt übertragen und gespeichert.
  • Das Script syncall.sh synct zuerst wwwrun, dann mp3 und schliesslich home mittels syncscript.sh