是否有必要在通过HTTPS发送密码之前对其进行哈希处理?

时间:2011-03-23 21:33:29

标签: https security

我是网络开发(今年1月开始)和网络安全(不到一周前开始!)的新手,所以如果我的问题严重缺乏教育,误导或简单愚蠢,请原谅。

我为主要产品工作的公司是一个很好的老式客户/服务器系统。为了使它对我们的客户更具吸引力,我被赋予了开发一系列以任务为中心的简单Web应用程序的任务,这些应用程序补充了系统的整个以业务流程为中心的设计。例如,如果用户在组织中的角色包括批准采购订单和付款订单,他们可能会发现使用WebApprovals应用程序比打开采购和库存模块更容易,并使用它们分别批准采购订单和付款订单

毋庸置疑,我的所有Web应用程序都有一个登录页面。当然,我需要它们是安全的。因此,根据设计,这些Web应用程序只能通过HTTPS使用,而不能通过普通HTTP使用。

现在,我想知道在没有任何进一步安全措施的情况下通过HTTPS发送密码的安全性。它足够安全吗?具有安全领域经验的人必须说什么?

1 个答案:

答案 0 :(得分:14)

HTTPS将处理传输安全性,因此没有理由在客户端散列它们。如果这样做,从服务器的角度来看,散列密码基本上就是真正的密码。如果有人窃取了您的数据库,那么每一行都将具有服务器期望通过网络接收的值。攻击者可以简单地创建一个直接发送哈希的新客户端,而不必担心任何真正的哈希值。

但是,通过网络发送的密码绝不应存储在数据库中。相反,应该有每用户随机盐。这应该用于散列密码服务器端

请参阅Salting Your Password: Best Practices?