为什么要加密用户密码?

Ano*_*ard 18 database security passwords

可能重复:
为什么不存储原始密码?

如果密码是数据中最不重要的部分,为什么会将加密的用户密码存储在数据库中?它似乎不会影响外部攻击; 每个帐户每天设置有限数量的登录尝试将是有效的.它似乎不会影响内部攻击; 如果有人可以访问密码,他们也可以访问数据库其余部分中更有价值的数据.

我在这里错过了什么吗?是不是应该使用用户密码加密整个数据库作为密码加密本身有效的密钥?

将他的帖子与他的问题结合起来:

好的,我以一种糟糕的方式问了这个问题.让我重新说一下.

如果有人闯入这个系统,他们拥有用户密码这一事实是我最不关心的问题之一.我将加密密码,但在我看来,数据库中的其他数据更有价值.假设如果内部攻击者拥有该数据,则他们不关心密码.

如果数据库中没有其他内容被加密,并且数据库中的其他所有内容都是攻击者实际想要的,那么加密密码实际上是否能解决任何问题?

kem*_*002 26

因为,哈希密码可以保护它免受组织内部的攻击.这样,有权访问数据库的人将无法知道用户的密码.

人们习惯一遍又一遍地使用相同的密码,因此如果您的数据库被意外泄露,您的组织就不会使用户的其他帐户包含在其他组织中.现在,人们应该这样做,不,但他们这样做,并且散列密码要容易得多,而不是向客户解释为什么内部人员掌握密码并对其他系统中的多个帐户造成损害与你的无关.

如果您认为这个原因过于夸张,您可能想知道它实际上发生在Stack Overflow创建者Jeff Atwood身上.他在博客文章"我刚刚登录为你:它是如何发生的"中描述了整个Stack Overflow是如何受到损害的.

编辑:

为了进一步回答您的问题,您的其他敏感数据也应加密.很多网络工作都在工作中,我讨厌说,但你必须对谁能看到什么信息感到妄想.除非经过特别授权查看数据,否则您认为不需要人们知道的任何您认为敏感的内容都应在数据库中加密.你有时候比较可以窃取的密码并不是你所关心的.关键是"给你".它是对其他人的,应该与系统中的其他敏感数据一起保护.


Dol*_*lph 8

如果您有SQL注入漏洞,有人窃取您的数据库,并使用您存储的用户名,电子邮件地址和明文密码直接登录到您的用户电子邮件帐户,银行帐户等,该怎么办?您真的想要承担这个问题吗?责任?相反,您是否真的想承担能够以纯文本格式查看用户密码的责任?


dwi*_*ich 7

原因:

  1. 如果某人(来自内部或外部)窃取这些密码并公开发布,那么您注定要失败,您可以立即关闭您的业务.
  2. 有些人使用相同的密码进行许多服务.如果某些"攻击者"可以访问电子邮件地址和密码,最简单的方法是尝试该密码是否也适用于该电子邮件帐户.

你不希望发生这种情况.

如果您可以访问别人的电子邮件帐户,您可以请求从受害者的各种服务等发送忘记密码.