Daten auf der Festplatte und in Cloud verschlüsseln

Zurück zur Übersicht aller Crypto Artikel

Vorweg der Hinweis, wer fragen dazu hat kann sich einfach melden und sie werden dann geklärt. E-Mail: ruediger@pretzlaff.info hier in den Kommentaren oder Google+ Community: Apple User Deutschland

Inhalt

Datenverschlüsselung lokal und in der Cloud

Wir alle benutzen gerne Onlinespeicherdienste und die meisten davon sind meistens von Anbietern in den USA und anderen Ländern. Deutsche Anbieter findet man selten, und wenn sie Onlinespeicher anbieten ist, das nur als zusätzliche Option zu anderen Diensten. Man erhält bei der E-Mail-Aadresse einen Onlinespeicher Account dazu oder wie bei Strato auch einzeln, aber dann kostenpflichtig.

Wenn man Dropbox, Box.net, Bitcasa und Co trotzdem benutzen möchte sollte man seine Daten bei diesen Cloudanbietern nur verschlüsselt ablegen.

Boxcryptor

Daten in Cloud Diensten wie Dropbox, SkyDrive, Box, GoogleDrive usw. verschlüsseln.

Boxcryptor setzt auf EncFS auf was weiter unten noch beschrieben wird. Einen vor längerer Zeit angelegter BoxCryptor Ordner konnte ich bei mit leider nicht mehr öffnen und auch bei neuen Ordnern kam es leider mehrfach vor das die Konfigurationsdatei .encfs6.xml nicht mehr gefunden werden konnte.

Da ich EncFS einsetze hatte ich noch eine Möglichkeit trotzdem auf die Daten wieder zu entschlüsseln. Wer BoxCryptor einsetzt sollte aber trotzdem unten noch den Abschnitt lesen und einmal ausprobieren in dem EncFS beschrieben wird. Das könnte vielleicht einmal hilfreich sein, wenn die Konfiguration verloren geht.

Betriebsysteme:

  • Windows
  • Windows RT
  • Mac OS X
  • (iPhone/iPad/iPod)
  • Android
  • Google Chrome (Plug-in)

Truecrypt

TrueCrypt kann auch auf Onlinespeicher angewendet werden. Mit TrueCrypt können komplette Partitionen oder auch Container-Dateien verschlüsselt werden. Besondere Funktion sind versteckte Container (Hidden Volumes). Dadurch soll es unmöglich sein, die Existenz verschlüsselter Daten nachzuweisen. Weiter Funktionen sind der portable Modus um TreuCrypt von einem USB-Stick aus starten zu können ohne TrueCrypt installiert haben zu müssen.

encFS (Unix Systeme: Linux, OS X, *BSD)

Es belegt keine feste Größe auf dem Datenträger, wie z.B. TrueCrypt Container. Es wird nur der Platz belegt, der tatsächlich für die verschlüsselten Dateien benötigt wird. Daten können in EncFS gespeichert werden, bis das Dateisystem, in dem es sich befindet, voll ist.

echo "geheimespassword" | gpg -o key.gpg -e -r <DeineKeyID>
mkdir ~/.CryptDir.encfs ~/CryptDir 
encfs ~/.Cryptdir.crypt ~/Cryptdir
# Den Default Paranoia Modus mit p auswählen und das Passwort eingeben.
gpg -d key.gpg | encfs -S ~/.Crpytdir ~/CryptDir

Dropbox Daten verschlüsseln:

mkdir ~/Dropbox/.crypted ~/CryptedDropbox
encfs ~/Dropbox/.crypted ~/CryptedDropbox
# auch hier wieder den Default Paranoia Modus mit p auswählen 
# und das Passwort eingeben

Wichtig ist hier das man Dropbox so einstellt das Dropbox nicht beim Starten des Systems bzw. Login gestartet wird. Erst das encfs öffnen und danach dann erst Dropbox starten.

Das Öffnen des encFS Dateisystems kann über Scripte gesteuert werden, das auch gleich noch damit verbunden werden kann, dass die Dropbox gestartet wird nachdem die Daten entschlüsselt zur Verfügung stehen. Dabei können auch noch andere Werte mit in das Passwort mit einfließen. Zum Beispiel das ein USB-Stick eingesteckt werden muss und die Seriennummer des Sticks ausgelesen wird. Oder ein angeschlossenes/verbundenes Smartphone per USB oder Bluetooth ausgelesen werden kann. Die Möglichkeiten um den Key zum Entschlüsseln auszulesen und zu generieren sind fast unendlich und können beliebig verknüpft werden.

Crypto Container Linux

Crypto Container unter Linux mit losetup und luks erstellen und verschlüsseln.

# einen 1GB großen Container erstellen
dd if=/dev/urandom of=${HOME}/containername.crypt bs=1024 count=1048576
# das nächste freie Loopdevice finden
nextdev=$(losetup -f)
losetup ${nextdev} ${HOME}/containername.crypt
cryptsetup -c aes-cbc-essiv:sha256 -y -s 256 luksFormat ${nextdev}
cryptsetup luksOpen ${nextdev} containername
mkfs.ext3 /dev/mapper/containername
mkdir ${HOME}/containername
mount /dev/mapper/containername ${HOME}/containername

Will man den Container wieder schließen, also nicht mehr zugänglich machen muss man das mounten, crytseup und loseup einfach wieder rückwärts ausführen mit den Parametern zum Aushängen, LuksClose und losetup zum Entfernen des Loopdevices

umount ${HOME}/containername
cryptsetup luksClose containername
# Das passende Loopdevice raussuchen
losetup -a | grep "${HOME}/containername" | awk -F: '{print $1}'
losetup -d ${LOOPDEV}

Will man den Container wieder benutzen muss beim nächsten mal nur das losetup, cryptsetup luksOpen und das mount ausgeführt werden.

nextdev=$(losetup -f)
losetup ${nextdev} ${HOME}/containername.crypt
cryptsetup luksOpen ${nextdev} containername
mount /dev/mapper/containername ${HOME}/containername

Für das erstellen, öffnen, schliessen, anzeigen der vorhanden Container habe ich ein Perl Script und Perlmodul geschrieben. Das erleichtert das Erstellen, löschen usw. und macht den Umgang mit den Containern sehr einfach.

Hier einmal ein paar Beispiele, wie ich damit einen Container erstelle, öffne und schließen kann:

# 1 GB großen Container mit Namen test1 erstellen
# -g = GB, mit -m können auch Megabytes angegeben werden.
cryptocontainer -add -size=1 -g -name=test1
cryptocontainer -mount -name=test1
cryptocontainer -umount -name=test1

# weitere Parameter sind unter anderem:
# -s = alle geöffneten Container anzeigen
# -list = alle vorhanden Container anzeigen
# -d = debug

Bei Bedarf kann ich das Modul und Script auch zur Verfügung stellen. Dann werde ich noch die Pfade für den Ort an dem die Container und Mountpoints auf der Festplatte angelegt werden konfigurierbar machen.

Kommentare