Applies To.NET Framework 4.6.1 .NET Framework 4.6.2 .NET Framework 3.5.1

結論

安裝3141780 安全性更新 (於 Microsoft 資訊安全公告 MS16-035 中所述) 後,.NET 應用程式可能在其處理包含 SignedXml 的檔案時遇到例外狀況錯誤或意外錯誤。

其他相關資訊

重要這個章節、方法或工作包含修改登錄的步驟。然而,如果您不當地修改登錄,可能會發生嚴重的問題。因此,請務必謹慎地依照這些步驟執行。為加強保護,修改登錄之前,請務必將其備份。那麼您便可以在發生問題時還原登錄。如需有關如何備份和還原登錄的詳細資訊,請按一下下面的文章編號,檢視「Microsoft 知識庫」中的文章:

322756如何在 Windows 中備份及還原登錄

案例 1

案例 1 徵狀

受管理的應用程式傳回包含以下簽章的錯誤例外狀況:

System.Security.Cryptography.CryptographicException:Unable to resolve Uri [FileOrUrl].

範例System.Security.Cryptography.CryptographicException:Unable to resolve Uri testfile.xml.

案例 1 解決方法

客戶可以將下列登錄機碼套用至他們的系統:登錄項目 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\Security@SignedXmlAllowDetachedSignature=1

可供下載的 .Reg 檔案

若要解決此問題,請按一下適用的連結,然後在下載的檔案上按兩下以變更登錄。SignedXml-ExternalReferences.reg (32 位元系統上的 32 位元處理序和 64 位元系統上的 64 位元處理序)SignedXml-ExternalReferences.Wow6432.reg (64 位元系統上的 32 位元處理序)注意事項

  • 此登錄項目應是 DWORD 項目。

  • 此登錄項目會還原先前的行為,此行為即是開啟或下載在經驗證以計算其摘要之文件外部的資源。

警告 啟用此登錄機碼可能會允許阻斷服務、分散式反映阻斷服務、資訊洩漏、簽章略過及遠端執行程式碼等資訊安全漏洞。

案例 2

案例 2 徵狀

已預期成功時發生簽章驗證失敗。

案例 2 解決方法

如果內容包含下列簽章區塊,請考慮套用提供的登錄機碼:簽章區塊範例<Document>

<Signature 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" />

<Reference 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>登錄項目 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\Security\SafeTransformMethods@XmlDsigXPathTransform=http://www.w3.org/TR/1999/REC-xpath-19991116

可供下載的 .Reg 檔案

若要解決此問題,請按一下適用的連結,然後在下載的檔案上按兩下以變更登錄。XmlDSigXPathTransform.reg (32 位元系統上的 32 位元處理序和 64 位元系統上的 64 位元處理序)XmlDSigXPathTransform.Wow6432.reg (64 位元系統上的 32 位元處理序)如果簽章區塊包含下列文字,請考慮套用提供的登錄項目:簽章區塊範例<Document>

<Signature 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" />

<Reference 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>登錄項目 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\Security\SafeTransformMethods@XmlDsigXsltTransform=http://www.w3.org/TR/1999/REC-xslt-19991116

可供下載的 .Reg 檔案

若要解決此問題,請按一下適用的連結,然後在下載的檔案上按兩下以變更登錄。XmlDSigXsltTransform.reg (32 位元系統上的 32 位元處理序和 64 位元系統上的 64 位元處理序)XmlDSigXsltTransform.Wow6432.reg (64 位元系統上的 32 位元處理序)注意 依預設,僅啟用由 .NET Framework 提供且不接受已簽署文件輸入的 XML 簽章轉換。若要啟用接受輸入的轉換或自訂轉換,必須將該轉換的登錄 URI 指定為包含於此登錄機碼中的 REG_SZ 輸入值資料。值的名稱並不會加以處理,並且可以是電腦系統管理員選擇的任何名稱。警告 XPath 和 XSLT 轉換會允許文件傳送者建構運算成本高的文件。此行為可能會造成阻斷服務的情況。

Need more help?

Want more options?

探索訂閱權益、瀏覽訓練課程、瞭解如何保護您的裝置等等。