【问题标题】:JWE and JWS, are they "stateless"?JWE 和 JWS,它们是“无国籍”的吗?
【发布时间】:2018-07-06 09:05:51
【问题描述】:

最近我一直在阅读一些关于 JWT/JWS 和 JWE 的文章。但是......我仍然不明白的一部分是我很确定我在某个地方已经读到它们都应该是“无状态的”,这是真的吗? 我对此的看法是,JWS 和 JWE 将需要“收购方”和“发行方”之间的共享密钥才能解密有效负载(以及 CEK 以及不依赖于 JWS 或 JWE 的内容)。 所以我的问题是.. JWS 和 JWE 真的是无国籍的吗?如果是这样,那我们为什么不需要在“收购方”和“发行方”之间存储秘密呢?或者这个孩子是用来从例如数据库中获取我们的秘密来解密有效负载和/或 CEK 的?

澄清, 使用 JWS 和/或 JWE 对令牌进行解密和加密时,发行方和收单方之间是否存在共享密钥?此密钥是否存储在发行方的数据库中以便能够解密有效负载和/或 CEK,或者用于解密和加密的密钥/密钥是否以其他方式共享?

此问题基于以下有关 JWT、JWS 和 JWE 的文章: https://medium.facilelogin.com/jwt-jws-and-jwe-for-not-so-dummies-b63310d201a3

【问题讨论】:

    标签: encryption jwt


    【解决方案1】:

    您是对的:根据您的应用程序,它可能是有状态的。 在我看来,您可以区分两种情况:

    1. 您的应用程序发出 JWE 或接收 JWS
    2. 您的应用程序发出 JWS 或接收 JWE

    在第一个用例中,可以使用颁发者公钥检查 JWS 签名。这些密钥(广义上)由发行者与各方共享(这是Googleother authorities 所做的)。当您想为该收件人加密令牌 (JWE) 时也是如此:您将使用其公钥。

    对于另一个用例,您的应用程序将需要访问带有私钥的密钥集。这些密钥必须存储在某个地方(数据库、环境变量...)。

    当使用共享密钥时(很少与第 3 方一起使用),您可能处于用例 #2,因为颁发者和接收者都必须管理共享密钥。

    【讨论】:

      猜你喜欢
      • 2019-03-16
      • 2019-06-25
      • 2011-05-12
      • 2015-11-03
      • 2016-11-21
      • 2018-04-08
      • 2022-10-31
      • 2017-02-09
      • 2019-06-09
      相关资源
      最近更新 更多