在阅读一些有关产品安全性的文档时,我发现供应商使用密码的SHA-2加密数据(AES-256),而不是直接使用该密码。
攻击者不会使用这个SHA-2密码密钥破解加密数据,而是耗尽密码密钥空间(如果可行)并尝试其哈希。因此,我能想到的唯一原因是有一个额外的计算步骤(创建哈希)。如果要计算复杂的攻击,我宁愿增加密码熵。
发布于 2018-02-15 12:02:19
这听起来像是密钥推导函数(KDF)的原始版本,特别是他们可能会避免使用PBKDF2来重新发明轮子。
您不想直接将密码用作AES密钥的原因有几个。
发布于 2018-02-15 10:33:00
SHA-256将从任意长度的密码生成256位哈希。从技术上讲,这个散列(就像它的长度一样)可以用作AES-256的一个键。
如果没有更多的上下文,我猜他们采用了最简单的方法来生成256位密钥。
正如您所提到的,这里的弱点是密码,密码的单个SHA-256太便宜,无法防止对密码的暴力攻击。
相反,应该使用基于密码的密钥派生函数(PBKDF)。人们也不应该直接使用密钥,而是使用它来加密使用更好的CSPRNG生成的密钥。
您可以在https://crypto.stackexchange.com/questions/22678/how-secure-is-it-to-use-password-as-aes-key中找到关于这个主题的非常好的讨论。
发布于 2018-02-15 10:32:47
没有任何背景,就很难回答。这可能只是一种简单的密码扩展机制,也可能是其他一些东西。例如,另一方可能需要解密数据,从而存储必要的密钥。
通过使用散列,它将为原始用户的密码提供一定程度的保护。请注意,不多,但仍然比简单地存储密码本身要好得多。
https://security.stackexchange.com/questions/179852
复制相似问题