在登录时重新加密随机加密的密码会增加安全性吗?

Rob*_*ann 3 php security hash salt

我目前正在开发一个PHP项目,我想知道如何使我的系统尽可能安全.我目前正在使用password_hash哈希密码,然后将它们存储在我的数据库中.我想知道的是:将新的盐渍哈希重新保存并重新保存到数据库会增加安全性,还是仅仅是一种错觉?

hal*_*fer 5

我认为它不会增加安全性,不会.您有两种风险情景:

  • 破解者闯入服务器并在那里停留一段时间未被发现.在这种情况下,密码可以在用户登录时以编程方式捕获.这比强制使用强哈希算法要少得多.
  • 破解程序中断,窃取数据库的副本,作为响应,sysadmin插入安全漏洞并快速从备份恢复服务器.

在第二种情况下,破解者有一组用户名,电子邮件地址和散列密码,他们可能希望尝试强制执行.如果这些哈希值创造了一次或一千次,那么没有任何好处.

值得记住我们​​在这里要防范的事情.如果违反了网站的安全性,那么在其他热门服务中使用相同用户名/密码组合的用户会产生连锁反应.散列的主要原因以及攻击者在暴力破解密码中的目的是查看用户是否可以在其他地方被黑客入侵(例如他们的社交媒体或银行账户).

这就是为什么我们建议人们不要重复使用密码,而应该使用存储在密码管理器中的强密码.如果人们可以为每个服务使用不同的用户名和/或不同的电子邮件,那就更好了.顺便提一下,每个服务使用电子邮件都非常容易:如果您使用地址为GMail gmail.alias@gmail.com,请执行以下操作:

gmail.alias+randomcode@gmail.com
Run Code Online (Sandbox Code Playgroud)

电子邮件当然应存储在您的密码管理器中 - 如果您忘记了这一点,您将无法使用密码提醒功能,除非服务愿意接受其他身份证明,否则您将被锁定.尽管如此,这种方法对于使用被破坏的服务的连锁效应更强 - 如果用户总是使用不同的电子邮件地址,则其他地方的弱密码提醒系统难以利用.

拥有自己域名的用户可以执行类似操作 - 设置电子邮件帐户以"全部捕获",然后使用您喜欢的任何别名.

  • 我总是想到最简单的解决方案,而且最简单的解决方案就是向人们询问他们的密码.如果您假装为他们所属的公司工作,37%的人会通过电话提供密码.在您的场景中,您了解公司发送的网站,品牌和自动电子邮件格式...因此,让我们轻松了解客户,注册欺骗它的类似阅读域,在同一环境中向客户发送,以及使用登录发布数据将它们重新路由到原始站点.这么简单真的...... (2认同)