EncFS und seine Bindungsprobleme

Nach einem Update aller Ports unter MacPorts funktioniert EncFS nicht mehr. Auf der Konsole wird dies auch ausführlich dokumentiert:

dyld: lazy symbol binding failed: Symbol not found: __ZN5boost7archive6detail17shared_ptr_helperC2Ev
  Referenced from: /opt/local/lib/libencfs.6.dylib
  Expected in: /opt/local/lib/libboost_serialization-mt.dylib

dyld: Symbol not found: __ZN5boost7archive6detail17shared_ptr_helperC2Ev
  Referenced from: /opt/local/lib/libencfs.6.dylib
  Expected in: /opt/local/lib/libboost_serialization-mt.dylib

Die Lösung für das Problem ist dabei simpel. Der Port EncFS muss noch einmal neu gebaut werden. Dafür gibt man auf der Konsole:

sudo port -ns upgrade --force encfs

ein. Anschließend kann EncFS wieder wie gewohnt genutzt werden.

EncFS Portierungen

Bei EncFS handelt es sich um eine Implementierung eines Verschlüsslungssystems für bestehende Dateisysteme. Bei diesem System wird jede Datei für sich verschlüsselt und das darunter liegende Dateisystem genutzt. Neben der Originalimplementierung von EncFS gibt es auch Portierungen in andere Programmiersprachen. Mit diesen Portierungen können EncFS verschlüsselte Daten auch unter Java und .NET ausgelesen werden.

Die Javavariante von EncFS trägt dabei den Namen „encfs-java“ und ist auf GitHub zu finden. Neben dieser gibt es auch eine Variante für .NET welche in C# geschrieben ist und auf BitBucket zu finden ist. Ursprünglich handelt es sich bei „encfs-dotnet“ um eine Portierung von „encfs-java“. Mittlerweile wurde diese Implementierung aber komplett neu geschrieben. Wie bei der Originalimplementierung, handelt es sich auch bei den Portierungen um freie Software. Die Java-Portierung steht dabei unter der GPL, während die .NET Implementierung unter der LGPG steht, was deren Verwendung flexibler gestaltet.

Weitere Informationen gibt es unter:
https://de.wikipedia.org/wiki/EncFS

Dropbox + EncFS + Spotlight unter OS X

Vor einiger Zeit schrieb ich einen Artikel darüber wie man ein verschlüsseltes Verzeichnis in der der Dropbox mittels „Fuse4X“ und „EncFS“ unter Mac OS X Lion mountet. Der Wehrmutstropfen an meiner Methode war allerdings das Spotlight nicht funktionierte. Das hängt wohl damit zusammen das Spotlight standardmäßig nicht auf die mit Fuse eingehängten Systeme zugreifen kann.

Dazu sind auch nur einige Änderungen nötig. So muss das alte Skript zum mounten:

echo ultrageheimespasswort | encfs --stdinpass ~/Dropbox/Private ~/DropboxEncrypted

durch dieses ausgetauscht werden:

#!/bin/bash
#Secure EncFS Dropbox mounter by Daniel Widerin
#Edited by seeseekey

SOURCE=~/Dropbox/Private
TARGET=/Volumes/DropboxEncrypted
VOLUME_TITLE=DropboxEncrypted
PASSWORD=ultrageheimespasswort
ENCFS=/usr/local/bin/encfs

mount | grep $TARGET >/dev/null
[[ "$?" -eq "0" ]] && /usr/sbin/diskutil unmount $TARGET

if [ ! -d $TARGET ]; then
 echo "Create new mountpoint $TARGET"
 mkdir $TARGET
 chmod 0700 $TARGET
fi

echo $PASSWORD | $ENCFS $SOURCE $TARGET --stdinpass -ovolname=$VOLUME_TITLE -omodules=iconv -ofrom_code=UTF-8 -oto_code=UTF-8-MAC -oallow_root -olocal -ohard_remove -oauto_xattr -o nolocalcaches

Das neue Skript basiert dabei auf einer Variation eines Skriptes von Daniel Widerin und wurde etwas vereinfacht sowie um Angaben für den Zeichensatz erweitert. Nun kann man sich das ganze noch etwas bequemer machen, indem man das entschlüsselte Verzeichnis gleich beim Login einbindet. Das Skript sollte dabei einen Namen nach dem Schema „encryptDropbox.command“ tragen.

Nachdem dies geschehen ist, findet man in den Einstellungen unter „Benutzer & Gruppen“ -> „Anmeldeobjekte“ den entsprechenden Punkt. Dort wird einfach das entsprechende Skript hinzugefügt und schon wird dieses in Zukunft beim Login geladen.

Weitere Informationen gibt es unter:
https://seeseekey.net/archive/9455
http://fuse4x.github.com/faq.html
http://widerin.org/blog/secure-your-dropbox

Dropbox + EncFS + Mac OS X (Lion)

In meiner Dropbox findet sich ein mittels „EncFS“ verschlüsselter Ordner. Dieser soll natürlich auch unter Mac OS X funktionieren. Im Netz gibt es einige Anleitungen um das ganze zum laufen zu bekommen, allerdings war darunter keine die bei mir funktionierte. Um den EncFS Ordner zu entschlüsseln muss man sich folgende Software herunterladen:

Nach dem Download muss man das ganze installieren und dann benötigt man nur noch ein kleines Skript zum mounten des ganzen. In dieser Skript trägt man folgendes ein:

echo ultrageheimespasswort | encfs --stdinpass ~/Dropbox/Private ~/DropboxEncrypted

Damit kann man das ganze mounten, ohne jedes mal das Passwort eingeben zu müssen. In Verbindung mit dem gemounteten Ordner gibt es leider ein Problem, so ignoriert Spotlight sämtliche Inhalte des entsprechenden Orders.

Weitere Informationen gibt es unter:
http://www.lisanet.de/?p=128
https://seeseekey.net/archive/6102
http://sohleeatsworld.de/?x=entry:entry120505-190714

Dropbox mittels EncFS verschlüsseln

Dropbox ist ein sehr schönes Tool, allerdings hat man doch immer ein ungutes Gefühl, weil man nie weiß was der Hersteller mit den Daten anfängt. Eine schöne Lösung wäre dabei die Verschlüsselung der Daten. Speziell für Dropbox gibt es dabei die Software BoxCryptor welche unter http://www.boxcryptor.com/ zu finden ist. Schöner wäre allerdings eine Betriebssystem übergreifende Lösung welche für Linux, Windows und Mac OS X funktioniert und ohne unfreie Software auskommt.

Wir greifen dabei auf EncFS zurück. Der Artikel geht dabei zuerst auf die Installation unter Windows und dann unter Ubuntu ein. Für Windows werden zuerst folgende Dinge heruntergeladen werden:

Nach dem Download sollte der Dokan Installer installiert und die „encfs.zip“ Datei entpackt werden. Danach können wir die Datei „encfsw.exe“ starten. Im Kontextmenü des Icons welches sich im Tray befindet kann dann mittels „Open/Create“ ein Ordner in der Dropbox verschlüsselt werden und dieser einem Buchstaben zugewiesen werden.

Den Inhalt des alten Ordners (in diesem Fall „Private“) sollte dann in das neue Laufwerk kopiert werden. Damit funktioniert das ganze dann unter Windows. Ein Problem mit EncFS für Windows scheint im Moment zu sein das man keine Anwendungen auf dem gemounteten Laufwerk starten kann, weil dies zu Problemen führt :(

Unter Ubuntu installieren wir das Paket „encfs“ mittels:

sudo apt-get install encfs

Mounten bzw. entschlüsseln könnten wir die Dropbox dann so:

encfs ~/Dropbox/Private ~/DropboxPrivate

Wichtig ist dabei das man das ganze nicht in die Dropbox mountet, sonst wird der ganze Spaß wieder synchronisiert. Möchte man nun nicht jedes mal ein Passwort eingeben wenn man den Ordner mountet so kann man das ganze so lösen:

encfs --extpass="./getprivatefolderpw.sh" ~/Dropbox/Private ~/DropboxPrivate

Die Datei „getprivatefolderpw.sh“ muss dabei so aussehen:

echo geheimesPasswort

Nun muss man das ganze nur noch in den Autostart (z.B: in die „.bashrc“) packen und schon passiert das alles automatisch nach dem einloggen.

Weitere Informationen gibt es unter:
http://dokan-dev.net/en/
https://seeseekey.net/archive/1192
http://de.wikipedia.org/wiki/EncFS
http://members.ferrara.linux.it/freddy77/encfs.html
http://www.boxcryptor.com/download/#platform_linux_dl
http://d24m.de/2011/07/22/howto-encfs-unter-windows-installieren/