我正在实现我的gwt应用程序中的授权,目前它是按以下方式完成的:
- 用户通过在表单中输入凭据来注册,并将它们以明文形式发送到服务器。
- 服务器代码使用BCrypt哈希接收到的密码,并将哈希放入数据库中。
- 当用户登录时,他的密码以明文形式发送到服务器,服务器会检查它是否与存储的哈希匹配。
现在。让我烦恼的是,事实上我正在以明文形式将密码发送到服务器,我一直在想,如果我使用的应用程序这样做了我的(用于所有种类)密码,我肯定不会很高兴,但在客户端加密它并不能真正为我赢得什么,因为攻击者可以像使用明文密码一样使用哈希密码。
我整天在谷歌这个问题,似乎互联网对此有一致的看法 - 客户端密码加密无法带来任何好处。 这篇文章, 这篇文章和这篇文章只是我找到的几个讨论和页面的例子,但还有许多其他的,都在说同样的话。鉴于所有这些,这个问题可能看起来有点不必要,但我希望在某个地方,有人会给我另一个答案。
如果在这一点上没有ssl选项,我该怎么做才能放心? 有什么可以做的吗,或者实施某种客户端加密-服务器解密方案只是费时无用的劳动?