【问题标题】:How to validate token_id at user endpoint?如何在用户端点验证 token_id?
【发布时间】:2019-05-24 10:51:16
【问题描述】:

我已经在 oauth2 之上实现了 openid connect,但现在我想停止令牌替换攻击,因为如果任何人设法解释管理员用户响应,他就会获得管理员权限。

要解决我的问题,我需要考虑哪些要点。

谢谢。

【问题讨论】:

    标签: java spring openid-connect


    【解决方案1】:

    如果很容易停止令牌替换。验证您的令牌。令牌使用私钥签名并使用公钥验证。实施和执行非常简单。

    如果您的意思是阻止用户替换(交换)有效令牌以授予更高的权限,则跟踪令牌颁发给谁,并且只接受该用户颁发给该用户的令牌。另一种方法是在创建令牌时为每个用户创建一个私钥/公钥对。然后用户无法交换令牌,因为公钥将不同并且签名验证将失败。

    令牌的生命周期应该很短(分钟)。当它们过期时,令牌会被刷新或重新授权。您确定政策和到期时间。

    我提到的所有内容都是 Internet 上的常识,其中包含几乎所有常用语言的大量示例。

    【讨论】:

    • 假设我是管理员用户并通过我的凭据登录但忘记注销,然后一些入侵者来到我的机器并从假设 cookie 中选择令牌并粘贴到他的机器并访问 API。我检查我可以执行的是检查当前会话以及是否与他声称的用户匹配。你有更好的解决方案吗?
    • 您的客户端服务器会话应该在传输和静止时加密。这可以防止这个问题。短期令牌还有助于防止窃取凭据。但是,如果您的工作站没有受到保护,那么您在许多其他方面就会遇到麻烦,而且要严重得多。
    • 我很好奇如何防止替换令牌攻击。 1.假设我是用户1登录到身份验证服务器并且身份验证服务器授予我令牌,我将其保存在本地存储中以访问受保护的资源api。 2. 现在第二个用户来了,他只是从 user1 复制 jwt 令牌,现在直到令牌有效,他可以在不登录的情况下访问 API。现在我怎么能防止,如果你能详细说明,不胜感激
    • 请关闭此问题并创建一个新问题。创建问题后给我发消息。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-02-11
    • 2019-12-09
    • 1970-01-01
    • 2017-08-09
    • 1970-01-01
    • 2019-01-16
    • 2021-10-20
    相关资源
    最近更新 更多