Come comprimere la directory con la crittografia per i nomi dei file?


17

Utilizzando la riga di comando, so che posso crittografare una directory con il seguente comando:

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

Tuttavia, ciò non crittografa i nomi dei file stessi. Se qualcuno corre:

unzip Directory.zip

e immette ripetutamente una password errata, il comando unzip eseguirà il ciclo attraverso tutti i nomi dei file contenuti fino a quando non viene immessa la password corretta. Uscita campione:

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

e così via.

Utilizzando la riga di comando, c'è un modo per comprimere una directory con la crittografia e allo stesso tempo crittografare o nascondere i nomi dei file stessi?

Grazie.


Probabilmente non vuoi usare la crittografia predefinita di zip in quanto è debole, quindi usa 7zippoiché usa la crittografia basata su AES.
Pierz,

Qual è la crittografia predefinita di zip e qual è la tua fonte per affermare che la crittografia predefinita di zip non è sicura?
Leo Galleguillos,

1
La maggior parte degli strumenti zip (ci sono alcuni nuovi strumenti zip che usano una migliore crittografia) usano ancora il codice PKZIP Stream che è stato mostrato essere debole nel 1994: rd.springer.com/content/pdf/10.1007%2F3-540-60590-8_12 .pdf La pagina di Wikipedia offre una panoramica di base: en.wikipedia.org/wiki/Zip_(file_format)#Encryption
Pierz

Risposte:


26

In un file zip, viene crittografato solo il contenuto del file. I metadati dei file, inclusi i nomi dei file, non sono crittografati. Questa è una limitazione del formato del file: ogni voce è compressa separatamente e, se crittografata, crittografata separatamente.

Puoi invece usare 7-zip . Supporta la crittografia dei metadati ( -mhe=oncon l'implementazione della riga di comando di Linux).

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

Esistono implementazioni 7zip per tutti i principali sistemi operativi e per quelli minori, ma potrebbe richiedere l'installazione di software aggiuntivo (in questi giorni Windows IIRC può decomprimere i file zip crittografati). Se richiedere 7z per la decrittografia è un problema, puoi fare affidamento su zip solo utilizzandolo prima per comprimere la directory in un singolo file, quindi crittografando quel file. Se lo fai, disattiva la compressione di singoli file e ordina alla zip esterna di comprimere il file zip, otterrai un rapporto di compressione complessivamente migliore.

zip -0 -r Directory.zip /path/to/directory
zip -e -n : encrypted.zip Directory.zip

1
Probabilmente è meglio evitare di usare zip per crittografare - si può usare 7zip per generare un file zip crittografato in modo più sicuro (AES) sulla seconda riga:7z a -p -tzip encrypted.zip Directory.zip
Pierz

2

È possibile creare un archivio utilizzando il proprio strumento preferito e quindi utilizzare bcryptper eseguire la crittografia / decrittografia.

A) Per creare un file crittografato:

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

Questo ti darà un file crittografato Blowfish Directory.tgz

B) Per invertire questo processo:

bcrypt Directory.tgz.bfe
tar -xf Directory.tgz

2
L'approccio è buono, ma dovresti usare un altro strumento per la crittografia: bcryptusa EBC che rivela la struttura nei dati crittografati. Vedi il bug Debian n. 700758 per i dettagli (di conseguenza Debian bcryptsupporta solo la decrittazione).
Stephen Kitt,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.