带有两个密码的 Zip 文件

信息安全 密码 蛮力
2021-09-06 17:19:21

我使用此命令在 Linux 上对 zip 文件进行密码保护:

zip -P 9000 hash.zip hash.py

它可以很好地创建 zip 文件,然后我编写了一个程序来测试从 1 到 100000 的每个可能的密码,问题是程序在上面找到两个密码,第一个是:9000,第二个是:79095,两者都有密码解压文件,是Linuxzip命令中的任何安全漏洞吗?

2个回答

两个密码都可以解密文件,但只有一个密码会产生正确的明文。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