Tenemos una aplicación web que se utiliza para almacenar secretos (contraseñas, pines, etc.) y compartirlos con otros usuarios del sistema.
Actualmente, para el cifrado utilizamos AES con una sola clave de cifrado, y todos los secretos después del cifrado se almacenan en la base de datos. Después de leer sobre los posibles métodos para mejorar esto, decidí implementar el método descrito en enlace (las claves se almacenan en servidor, y el servidor los gestiona)
Al utilizar este enfoque, no quiero que los usuarios ingresen su contraseña de clave privada cada vez que quieran realizar una acción, por lo tanto, tengo que almacenarla durante la sesión del usuario.
El sistema actualmente usa tokens JWT, así que tengo un plan para agregar su contraseña cifrada con AES en él, y durante la solicitud el servidor puede descifrarlo y desbloquear su clave privada para realizar acciones.
¿Este método es lo suficientemente seguro o incluso hay una mejor manera de resolver este problema?