使用JWT发送私钥

时间:2016-11-18 06:24:20

标签: encryption jwt

我可以使用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
)

1 个答案:

答案 0 :(得分:0)

当建立安全通信时,每个利益相关者生成/拥有自己的私钥。只交换公钥。应该防止私钥交换。

无论如何,如果您确实需要通过JWT格式发送私钥,那么您应该阅读JSON Web Key (JWK) specification (RFC7517) section 7。 这个过程非常简单:使用JWK作为有效负载和强制标头以及值cty的(可选)jwk+json标头参数创建JWE。

示例:

JWE标题:

{
    "alg":"A256KW",
    "enc":"A256GCM",
    "cty":"jwk+json"
}

JWE Payload(JWK):

{
    "kty":"oct",
    "alg":"A128KW",
    "k":"GawgguFyGrWKav7AX4VKUg"
}