【发布时间】:2019-02-27 08:17:35
【问题描述】:
早安,
我对数据库/应用程序/连接安全性非常陌生,希望在项目上获得一些帮助。
让我解释一下我的环境:
- 我的用户名 A 和密码 A 保存在本地计算机上的数据库 (A) 中。
- 密码 A 正在使用一种带有盐 A 的散列算法进行存储。
- 我正在通过 HTTPS SOAP 调用将凭据(用户名 A 和密码 A)发送到远程 Web 服务。
- 在收到用户名 A 和密码 A 后,Web 服务将这些凭据验证到位于 Web 服务位置本地数据库 (B) 中的表中。
我的问题:如果有人可以访问数据库 A 并提取散列密码,他们可以使用 SOAP 请求连接到 Web 服务。这意味着我的安全性为空且无效。
我必须找到可能的解决方案:
解决方案 1:在将密码 A 发送到 Web 服务之前,我将其解密并通过安全 HTTPS 连接以明文形式发送。当再次验证存储在数据库 B 中的哈希时,Web 服务将再次对其进行加密。
解决方案 2:在将密码 A 发送到 Web 服务之前,我对该现有哈希进行第二次加密。当到达 web 服务时,它被解密以公开哈希,然后针对数据库 B 进行验证。
我的问题:是上述两种解决方案中的任何一种,最佳实践。如果不是,那么对于这种情况,最佳可行的解决方案是什么。
亲切的问候
【问题讨论】:
标签: web-services encryption https passwords plaintext