gpt4 book ai didi

java - JWT 数字签名是如何保护的?

转载 作者:太空狗 更新时间:2023-10-29 13:11:47 26 4
gpt4 key购买 nike

我想使用 token 授权系统来保护托管的 Rest 服务。所以,我决定采用 JWT 流程。在阅读了以下文档之后,我对数字签名的工作原理感到困惑。据我所知,我们需要使用 SignatureAlgorithm 来加密私钥。并验证它我们只需要在我们的最终用户应用程序上的公钥。我会将公钥保存在 android 本地数据库中。

现在,我们来谈谈逆向工程。如果有人能够访问客户端数据库并弄清楚公钥是什么。现在他们只需要弄清楚服务器使用哪种算法进行数字签名,只需解密标题部分就可以很简单地做到这一点。

我是不是漏掉了什么?如果否,那么 JWT 如何安全使用?

最佳答案

I got confused how digital signature works.

确实。

AFAIK we need to encrypt the private key using SignatureAlgorithm.

没有。您需要加密数据,并使用私钥对其进行加密。通常您加密的是数据的 HMAC,以节省空间。

and to verify it we only need public key on our end user application.

正确。但您要验证的是该数据是使用该私钥签名的。

Now, Let's talk about reverse engineering. If someone is able to access the client database and figure it out what is the public key. Now they just need to figure out what kind of algorithm server are using for digital signature and it's very simple to do it by just decrypting the header section.

不,因为您没有加密 header 部分。您加密了一个 HMAC。

关于java - JWT 数字签名是如何保护的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39735562/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com