Cifrado de datos en una aplicación de carga equilibrada, ¿estoy haciendo esto bien?

0

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?

    
pregunta Shaamaan 09.01.2014 - 11:43
fuente

1 respuesta

2

Lo ideal para una situación como esta es usar un HSM, pero contar con eso como opción, usar el software equivalente en DPAPI es probablemente su próxima mejor opción. Tampoco veo un problema con el almacenamiento de cada copia del servidor de la clave cifrada con la clave DPAPI para ese servidor / usuario de servicio.

Es cierto que no desea simplemente almacenar la clave, desprotegida, en el sistema de archivos. Casi cualquier compromiso en su servidor lo perdería sin protección adicional.

Una posible mejora, aunque requeriría un poco de programación para recuperar, es almacenar la clave en DPAPI. Es solo un pequeño nivel de protección adicional, ya que la clave aún está almacenada (en forma encriptada) en el sistema, pero hace que sea un poco más difícil de encontrar y puede hacer que sea un poco más fácil acceder desde su programa. Sin mirarlo en profundidad, creo que eso es probablemente lo que haría.

    
respondido por el AJ Henderson 09.01.2014 - 14:06
fuente

Lea otras preguntas en las etiquetas