为什么我不需要私钥来解码我的 amazon JWT?

Why do I not need a private key to decode my amazon JWT?

我一直在阅读,当使用 Amazon Cognito 进行验证和 JWT 令牌时,我需要解码签名的是 public 密钥。但是,如果这是真的,我认为这会降低它的安全性,因为有人可以更改他们的 jwt 然后更改签名,而我在 API 端的解码不会知道区别,因为我不知道私钥,public 密钥是 public,可用于生成签名。

谁能帮忙澄清一下?

由于使用 Asymmetric encryption(使用 private/public 密钥对),没有人可以修改令牌并向其添加签名,该签名被使用 [=18= 的人接受] 原始发件人的密钥。

令牌中的内容是 public 并且任何拥有它的人都可以访问,这就是为什么您不应在其中存储 GDPR 敏感数据的原因。但是,如果没有私钥副本,任何人都无法生成新令牌。

定期进行密钥轮换也是明智的做法,您可以定期将私钥替换为新私钥。