Streszczenie
Po zainstalowaniu aktualizacji zabezpieczeń 3141780 (opisany w biuletynie zabezpieczeń firmy Microsoft MS16-035), aplikacji.NET Framework mogą wystąpić błędy wyjątków lub nieoczekiwane błędy przy przetwarzane są pliki zawierające SignedXml.
Więcej informacji
Ważne Niniejsza sekcja, metoda lub zadanie zawiera informacje dotyczące modyfikowania rejestru. Jednak niepoprawne zmodyfikowanie rejestru może spowodować poważne problemy. W związku z tym upewnij się, że wykonujesz następujące kroki ostrożnie. Aby zapewnić sobie dodatkową ochronę, wykonaj kopię zapasową rejestru przed przystąpieniem do modyfikacji. Wtedy będziesz mógł przywrócić rejestr w przypadku wystąpienia problemu. Aby uzyskać więcej informacji na temat wykonywania kopii zapasowej i przywracania rejestru, kliknij następujący numer artykułu w celu wyświetlenia tego artykułu z bazy wiedzy Microsoft Knowledge Base:
322756 Jak wykonać kopię zapasową i przywrócić rejestr w systemie Windows
Scenariusz 1
Objawy scenariusz 1
Zarządzane aplikacje zwracają wyjątek błąd, który ma następujący podpis:
System.Security.Cryptography.CryptographicException: Nie można rozpoznać identyfikatora Uri [FileOrUrl].
Przykład
System.Security.Cryptography.CryptographicException: Nie można rozpoznać identyfikatora Uri testfile.xml.
Dla Scenariusza 1 należy:
Klienci mogą zastosować następujący klucz rejestru do ich systemu:
Wpis rejestru
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\Security@SignedXmlAllowDetachedSignature=1
. Plik reg jest dostępny do pobrania
Aby rozwiązać ten problem, kliknij odpowiednie łącze, a następnie kliknij dwukrotnie pobrany plik, aby wprowadzić zmiany w rejestrze.
SignedXml ExternalReferences.reg (proces 32-bitowych na 32-bitowym systemie) i proces 64-bitowych w 64-bitowym systemie
SignedXml ExternalReferences.Wow6432.reg (proces 32-bitowe w 64-bitowym systemie)
Uwagi
-
Ten wpis rejestru powinna być wpis DWORD.
-
Ten wpis rejestru przywraca poprzednie zachowanie otwarcia lub pobrania zasobu, który jest poza dokumentem sprawdzanym obliczyć jego skrót.
Ostrzeżenie: Włączenie tego klucza rejestru może pozwolić luk w zabezpieczeniach w tym "odmowa usługi", rozproszonych odbicia typu odmowa usługi, ujawnienie informacji, Pomiń podpisu i zdalne wykonanie kodu.
Scenariusz 2
Objawy Scenariusz 2
Weryfikacja podpisu nie powiedzie się, kiedy oczekiwano sukcesu.
Scenariusz 2 rozdzielczość
Jeśli zawartość zawiera następujący blok podpisu, należy rozważyć zastosowanie wpis rejestru pod warunkiem:
Przykład blok podpisu
<Document>
…
< podpisu xmlns = "http://www.w3.org/2000/09/xmldsig#" >
<SignedInfo>
< algorytm CanonicalizationMethod = "http://www.w3.org/TR/2001/REC-xml-c14n-20010315" / >
< algorytm SignatureMethod = "http://www.w3.org/2000/09/xmldsig#rsa-sha1" / >
< odwołać URI = "..." >
<Transforms>
< Przekształć algorytm = "http://www.w3.org/TR/1999/REC-xpath-19991116" / ></Transforms>< algorytm DigestMethod = "http://www.w3.org/2000/09/xmldsig#sha1" / ><DigestValue>…</DigestValue></Reference></SignedInfo><SignatureValue>…</SignatureValue></Signature>…
</Document>
Wpis rejestru
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\Security\SafeTransformMethods@XmlDsigXPathTransform=http://www.w3.org/TR/1999/REC-xpath-19991116
. Plik reg jest dostępny do pobrania
Aby rozwiązać ten problem, kliknij odpowiednie łącze, a następnie kliknij dwukrotnie pobrany plik, aby wprowadzić zmiany w rejestrze.
XmlDSigXPathTransform.reg (proces 32-bitowych na 32-bitowym systemie) i proces 64-bitowych w 64-bitowym systemie
XmlDSigXPathTransform.Wow6432.reg (proces 32-bitowe w 64-bitowym systemie)
Jeśli blok podpis zawiera następujący tekst, należy rozważyć zastosowanie wpis rejestru pod warunkiem:
Przykład blok podpisu
<Document>
…
< podpisu xmlns = "http://www.w3.org/2000/09/xmldsig#" >
<SignedInfo>
< algorytm CanonicalizationMethod = "http://www.w3.org/TR/2001/REC-xml-c14n-20010315" / >
< algorytm SignatureMethod = "http://www.w3.org/2000/09/xmldsig#rsa-sha1" / >
< odwołać URI = "..." >
<Transforms>
< Przekształć algorytm = "http://www.w3.org/TR/1999/REC-xslt-19991116" / ></Transforms>< algorytm DigestMethod = "http://www.w3.org/2000/09/xmldsig#sha1" / ><DigestValue>…</DigestValue></Reference></SignedInfo><SignatureValue>…</SignatureValue></Signature>…
</Document>
Wpis rejestru
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\Security\SafeTransformMethods@XmlDsigXsltTransform=http://www.w3.org/TR/1999/REC-xslt-19991116
. Plik reg jest dostępny do pobrania
Aby rozwiązać ten problem, kliknij odpowiednie łącze, a następnie kliknij dwukrotnie pobrany plik, aby wprowadzić zmiany w rejestrze.
XmlDSigXsltTransform.reg (proces 32-bitowych na 32-bitowym systemie) i proces 64-bitowych w 64-bitowym systemie
XmlDSigXsltTransform.Wow6432.reg (proces 32-bitowe w 64-bitowym systemie)
Uwaga: Domyślnie włączone są tylko te podpisu przekształcenia XML, które są dostarczane przez.NET Framework i nie akceptuje danych wejściowych z podpisanego dokumentu. Aby włączyć akceptuje dane wejściowe transformacji lub przekształceń niestandardowych, zarejestrowany identyfikator URI dla tej transformacji musi być określona jako danych REG_SZ wpisane wartości w tym kluczu rejestru. Nazwa wartości nie jest przetwarzany, a może być dowolny wybiera administrator komputera.
Ostrzeżenie Transformacje XPath i XSLT Zezwól nadawcy dokumentu do konstruowania dokumenty, które są kosztowne. Może to spowodować sytuację "odmowa usługi".