Rezumat
După ce instalați orice actualizări de securitate 3141780 (descrise în buletinul de securitate Microsoft MS16-035), .NET Framework aplicațiile pot întâmpina erori de excepție sau neașteptate, atunci când acestea sunt procesate fișierele care conțin SignedXml.
Mai multe informații
Important Această secţiune, metodă sau activitate conţine paşi care vă spun cum să modificaţi registry-ul. Țineți cont că pot apărea probleme grave dacă modificaţi incorect registry-ul. Prin urmare, asiguraţi-vă că urmaţi aceşti paşi cu atenţie. Pentru protecţie suplimentară, faceți backup pentru registry înainte de a-l modifica. Apoi, puteți restabili registry-ul dacă apare o problemă. Pentru mai multe informaţii despre cyum se face backup şi cum se restabilește registry-ul, faceţi clic pe următorul număr de articol pentru a vedea articolul în baza de cunoştinţe Microsoft:
322756 Cum să faceți copie de rezervă şi restabilirea registrului în Windows
Scenariul 1
Scenariul 1 simptome
Return aplicații o eroare de excepție, care are următoarea semnătură de gestionat:
System.Security.Cryptography.CryptographicException: Imposibilitatea de a rezolva Uri [FileOrUrl].
Exemplu
System.Security.Cryptography.CryptographicException: Imposibilitatea de a rezolva Uri testfile.xml.
Rezolvare pentru scenariul 1
Clienții pot aplica următoarea cheie de registry pentru sistemul lor:
Intrarea de registry
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\Security@SignedXmlAllowDetachedSignature=1
. Reg dosar disponibile pentru descărcare
Pentru a rezolva această problemă, faceți clic pe linkul corespunzător, și apoi faceți dublu clic pe fișierul descărcat pentru a face modificările din registry.
SignedXml ExternalReferences.reg (32-bit proces pe 32 de biți) și procesul de 64-bit 64-bit sistem
SignedXml ExternalReferences.Wow6432.reg (32-bit proces pe 64 de biți)
Note
-
Această intrare de registry ar trebui să fie o intrare DWORD.
-
Această intrare de registry restabilește comportamentul anterior deschiderea sau descărcarea o resursă care este extern în document sunt verificate pentru a calcula sale digest.
Avertisment Activarea această cheie de registry poate permite vulnerabilități de securitate, inclusiv Denial of Service, distribuit reflectare Denial of Service, dezvăluirea informațiilor, semnătura Bypass și executarea de cod la distanță.
Scenariul 2
Scenariul 2 simptome
Verificarea semnăturii nu reușește când succesul era de așteptat.
Rezolvare pentru scenariul 2
În cazul în care conținutul conține următorul bloc de semnături, luați în considerare aplicarea intrarea de registry furnizată:
Exemplu de bloc de semnătură
<Document>
…
< semnătură 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" / >
< referinţă URI = "..." >
<Transforms>
< 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>…
</Document>
Intrarea de registry
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\Security\SafeTransformMethods@XmlDsigXPathTransform=http://www.w3.org/TR/1999/REC-xpath-19991116
. Reg dosar disponibile pentru descărcare
Pentru a rezolva această problemă, faceți clic pe linkul corespunzător, și apoi faceți dublu clic pe fișierul descărcat pentru a face modificările din registry.
XmlDSigXPathTransform.reg (32-bit proces pe 32 de biți) și procesul de 64-bit 64-bit sistem
XmlDSigXPathTransform.Wow6432.reg (32-bit proces pe 64 de biți)
Dacă semnătura bloc conține următorul text, luați în considerare aplicarea intrarea de registry furnizată:
Exemplu de bloc de semnătură
<Document>
…
< semnătură 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" / >
< referinţă URI = "..." >
<Transforms>
< 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>…
</Document>
Intrarea de registry
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\Security\SafeTransformMethods@XmlDsigXsltTransform=http://www.w3.org/TR/1999/REC-xslt-19991116
. Reg dosar disponibile pentru descărcare
Pentru a rezolva această problemă, faceți clic pe linkul corespunzător, și apoi faceți dublu clic pe fișierul descărcat pentru a face modificările din registry.
XmlDSigXsltTransform.reg (32-bit proces pe 32 de biți) și procesul de 64-bit 64-bit sistem
XmlDSigXsltTransform.Wow6432.reg (32-bit proces pe 64 de biți)
Notă În mod implicit, numai acele XML semnătură transformă care sunt furnizate de .NET Framework și nu acceptați intrare din document semnat sunt activate. Pentru a activa transformări intrare acceptarea sau transformări particularizate, URI înregistrat pentru acea transformare trebuie specificate ca datele valorii REG_SZ tastat în această cheie de registry. Numele de valoarea nu este procesată și poate fi orice alege administratorul computerului.
Avertisment Transformări XPath și XSLT permite expeditorului document pentru a construi documente care sunt distantă scumpe. Aceasta poate provoca o situație Denial of Service.