保护 AES 128 加密 ZIP 免受暴力攻击

信息安全 蛮力 。网 AES
2021-08-26 16:33:58

如果密码长度为 AZ、az、1-9 范围内的 8 个字符,那么暴力破解 AES 128 加密的 zip 文件需要多长时间?

System.Random如果使用 .NET 的对象来生成密码或是否使用过,这有什么区别System.Security.Cryptography.RNGCryptoServiceProvider吗?

我正在编写一个应用程序,我想确保我获得了正确的安全性。在最坏的情况下,如果攻击者可以访问客户端的计算机,他将有几十个 zip 文件进行攻击,但它们都具有相同的密码。我想确保应用程序对这种离线暴力攻击是安全的。攻击者将无法访问任何其他随机生成的密码或使用不同的随机生成密码加密的 zip 文件。

3个回答

正确的数学公式是,如果有 26+26+10 个字符和密码长度为 8,那么您的密钥空间为 62^8,即 218.340.105.584.896 或 ~2^48。

打破这一点是可行的。(需要多长时间是一个复杂的问题,取决于攻击者的预算和实施。使用好的 GPU 可能会在一天内破解它。)您应该使用至少 12 个字符,可能更多。(这取决于你的敌人是谁,他们有多少钱,数据应该被保护多长时间,等等......)

此外,正如 OP 所建议的,密码存储可能是一个弱点/问题。

并且使用加密 RNG 总是一个好主意。

PS:您可以阅读更多内容:

System.Random 不是加密随机的(请参阅http://msdn.microsoft.com/en-us/library/system.random.aspx)。它可以大大削弱您的加密货币的可预测性。

有关键空间计算,请参见下面的 Tie-fighter 的答案(我使用 61^8 而不是 61^8 弄错了)!

我会更关心该密码的存储方式。您的应用程序肯定需要解密(可能受损的)计算机上的 zipfile 才能使用它们吗?执行此操作的密码是否存储在同一台机器上?

此外,在工作中投入一把扳手 - 你的“最坏情况”肯定是攻击者可以访问客户端的计算机并观看屏幕,而合法用户确实使用敏感数据?

您可能需要考虑在每个文件上使用不同的密码(是的,这很痛苦,但更安全)。

或者您可能需要考虑使用 RAR 而不是 ZIP,因为 RAR v3 确实需要更长的时间才能破解。7-zip 格式和 RAR 也都支持 AES256。同样,这一切都归结为数据的价值。

如果您是超级偏执狂,请使用 RAR 加密,然后使用单独的密码对文件进行 7-ZIP 压缩。

FYI CRARK 支持 GPU 集群,所以如果你有一屋子的笔记本电脑和带 GPU 的台式机,理论上你可以在合理的时间内破解你的密码(取决于 PW 的长度)再次如果超级敏感数据使用 2 个密码和 2 个不同的密码格式完全不同的密码。