Cómo configurar el modo de cifrado obsoleta en ASP.NET


Resumen


La actualización de seguridad que se describe en el boletín de seguridad de Microsoft que MS10-070 realiza cambios en el mecanismo de cifrado predeterminado de ASP.NET para realizar la validación (firma) además del cifrado. Este artículo describe las opciones de configuración para revertir al comportamiento heredado para la codificación en ASP.NET.For obtener más información acerca de esta actualización de seguridad, visite el siguiente sitio Web:

Más información


ASP.NET permite a los usuarios cifrar opcionalmente o validar datos mediante la configuración en la sección MachineKey. La actualización de seguridad se resuelve mediante seguridad actualizar cambios MS10-070 el comportamiento predeterminado del cifrado en ASP.NET para realizar la validación además de cifrado incluso si se solicita el cifrado sólo. Después de instalar la actualización de seguridad que se describe en el boletín de seguridad MS10-070, se realizan las siguientes operaciones cuando el cifrado se configura para ASP.NET:
  • Durante el cifrado de datos, una firma HMAC se genera para los datos cifrados y se anexa a éste.
  • Durante el descifrado de datos, la firma de código HMAC se valida antes de descifrar los datos.
Las siguientes claves en el control (appSettings) de configuración de aplicaciones ASP.NET el comportamiento de la firma además al cifrado.
Clave TipoValor predeterminadoVersiones compatibles on.NET
aspnet:UseLegacyEncryptionValor booleanoFalseMicrosoft.NET Framework 2.0 Service Pack 1Licencia.NET Framework 2.0 Service Pack 2Microsoft.NET Framework 3.5Microsoft.NET Framework 3.5 Service Pack 1Licencia.NET Framework 4.0
aspnet:UseLegacyMachineKeyEncryptionValor booleanoFalseMicrosoft.NET Framework 4.0
aspnet:ScriptResourceAllowNonJsFilesValor booleanoFalseMicrosoft.NET Framework 3.5 Service Pack 1Licencia.NET Framework 4.0

Descripción de appSetting de la aspnet:UseLegacyEncryption

Esta configuración de la aplicación especifica si el cifrado se además realizar la validación con una clave HMAC incluso cuando la sección de validación en la sección machineKey de configuración de ASP.NET no está configurada para validar la firma HMAC.
aspnet:UseLegacyEncryptionDescripción
False (valor predeterminado)Este valor configura ASP.NET para realizar además validación de la firma de código HMAC cuando ASP.NET se configura para utilizar el cifrado. Esto ocurrirá incluso si la validación en machineKey no está configurada para iniciar sesión utilizando una clave HMAC.
TrueEste valor configura ASP.NET no debe realizar la validación de la firma de código HMAC cuando está configurado para utilizar el cifrado y no se firma por la validación en machineKey HMAC. Nota: Esta configuración podría permitir que un cliente malintencionado descifrar, falsificar o alterar los datos cifrados en caso contrario.
Para configurar esta opción, agregue la siguiente configuración en el archivo web.config de equipo o una aplicación:
<configuration>... <appSettings> ... <add key="aspnet:UseLegacyEncryption" value="false" /> </appSettings></configuration> 

Descripción de appSetting de aspnet:UseLegacyMachineKeyEncryption

Esta configuración de la aplicación especifica si el cifrado mediante la clase System.Web.Security.MachineKey además realizará validación con una clave HMAC incluso cuando el argumento de MachineKeyProtection proporcionado no especifica que se realizará la validación.
aspnet:UseLegacyMachineKeyEncryptionDescripción
False (valor predeterminado)Este valor configura ASP.NET para realizar además validación de la firma de código HMAC a través de la clase MachineKey cuando ASP.NET se configura para utilizar el cifrado. Esto ocurrirá incluso si el argumento de MachineKeyProtection proporcionado no especifica que se realice la validación.
TrueEste valor configura ASP.NET no debe realizar la validación de la firma de código HMAC a través de la clase MachineKey cuando está configurado para utilizar el cifrado y no se firma a través del argumento MachineKeyProtection proporcionado HMAC. Nota: Esta configuración podría permitir que un cliente malintencionado descifrar, falsificar o alterar los datos cifrados en caso contrario.
Para configurar esta opción, agregue la siguiente configuración en el archivo web.config de equipo o una aplicación:
<configuration>... <appSettings> ... <add key="aspnet:UseLegacyMachineKeyEncryption" value="false" /> </appSettings></configuration> 

Descripción de appSetting de aspnet:ScriptResourceAllowNonJsFiles

Esta configuración de la aplicación especifica si el controlador ScriptResource.axd en ASP.NET atenderá archivos no admiten JavaScript (con extensión .js). ScriptResource.axd es un controlador ASP.NET que devuelve los archivos de código fuente de JavaScript a los componentes de AJAX en una página Web de ASP.NET.
aspnet:ScriptResourceAllowNonJsFilesDescripción
False (valor predeterminado)Este valor configura ASP.NET para servir sólo archivos estáticos que tienen la extensión .js (JavaScript) mediante el controlador ScriptResource.axd.
TrueEsta opción configura ASP.NET para servir cualquier archivo estático que la aplicación ASP.NET tiene acceso mediante el controlador ScriptResource.axd. Nota: Esta configuración permite que cualquier archivo dentro de la aplicación ASP.NET se sirven mediante el controlador. Si los archivos de este tipo contiene datos confidenciales, a continuación, esta configuración puede potencialmente para perder información confidencial a un cliente.
Para configurar esta opción, agregue la siguiente configuración en el archivo web.config de equipo o una aplicación:
<configuration>... <appSettings> ... <add key="aspnet:ScriptResourceAllowNonJsFiles" value="false" /> </appSettings></configuration> 

Referencias


Para obtener más información acerca de la sección MachineKey, visite el siguiente sitio Web de Microsoft:Para obtener más información acerca de la clase System.Web.Security.MachineKey , visite el siguiente sitio Web de Microsoft:Para obtener más información acerca de cómo utilizar la configuración de la aplicación (appSettings), haga clic en los números de artículo siguientes para verlos en Microsoft Knowledge Base:
815786 cómo almacenar y recuperar información personalizada de un archivo de configuración de aplicación utilizando Visual C# 313405 cómo almacenar y recuperar información personalizada desde un archivo de configuración de aplicación mediante Visual Basic .NET o Visual Basic 2005
Para obtener más información acerca de configuración de ASP.Net, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
307626 INFO: información general de configuración de ASP.NET