已经了解 AES 是首选的加密方法,如果可能的威胁是脚本小子级别,是否应该重写使用 DES 的现有代码?(例如,非计算机专业人员可以使用免费实用程序破解 pkzip 密码,那么 DES 也是这样吗?)快速的谷歌搜索似乎暗示即使已弃用的 DES 仍然需要超级计算机和大量时间——或者时间已经改变?
特别是,这个CAPTCHA 库使用 DES 来加密在视图状态中发送给用户的挑战字符串。
已经了解 AES 是首选的加密方法,如果可能的威胁是脚本小子级别,是否应该重写使用 DES 的现有代码?(例如,非计算机专业人员可以使用免费实用程序破解 pkzip 密码,那么 DES 也是这样吗?)快速的谷歌搜索似乎暗示即使已弃用的 DES 仍然需要超级计算机和大量时间——或者时间已经改变?
特别是,这个CAPTCHA 库使用 DES 来加密在视图状态中发送给用户的挑战字符串。
DES 在存储敏感数据方面被破坏了,所以我肯定不会在任何新的东西中使用它,而是会在任何用于长期存储任何感兴趣的信息(某人将从国家安全利益中获利的数据)中替换它在偷窃)。
目前,使用价值不到 100,000 美元的定制硬件,可以在几天(或更短时间)内通过暴力破解 DES 消息。
但其中有一些关键因素:
硬件是定制的——用于快速破解 DES 密钥的芯片不是您在 PC 中找到的通用处理器。话虽如此,今天可能有空间使用一组 Playstation 3s 或带有 GPGPU 的当前一代显卡在合理的时间内破解 DES 消息,也许将成本降低到 15,000 美元左右。
另一个因素是时间 - DES 消息可以在一天内破解,但如果您的 CAPTCHA 库有一个时间戳为任何给定的 CAPTCHA 响应指定 30 分钟超时,它仍然有效(您可以扩展您的硬件,但是那么你说的是数百万)。
总的来说,我想说的是,对于非长期存储,DES 仍然可以安全地抵御“脚本小子”。
不,DES 破解不适合脚本小子,而且可能不会在不久的将来出现。
它需要如此巨大的处理能力,我们谈论的是FPGA处理器的负载。
例如,在CHES 2006 密钥挑战赛中的COPACOBANA使用了 128 个处理器中的 108 个,耗时 21 小时 26 分钟 29 秒,吞吐量为每秒 431.852 亿个密钥,并在搜索 4.73507% 的密钥空间后找到了密钥
现在,如果我们看一下摩尔定律,我们会看到,如果我们目前制造一台类似的机器,那么目前花费 1/4 的时间来获得相同数量的资金,或者 1/4 的时间来获得相同数量的资金时间。
DES 被加密社区的标准打破;但是打破它所需的时间通常足够大,以至于在这种应用中使用它是“安全的”。有一个假设:DES 密钥在会话之间发生变化。如果密钥没有改变,那么它很容易受到非常敬业的个人的攻击。现在,问题是,您的网站是否受制于那些将花费 10 天以上的时间来破解 DES 的人,而不是应用垃圾邮件行业其他人的经验教训来进行图像识别。
对于大多数用例来说,DES 可能仍然足够好。但关键是,通常有理由使用已知相当弱的算法(或者在这种情况下更确切地说:密钥强度)。 Wikipedia指出,即使使用特殊硬件,也需要 9 天左右才能进行详尽的密钥搜索。我不认为脚本小子可能会花费那么多 CPU 时间(即使他们有僵尸网络)只是为了破解验证码。(实际上,只要有足够的智能图片识别,破解验证码通常会容易得多……)