Puede recibir un mensaje de error cuando tiene acceso a páginas Web de ASP.NET con ViewState habilitada después de actualizar desde ASP.NET 1.1 a ASP.NET 2.0

Importante: Este artículo contiene información acerca de cómo modificar el registro. Asegúrese de hacer copia de seguridad del registro antes de modificarlo. Asegúrese de que sabe cómo restaurarlo si ocurre algún problema. Para obtener más información acerca de cómo hacer copia de seguridad, restaurar y modificar el registro, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:

Síntomas

Después de actualizar a Microsoft ASP.NET 2.0 de Microsoft ASP.NET 1.1, algunas aplicaciones basadas en ASP.NET no funcionen correctamente. Además, cuando se tiene acceso a páginas Web de ASP.NET con ViewState habilitada, puede recibir el siguiente mensaje de error:
[InvalidOperationException: esta implementación no forma parte de los algoritmos criptográficos validados por Windows Platform FIPS.]

System.Security.Cryptography.RijndaelManaged.. ctor() + 200 System.Web.Configuration.MachineKeySection.ConfigureEncryptionObject() +2088

System.Web.Configuration.MachineKeySection.EnsureConfig() +904

System.Web.Configuration.MachineKeySection.GetEncodedData (Byte [] buf, modificador de Byte [], Int32 iniciar, Int32 & longitud) + 88

System.Web.UI.ObjectStateFormatter.Serialize(Object stateGraph) +1320

System.Web.UI.Util.SerializeWithAssert (IStateFormatter formatter, stateGraph del objeto) +248
System.Web.UI.HiddenFieldPageStatePersister.Save() + 280

System.Web.UI.Page.SaveAllState() +6488

System.Web.UI.Page.ProcessRequestMain (Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +17240

--------------------------------------------------------------------------------

Información de versión: Microsoft.NET Framework versión: 2.0.50606.0; ASP.NET versión: 2.0.50606.0

Causa

Este problema se produce cuando se cumplen las condiciones siguientes:
  • La
    Subclave del registro HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\fipsalgorithmpolicyestá establecido en 1.
  • ASP.NET 2.0 utiliza la implementación de la clase RijndaelManaged del algoritmo AES cuando procesa los datos de estado de vista. La implementación de ReindaelManaged no ha sido certificada por el National Institute of Standards and Technology (NIST) como conformes con la Federal Information Processing Standard (FIPS). Por lo tanto, el algoritmo AES no forma parte de los algoritmos criptográficos validados por Windows Platform FIPS.

Solución alternativa

Importante: Estos pasos pueden aumentar su riesgo de seguridad. Estos pasos también pueden hacer que el equipo o la red sean más vulnerables a los ataques de usuarios malintencionados o de software malintencionado, como virus. Recomendamos el proceso que se describe en este artículo para permitir que los programas funcionen como están diseñados o para implementar determinadas funciones del programa. Antes de realizarlos, recomendamos que evalúe los riesgos asociados con la implementación de este proceso en su entorno particular. Si decide implementar este proceso, tome las medidas adicionales oportunas para ayudar a proteger el sistema. Se recomienda que utilice este proceso sólo si realmente lo necesita este proceso.

Para evitar este problema, cambie la configuración en el archivo Web.config de la aplicación. Especificar que utilizan el algoritmo Triple Data Encryption Standard (3DES) para procesar los datos de estado de vista ASP.NET. Para ello, siga estos pasos:
  1. En un editor de texto como el Bloc de notas, abra el archivo Web.config de la aplicación.
  2. En el archivo Web.config, busque la sección < system.web > .
  3. Agregue la siguiente sección < machineKey > a en la sección < system.web > :
    <machineKey validationKey="AutoGenerate,IsolateApps" decryptionKey="AutoGenerate,IsolateApps" validation="3DES" decryption="3DES"/>
  4. Guarde el archivo Web.config.
  5. Reinicie el servicio de Microsoft Internet Information Services (IIS). Para ello, ejecute el comando siguiente en un símbolo del sistema:
    iisreset
Importante: En teoría, el algoritmo 3DES es menos seguro que el algoritmo AES (Rijndael). Se recomienda que utilice el algoritmo AES, siempre que sea posible para ayudar a proteger el sistema.

Más información

Pasos para reproducir el problema

Advertencia: pueden producirse problemas graves si modifica incorrectamente el registro mediante el Editor del registro o mediante cualquier otro método. Estos problemas pueden requerir que reinstale el sistema operativo. Microsoft no puede garantizar que estos problemas puedan resolverse. Modifique el registro bajo su propio riesgo.

Antes de que puede reproducir este problema, debe configurar la subclave del registro HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\fipsalgorithmpolicyen 1 para habilitar la directiva de algoritmos compatibles con FIPS.

Siga estos pasos y después salga del Editor del registro:
  1. Haga clic en Inicio, haga clic en Ejecutar, escriba regedit y, a continuación, haga clic en Aceptar.
  2. Busque y, a continuación, haga clic en la siguiente clave del registro:
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\fipsalgorithmpolicy
  3. En el menú Edición , haga clic en Modificar.
  4. Escriba 1y, a continuación, presione ENTRAR.
Nota: Debe reiniciar el equipo para que la nueva configuración surta efecto.

Para reproducir el problema, siga estos pasos:
  1. En Visual Studio 2005, haga clic en
    Nuevo sitio Web en el menú archivo , haga clic en el sitio Web de ASP.NET en
    Plantillas, tipo
    LetraDeUnidad: \ \KB911722ruta de acceso en el
    Ubicación de la caja y, a continuación, haga clic en Aceptar.
  2. En el Explorador de soluciones, haga clic en
    Default.aspxy, a continuación, haga clic en Abrir.
  3. Reemplace el código existente con el código siguiente.
    <%@ Page Language="C#" AutoEventWireup="true"  CodeFile="Default.aspx.cs" Inherits="_Default" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

    <html xmlns="http://www.w3.org/1999/xhtml" >
    <head>
    <title>Test Page for KB911722</title>
    </head>
    <body>
    <form id="Form1" runat="server" >
    <script language="C#" runat="server" >
    public void Page_Load()
    {
    Label1.Text = "EnableViewState attribute is set to " + Page.EnableViewState.ToString();
    }
    </script>

    <asp:Label id="Label1" runat="server" Text="text"></asp:Label>
    </form>
    </body>
    </html>
  4. En el menú Depurar , haga clic en Iniciar depuración.
Recibe el mensaje de error que se menciona en la sección "Síntomas".

Para obtener más información acerca de los efectos de habilitar la "criptografía de sistema: usar FIPS algoritmos compatibles con para cifrado, firma y operaciones hash" configuración de seguridad en Windows XP y en versiones posteriores de Windows XP, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:

811833 los efectos de habilitar la "criptografía de sistema: usar FIPS algoritmos compatibles con para cifrado, firma y operaciones hash" configuración de seguridad en Windows XP y versiones posteriores

Propiedades

Id. de artículo: 911722 - Última revisión: 17 ene. 2017 - Revisión: 1

Comentarios