Estoy intentando implementar un sistema de autenticación / autorización usando JWT para mi aplicación web. Los clientes reciben un token en el formato JWT habitual de mi servidor una vez que presentan las credenciales que verifico en la base de datos.
El problema que pensé que podría surgir es que, por lo que sé, los tokens de JWT no están encriptados ni firmados de ninguna manera, por lo que podría ser una víctima de MitM donde alguien está cambiando las reclamaciones en mi carga y envía una respuesta o simplemente roba datos.
Me di cuenta de que esto podría solucionarse firmando el token JWT usando HMAC o mejor usando el par de claves privada / pública RSA, pero nuevamente la clave pública RSA debería tener algún tipo de certificado adjunto porque la clave pública podría estar comprometida en algún momento .
Esto es cuando me pregunté: '¿Es realmente necesario?'. ¿Si obtengo un certificado SSL para todas mis páginas y comunico mis tokens a través de él, también debo firmarlas en 'capa de aplicación'? Me parece que me estoy volviendo paranoico pensando que mi CA podría verse comprometida y que alguien podría ver mis tokens JWT mientras se envían desde el servidor. Cuáles son las probabilidades de que esto ocurra ? ¿Debo realmente tomarme el tiempo para desarrollar una capa de seguridad adicional antes de SSL donde genero un token JWT seguro con un par de claves privada / pública RSA y luego lo envío al usuario a través de un canal SSL?