Una aplicación web que estoy desarrollando necesita almacenar algunos datos confidenciales en una base de datos. Necesito poder recuperar y usar estos datos más adelante, por lo que el hash no es suficiente.
La aplicación web podría, en algún momento en el futuro, tener carga equilibrada, por lo que estoy tratando de hacer las cosas correctamente ahora en lugar de luchar contra esto más tarde.
He creado un proceso de dos pasos para esto utilizando tecnologías estándar:
- Los datos confidenciales se cifran utilizando AES en la base de datos SQL.
- Para asegurarse de que los valores de la clave / IV de AES sean lo más seguros posible, la aplicación web de IIS los encripta mediante DPAPI (alcance del usuario) y se almacenan en un archivo en
App_Data
.
Esto se debe a que no creo que pueda hacer uso de la DPAPI sola si se está utilizando el equilibrio de carga. ¿Estoy en lo correcto?
Me pregunto si no estoy complicando las cosas con el segundo paso, pero no me gusta la idea de mantener la clave AES en texto sin formato en algún archivo web.config
en la aplicación IIS.
¿Este enfoque es correcto y relativamente seguro?