【问题标题】:JWT payload encryption without any JS access to token没有任何 JS 访问令牌的 JWT 有效负载加密
【发布时间】:2020-05-31 11:57:50
【问题描述】:

我想使用对称或非对称加密方法等当前方法加密 JWT 有效负载。 我的问题是,如果我使用这些方法,javascript 需要在客户端对我的数据执行任何操作吗?还是加密和验证的所有部分都将在服务器端完成? 在这个article 中,他们说如果你需要加密有效负载,你必须存储公钥(由于像 RSA 或...这样的加密算法)。为什么? 如果我想加密有效负载,为什么我们需要将公钥(或任何密钥)存储在 jwt 令牌中? 有没有办法只在服务器端对称地加密有效负载?并且不需要 javascript 访问它们并操作令牌?

【问题讨论】:

    标签: javascript api security encryption jwt


    【解决方案1】:

    你误解了这篇文章

    要为给定收件人加密 JWT,您需要知道他们的公共 RSA 密钥。

    如果读起来可能会更清楚

    要为给定收件人加密 JWT,以便他们可以解密它,您需要知道他们的公共 RSA 密钥。

    这意味着如果客户端想要加密一些东西发送给可以解密,他们只需要知道你的公钥,你只需要知道你的私钥。如果你想加密客户端可以解密的东西,你需要客户端的公钥。

    听起来您想加密某些内容以发送给客户端,然后他们可以将其发送回您以供您解密。由于您同时在加密和解密,因此不需要向客户端发送任何密钥(除非您使用不同的密钥每个客户端,在这种情况下,您需要向他们发送您使用的公钥,以便您可以找出用哪个私钥解密)。

    【讨论】:

    • 如果我们决定只使用像 AES 这样的对称算法加密有效负载,服务器可以使用只有服务器拥有该密钥的密钥加密有效负载,然后 jwt 向客户端发送令牌,现在令牌已加密有效负载,客户端获取令牌,然后发送回服务器。在这种情况下,任何主体都无法读取有效载荷数据并找到有效载荷中的内容。这是真的吗??
    • 正确。没有人(除了你的服务器)
    • @Joe 整个对话都是关于加密的 JWT
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-10-29
    • 2016-03-12
    • 2018-09-15
    • 2020-01-10
    • 2021-12-24
    • 2018-12-19
    • 2017-02-06
    相关资源
    最近更新 更多