結論

安裝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 轉換會允許文件傳送者建構運算成本高的文件。此行為可能會造成阻斷服務的情況。

需要更多協助?

擴展您的技能
探索訓練
優先取得新功能
加入 Microsoft 測試人員

這項資訊有幫助嗎?

您對語言品質的滿意度如何?
以下何者是您會在意的事項?

感謝您的意見反應!

×