可能的重复:
为什么不存储原始密码? https://stackoverflow.com/questions/3107810/why-arent-original-passwords-stored
如果密码是数据中最不有价值的部分,为什么要将加密的用户密码存储在数据库中呢?看起来不会影响外部攻击;设置每个帐户每天的登录尝试次数有限是有效的。看起来不会影响内部攻击;如果有人可以访问密码,他们还可以访问数据库其余部分中更有价值的数据。
我在这里错过了什么吗?为了使密码加密本身有效,难道不应该使用用户密码作为密钥对整个数据库进行加密吗?
将他的以下帖子与他的问题结合起来:
好吧,我以一种不好的方式问了这个问题。让我重新表述一下。
如果有人闯入这个系统,他们拥有用户密码的事实是我最不关心的问题之一。我将对密码进行加密,但以我的拙见,数据库中的其他数据更有价值。假设如果内部攻击者拥有该数据,他们不关心密码。
如果数据库中的其他内容都没有加密,并且数据库中的其他所有内容都是攻击者真正想要的,那么加密密码实际上能解决任何问题吗?
因为,散列密码将保护它免受来自组织内部的攻击。这样,有权访问数据库的人就不会知道用户的密码。
人们习惯于一遍又一遍地使用相同的密码,因此,如果您的数据库意外泄露,您的组织不会使用户的其他帐户包含在其他组织中。现在人们应该这样做吗?不,但他们确实这样做了,而且对密码进行哈希处理比向客户解释为什么内部有人掌握了密码并对其他系统中的多个帐户造成了损害要容易得多与你无关。
如果你觉得这个理由太夸张了,你可能想知道这件事实际上发生在 Stack Overflow 的创建者杰夫·阿特伍德 (Jeff Atwood) 身上。他在博客文章中描述了整个 Stack Overflow 是如何被入侵的“我刚刚以您的身份登录:这是怎么发生的” http://www.codinghorror.com/blog/2009/05/i-just-logged-in-as-you-how-it-happened.html.
Edit:
为了进一步回答您的问题,您的其他敏感数据也应该加密。很多网络攻击都发生在工作内部,我不想这么说,但你必须对谁可以看到哪些信息保持偏执。任何您认为敏感但不希望人们知道的内容(除非他们被特别授权查看该数据)都应该在数据库中加密。你是对的,有时比较什么可以被盗,密码对你来说并不是那么重要。关键是“给你”。它是针对其他人的,应该与系统中的其他敏感数据一起受到保护。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)