Symfony Rest API、WSSE 和 Bcrypt

Symfony Rest API, WSSE and Bcrypt

我安装了带有 FosUserBundle(用户)、FosRestBundle(API)和 NelmioCorsBundle(CORS)的 Symfony 2.7。我遵循了一些指南,这些指南是在 FosUserBundle 使用 SHA512 和盐进行密码加密时(如果我理解得很好的话,最近)写的。

我的 Symfony 上有一个工作的 WSSE 服务器,我正在尝试以安全的方式从 Javascript 客户端发出请求。使用旧的 "SHA15 + salt" 方式,我知道如何做到这一点:一个 public api 用于在客户端获取盐,我们在发送之前重新创建加密密码 "as in the database"通过 WSSE header。我认为这也有助于将密码保存在缓存中(比未加密的密码更好)。

但是因为 bcrypt 有一个内置的盐,我怎样才能在客户端生成加密的密码?当然,一种解决方案是停止使用 bcrypt 并开始使用 SHA512 + salt 但安全性较低;其他解决方案类似于 oauth2 和 HTTPS,但我现在想找到一个没有 HTTPS 的安全解决方案。

有什么线索吗?

谢谢!

如果您能够在客户端生成与您的服务器拥有的相匹配的加密密码,那么您可能根本不使用密码。不管你怎么做,都会不安全。

看看基于令牌的方法。那里有很多例子。

  1. 客户端发送令牌请求,内容如下:
  2. POST /tokens(用户名和密码作为有效负载,请仅使用 https)
  3. 服务器验证用户和 returns 令牌(可能是 json 网络令牌)
  4. 客户端在每次请求时发回令牌,通常是 header