我在试着理解这篇关于何塞的博文。在关于JWS的部分中,它说:
在受保护的报头中包含公钥不仅会赋予服务器验证签名的能力,我们还将确保它是正确的,因为受保护的头是完整性保护的!
这就是示例对象的样子:
{
"payload": "eyAKICAgICAgICAiZnJvbSI6ewogICAgICAgICAgICAibmFtZSI6ICJUaW0gWXNld3luIiwKICAgICAgICAgICAgImFjY291bnQiOiAiQ2hlY2tpbmcgYWNjb3VudCIKICAgICAgICB9LAogICAgICAgICJ0byI6ewogICAgICAgICAgICAibmFtZSI6ICJUaW0gWXNld3luIiwKICAgICAgICAgICAgImFjY291bnQiOiAiU2F2aW5ncyBhY2NvdW50IgogICAgICAgIH0sCiAgICAgICAgImFtb3VudCI6IDI1MAogICAgICAgICJjdXJyZW5jeSI6ICJFVVIiCiAgICB9",
"protected": "eyAKICAgICAgICAiYWxnIjogIlJTMjU2IgogICAgfQ==",
"header": {
"signature": "DtEhU3ljbEg8L38VWAfUAqOyKAM6-Xx-F4GawxaepmXFCgfTjDxw5djxLa8ISlSApmWQxfKTUJqPP3-Kg6NU01Q"
}
}受保护的标头是以下的base64url编码:
{
"alg": "ES256"
}我唯一能找到的用于在其中放置公钥的引用是密钥id字段kid的使用,如下所示:
{"alg":"RSA1_5","kid":"2011-04-29"}这就是这篇文章所指的吗?或者它指的是其他东西(比如将整个公钥放入受保护的头部,如:
{"alg":"RSA1_5","key":"somepublickeyhere"}发布于 2018-10-19 13:26:39
你走在正确的道路上。本文可能提到的是在"jwk"中定义的RFC-7515头参数,如下所示:
"jwk“(JSON )头参数是对应于用于对JWS进行数字签名的密钥的公钥。此键表示为JSON密钥。
JSON (JWK)是在RFC-7517中定义的JOSE的另一部分。它定义了如何以JSON格式表示加密密钥,以便可以在JWS头中传输它们。JWK格式的RSA密钥可能如下所示:
{
"kty":"RSA",
"n": "0vx7 (...) DKgw",
"e":"AQAB",
"alg":"RS256",
"kid":"2011-04-29"
}因此,如本文所述,带有密钥的(受保护的) JWS头看起来可能如下所示:
{
"alg": "RS256",
"jwk": {
"kty":"RSA",
"n": "0vx7 (...) DKgw",
"e":"AQAB",
"alg":"RS256",
"kid":"2011-04-29"
}
}https://stackoverflow.com/questions/52747701
复制相似问题