我使用此命令在 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 zip
notes 这个问题。
-P 密码 --password 密码 使用密码加密 zipfile 条目(如果有)。这是 不安全!许多多用户操作系统提供了方法 任何用户查看任何其他用户的当前命令行; 即使在独立系统上,也总是存在以下威胁 过肩偷窥。将明文密码存储为 自动化脚本中命令行的一部分甚至更糟。 尽可能使用无回声的交互式提示 输入密码。(在安全性非常重要的地方,使用 强加密,例如 Pretty Good Privacy 而不是 zipfile 工具提供的相对较弱的标准加密 实体。)
有关此问题的更全面的文档,请查看这篇论文(由我大学的一位教授撰写 :))https://homes.cs.washington.edu/~yoshi/papers/WinZip/winzip.pdf