KMS + JWT es confuso y fácilmente mal utilizado. Esta pregunta es acerca de la pragmática, por lo que las respuestas resumidas a continuación están felices de ampliarlas pero los detalles son complejos.
1) Is signing barely encryption of the hash of the content?
No lo es.
2) In JWT case, if I hash the content of JWT and encrypt it and
put it in signature field, will it be correct signing?
No lo hará.
Si está utilizando JWT para tokens de autorización, aquí está la versión corta de lo que probablemente quiera hacer:
- Use KMS para generar una clave de datos de 256 bits, tanto en forma cifrada como de texto simple: enlace
- Guarde la forma encriptada de la clave de datos, junto con la ID-clave CMK bajo la cual fue acuñada, en su base de datos o con la configuración de la aplicación
- Use la clave de datos de texto simple de 256 bits como "secreto" con la biblioteca JWT preferida de su plataforma de idioma para firmar y validar JWT.
- Cuando la aplicación se reinicie, obtenga la clave de datos cifrada de la base de datos, llame a KMS Decrypt para obtener la versión de texto simple de la clave de datos, y use como se indicó anteriormente para la firma y validación de JWT
Espero que ayude.