Verschlüsselte Datenbank mit SQLite

Die Daten in einer SQLite Datenbank sind im Normalfall unverschlüsselt. Natürlich kann man die Daten von Hand verschlüsseln, was aber auf Dauer wahrscheinlich etwas anstrengend wird. Anhilfe schafft hier die Bibliothek SQLCipher mit welcher SQLite Datenbanken verschlüsselt werden können. Die Bibliothek ist dabei Open Source und steht unter der BSD Lizenz. Zu finden ist die Bibliothek unter http://sqlcipher.net/.

Weitere Informationen gibt es unter:
http://de.wikipedia.org/wiki/Sqlite

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/

Verschlüsselung auf Onlinefestplatten

Onlinefestplatten sind ja eine feine Sache: Überall hat man seine Daten verfügbar geschützt gegen Brand, Erdbeben und vieles mehr. Doch ein schaler Nachgeschmack bleibt. Schließlich liegen die Daten auf der Onlinefestplatte unverschlüsselt. Das ist natürlich unschön, aber hier kann man zum Glück Abhilfe schaffen.

Bei der Verschlüsselung von Daten gibt es im groben zwei Ansätze was das Wie betrifft. Einmal gibt es Software welche große Container anlegt in welchen das gesamte Dateisystem gespeichert ist. Das ist natürlich sehr schön, online allerdings relativ unpraktikabel. Man stelle sich vor man möchte einen 4 TB Container anlegen, das könnte über die Onlineverbindung eine ganze Weile dauern.

Die ändere Möglichkeit wäre es nur die Dateien zu verschlüsseln z.B. mit GPG, allerdings wäre diese Methode doch recht manuell. Eine schöne Zwischenlösung sind Systeme wie EcryptFS oder EncFS. Hier wird ein Verzeichnis verschlüsselt und zwar Datei für Datei (die Dateinamen werden dabei auch verschlüsselt). Das schöne an der Sache ist das es fast automatisch funktioniert.

Zuerst soll die Onlinefestplatte per WebDAV eingebunden werden. Im zweiten Schritt wird dann der verschlüsselte Ordner aufgesetzt. Für WebDAV wird zuerst das Paket davfs2 mittels

sudo apt-get install davfs2

installiert. Anschließend tragen wir in die /etc/fstab folgendes ein:

https://“webdavurl“ „mountpunkt“ davfs user,noauto 0 0

z.B. https://webdav.example.com /home/seeseekey/Online davfs user,noauto 0 0

Nun wird mittels:

sudo dpkg-reconfigure davfs2

das Paket rekonfiguriert. Auf die anschließende Frage antworten wir mit Ja. Damit ist das SUID-Bit für davfs2 gesetzt.

Nun wird mittels

sudo adduser „Nutzername“ davfs2

z.B. sudo adduser seeseekey davfs2

der entsprechende Nutzer der Gruppe davfs2 hinzugefügt. Damit kann man das ganze nun auch ohne root Rechte mounten. Nun legt man in seinem Homeverzeichnis den Ordner .davfs2 an und in diesem erstellt man eine Datei namens secrets. Das ganze sollte dann also unter ~/.davfs2/secrets zu finden zu sein. In diese Datei trägt man nun folgendes ein:

„Mountpunkt“ „login“ „passwort“

z.B. /home/seeseekey/Online geheim

ein und speichert das ganze. Die Rechte der Datei werden nun mittels

chmod 600 ~/.davfs2/secrets

auf das nötigste beschränkt.

Nun erstellen wir den Mountpunkt und mounten das Verzeichnis:

mkdir -p ~/Online
mount ~/Online

Nachdem das geschafft ist wird das Paket encfs mittels

sudo apt-get install encfs

installiert.

Mittels

encfs ~/Online/.private ~/Online/private

erstellen wir nun das verschlüsselte Verzeichnis. Dabei wird es auch gleich gemappt. In den Ordner ~/Online/private können wir nun die Dateien kopieren welche verschlüsselt werden sollen.

Das Skript zum mounten nach einem Neustart würde dann so aussehen:

mount ~/Online
encfs ~/Online/.private ~/Online/private

Und schon verfügt man über ein verschlüsseltes WebDAV Laufwerk :)

Weitere Informationen gibt es unter:
http://wiki.ubuntuusers.de/webdav
http://de.wikipedia.org/wiki/EncFS
http://wiki.ubuntuusers.de/EncFS
http://neuntoeter.wordpress.com/2010/07/31/verschluesselte-online-backups/

Mit GNU Privacy Guard Dateien auf der Kommandozeile verschlüsseln

Möchte man mittels GPG eine Datei in der Kommandozeile verschlüsseln so gibt man auf der Konsole folgendes ein:

gpg -c geheim.txt

Danach wird man nach dem Passwort gefragt. Verschlüsselt wird in diesem Fall symmetrisch. Entschlüsseln kann man das ganze mittels:

gpg -o geheim.txt -d geheim.gpg

Das schöne an GPG ist im übrigen das es für so ziemlich jedes System zur Verfügung steht. Angefangen bei Linux und Windows bis zu Androidgeräten. Interessanter wäre natürlich eine auf Dateien basierende Verschlüsselung welche sich transparent in das Dateisystem einbindet (sprich ich als Nutzer merke nicht das mit verschlüsselten Dateien gearbeitet wird), aber man wird ja noch träumen dürfen ;)

Möchte man das ganze nicht auf Dateien basierend haben, sondern alle Daten in einem Container transparent einbinden so empfiehlt sich Truecrypt mit welchem das problemlos funktionieren sollte. Auch dieses ist betriebssystemübergreifend verfügbar.

Weitere Informationen gibt es unter:
http://wiki.ubuntuusers.de/gnupg
http://de.wikipedia.org/wiki/GNU_Privacy_Guard
http://wiki.ubuntuusers.de/TrueCrypt
http://de.wikipedia.org/wiki/TrueCrypt

Onlinefestplatten

In der aktuellen c’t werden Onlinefestplatten getestet. An sich ist das Konzept ja ganz interessant, die Dienste sollten bloß einige Dinge bieten:

– eigener Client
– ausreichende Anzahl an Übertragungsprotokollen (rsync, SFTP etc.)
– ausreichend Speicherplatz zu einem vernünftigen Preis
– Verschlüsselung auf Nutzerseite

Ein eigener Client wäre nicht unbedingt nötig wenn der Dienst eine ausreichende Anzahl an Übertragungsprotokollen bieten würde. Dies bieten allerdings die wenigsten Dienste. Was dann benötigt wird ist Speicherplatz zu einem vernünftigen Preis, denn es bringt nichts wenn man sich für den Mietpreis einer Onlinefestplatte eine echte Festplatte kaufen kann. Die zweite Sache ist das die Anbieter durch die Reihe weg zu wenig Speicher anbieten. Einzig Strato HiDrive sticht dort heraus, diese bieten immerhin 5000 GiB an, was meiner Meinung trotzdem noch zu wenig ist, ich denke ab 15 TiB wäre ich zufrieden :)

Ein letzter ganz wichtiger Aspekt ist die Verschlüsselung auf Nutzerseite, damit man dem Dienst seine Daten nicht anvertrauen muss. Auch dies wird im Moment noch nicht wirklich behoben. Dort muss man dem Dienst einfach vertrauen, aber wer will das schon…