Gefällt dir dieser Artikel?

verschlüsselter Cloudspeicher: EncFS meets Boxcryptor

erschienen in der Kategorie Software, am 28.08.2013
Schnatterente
Nachdem ich letztens einen Beitrag darüber geschrieben habe, wie man Cloud-Speicher mit dem Programm Boxcryptor (Windows, Mac OS) oder unter Linux mit EncFS verschlüsseln kann, kam nun schon mehrfach die Frage bei mir an, wie man EncFS so einrichtet, dass es zu Boxcryptor kompatibel ist.

Zuerst sei einmal gesagt, dass man eine Kompatibilität zwischen den beiden Programmen nur herstellen kann, wenn man Boxcryptor Classic benutzt und nicht die neuere Version Boxcryptor 2, denn diese verschlüsselt die Daten anders als ihre Vorgängerversion und das neue Vorgehen hat mit dem von EncFS nicht mehr viel gemein.

Beispiel: Boxcryptor-kompatible EncFS-Konfiguration

Hier ein kleines Beispiel, wie man EncFS so einrichtet, dass es zu Boxcryptor kompatibel ist. Der Ordner "verschluesselt" enthält hierbei die verschlüsselten Daten und das Verzeichnis "daten" dient als Mount-Point, über den man auf die entschlüsselten Dateien zugreifen kann (vergleichbar mit der virtuellen Festplatte der Boxcryptor-Software unter Windows). Die fett markierten Zeichen sind meine vorgenommenen Eingaben (für das Denglisch der Software kann ich nichts).
$ encfs ~/verschluesselt ~/daten

Neuer verschlüsselter Datenträger wird erstellt.
Bitte wählen Sie eine der folgenden Optionen:
"x" für den Expertenmodus,
"p" für den vorkonfigurierten Paranoia-Modus,
etwas anderes oder eine Leerzeile wählt den Standard-Modus.
?> x

Manuelle Konfiguration gewählt.
Die folgenden Verschlüsselungsalgorithmen sind verfügbar
1. AES : 16 byte block cipher
unterstützte Schlüssellänge zwischen 128 und 256 Bits
unterstützte Blockgröße zwischen 64 und 4096 Bits
2. Blowfish : 8-Byte-Blockchiffre
unterstützte Schlüssellänge zwischen 128 und 256 Bits
unterstützte Blockgröße zwischen 64 und 4096 Bits

Geben Sie die Nummer Ihrer Auswahl an: 1

Gewählter Algorithmus "AES"

Bitte wählen Sie eine Schlüssellänge in Bit. Die von Ihnen gewählte Verschlüsselung
unterstützt Längen von 128 bis 256 Bit in 64 Bit Schritten.
Zum Beispiel:
128, 192, 256
Gewählte Schlüssellänge: 256

Verwenden Schlüssellänge von 256 Bit

Wählen Sie eine Blockgröße (in Byte) aus. Der ausgewählte Algorithmus
unterstützt Größen von 64 bis 4096 Byte in Schritten von je 16 Byte.
Oder drücken Sie Enter, um die Vorgabe (1024 Byte) zu übernehmen

Dateisystem-Blockgröße: 1024

Verwende Dateisystem-Blockgröße von 1024 Bytes

Die folgenden Verschlüsselungsalgorithmen für Dateinamen stehen zur Verfügung:
1. Block : Blockverschlüsselung, versteckt die Dateinamengröße etwas
2. Null : No encryption of filenames
3. Stream : Stromchiffre, möglichst kurze Dateinamen

Geben Sie die Nummer Ihrer Auswahl an: 2

Gewählter Algorithmus "Null""

Enable filename initialization vector chaining?
This makes filename encoding dependent on the complete path,
rather then encoding each path element individually.
The default here is Yes.
Any response that does not begin with 'n' will mean Yes: no

Enable per-file initialization vectors?
This adds about 8 bytes per file to the storage requirements.
It should not affect performance except possibly with applications
which rely on block-aligned file io for performance.
The default here is Yes.
Any response that does not begin with 'n' will mean Yes: no

Externe IV Verkettung abgeschaltet, da 'IV Verkettung'
und 'einmalige IV' Merkmale für diese Option benötigt werden.
Enable block authentication code headers
on every block in a file? This adds about 12 bytes per block
to the storage requirements for a file, and significantly affects
performance but it also means [almost] any modifications or errors
within a block will be caught and will cause a read error.
The default here is No.
Any response that does not begin with 'y' will mean No: no

Sollen jedem Block-Vorspann Zufallsbytes hinzugefügt werden?
Das wird die Leistung veringern, aber sicherstellen, dass die
Blöcke unterschiedliche Sicherheitscodes verwenden. Sie können das selbe
Resultat mit geringeren Leistungseinbußen erzielen, indem Sie die dateispezifischen Initialisierungsvektoren aktivieren.
Auswahl der Anzahl der Bytes, von 0 (Keine Zufallsbytes) bis 8: 0

Enable file-hole pass-through?
This avoids writing encrypted blocks when file holes are created.
The default here is Yes.
Any response that does not begin with 'n' will mean Yes: yes


Konfiguration abgeschlossen. Das angelegte Dateisystem hat die
folgenden Eigenschaften:
Dateisystem Chiffre: "ssl/aes", Version 3:0:2
Dateinamenskodierung: "nameio/null", Version 1:0:0
Schlüssellänge: 256 Bits
Blockgröße: 1024 Byte
File holes passed through to ciphertext.

Nun wird ein Kennwort 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: *****


Ein mit diesen Einstellungen erzeugtes EncFS-Verzeichnis lässt sich problemlos mit Boxcryptor einbinden. Die XML-Einstellungsdatei (.encfs6) im Ordner "verschluesselt" sieht dann dementsprechend so aus:
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE boost_serialization>
<boost_serialization signature="serialization::archive" version="9">
   <cfg class_id="0" tracking_level="0" version="20">
            <version>20100713</version>
            <creator>EncFS 1.7.4</creator>
            <cipherAlg class_id="1" tracking_level="0" version="0">
                     <name>ssl/aes</name>
                     <major>3</major>
                     <minor>0</minor>
             </cipherAlg>
            <nameAlg>
                     <name>nameio/null</name>
                     <major>1</major>
                     <minor>0</minor>
            </nameAlg>
            <keySize>256</keySize>
            <blockSize>1024</blockSize>
            <uniqueIV>0</uniqueIV>
            <chainedNameIV>0</chainedNameIV>
            <externalIVChaining>0</externalIVChaining>
            <blockMACBytes>0</blockMACBytes>
            <blockMACRandBytes>0</blockMACRandBytes>
            <allowHoles>1</allowHoles>
            <encodedKeySize>52</encodedKeySize>
            <encodedKeyData> Q...A== </encodedKeyData>
            <saltLen>20</saltLen>
            <saltData> Z...s= </saltData>
            <kdfIterations>116494</kdfIterations>
            <desiredKDFDuration>500</desiredKDFDuration>
   </cfg>
</boost_serialization>


Ich habe die Kompatibilität der Programme mit EncFS Version 1.7.4 unter Gentoo Linux und Boxcryptor Classic Version 1.6.400.65 unter Windows 7 getestet und es hat alles reibungslos funktioniert.

Boxcryptor Classic gibt es übrigens auch als Android-App. Allerdings vertraue ich diesem Betriebssystem aktuell so wenig, dass ich darüber kein Passwort eingeben würde, dass einen Zugriff auf wirklich sensible Daten möglich macht - wobei diese (selbst verschlüsselt) ohnehin nichts in einer Cloud verloren haben.


PRISM is watching you ...

Geschnatter

3 Kommentare, selbst mitschnattern << < Seite 1/1 > >>
Ullrich, am 28.08.2013 um 08:40 Uhr
Was ist dieses ~ im Dateipfad?
Antwort: ~ steht für das eigene Home-Verzeichnis (ist also das gleiche wie /home/nutzername).
Boxcryptor für Linux, am 28.08.2013 um 13:37 Uhr
Ist EncFS die Boxcryptor-Version für Linux? Ist das vom gleichen Hersteller?
Antwort: Nein, EncFS ist eine Open-Source-Anwendung, Boxcryptor ist eine proprietäre Software, die, wenn man mehr Features haben will, auch Geld kostet. Die beiden Programme tun aber so ziemlich das Gleiche und sind zueinander kompatibel.
Jürgen, am 19.02.2015 um 17:33 Uhr
Kurze Anmerkung:
Verschlüsselte Dateinamen funktionieren auch - dann Option 3 (Stream : Stromchiffre, möglichst kurze Dateinamen) wählen.

Getestet zumindest mit der ios-App...