我使用此命令在 Linux 上对 zip 文件进行密码保护:
zip -P 9000 hash.zip hash.py
它可以很好地创建 zip 文件,然后我编写了一个程序来测试从 1 到 100000 的每个可能的密码,问题是程序在上面找到两个密码,第一个是:9000,第二个是:79095,两者都有密码解压文件,是Linuxzip命令中的任何安全漏洞吗?
我使用此命令在 Linux 上对 zip 文件进行密码保护:
zip -P 9000 hash.zip hash.py
它可以很好地创建 zip 文件,然后我编写了一个程序来测试从 1 到 100000 的每个可能的密码,问题是程序在上面找到两个密码,第一个是:9000,第二个是:79095,两者都有密码解压文件,是Linuxzip命令中的任何安全漏洞吗?
两个密码都可以解密文件,但只有一个密码会产生正确的明文。zip 加密格式只是检查填充是否正确,以验证是否使用了正确的密钥。密码79095产生了有效的填充,但是产生的消息是垃圾。
请参阅http://en.wikipedia.org/wiki/Zip_(file_format)#Encryption。
值得一提的是,问题在于 zip 格式的加密标准,而不是zip命令。
此外,man page of zipnotes 这个问题。
-P 密码
--password 密码
使用密码加密 zipfile 条目(如果有)。这是
不安全!许多多用户操作系统提供了方法
任何用户查看任何其他用户的当前命令行;
即使在独立系统上,也总是存在以下威胁
过肩偷窥。将明文密码存储为
自动化脚本中命令行的一部分甚至更糟。
尽可能使用无回声的交互式提示
输入密码。(在安全性非常重要的地方,使用
强加密,例如 Pretty Good Privacy 而不是
zipfile 工具提供的相对较弱的标准加密
实体。)
有关此问题的更全面的文档,请查看这篇论文(由我大学的一位教授撰写 :))https://homes.cs.washington.edu/~yoshi/papers/WinZip/winzip.pdf