我可以使用JWT交换私钥吗? 我必须使用此私钥来解密早期的加密数据。我使用TLS在服务器和客户端之间交换信息。安全吗?交换密钥是一个有效的想法? 例如:
标题
{
"alg": "HS256",
"typ": "JWT"
}
有效载荷
{
"sub": "1234567890",
"name": "John Doe",
"admin": true,
"private_key": Base64(generated private key)
}
特征
HMACSHA256(
base64UrlEncode(header) + "." +
base64UrlEncode(payload),
passphrase
)
答案 0 :(得分:0)
当建立安全通信时,每个利益相关者生成/拥有自己的私钥。只交换公钥。应该防止私钥交换。
无论如何,如果您确实需要通过JWT格式发送私钥,那么您应该阅读JSON Web Key (JWK) specification (RFC7517) section 7。
这个过程非常简单:使用JWK作为有效负载和强制标头以及值cty
的(可选)jwk+json
标头参数创建JWE。
示例:
{
"alg":"A256KW",
"enc":"A256GCM",
"cty":"jwk+json"
}
{
"kty":"oct",
"alg":"A128KW",
"k":"GawgguFyGrWKav7AX4VKUg"
}