【问题标题】:JWT and securing https REST apiJWT 和保护 https REST api
【发布时间】:2015-06-16 00:55:03
【问题描述】:

我正在设计一个服务,其中服务器 A 将通过 https 将一些 JSON 数据发布到服务器 B。

我正在考虑使用 JWT 进行身份验证并传递一些声明,例如:issaudiatexpjti。这些将在服务器 B 收到来自服务器 A 的消息时进行验证。

{
  "iss": "api.server-a.com",
  "aud": "api.server-b.com",
  "iat": 1356999524,
  "exp": 1407019793,
  "jti": "id123456"
}

问题 1: 服务器 B 是否也应该在回复中返回一个 JWT 令牌,以便我可以验证回复?或者这是不必要的,因为它是 https?

问题 2: 与仅在 https 上使用带有简单 API 令牌的 HTTP 基本身份验证相比,这对安全性有什么真正的好处吗?难道 https 不能像检查 iatexpjti 声明一样防范重放攻击吗?

【问题讨论】:

    标签: security rest jwt


    【解决方案1】:

    A1: 服务器 B 将只返回客户端请求的数据,并且在 JWT 正确验证时有权获得。如果某些事情不成功,则会返回一个错误。响应中数据的完整性和真实性由 SSL 服务器证书验证来保证。尽管您的服务器可以选择返回包含 JWT 的响应,但对 JWT 响应没有内在要求。

    A2: JWT 的安全优势不仅在于防止重放攻击(取决于所使用的密码,SSL 层可能已经处理也可能不处理),而且在客户识别领域以及以明确、标准化和可验证的方式在范围(例如权限)和时间(例如到期)方面添加限制的能力。

    【讨论】:

    • 双向 SSL 也提供客户端识别,服务器可以根据它识别用户/处理时间/到期。在我看来,JWT 仅在 单向 SSL 的情况下有用:在这种情况下,客户端不会提供证书,我们需要在 HTTPS 之上使用这种机制。
    猜你喜欢
    • 1970-01-01
    • 2016-02-23
    • 2021-03-20
    • 2021-01-05
    • 2019-06-03
    • 2017-04-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多