Cifrado de configuración en el alojamiento compartido de IIS7 que usa el equilibrio de carga

2

Al alojar un sitio en un clúster (o configuración en la nube) necesitamos especificar una Clave de la máquina en el Archivo web.config . Esto es necesario para mantener las máquinas sincronizadas (a menudo, el primer encuentro con esto es cuando tienes que iniciar sesión varias veces después de cada carga de una o dos páginas).

Algunos dicen que es sin ningún uso para cifrar El web.config en alojamiento compartido. Otros tienen algunos puntos positivos (tenga cuidado con los editores que guardan .bak archivos por ejemplo).

Aparte de las credenciales de la base de datos, la configuración puede contener otras credenciales que pueden ser de uso más directo para un atacante, como las credenciales de administrador de la autenticación de formularios (utilizadas para realizar y restaurar copias de seguridad de bases de datos, por ejemplo, donde el usuario debe ser capaz de iniciar sesión sin depender de la base de datos).

¿Es posible cifrar estas secciones con los medios provistos, ya que la "clave de máquina" está definida en el mismo archivo de configuración? Si se usa esa llave, ¡tenemos un buen paradigma de huevo de gallina!

Es un alojamiento compartido, por lo que ejecutar aspnet_regiis está fuera de discusión. También he visto muchos problemas de "El objeto ya existe" y "No se pudo abrir el contenedor de claves" en el alojamiento compartido al intentar programar mediante programación el cifrado en proyectos que ni siquiera utilizaban el equilibrio de carga.

Mi pregunta es, ¿es técnicamente posible cifrar las secciones en el alojamiento de balanceo de carga compartido (clave de máquina en configuración) con la instrumentación estándar o debo ahorrar cualquier esfuerzo?

    
pregunta Louis Somers 30.05.2012 - 01:05
fuente

1 respuesta

3

El cifrado es posible, sin embargo, en algún momento debe tener una clave privada o una contraseña que debe usar para descifrar los datos cifrados. Entonces la pregunta es ¿dónde lo pones?

En IIS, puede almacenar una clave privada de certificado en un almacén de certificados, pero en un entorno de alojamiento compartido probablemente no tenga ese tipo de acceso. Además, si está tratando de proteger los datos del proveedor de alojamiento, pueden acceder fácilmente a la clave. Si está tratando de proteger una contraseña de conexión de base de datos, al ser un proveedor de alojamiento, probablemente también aloje su base de datos para que no le sirva de ayuda. Sin embargo, siempre eliminaría y eliminaría las contraseñas que se introducirían en un mensaje de inicio de sesión almacenado en web.config. Recuerda que en realidad no necesitas descifrarlos, solo sal + hash en la misma secuencia y comparar.

Aún puede optar por cifrar los datos, ya que puede no ser evidente lo que es para el observador casual, sin embargo, sería trivial romper si es lo que pretendían.

Espero que ayude.

    
respondido por el Bernie White 31.05.2012 - 14:06
fuente

Lea otras preguntas en las etiquetas