当前位置:  开发笔记 > 编程语言 > 正文

jwt web令牌应该加密吗?

如何解决《jwtweb令牌应该加密吗?》经验,为你挑选了2个好方法。

我正在阅读有关JWT Web令牌的文章作为响应用户的访问令牌.其中一些提到网络令牌应该能够由用户解码.

这是否意味着解密整个Web令牌不是一个好习惯?例如,我想将以下JWT Web令牌返回给用户,在这里可以解码这条信息.

eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiYWRtaW4iOnRydWV9.TJVA95OrM7E2cBab30RMHrHDcEfxjoYZgeFONFh7HgQ

但是,我觉得我不想让用户能够解码他/她的访问令牌,因此我使用另一种加密算法将所有内容加密到另一种形式,如下所示并传回给用户.

因此,当我在服务器中获取此访问令牌并对其进行解码时,我会解密此新文本.

如果我不希望向用户公开声明中的某些可用值(例如用户ID),是否建议以这种方式执行此操作?如果没有,有哪些替代方案?



1> Florent Mors..:

JWT(RFC7519)只是一种通过HTTP安全地将发布者的声明传输给受众的紧凑方式.

JWT可以是:

签名(JWS - RFC7515)

加密(JWE - RFC7516)

签名然后加密(强烈建议这个顺序).整个JWS是JWE的有效载荷

加密然后签名.

如果要保护敏感信息对承载(客户端)或第三方隐藏,则加密JWS是有意义的.

真正的问题是:观众是否支持JWE?如果是,支持哪些算法?



2> Eugenio Pace..:

JWT是“已签名”的,因此可以保护其内容免遭篡改:您不能在不使它们无效的情况下更改其内容。

您可以选择“加密”内容,从而使它们仅对发行者(创建令牌的实体)和使用者(在验证后将要使用其内容的实体)可见。

有一个标准:JWE


我认为这里的标注(对于其他阅读此文档的访问者来说很清楚)是,通过JWT的签名保护了JWT免受“篡改”,但是任何持有它的人仍然可以看到有效负载。如果该有效负载中包含敏感数据,则对其进行加密可能是一个好主意。挑战在于,您需要确保接收令牌的任何系统都可以在需要读取有效负载的情况下解密该令牌(例如,声明)
推荐阅读
刘美娥94662
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有