【问题标题】:What is the point of signing jwt if it can be decrypted without it如果没有它可以解密,那么签署jwt有什么意义
【发布时间】:2014-09-05 15:19:36
【问题描述】:

我正在试验jwt,在做一些研究时我发现了这个JWT DECODER,我想我必须输入令牌和我的密钥才能解密令牌。

但我很惊讶地看到它只需要令牌来解密它。如果没有它可以解密,那么密钥有什么用。令牌中的所有用户数据将对任何人开放。

我在这里错过了什么吗??

我的另一个问题是 jwt 如何帮助防止MITM

谢谢

【问题讨论】:

  • 签名不是加密。签名允许您验证负载的作者,但不会阻止负载被检查,您可以在没有访问作者私钥的情况下执行此操作。
  • 任何拥有 JWS(签名的 JWT)的人都可以看到该内容,但是如果您使用密钥验证令牌的有效性,则可以确保该内容没有被更改,或者您拒绝它。这些令牌是为非敏感数据制作的。如果要对内容进行加密,可以使用JWE,但是使用起来比较复杂。

标签: node.js security encryption jwt express-jwt


【解决方案1】:

令牌经过签名和编码(未加密),因此无需密钥即可导出原始数据。 signature 允许任何拥有公钥的人验证令牌,但签名本身只能由持有私钥的实体生成。

由于这些属性,可以检测到数据的任何更改,并且我们可以可靠地确定是谁发布了令牌。这会阻止 MITM 类型,因为 MITM 无权访问私钥,因此无法为将通过验证的令牌生成签名。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-06-04
    • 2020-08-04
    • 2018-07-09
    • 2016-01-21
    • 2015-08-19
    • 2011-05-10
    • 1970-01-01
    相关资源
    最近更新 更多