encryption - 存储加密密码

标签 encryption passwords hash linux-mint

我和我的同事正在就密码安全问题进行<罢工>拳脚文明讨论。请帮助我们解决分歧。

我们中的一个人认为:

  • 除了单向哈希版本之外,还可以存储使用公钥加密的密码,并且可能有助于将来在合并或收购时与其他身份验证系统集成。
  • 只有 CEO/CTO 才能访问私钥,并且仅在必要时使用。常规登录验证仍将通过散列密码进行。
  • 我/他之前在以前的公司中已经这样做过,并且有很多网站都这样做,并且之前已经通过了财富 500 强公司的安全审核。
  • 这是一种常见且可接受的做法,即使对于金融机构也是如此,因此无需在隐私政策中明确说明这一点。
  • 像 Mint.com 这样的网站就可以做到这一点。

我们中的另一个人持有以下观点:

  • 存储密码(即使是加密形式)也会带来不必要的安全风险,最好从一开始就避免暴露于这种风险。
  • 如果私钥落入坏人之手,在多个网站上使用相同密码的用户将面临所有登录信息被泄露的风险。
  • 这违反了对我们用户的信任,如果实现这种做法,应明确告知他们。
  • 这不是全行业的做法,也没有知名网站(Google、雅虎、亚马逊等)实现此做法。 Mint.com 是一个特例,因为他们需要代表您向其他网站进行身份验证。此外,他们只存储您金融机构的密码,而不存储您 Mint.com 本身的密码。
  • 这是审核中的一个危险信号。

想法?评论?您是否曾在实现这种做法的组织工作过?

最佳答案

存储可恢复版本密码的第一种做法是完全错误的。不管大网站这样做的事实如何。这是错误的。他们错了。

我自然而然地不信任任何存储我的未散列密码的网站。谁知道如果那家大公司的员工决定玩得开心会发生什么?曾经有一个案例,雅虎的某个人窃取并出售了用户的电子邮件。如果有人用我的电子邮件和密码窃取/出售整个数据库怎么办?

您无需知道我的原始密码即可执行身份验证。即使您稍后决定拆分系统、添加新系统或与第三方集成,您仍然只需使用密码的哈希值即可。

关于encryption - 存储加密密码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1607075/

相关文章:

php - 第二种意见的安全性优势,我通过 postgresql 散列和加盐用户密码的计划是否存在缺陷?

从列表vs.data.table.hash快速查找单个项目

c++ - 什么哈希算法用于快速文件哈希?

java - 安装了非法 key 大小 Jvm 8 但项目源/二进制文件是 jdk7

database - 安全存储 OpenID 标识符和 OAuth token

encryption - 你如何获得一个 zip 文件的密码哈希?

Jenkins Pipeline 将密码参数传递给下游作业

regex - 计数grep匹配的数量?

ruby-on-rails - 公司在 ActiveRecord/Ruby on Rails 网络应用程序中对加密进行代码审查?

c++ - 无法使用 Intel AES-NI 示例库以 32 字节 block 大小进行加密/解密