【发布时间】:2016-05-11 02:02:52
【问题描述】:
我了解 JWT 是安全的。但只是想知道一些我看不懂的概念。
假设身份验证服务器“A”将签名令牌发送到应用程序服务器。如果我没记错的话,签名是由服务器“A”上的私钥完成的。现在应用服务器可以解密令牌并使用公钥验证信息。我还读到 JWT 是自包含的,它包含数据和签名。
我看到的一些示例在验证时没有使用任何安全密钥。如果我没记错的话,RS256 不需要任何特定的密钥,我假设它会使用公共证书来解密。
我的查询是,如果 JWT 是自包含的,为什么不能在两者之间更改数据。
例如假设服务器“A”发送以下信息
header.user1email.signature
如果黑客将数据替换为
header.user2email.signature
使用他自己的私钥,怎么可能是有效数据?如何确定它来自服务器“A”?
我知道这里缺少一些基础知识,请帮忙?
【问题讨论】:
-
嗨@CreativeManix - 我的回答解决了你的问题吗?如果是这样,您愿意关闭这个问题吗?
标签: security jwt azure-ad-b2c