Når du har tatt i bruk sikkerhetsoppdateringen 3141780, oppstår .NET Framework programmer unntaksfeil eller uventede feil under behandling av filer som inneholder SignedXml

Gjelder for
.NET Framework 4.6.1 .NET Framework 4.6.2 .NET Framework 3.5.1

Sammendrag

Når du har installert en sikkerhetsoppdatering for 3141780 (beskrevet i Microsofts sikkerhetsbulletin MS16-035), kan .NET Framework programmer støte på unntaksfeil eller uventede feil når de behandler filer som inneholder SignedXml.

Mer informasjon

ViktigDette avsnittet, denne metoden eller denne oppgaven inneholder trinn som forteller deg hvordan du kan endre registret. Alvorlige problemer kan imidlertid oppstå hvis du endrer registeret på feil måte. Pass derfor på at du følger disse trinnene nøye. For ekstra beskyttelse sikkerhetskopierer du registeret før du endrer det. Du kan dermed gjenopprette registeret hvis det oppstår problemer. Hvis du vil ha mer informasjon om hvordan du sikkerhetskopierer og gjenoppretter registret, klikker du følgende artikkelnummer for å vise artikkelen i Microsoft Knowledge Base:

322756 Slik sikkerhetskopierer og gjenoppretter du registeret i Windows

Scenario 1:

Scenario 1-symptomer

Administrerte programmer returnerer et feilunntak med følgende signatur:

Obs!

System.Security.Cryptography.CryptographicException: Kan ikke løse uri [FileOrUrl].

                
Eksempel

System.Security.Cryptography.CryptographicException: Kan ikke løse URI-testfile.xml.

Løsning for scenario 1

Kunder kan bruke følgende registernøkkel på systemet:

Registeroppføring

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\Security@SignedXmlAllowDetachedSignature=1

. Reg-fil tilgjengelig for nedlasting

Du kan løse dette problemet ved å klikke den aktuelle koblingen, og deretter dobbeltklikke den nedlastede filen for å gjøre endringene i registret.

SignedXml-ExternalReferences.reg (32-biters prosess på 32-biters system og 64-biters prosess på 64-biters system)

SignedXml-ExternalReferences.Wow6432.reg (32-biters prosess på 64-biters system)

Notater

  • Denne registeroppføringen skal være en DWORD-oppføring.
  • Denne registeroppføringen gjenoppretter den tidligere virkemåten med å åpne eller laste ned en ressurs som er utenfor dokumentet som bekreftes for å beregne sammendraget.

Advarsel: Når du aktiverer denne registernøkkelen, kan det oppstå sikkerhetsproblemer, inkludert tjenestenekt, distribuert refleksjon, tjenestenekt, informasjonsavsløring, omgåelse av signatur og ekstern kjøring av kode.

Scenario 2:

Symptomer for scenario 2

Signaturbekreftelse mislykkes når vellykket var forventet.

Løsning for scenario 2

Hvis innholdet inneholder følgende signaturblokk, bør du vurdere å bruke den angitte registeroppføringen:

Eksempel på signaturblokk

<Dokument>

…

<Signatur xmlns="http://www.w3.org/2000/09/xmldsig#">

<SignedInfo>

<CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315" />

<SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1" />

<Referanse URI="...">

<Transformasjoner>

<Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116" /></Transforms><DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /><DigestValue>...</DigestValue/Reference<>/SignedInfo><SignatureValue>...<></SignatureValue></Signature> ...

</dokument>

Registeroppføring

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\Security\SafeTransformMethods@XmlDsigXPathTransform=http://www.w3.org/TR/1999/REC-xpath-19991116

. Reg-fil tilgjengelig for nedlasting

Du kan løse dette problemet ved å klikke den aktuelle koblingen, og deretter dobbeltklikke den nedlastede filen for å gjøre endringene i registret.

XmlDSigXPathTransform.reg (32-biters prosess på 32-biters system og 64-biters prosess på 64-biters system)

XmlDSigXPathTransform.Wow6432.reg (32-biters prosess på 64-biters system)

Hvis signaturblokken inneholder følgende tekst, kan du vurdere å bruke den angitte registeroppføringen:

Eksempel på signaturblokk

<Dokument>

…

<Signatur xmlns="http://www.w3.org/2000/09/xmldsig#">

<SignedInfo>

<CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315" />

<SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1" />

<Referanse URI="...">

<Transformasjoner>

<Transform Algorithm="http://www.w3.org/TR/1999/REC-xslt-19991116" /></Transforms><DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /><DigestValue>...</DigestValue></Reference></SignedInfo><SignatureValue>...</SignatureValue></Signature>...
</dokument>

Registeroppføring

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\Security\SafeTransformMethods@XmlDsigXsltTransform=http://www.w3.org/TR/1999/REC-xslt-19991116

. Reg-fil tilgjengelig for nedlasting

Du kan løse dette problemet ved å klikke den aktuelle koblingen, og deretter dobbeltklikke den nedlastede filen for å gjøre endringene i registret.

XmlDSigXsltTransform.reg (32-biters prosess på 32-biters system og 64-biters prosess på 64-biters system)

XmlDSigXsltTransform.Wow6432.reg (32-biters prosess på 64-biters system)

Obs! Som standard aktiveres bare de XML-signaturtransformeringene som leveres av .NET Framework og ikke godtar inndata fra det signerte dokumentet. Hvis du vil aktivere transformeringer som godtar inndata, eller egendefinerte transformeringer, må den registrerte URI-en for transformasjonen angis som dataene for en REG_SZ-type verdi i denne registernøkkelen. Navnet på verdien behandles ikke, og det kan være hva som helst som datamaskinadministratoren velger.

Advarsel! XPath- og XSLT-transformeringene gjør at dokumentavsenderen kan konstruere dokumenter som er beregningsmessig dyre. Dette kan føre til en tjenestenektesituasjon.