因此,这个问题正在深入研究安全和加密,而这个问题可能很多人都没有遇到过。答案可能是理论上的。让我概述一下场景...
- 网站前端通过后端 API 驱动。后端有一个端点处理通用注册表单
username
和password
。它使用 SSL。 - 后端 API 通过异步作业队列处理注册。队列不向 API 服务器返回响应。这是一个设置和忘记操作来排队注册。
- 排队的工作由工人接走。工作人员负责创建用户帐户。这些工作人员需要访问明文用户密码,以便他们可以使用密码触发第三方 API 注册调用。
因此,问题的真正症结在于将密码同步到第三方 API,同时又不将其泄露给窥探者。队列带来了无法再从全局 POST 数据中直接访问明文密码的问题,这意味着它需要以某种方式存储在队列中。
队列可以轻松存储散列密码并将其直接复制到用户表中。但是,此解决方案不允许将密码与第三方 API 同步,因为它已经加密。我玩弄了双向加密,但我全心全意地担心让密码容易被攻击者解密。
有人能想出一种安全的方法来处理这种密码同步情况吗?
队列是一项要求,并且假定任何有权访问服务器的人都可以读取该队列。密码不一定要同步;第三方 API 的密码可以是原始 API 的派生,只要有一种安全的方法可以通过登录用户解密而不提供密码。这本质上是用不支持 SSO 的第三方 API 模拟单点登录。