Resumen
Después de instalar cualquiera de las actualizaciones de seguridad de 3141780 (que se describe en el boletín de seguridad de Microsoft MS16-035), aplicaciones de.NET Framework pueden producir errores de excepción o errores inesperados al procesamiento de archivos que contienen SignedXml.
Más información
Importante: esta sección, el método o la tarea contiene pasos que indican cómo modificar el registro. Sin embargo, pueden producirse problemas graves si modifica incorrectamente el registro. Por lo tanto, asegúrese de que sigue estos pasos cuidadosamente. Para una mayor protección, haga una copia de seguridad del registro antes de modificarlo. Entonces, puede restaurar el registro si se produce un problema. Para obtener más información acerca de cómo hacer copia de seguridad y restaurar el registro, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
322756 Cómo realizar una copia de seguridad y restaurar el registro de Windows
Escenario 1
Síntomas de escenario 1
Administra aplicaciones de regreso un error de excepción que tiene la firma siguiente:
System.Security.Cryptography.CryptographicException: No se puede resolver el Uri [FileOrUrl].
Ejemplo
System.Security.Cryptography.CryptographicException: No se puede resolver el Uri testfile.xml.
Resolución de escenario 1
Los clientes pueden aplicar la siguiente clave del registro en su sistema:
Entrada del registro
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\Security@SignedXmlAllowDetachedSignature=1
. Reg archivo disponible para su descarga
Para resolver este problema, haga clic en el vínculo correspondiente y, a continuación, haga doble clic en el archivo descargado para hacer cambios en el registro.
SignedXml ExternalReferences.reg (proceso de 32 bits en sistema de 32 bits) y 64 bits en sistema de 64 bits
SignedXml ExternalReferences.Wow6432.reg (proceso de 32 bits en el sistema de 64 bits)
Notas:
-
Esta entrada del registro debe ser una entrada DWORD.
-
Esta entrada del registro restaura el comportamiento anterior de abrir o descargar un recurso externo al documento que se comprueba para calcular su resumen.
Advertencia: Si se habilita esta clave del registro podría permitir vulnerabilidades de seguridad, incluida la denegación de servicio, reflexión de denegación de servicio distribuida, revelación de información, omisión de firma y ejecución remota de código.
Escenario 2
Síntomas de escenario 2
Se produce un error en la comprobación de la firma cuando se esperaba el éxito.
Resolución de escenario 2
Si el contenido contiene el siguiente bloque de firma, considere la aplicación de la entrada de registro proporcionado:
Ejemplo de bloque de firma
<Document>
…
< firma xmlns = "http://www.w3.org/2000/09/xmldsig#" >
<SignedInfo>
< CanonicalizationMethod algoritmo = "http://www.w3.org/TR/2001/REC-xml-c14n-20010315" / >
< SignatureMethod algoritmo = "http://www.w3.org/2000/09/xmldsig#rsa-sha1" / >
< referencia URI = "..." >
<Transforms>
< transform algoritmo = "http://www.w3.org/TR/1999/REC-xpath-19991116" / ></Transforms>< DigestMethod algoritmo = "http://www.w3.org/2000/09/xmldsig#sha1" / ><DigestValue>…</DigestValue></Reference></SignedInfo><SignatureValue>…</SignatureValue></Signature>…
</Document>
Entrada del registro
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\Security\SafeTransformMethods@XmlDsigXPathTransform=http://www.w3.org/TR/1999/REC-xpath-19991116
. Reg archivo disponible para su descarga
Para resolver este problema, haga clic en el vínculo correspondiente y, a continuación, haga doble clic en el archivo descargado para hacer cambios en el registro.
XmlDSigXPathTransform.reg (proceso de 32 bits en sistema de 32 bits) y 64 bits en sistema de 64 bits
XmlDSigXPathTransform.Wow6432.reg (proceso de 32 bits en el sistema de 64 bits)
Si el bloque de firma contiene el siguiente texto, considere la aplicación de la entrada de registro proporcionado:
Ejemplo de bloque de firma
<Document>
…
< firma xmlns = "http://www.w3.org/2000/09/xmldsig#" >
<SignedInfo>
< CanonicalizationMethod algoritmo = "http://www.w3.org/TR/2001/REC-xml-c14n-20010315" / >
< SignatureMethod algoritmo = "http://www.w3.org/2000/09/xmldsig#rsa-sha1" / >
< referencia URI = "..." >
<Transforms>
< transform algoritmo = "http://www.w3.org/TR/1999/REC-xslt-19991116" / ></Transforms>< DigestMethod algoritmo = "http://www.w3.org/2000/09/xmldsig#sha1" / ><DigestValue>…</DigestValue></Reference></SignedInfo><SignatureValue>…</SignatureValue></Signature>…
</Document>
Entrada del registro
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\Security\SafeTransformMethods@XmlDsigXsltTransform=http://www.w3.org/TR/1999/REC-xslt-19991116
. Reg archivo disponible para su descarga
Para resolver este problema, haga clic en el vínculo correspondiente y, a continuación, haga doble clic en el archivo descargado para hacer cambios en el registro.
XmlDSigXsltTransform.reg (proceso de 32 bits en sistema de 32 bits) y 64 bits en sistema de 64 bits
XmlDSigXsltTransform.Wow6432.reg (proceso de 32 bits en el sistema de 64 bits)
Nota: De forma predeterminada, están habilitados sólo esos firma transformaciones XML que son proporcionados por el.NET Framework y no aceptan la entrada desde el documento firmado. Para habilitar la aceptación de entrada transformaciones o transformaciones personalizadas, debe especificarse el URI registrado para esa transformación como los datos de un valor de tipo REG_SZ dentro de esta clave del registro. El nombre del valor no se procesa, y puede ser cualquier cosa que elige el administrador del equipo.
Advertencia Las transformaciones de XPath y XSLT permiten al remitente del documento construir documentos de costosos. Esto podría provocar una situación de denegación de servicio.