Sumário
Depois de instalar qualquer das actualizações de segurança 3141780 (descritas no boletim de segurança MS16-035), aplicações do .NET Framework poderão encontrar erros de excepção ou falhas inesperadas quando estiver a processar ficheiros que contenham SignedXml.
Mais informações
Importante Esta secção, método ou tarefa contém passos que explicam como modificar o registo. No entanto, poderão ocorrer problemas graves se modificar o registo incorrectamente. Por conseguinte, certifique-se de que segue estes passos cuidadosamente. Para uma maior protecção, efectue o backup do Registro antes de o modificar. Em seguida, pode restaurar o registo se ocorrer um problema. Para mais informações sobre como efectuar cópias de segurança e restaurar o registo, clique no número de artigo seguinte para visualizar o artigo na Microsoft Knowledge Base:
322756 Como efectuar cópias de segurança e restaurar o registo no Windows
Cenário 1
Sintomas de cenário 1
Gerido uma excepção de erro que tem a seguinte assinatura de retorno de aplicações:
System.Security.Cryptography.CryptographicException: Não é possível resolver a Uri [FileOrUrl].
Exemplo
System.Security.Cryptography.CryptographicException: Não é possível resolver o Uri testfile.xml.
Resolução de cenário 1
Os clientes podem aplicar a seguinte chave de registo no seu sistema:
Entrada de registo
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\Security@SignedXmlAllowDetachedSignature=1
. REG ficheiro disponível para transferência
Para resolver este problema, clique na hiperligação adequada e, em seguida, faça duplo clique no ficheiro transferido para efectuar as alterações ao registo.
SignedXml-ExternalReferences.reg (processos de 32 bits no sistema de 32 bits) e 64 bits no sistema de 64 bits
SignedXml-ExternalReferences.Wow6432.reg (processo de 32 bits no sistema de 64 bits)
Notas
-
Esta entrada de registo deverá ser uma entrada DWORD.
-
Esta entrada de registo restaura o comportamento de abrir ou transferir um recurso que está fora do documento a ser verificado para calcular o seu Resumo anterior.
Aviso Activar esta chave de registo poderia permitir a vulnerabilidades de segurança, incluindo a negação de serviço, distribuídas reflexão Denial of Service, divulgação de informações, ignorar assinatura e execução remota de código.
Cenário 2
Sintomas de cenário 2
Verificação de assinatura falha quando era esperado com êxito.
Resolução de cenário 2
Se o conteúdo incluir o seguinte bloco de assinatura, considere a aplicação a entrada de registo fornecida:
Exemplo de bloco de assinatura
<Document>
…
< assinatura xmlns = "http://www.w3.org/2000/09/xmldsig#" >
<SignedInfo>
< algoritmo CanonicalizationMethod = "http://www.w3.org/TR/2001/REC-xml-c14n-20010315" / >
< algoritmo SignatureMethod = "http://www.w3.org/2000/09/xmldsig#rsa-sha1" / >
< URI de referência = "..." >
<Transforms>
< transformar algoritmo = "http://www.w3.org/TR/1999/REC-xpath-19991116" / ></Transforms>< algoritmo DigestMethod = "http://www.w3.org/2000/09/xmldsig#sha1" / ><DigestValue>…</DigestValue></Reference></SignedInfo><SignatureValue>…</SignatureValue></Signature>…
</Document>
Entrada de registo
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\Security\SafeTransformMethods@XmlDsigXPathTransform=http://www.w3.org/TR/1999/REC-xpath-19991116
. REG ficheiro disponível para transferência
Para resolver este problema, clique na hiperligação adequada e, em seguida, faça duplo clique no ficheiro transferido para efectuar as alterações ao registo.
XmlDSigXPathTransform.reg (processos de 32 bits no sistema de 32 bits) e 64 bits no sistema de 64 bits
XmlDSigXPathTransform.Wow6432.reg (processo de 32 bits no sistema de 64 bits)
Se o bloco de assinatura contém o seguinte texto, considere a aplicação a entrada de registo fornecida:
Exemplo de bloco de assinatura
<Document>
…
< assinatura xmlns = "http://www.w3.org/2000/09/xmldsig#" >
<SignedInfo>
< algoritmo CanonicalizationMethod = "http://www.w3.org/TR/2001/REC-xml-c14n-20010315" / >
< algoritmo SignatureMethod = "http://www.w3.org/2000/09/xmldsig#rsa-sha1" / >
< URI de referência = "..." >
<Transforms>
< transformar algoritmo = "http://www.w3.org/TR/1999/REC-xslt-19991116" / ></Transforms>< algoritmo DigestMethod = "http://www.w3.org/2000/09/xmldsig#sha1" / ><DigestValue>…</DigestValue></Reference></SignedInfo><SignatureValue>…</SignatureValue></Signature>…
</Document>
Entrada de registo
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\Security\SafeTransformMethods@XmlDsigXsltTransform=http://www.w3.org/TR/1999/REC-xslt-19991116
. REG ficheiro disponível para transferência
Para resolver este problema, clique na hiperligação adequada e, em seguida, faça duplo clique no ficheiro transferido para efectuar as alterações ao registo.
XmlDSigXsltTransform.reg (processos de 32 bits no sistema de 32 bits) e 64 bits no sistema de 64 bits
XmlDSigXsltTransform.Wow6432.reg (processo de 32 bits no sistema de 64 bits)
Nota Por predefinição, apenas esses assinatura transformações XML que são fornecidos pelo .NET Framework e não aceitar a entrada de documento assinado estão activadas. Para activar a aceitar entrada transformações ou transformações personalizadas, o URI registado para essa transformação tem de ser especificado como os dados de um valor REG_SZ-escreveu dentro desta chave de registo. O nome do valor não é processado e pode ser qualquer coisa que escolhe o administrador do computador.
Aviso As transformações XPath e XSLT permitir que o remetente do documento criar documentos que são inviabiliza dispendiosos. Isto poderia provocar uma situação de negação de serviço.