我可以暴露哈希盐+密码吗?

时间:2013-04-03 01:02:21

标签: security hash passwords public salt

我在salt +密码上使用SHA-512哈希1000次。在查询有关用户的信息时是否可以安全返回,或者我应该保护它并使其仅通过HTTPS可用?

例如,如果我发出以下请求:

GET: http://domain.com/users?id=437

然后它返回:

{"firstName":"Eliot","lastName":"My last name","email":"email@emailplace.com","password":[91,49,-34,77,79,-48,67,-62,-12,84,84,-18,-81,23,-92,-31,74,-28,-80,102,60,35,-102,115,18,-76,20,-90,-8,91,13,23],"authToken":"33c977b1-5ab6-4a8a-8da9-68c8028eff92","id":179}

它被公开是否重要?

2 个答案:

答案 0 :(得分:10)

为什么返回用户密码以响应任何面向公众的查询?返回密码的形式并不重要 - 这从根本上说是不安全的!

密码可以破解。给定哈希以及如何构造哈希的知识,您可以强制执行相关参数。尽管它需要花费1000倍的时间,并且盐可能必须被强制执行(如果不包括在查询响应中),仍然存在这种可能性(并且有足够耐心,有合适资源的人,如果值很高,可能会这样做足够)。不要冒风险 - 只是不要以任何形式披露密码。

答案 1 :(得分:3)

您不应公开任何超出必要的信息。使其仅通过HTTPS可用 - 我只能通过HTTPS点击URL并且他们的密码哈希仍然暴露。

忘记密码,您还会公开用户的电子邮件地址。锁定此API的任何内容。