压缩存档内的加密密码

信息安全 加密 文件加密 密码破解 压缩
2021-09-05 16:18:50

Winrar 或 ZIP 或 7zip 等文件压缩实用程序对密码进行加密并将其存储在存档中。

那有多安全?我的意思是你正在放弃包含密码的存档,这不像对密码存储在远程某处的网站进行身份验证。

例如,鉴于 rar 或 zip 文件格式结构是公开的,是否可以对存档进行二进制检查,从而揭示密码的加密形式?例如查找包含实际密码的标头并提取加密字符串?

说这是有道理的,有什么办法可以提取加密密码的明文吗?

3个回答

Winrar 或 ZIP 或 7zip 等文件压缩实用程序对密码进行加密并将其存储在存档中。

我不知道你从哪里得到这些信息(没有来源的声明总是不好的),但我确定你弄错了。这没有任何意义,问题也是然后将使用哪个密钥来加密密码。

使用 ZIP,您可以查看规范的第 7.2 节,您会看到密码不会以任何方式存储。仅存储各种或多或少的随机数据,这些数据与从用户输入的密码导出的密钥一起使用。这些随机数据用于确保具有相同内容和相同密码的 ZIP 文件不会产生相同的加密数据。

RAR 规范中,您将找到密码的可选检查值。这不是加密密码,而是使用 PBKDF2(计算密集型散列)从密码派生的散列值(即不可逆)。

这意味着您拥有的最多的是密码的散列版本,并且使用非常慢的散列进行散列。虽然这可用于以足够快的速度检测错误密码以进行一次尝试,但对于暴力破解密码并没有多大帮助。通过尝试使用密码并检查解密的数据是否有意义,暴力破解可能会更有效。这通常可以更快地完成,因为大多数文件格式在开头都包含典型的神奇字符串或具有一些典型的文件结构。因此,如果你得到的东西看起来不是随机的,你可能已经破解了密码。

解密存档需要密码,因此在存档中存储密码副本将毫无意义 - 任何可以解密存档的人都已经拥有密码。

存档中唯一未加密存储的是加密类型,可能还有文件结构和文件属性。

也许您对存档如何被锁定和解锁感到困惑。听起来您的印象是密码存储在存档中,然后存档实用程序将用户输入的密码与存档中存储的密码进行比较。但是,这不是加密的工作方式。如果密码存储在存档中以便实用程序可以读取它,那么任何拥有简单文件编辑器的人都可以读取它。不仅如此,如果保护方案被设置为简单地强制实用程序以这种方式检查存储的密码,而不是混淆数据,那么任何人都可以简单地读取文件的内容,甚至无需查看密码。如果有效负载被加密并且密码存储在存档的未加密部分中的某个位置,

相反,加密所做的是使用密钥和算法来操纵某些数据以混淆其含义。一旦它完成了这个加密过程,理解数据的唯一方法就是通过相应的解密算法对其进行处理。成功做到这一点的唯一方法是使用正确的密钥和算法。由于算法总是已知的,因此只有密钥是唯一的。您知道您使用了正确密钥的方式是您从解密过程中获得的数据具有有效格式,而不仅仅是随机垃圾数据。加密存档将为您提供的唯一信息是加密的有效负载和用于加密它的算法。您可以提供正确的密钥。

已经讨论过类似的东西,我认为你可能会觉得有用。 保护存档文件的密码是否实际上对其进行了加密?

此外,根据我从那里读到的内容,WinRar 使用 64 位密钥(WinRAR 使用 262144 轮 SHA-1 和 64 位盐),这非常强大。

我对以下内容不是 100% 确定,所以如果我错了,任何人都可以纠正我。据我了解,当您加密压缩存档或 zip 文件、7zip 或 winrar 时,如果有一个加密文件,加密文件不会让您读取密钥,因为它是加密的。这与尝试在没有密钥的情况下解密加密相同,所以我很确定您无法从压缩文件中获取密钥。

另外我不确定它是否甚至存储密钥。RSA 加密是最强的加密之一(如果您使用 2048 + 位加密),一些 zip 档案使用相同的 AES 加密。密钥不存储在加密中,而是用于解密文件的算法。密钥由首先对文件进行密码保护/加密的人提供,如果解密密钥与加密密钥匹配,算法将解开解密,从而使其可读。

这回答了你的问题了吗?

编辑:至于仅使用加密的解密密钥提取字符串,不。那是行不通的,因为密钥将被加密且无用,您必须对其进行解密才能读取解密密钥的实际内容,因此您又回到了第 1 格。

例如,如果我写:“pancakes”,作为“H01LG32H4Gg6H”,您将无法提取该加密字符串并对其进行转换,因为您不知道我用来解密该单词的算法。