Jak spakować katalog z szyfrowaniem nazw plików?


17

Korzystając z wiersza polecenia, wiem, że mogę zaszyfrować katalog za pomocą następującego polecenia:

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

Nie powoduje to jednak szyfrowania samych nazw plików. Jeśli ktoś uruchomi:

unzip Directory.zip

i wielokrotnie wprowadza nieprawidłowe hasło, polecenie unzip będzie przechodzić przez wszystkie zawarte nazwy plików, dopóki nie zostanie wprowadzone prawidłowe hasło. Przykładowe dane wyjściowe:

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

i tak dalej.

Czy przy użyciu wiersza polecenia istnieje sposób na skompresowanie katalogu z szyfrowaniem, a także szyfrowanie lub ukrywanie samych nazw plików?

Dziękuję Ci.


Prawdopodobnie nie chcesz używać domyślnego szyfrowania zip, ponieważ jest on słaby, więc używaj 7zipgo, ponieważ używa szyfrowania opartego na AES.
Pierz

Jakie jest domyślne szyfrowanie zip i jakie jest Twoje źródło potwierdzania, że ​​domyślne szyfrowanie zip jest niebezpieczne?
Leo Galleguillos

1
Większość narzędzi zip (niektóre nowsze narzędzia zip, które używają lepszego szyfrowania) nadal korzystają z szyfru Stream PKZIP, który po raz pierwszy okazał się słaby w 1994 roku: rd.springer.com/content/pdf/10.1007%2F3-540-60590-8_12 .pdf Strona Wikipedii zawiera ogólny przegląd: en.wikipedia.org/wiki/Zip_(file_format)#Encryption
Pierz

Odpowiedzi:


26

W pliku zip tylko zawartość pliku jest szyfrowana. Metadane pliku, w tym nazwy plików, nie są szyfrowane. Jest to ograniczenie formatu pliku: każdy wpis jest osobno kompresowany, a jeśli jest zaszyfrowany, osobno szyfrowany.

Zamiast tego możesz użyć 7-zip . Obsługuje szyfrowanie metadanych ( -mhe=onz implementacją wiersza poleceń systemu Linux).

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

Istnieją implementacje 7zip dla wszystkich głównych systemów operacyjnych i większości mniejszych, ale mogą wymagać instalacji dodatkowego oprogramowania (obecnie IIRC Windows może rozpakować zaszyfrowane pliki zip). Jeśli wymaganie odszyfrowania 7z jest problemem, możesz polegać na zipie tylko poprzez użycie go do spakowania katalogu w jednym pliku, a następnie zaszyfrowanie tego pliku. Jeśli to zrobisz, wyłącz kompresję poszczególnych plików i poinstruuj zewnętrzny zip, aby skompresował plik zip, uzyskasz ogólnie lepszy współczynnik kompresji.

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

1
Prawdopodobnie najlepiej unikać używania zip do szyfrowania - można użyć 7zip, aby wygenerować bezpieczniej zaszyfrowany (AES) plik zip w drugiej linii:7z a -p -tzip encrypted.zip Directory.zip
Pierz

2

Możesz utworzyć archiwum za pomocą swojego ulubionego narzędzia, a następnie użyć go bcryptdo wykonania szyfrowania / deszyfrowania.

A) Aby utworzyć zaszyfrowany plik:

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

Otrzymasz plik zaszyfrowany przez Blowfish Directory.tgz

B) Aby odwrócić ten proces:

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

2
Podejście jest dobre, ale powinieneś użyć innego narzędzia do szyfrowania - bcryptużywa EBC, który ujawnia strukturę zaszyfrowanych danych. Szczegółowe informacje zawiera błąd Debian # 700758 (w wyniku tego Debian bcryptobsługuje tylko deszyfrowanie).
Stephen Kitt
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.