【发布时间】:2020-08-05 20:48:28
【问题描述】:
OAuth2.0 使用秘密作为对称密钥,例如 HMACSHA256 算法用于生成签名。这个秘密很重要,否则任何人都可以创建一个“有效的”JWT 令牌并呈现给服务器。例如,如果我创建一个 JWT 并对其进行签名,则该签名是有效的。只有服务器知道秘密或对称密钥。所以我无法创建一个将与服务器“通过”的 JWT,因为我不知道服务器的秘密。到目前为止,一切都很好。 现在,如果有多个服务器和多个微服务,因此可能有几十个服务器,它们都需要知道相同的秘密,以便 JWT 在所有服务器中“通过”。这似乎是一个很大的漏洞。如果一台服务器被攻破并且秘密已知,则所有服务器都可能被攻破。 此外,缓解这种情况的小方法是不时轮换秘密。怎么可能呢? 如果我们将秘密存储在保险库中,那么保险库的密码将在所有服务器中。所以即使这样也无济于事。有什么想法吗??
【问题讨论】:
标签: oauth-2.0 jwt spring-vault