在使用 JWS JSON 序列化的 JWS 中具有多个签名的用例是什么?
What is a use case for having multiple signatures in a JWS that uses JWS JSON Serialization?
我阅读了可以找到的 JSON Web 签名规范 here。该规范为 JSON Web 签名定义了两种序列化表示。一种是 JWS Compact Serialization,另一种是 JWS JSON Serialization 方法。 JWS JSON 序列化表示允许一个人拥有多个签名。使用 JWS JSON 序列化的 JWS 示例是:
{
"payload": "eyJpc3MiOiJqb2UiLA0KICJleHAiOjEzMDA4MTkzODAsDQogImh0dHA6Ly9leGFtcGxlLmNvbS9pc19yb290Ijp0cnVlfQ",
"signatures": [
{
"protected": "eyJhbGciOiJSUzI1NiJ9",
"header": {
"kid": "2010-12-29"
},
"signature": "cC4hiUPoj9Eetdgtv3hF80EGrhuB__dzERat0XF9g2VtQgr9PJbu3XOiZj5RZmh7AAuHIm4Bh
-0Qc_lF5YKt_O8W2Fp5jujGbds9uJdbF9CUAr7t1dnZcAcQjbKBYNX4BAynRFdiuB
--f_nZLgrnbyTyWzO75vRK5h6xBArLIARNPvkSjtQBMHlb1L07Qe7K0GarZRmB_eSN9383LcOLn6_dO
--xi12jzDwusC-eOkHWEsqtFZESc6BfI7noOPqvhJ1phCnvWh6IeYI2w9QOYEUipUTI8np6Lbg
GY9Fs98rqVt5AXLIhWkWywlVmtVrBp0igcN_IoypGlUPQGe77Rw"
},
{
"protected": "eyJhbGciOiJFUzI1NiJ9",
"header": {
"kid": "e9bc097a-ce51-4036-9562-d2ade882db0d"
},
"signature": "DtEhU3ljbEg8L38VWAfUAqOyKAM6-Xx-F4GawxaepmXFCgfTjDxw5djxLa8ISlSApmWQxfKTUJqPP3-Kg6NU1Q"
}
]
}
规范暗示有时拥有多个签名可能是有益的。但是,我想不出有什么理由让你需要不止一个。
那么,话虽如此,在 JWS 中拥有多个签名的用例是什么?
根据 ,至少有 2 个用例:
您使用多种签名算法(比如 RS256、ES384 和 PS512)对令牌进行签名。根据受众能力(仅支持 ES384 算法),它将能够验证令牌。
多方同意共同的有效载荷。各方使用其密钥对有效负载进行签名,并将签名合并为一个令牌。
我阅读了可以找到的 JSON Web 签名规范 here。该规范为 JSON Web 签名定义了两种序列化表示。一种是 JWS Compact Serialization,另一种是 JWS JSON Serialization 方法。 JWS JSON 序列化表示允许一个人拥有多个签名。使用 JWS JSON 序列化的 JWS 示例是:
{
"payload": "eyJpc3MiOiJqb2UiLA0KICJleHAiOjEzMDA4MTkzODAsDQogImh0dHA6Ly9leGFtcGxlLmNvbS9pc19yb290Ijp0cnVlfQ",
"signatures": [
{
"protected": "eyJhbGciOiJSUzI1NiJ9",
"header": {
"kid": "2010-12-29"
},
"signature": "cC4hiUPoj9Eetdgtv3hF80EGrhuB__dzERat0XF9g2VtQgr9PJbu3XOiZj5RZmh7AAuHIm4Bh
-0Qc_lF5YKt_O8W2Fp5jujGbds9uJdbF9CUAr7t1dnZcAcQjbKBYNX4BAynRFdiuB
--f_nZLgrnbyTyWzO75vRK5h6xBArLIARNPvkSjtQBMHlb1L07Qe7K0GarZRmB_eSN9383LcOLn6_dO
--xi12jzDwusC-eOkHWEsqtFZESc6BfI7noOPqvhJ1phCnvWh6IeYI2w9QOYEUipUTI8np6Lbg
GY9Fs98rqVt5AXLIhWkWywlVmtVrBp0igcN_IoypGlUPQGe77Rw"
},
{
"protected": "eyJhbGciOiJFUzI1NiJ9",
"header": {
"kid": "e9bc097a-ce51-4036-9562-d2ade882db0d"
},
"signature": "DtEhU3ljbEg8L38VWAfUAqOyKAM6-Xx-F4GawxaepmXFCgfTjDxw5djxLa8ISlSApmWQxfKTUJqPP3-Kg6NU1Q"
}
]
}
规范暗示有时拥有多个签名可能是有益的。但是,我想不出有什么理由让你需要不止一个。
那么,话虽如此,在 JWS 中拥有多个签名的用例是什么?
根据
您使用多种签名算法(比如 RS256、ES384 和 PS512)对令牌进行签名。根据受众能力(仅支持 ES384 算法),它将能够验证令牌。
多方同意共同的有效载荷。各方使用其密钥对有效负载进行签名,并将签名合并为一个令牌。