I am using zip 3.0.0
on macOS High Sierra and Ubuntu. Here is my zip version on macOS:
$ zip --version | head
Copyright (c) 1990-2008 Info-ZIP - Type 'zip "-L"' for software license.
This is Zip 3.0 (July 5th 2008), by Info-ZIP.
Currently maintained by E. Gordon. Please send bug reports to
the authors using the web page at www.info-zip.org; see README for details.
Latest sources and executables are at ftp://ftp.info-zip.org/pub/infozip,
as of above date; see http://www.info-zip.org/ for other sites.
Compiled with gcc 4.2.1 Compatible Apple LLVM 10.0.1 (clang-1001.0.37.14) for Unix (Mac OS X) on Feb 22 2019.
Here's the one on Ubuntu:
$ zip --version | head
Copyright (c) 1990-2008 Info-ZIP - Type 'zip "-L"' for software license.
This is Zip 3.0 (July 5th 2008), by Info-ZIP.
Currently maintained by E. Gordon. Please send bug reports to
the authors using the web page at www.info-zip.org; see README for details.
Latest sources and executables are at ftp://ftp.info-zip.org/pub/infozip,
as of above date; see http://www.info-zip.org/ for other sites.
Compiled with gcc 6.3.0 20170221 for Unix (Linux ELF).
I have read this answer at https://security.stackexchange.com/a/186132/108239 which recommends against using zip for encryption.
However, in the environment I am in, I need to send a file securely to non-technical users. Here are my constraints:
- I am allowed to send my recipients an arbitrarily long password.
- I am allowed to send them zip files (encrypted or unencrypted).
- I am not allowed to ask my recipients to install additional software.
- I only care about confidentiality of the content of the file.
- I do not care about the confidentiality of the filename or file metadata.
- I do not care about integrity or non-repudiation.
Given these constraints, so far I have been sending files this way:
zip -e secret.zip secret.txt
I use a 80-character long randomly generated alphanumeric (A-Za-z0-9
) password to encrypt the secret file. The zip
utility does not accept passwords any longer. Trying to do so results in the (line too long--try again)
error.
This uses the following crypto method:
$ 7z l -slt secret.zip | grep Method
Method = ZipCrypto Deflate
My questions:
- Is a 80-character long randomly generated alphanumeric password strong enough to compensate for the weak cipher technology of
zip
utility? - What is the minimum entropy that a password should have to make it secure enough to be used with the
zip
utility? To define "secure enough", say, cracking the zip file should take 10 or so years with the current computing power (ignore an increase in computing power for now for the sake of simplicity).
zip -e secret.zip secret.txt
command mentioned in my question. What does that do by default? Is there a way I can figure out what cipher it uses to encrypt the content of the ZIP?