security - 可以存储可以检索的密码吗?

标签 security encryption hash passwords

我正在尝试确定是否可以存储使用 AES 算法加密的密码,而不是存储使用 SHA1 加盐和散列的密码。

我想知道这是因为我的公司正在更新我们专有的 CMS 中包含的成员(member)系统。目前,我们对密码使用 AES 加密。这使我们能够在客户寻求支持时轻松查找管理员密码。当我们有人员变动时,更改所有管理员密码是一项政策。密码查找工具使我们能够轻松获取新密码,并且我们的工作流程不会中断。

我的印象是大多数人认为散列加盐密码是处理密码的更安全方式,但我想不出一种方法来在使用散列密码时符合当前公司的运营。而且,除非我能给他们一些非常有说服力的理由来散列密码,否则更改密码操作所需的企业文化转变可能不会发生。

与加密密码相比,散列密码是否被普遍接受?为什么?

最佳答案

使用可逆加密来加密密码的值(value)可疑。

显然查找程序可以访问 key 。这意味着您应该假设有权访问该程序的任何人也可以访问该 key 。如果你是偏执狂,你还应该假设他们的配偶、重要的其他人、室友等都可以使用该 key 。过去曾经闯入网络的任何人(因为使用了 key )也可以访问该 key 。

使用这样的系统的问题是你永远不会知道它坏了。我可以访问 key 吗?现在?我可以随时查询密码吗?你一改我就知道改成什么了?

使用加盐哈希(相对于可逆加密)在实现中有其自身的挑战,但您可以放心,窃取密码列表的值(value)很小(如果使用强大的算法、多轮、最小密码标准和随机每记录盐)。您当前的系统是“感觉良好的加密”。虽然这可能会让管理层“感到”安全,但实际上他们并不安全。它比以明文或便条存储密码稍微好一点,对于坚定的攻击者来说,它充其量只是一个最小的减速带。最大的问题是你永远无法证明你是“安全的”,并且当你受到威胁时可能没有任何警告。您现在可能已经受到威胁而自己却不知道。

关于security - 可以存储可以检索的密码吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4269273/

相关文章:

c# - 未使用 .net S3 获得客户端加密

security - 通过 TLS 对参数和内容进行哈希验证的优势

java - 如何在 Java 中深度复制哈希器

rest - 请求敏感数据时应该使用 GET 还是 POST?

java - TLSv1.2 与 Java 7 和 Wildlfy 8 - 握手失败

.net - 我可以使用程序集不在 GAC 中的自定义保护提供程序加密 web.config 吗?

java - 这会给出 128 位哈希值吗?

javascript - 如何禁止网站上的用户使用 document.cookie 命令或使其不为不同用户显示其他 cookie

security - Paypal SSL VeriSign G5 根证书和未找到受信任的证书

java - JAVA上使用RSA加密解密的问题