Wie komprimiere ich ein Verzeichnis mit Verschlüsselung für Dateinamen?

17

Über die Befehlszeile weiß ich, dass ich ein Verzeichnis mit dem folgenden Befehl verschlüsseln kann:

zip -er Directory.zip /path/to/directory

Dadurch werden jedoch die Dateinamen selbst nicht verschlüsselt. Wenn jemand rennt:

unzip Directory.zip

Wenn Sie wiederholt ein falsches Kennwort eingeben, durchläuft der Befehl unzip alle enthaltenen Dateinamen, bis das richtige Kennwort eingegeben wurde. Beispielausgabe:

unzip Directory.zip 
Archive:  Directory.zip
   creating: Directory/
[Directory.zip] Directory/sensitive-file-name-1 password: 
password incorrect--reenter: 
password incorrect--reenter: 
   skipping: Directory/sensitive-file-name-1  incorrect password
[Directory.zip] Directory/sensitive-file-name-2 password: 
password incorrect--reenter: 
password incorrect--reenter: 
   skipping: Directory/sensitive-file-name-2  incorrect password
[Directory.zip] Directory/sensitive-file-name-3 password: 
password incorrect--reenter: 
password incorrect--reenter: 
   skipping: Directory/sensitive-file-name-3  incorrect password

und so weiter.

Gibt es eine Möglichkeit, über die Befehlszeile ein Verzeichnis mit Verschlüsselung zu komprimieren und gleichzeitig die Dateinamen selbst zu verschlüsseln oder auszublenden?

Vielen Dank.

Leo Galleguillos
quelle
Wahrscheinlich möchten Sie die Standardverschlüsselung von zip nicht verwenden, da diese schwach ist. Verwenden 7zipSie sie daher, da sie AES-basierte Verschlüsselung verwendet.
Pierz
Was ist die Standardverschlüsselung von zip und aus welcher Quelle können Sie bestätigen, dass die Standardverschlüsselung von zip nicht sicher ist?
Leo Galleguillos
1
Die meisten Zip-Tools (es gibt einige neuere Zip-Tools, die bessere Verschlüsselung verwenden) verwenden immer noch die PKZIP-Stream-Verschlüsselung, die sich 1994 als schwach erwiesen hat : rd.springer.com/content/pdf/10.1007%2F3-540-60590-8_12 .pdf Die Wikipedia-Seite gibt einen grundlegenden Überblick: en.wikipedia.org/wiki/Zip_(file_format)#Encryption
Pierz

Antworten:

24

In einer ZIP-Datei wird nur der Dateiinhalt verschlüsselt. Dateimetadaten, einschließlich Dateinamen, werden nicht verschlüsselt. Dies ist eine Einschränkung des Dateiformats: Jeder Eintrag wird separat komprimiert und, falls verschlüsselt, separat verschlüsselt.

Sie können stattdessen 7-zip verwenden. Es unterstützt die Metadatenverschlüsselung ( -mhe=onmit der Linux-Befehlszeilenimplementierung).

7z a -p -mhe=on Directory.7z /path/to/directory

Es gibt 7zip-Implementierungen für alle wichtigen Betriebssysteme und die meisten kleineren, für die jedoch möglicherweise zusätzliche Software installiert werden muss (IIRC Windows kann derzeit verschlüsselte zip-Dateien sofort entpacken). Wenn die Entschlüsselung von 7z ein Problem darstellt, können Sie sich auf zip verlassen, indem Sie zuerst das Verzeichnis in eine einzelne Datei packen und dann diese Datei verschlüsseln. Wenn Sie dies tun, deaktivieren Sie die Komprimierung einzelner Dateien und weisen Sie die äußere Zip-Datei an, die Zip-Datei zu komprimieren, um insgesamt ein besseres Komprimierungsverhältnis zu erzielen.

zip -0 -r Directory.zip /path/to/directory
zip -e -n : encrypted.zip Directory.zip
Gilles 'SO - hör auf böse zu sein'
quelle
1
Vermutlich am besten vermeiden, zip zum Verschlüsseln zu verwenden - man kann 7zip verwenden, um eine sicherer verschlüsselte (AES) Zip-Datei in der 2. Zeile zu generieren:7z a -p -tzip encrypted.zip Directory.zip
Pierz
2

Sie können ein Archiv mit Ihrem Lieblingstool erstellen und dann bcryptdie Verschlüsselung / Entschlüsselung durchführen.

A) So erstellen Sie eine verschlüsselte Datei:

tar -czf Directory.tgz /path/to/directory
bcrypt Directory.tgz

Dadurch erhalten Sie eine Blowfish-verschlüsselte Datei Directory.tgz

B) Um diesen Vorgang umzukehren:

bcrypt Directory.tgz.bfe
tar -xf Directory.tgz
Jedi
quelle
2
Der Ansatz ist gut, aber Sie sollten ein anderes Tool für die Verschlüsselung verwenden - bcryptverwendet EBC, das die Struktur der verschlüsselten Daten aufdeckt. Einzelheiten finden Sie unter Debian-Fehler Nr. 700758 (Debian unterstützt daher bcryptnur die Entschlüsselung).
Stephen Kitt