当前位置:  开发笔记 > 数据库 > 正文

是否值得加密数据库中的电子邮件地址?

如何解决《是否值得加密数据库中的电子邮件地址?》经验,为你挑选了3个好方法。

我已经使用盐水散列将密码存储在我的数据库中,这意味着我应该免受彩虹表攻击.

不过我有一个想法:如果有人确实掌握了我的数据库怎么办?它包含用户的电子邮件地址.我不能真正哈希这些,因为我将使用它们发送通知电子邮件等.

我应该加密它们吗?



1> roo..:

布鲁斯施奈尔对这类问题反应良好.

加密技术不是解决您的安全问题的方法.它可能是解决方案的一部分,也可能是问题的一部分.在许多情况下,密码学开始时会使问题变得更糟,并且使用密码学是一种改进并不是很明显.

基本上加密数据库中的电子邮件"以防万一"并没有真正使数据库更安全.为数据库存储的密钥在哪里?这些密钥使用了哪些文件权限?数据库是否可以公开访问?为什么?这些帐户有哪些帐户限制?机器存放在哪里,谁可以物理访问此盒子?那么远程登录/ ssh访问等等等.

所以我想你可以根据需要加密电子邮件,但如果这是系统安全性的程度那么它实际上并没有做太多,实际上会使维护数据库的工作更加困难.

当然,这可能是您系统广泛安全策略的一部分 - 如果是这样那么好!

我不是说这是一个坏主意 - 但是为什么要从Deadlocks'R'us锁上门,当他们可以切断门周围的胶合板时花费5000美元?或者从你打开的窗户进来?或者更糟糕的是,他们找到了留在门垫下面的钥匙.系统的安全性与最薄弱的环节一样好.如果他们有root权限,那么他们几乎可以做他们想要的.

史蒂夫摩根提出了一个很好的观点,即使他们无法理解电子邮件地址,他们仍然可以造成很大的伤害(如果他们只有SELECT访问权限可以减轻它们)

了解存储电子邮件地址的原因也很重要.我可能对这个答案有点过分了,但我的观点是你真的需要存储一个帐户的电子邮件地址吗?最安全的数据是不存在的数据.


这个回复的问题在于,尽管它确实提醒人们还有其他可能的方式来破坏数据,但它最终只会阻止人们应该为之鼓掌的主动思维.
@John在我看来,以防万一不是主动思考。积极思考将评估风险并提出缓解风险的解决方案。加密可能是也可能不是该解决方案的一部分。我希望我的回答会鼓励这种思考。

2> 小智..:

我意识到这是一个死的话题,但我同意Arjan背后的逻辑.我想指出一些事情:

有人可以从数据库中检索数据而无需检索源代码(即SQL注入,第三方数据库).考虑到这一点,考虑使用密钥加密是合理的.尽管如此,这只是一个额外的安全措施,而不是安全措施...这适用于那些希望保持电子邮件比明文更私密的人, 在更新期间忽略某些事情,或者攻击者设法检索电子邮件.

IMO:如果您打算加密电子邮件,也要存储它的盐渍哈希值.然后,您可以使用哈希进行验证,并节省不断使用加密来查找大量数据的开销.然后有一个单独的私有函数来检索和解密您的电子邮件,当您需要使用它.



3> Steve Morgan..:

与大多数安全要求一样,您需要了解威胁级别.

如果电子邮件地址受到损害,可以造成什么损害?

它发生的几率是多少?

如果电子邮件地址被替换,则所造成的损害可能比他们曝光时要大得多.特别是如果您使用电子邮件地址验证密码是否重置为安全系统.

如果您对密码进行哈希处理,则密码被替换或暴露的可能性会大大降低,但这取决于您拥有的其他控件.


替换电子邮件 - 非常邪恶!你必须和政客们挂:)
推荐阅读
放ch养奶牛
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有