Quiero mejorar el flujo de cifrado utilizado por mi aplicación. Hoy utilizo el cifrado AES, mientras que su clave y su IvBuffer están codificados en el código. Sé que no está asegurado y quiero mejorar esto. Quiero crear un nuevo cifrado AES mientras que su clave se almacenará en la base de datos. La clave será cifrada por el antiguo cifrado AES.
La aplicación utilizará el nuevo cifrado AES:
- Descifre la clave para el nuevo cifrado utilizando el antiguo cifrado.
- Cifre / descifre información usando el nuevo cifrado usando la clave desencriptada.
El flujo permitirá una rotación de claves más fácil en el futuro (puedo elaborarlo, pero no está relacionado con mi pregunta).
¿Cómo se protege el proceso de cifrado?
¿Qué hacer con IvBuffer para el nuevo cifrado AES? ¿Para almacenarlo en la base de datos o para ponerlo en el código?
Agregado
Por la siguiente respuesta, entiendo que la clave codificada adicional no mejora mi seguridad. Necesito almacenar la clave de cifrado en la base de datos (la opción 7 se encuentra aquí Dónde almacenar una clave para el cifrado? ). Desafortunadamente, no puedo usar dispositivos externos para el almacenamiento de claves y, por lo tanto, necesito usar la base de datos.
¿Se pregunta si la seguridad de la opción cuando la clave se almacena en el texto sin formato en la base de datos es mejor que la opción cuando se usa una clave codificada adicional para la misma clave almacenada en la base de datos?