为啥我不需要私钥来解码我的亚马逊 JWT?
Posted
技术标签:
【中文标题】为啥我不需要私钥来解码我的亚马逊 JWT?【英文标题】:Why do I not need a private key to decode my amazon JWT?为什么我不需要私钥来解码我的亚马逊 JWT? 【发布时间】:2022-01-11 18:26:42 【问题描述】:我一直在阅读,当使用 Amazon Cognito 进行验证和 JWT 令牌时,解码签名所需的只是公钥。但是,如果这是真的,我认为这会降低安全性,因为有人可以更改他们的 jwt 然后更改签名,而我在 API 端的解码将不知道其中的区别,因为我不知道私钥和公共密钥是公开的,可用于生成签名。
谁能帮忙澄清一下?
【问题讨论】:
公钥用于验证(不解码)签名,但没有私钥就无法创建(生成)有效签名,应保留私钥私有的,这就是为什么它首先被命名为私有密钥,这可以防止其他任何人为伪造数据创建签名。参见例如en.wikipedia.org/wiki/Digital_signature。 【参考方案1】:由于使用Asymmetric encryption(带有私钥/公钥对),任何人都无法修改令牌并为其添加签名,该签名被使用原始发件人的公钥的人接受。
令牌中的内容是公开的,任何拥有它的人都可以访问,这就是为什么您不应该在其中存储 GDPR 敏感数据的原因。但是,没有私钥的副本,任何人都无法生成新的令牌。
定期进行密钥轮换也是明智之举,您可以定期用新密钥替换私钥。
【讨论】:
以上是关于为啥我不需要私钥来解码我的亚马逊 JWT?的主要内容,如果未能解决你的问题,请参考以下文章