【发布时间】:2019-03-15 19:21:23
【问题描述】:
我正在努力理解this blog post about JOSE。在关于 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"}
【问题讨论】:
标签: json encryption jwt jose