Sensible Daten in der Cloud – Teil 1

Nicht erst seit Apple die “Ei-Cloud” in jedes Medium katapultiert hat, erfreuen sich Clouds einer steigenden Beliebtheit. Neben den Großen wie Amazon und Dropbox gibt es auch kleine Clouds wie die “Ubuntu-One” von Canonical (die Firma hinter Ubuntu Linux) und Cloudbox von LaCie.

Unter Linux wird man auf jeden Fall Dropbox und speziell unter Ubuntu auch Ubuntu-One finden. Steffen Herrman hat in “Dropbox Dateien und Ordner für jeden zugänglich machen” schon darüber berichtet. Ich möchte hier auf einen Aspekt eingehen, den Steffen ausgespart hat. Die Datensicherheit in der Cloud.

Alle Anbieter versprechen, dass die Daten auf jeden Fall sicher und vor dem Zugriff durch Unbefugte geschützt sind. Nicht erst seit dem Dauer-Hacking-Opfer SONY sollte jedem klar sein, dass es diese Sicherheit nicht gibt! Dropbox ist der Beweis dafür. Am 20. Juni war es durch ein Update möglich, sich ohne korrektes Passwort bei ca. 1% der Benutzer einzuloggen. Der Zauber dauerte ganze 5 Stunden. Soviel zum Thema “meine Daten sind sicher”.

Sicherlich kann man es einfach unterlassen, sensible Daten in der Cloud zu speichern. Wenn es einem Cloud-Benutzer aber nicht egal ist, ob die Daten gelesen werden können, dann hilft nur die Verschlüsselung. Hier gibt es verschiedene Ansätze, die sich auch je nach Betriebssystem unterscheiden.

Für Windows und Linux eignet sich der Einsatz des freien TrueCrypt. Allerdings wird hier ein verschlüsselter “Container” erzeugt, in dem –ähnlich einer ZIP-Datei– alle Dateien gespeichert werden. Nach außen ist nur eine große Datei zu sehen. Für den Sync bedeutet das dann, dass für jede kleine Änderung der gesamte Container in die Cloud übertragen werden muss. Und das kann ein zeitaufwendiges Unterfangen werden. Der Vollständigkeit wegen, einen Artikel dazu findet ihr unter “Dropbox und TrueCrypt – verschlüsselte Daten in der Cloud”.

Einfache Lösungen für Linux

Als Linux-User ist man in der glücklichen Lage, unter verschiedenen Lösungen wählen zu können. Ich habe mich für den FUSE-Dateisystem EncFS entschieden. Bei den meisten Distributionen ist dieses kommandozeilenbasierende Programm in ihrem Lieferumfang enthalten. EncFS geht dabei den Weg, dass ein Verzeichniszweig mit verschlüsselten Daten nach dem Entschlüsseln einfach in ein leeres Verzeichnis eingehängt wird (gemountet). Alle Daten und auch die Namen der Verzeichnisse und Dateien sind verschlüsselt.

Für die Verwendung in einer Cloud bedeutet das, dass die verschlüsselten Verzeichnisse einfach in den Sync-Ordner gelegt werden, während der entschlüsselte Teil im normalen Home-Verzeichnis liegt. Zum Beispiel könnte ~/Dropbox/.Privates_encfs entschlüsselt als ~/Privates eingebunden werden. Der Punkt am Anfang des Verzeichnisnamens sorgt dafür, dass man das verschlüsselte Verzeichnis in seinem Dropbox-Ordner nicht sieht.

Nutzung bei Bedarf

Damit die Handhabung zeitgemäßer ist, sollte man eine grafische Oberfläche verwenden. Diese richtet sich nach dem Verwendungszweck. Will man die verschlüsselten Daten nur gelegentlich benutzen, bietet sich der Einsatz von Cryptkeeper an. Cryptkeeper erlaubt das Anlegen von verschlüsselten Verzeichnissen, sowie das einfache Einbinden bestehender Verzeichnisse. Das besondere an Cryptkeeper ist, dass er einen Eintrag deaktiviert, wenn das verschlüsselte Verzeichnis nicht existiert. Dies prädestiniert Cryptkeeper für den Einsatz von USB-Sticks mit sensiblen Daten. Und das ist auch genau mein Anwendungsfall. Sobald der USB-Stick eingesteckt ist, aktiviert Cryptkeeper den entsprechenden Eintrag, und man kann ihn einbinden.

Zum Einbinden erfragt Cryptkeeper das Passwort für den Zugang zu dem verschlüsselten Verzeichnis. Man sollte darauf achten, dass niemals das Login-Passwort verwendet wird! Wenn möglich sollte man sich die Mühe machen, und jedem Eintrag ein eigenes Passwort gönnen. Sicher ist sicher.

Wenn man durch einen Sync das verschlüsselte Verzeichnis zum ersten mal auf einen anderen Rechner bekommt, dann muss man das Verzeichnis importieren. Cryptkeeper erfragt dazu einfach das verschlüsselte und das entschlüsselte Verzeichnis. Dass Passwort selbst ist im verschlüsselten Verzeichnis enthalten — natürlich nicht im Klartext. Doch dazu später mehr.

Automatische Nutzung beim Anmelden

Der zweite mögliche Anwendungsfall sieht etwas anders aus. Hier können die sensiblen Daten auf einem Rechner liegen, auf den auch andere Personen einen Login haben. Es ist auch denkbar, dass unbefugte den Rechner einfach mit einer Live-CD booten und so Zugriff auf die Festplatte bekommen. Oder der Laptop wird gestohlen. Wie auch immer.

Alternativ zu einem komplett verschlüsseltem Laufwerk bietet sich in einem solchen Fall die Lösung mit EncFS immer dann an, wenn man nur Teile verschlüsseln möchte. Hierzu gibt es Möglichkeiten, bei denen diese Verzeichnisse automatisch mit dem Einloggen des Benutzer entschlüsselt werden. Da das den Umfang des Artikels sprengen würde, werde ich das in einem späteren Artikel vorstellen. Für die Neugieren unter den Lesern sei gesagt, dass das Programm gnome-encfs Gegenstand des Artikel sein wird.

Installation von Cryptkeeper

Die Installation von Cryptkeeper unter Ubuntu oder GNU/Linux gestaltet sich recht einfach. Entweder man installiert es mit Synaptic, oder man nutzt dazu die Kommandozeile:

$ sudo apt-get install cryptkeeper

Der Autostart

Nach der Installation muss man das Programm zu den automatisch gestarteten Programmen hinzufügen. Dies geschieht bei GNOME 2.x über das Menü “System/ Einstellungen/Startprogramme “und bei Unity über den Eintrag “Startprogramme“ in den “Systemeinstellungen”.

Das Bild zeigt, wie der Eintrag in der Autostartliste auszusehen hat. Nach dem Eintragen ist das Programm aber noch nicht gestartet. Dazu muss man sich entweder erneut einloogen, oder man öffnet ein Terminal und startet Cryptkeeper von Hand. Für Ubuntu-User mit Unity Desktop gibt es zusätzlich noch eine Schwierigkeit zu umschiffen. Unity schaltet die Icons des alten Panel (Systray Icons) ab. Um sie trotzdem zuzulassen, muss man sie in eine “whitelist” eintragen. Das erledigt man am besten wieder über das Terminal:

$ gsettings set com.canonical.Unity.Panel systray-whitelist "['Cryptkeeper']"

Hinweis: sind bereits andere Programme in dieser whitelist aufgeführt, muss der Eintrag für Cryptkeeper angehängt werden. Alternativ kann man mit ‘all’ auch alle Programme zulassen.

Jetzt sollte man dem Start im Panel je nach gewählten Icon-Theme ein Schüssel zu sehen sein. Mit einem Rechtsklick erscheint das Menü, und mit einem Linksklick die Liste der verschlüsselten Verzeichnisse, sowie zwei Einträge um das Erstellen oder das Importieren anzustoßen.

Anlegen eines verschlüsselten Verzeichnisses

Will man nur ein verschlüsseltes Verzeichnis ohne jeglichen Sync, so kann man Cryptkeeper dazu benutzen, ein EncFS-Verzeichnis anzulegen.

Das Bild zeigt die vier Schritte zum Anlegen eines Verzeichnisses ~\Privates. Cryptkeeper erledigt das voll automatisch. Nur leider liegen das Verschlüsselte und das entschlüsselte Verzeichnis im gleichen Basisverzeichnis. Im Bild wäre das das Home-Verzeichnis. Das ist aber nicht das, was wir hier brauchen.

Für Dropbox verschlüsseln

Für eine Synchronisation mit Dropbox oder Ubuntu-One muss das verschlüsselte Verzeichnis ein anderes Basisverzeichnis verwenden. Ziel ist es, dass die verschlüsselten Daten in ~/Dropbox/.Privates_crypt landen, während die entschlüsselten Daten z.B. im Home-Verzeichnis als ~/Privates eingeblendet werden. Somit ist wieder etwas Handarbeit an der Kommandozeile gefordert.

$ encfs ~/Dropbox/.Privat_crypt ~/Privat
Das Verzeichnis "/home/gast/Dropbox/.Privat_crypt/" existiert nicht. Soll es angelegt werden? (y,n) y
Das Verzeichnis "/home/gast/Privat" existiert nicht. Soll es angelegt werden? (y,n) y
Neues verschlüsselter Datenträger wird angelegt.
Bitte wählen Sie eine der folgenden Optionen:
 "x" für den Experten-Modus,
 "p" für den vorkonfigurierten Paranoia-Modus,
 etwas anderes oder eine Leerzeile wählt den Standard-Modus.
?>

Standard-Konfiguration gewählt.

Konfiguration abgeschlossen. Das angelegte Dateisystem hat die
folgenden Eigenschaften:
Dateisystem-Verschlüsselung: "ssl/aes", Version 2:2:1
Dateinamenkodierung: "nameio/block", Version 3:0:1
Schlüssellänge: 192 Bits
Blockgröße: 1024 Bytes
Jede Datei enthält 8 Bytes Vorspann mit einmaligen IV-Daten.
Dateinamenkodierung benutzt IV-Verkettungsmodus.
File holes passed through to ciphertext.

Nun wird ein Passwort für das Dateisystem benötigt.
Da es keinen Mechanismus zur Wiederhestellung gibt, müssen Sie
sich an das Kennwort erinnern! Das Kennwort kann mit encfsctl
nächträglich geändert werden.

Neues EncFS-Passwort: **** EncFS-Passwort bestätigen: **** 
$ fusermount -u ~/Privat

Durch die beiden Befehle encfs und fusermount wurde das verschlüsselte Verzeichnis angelegt und anschließen wieder ausgehängt. Im Gegensatz zum Anlegen über Cryptkeeper konnten die Verzeichnisse frei gewählt werden. Durch die Wahl der Standardkonfiguration geht man Detailfragen aus dem Weg. Wer mehr wissen will, der kann die Hilfeseite (man encfs) befragen.

Im nächsten Schritt muss man das eben angelegte Verzeichnispaar mit Cryptkeeper importieren. Diese Vorgehensweise ist auf jedem PC zu wiederholen, auf dem das verschlüsselte Verzeichnis durch den Sync zum ersten mal benutzt werden soll.

Die Abbildung zeigt die vier Schritte zum Import. Danach erscheint das Verzeichnis als Eintrag in der Liste von Cryptkeeper. Zum Einbinden muss man jetzt nur noch den Eintrag anklicken. Alle eingebundenen Verzeichnisse bekommen einen Haken vorangestellt.

Wenn man ein Verzeichnis einbindet, dann startet Cryptkeeper danach den GNOME Dateimanager Nautilus. Dies läßt sich aber in den Einstellungen von Cryptkeeper ändern.

Hiermit ist der erste Teil des Artikel fertig. Im zweiten Teil werde ich auf das automatische Einbinden der verschlüsselten Verzeichnisse beim Anmelden eingehen. Bis dahin viel Spass beim Experimentieren.

Der Artikel steht unter folgender Lizenz: CC BY-SA 3.0

Erste Veröffentlichung auf jdesch.de