สรุป
หลังจากที่คุณติดตั้งใด ๆ ของโปรแกรมปรับปรุงความปลอดภัย3141780 (อธิบายไว้ในบูเลทีนรักษาความปลอดภัยของ Microsoft MS16 035), โปรแกรมประยุกต์.NET Framework อาจพบข้อผิดพลาดข้อยกเว้นหรือความล้มเหลวที่ไม่คาดคิดเมื่อพวกเขากำลังประมวลผลแฟ้มที่ประกอบด้วย SignedXml
ข้อมูลเพิ่มเติม
สิ่งสำคัญ ส่วน วิธีการ หรืองานนี้ประกอบด้วยขั้นตอนที่บอกให้คุณทราบวิธีการปรับเปลี่ยนรีจิสทรี อย่างไรก็ตาม ปัญหาร้ายแรงอาจเกิดขึ้นหากคุณปรับเปลี่ยนรีจิสทรีอย่างไม่ถูกต้อง ดังนั้นจึงให้ตรวจสอบจนแน่ใจว่าคุณทำตามขั้นตอนเหล่านี้อย่างระมัดระวัง สำหรับการปกป้องเพิ่มเติม ให้สำรองรีจิสทรีก่อนที่คุณทำการปรับเปลี่ยน จากนั้นคุณจะสามารถคืนค่ารีจิสทรีได้หากเกิดปัญหาขึ้น สำหรับข้อมูลเพิ่มเติมเกี่ยวกับวิธีการสำรองข้อมูลและคืนค่ารีจิสทรี ให้คลิกหมายเลขบทความต่อไปนี้เพื่อดูบทความในฐานความรู้ของ Microsoft:
322756 วิธีการสำรองข้อมูลและคืนค่ารีจิสทรีใน Windows
สถานการณ์สมมติที่ 1
สถานการณ์สมมติ 1 อาการ
จัดการการส่งคืนแอพลิเคชันมีข้อยกเว้นข้อผิดพลาดที่มีลายเซ็นต่อไปนี้:
System.Security.Cryptography.CryptographicException: ไม่สามารถแก้ไข Uri [FileOrUrl]
ตัวอย่าง
System.Security.Cryptography.CryptographicException: ไม่สามารถแก้ไข 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 (กระบวนการ 32 บิตระบบ 64 บิต)
หมายเหตุ
-
รายการรีจิสทรีนี้ควรจะเป็นรายการ DWORD
-
รายการรีจิสทรีนี้คืนค่าลักษณะการทำงานก่อนหน้าของเปิด หรือดาวน์โหลดทรัพยากรที่อยู่ภายในเอกสารที่กำลังถูกตรวจสอบเมื่อต้องการแยกย่อยของคำนวณ
คำเตือน เปิดใช้งานคีย์รีจิสทรีนี้อาจทำให้มีช่องโหว่การรักษาความปลอดภัยรวมถึงปฏิเสธการใช้บริการ กระจายสะท้อนโจมตีของการบริการ เปิด เผยข้อมูล ลายเซ็นข้าม และการ เรียกใช้รหัสระยะไกล
สถานการณ์สมมติ 2
สถานการณ์สมมติ 2 อาการ
ตรวจสอบลายเซ็นล้มเหลวเมื่อคาดว่าสำเร็จ
แก้ปัญหาในสถานการณ์สมมติ 2
ถ้าเนื้อหาประกอบด้วยบล็อคลายเซ็นต่อไปนี้ พิจารณาใช้รายการรีจิสทรีที่ระบุ:
ตัวอย่างของบล็อกลายเซ็น
<Document>
…
< xmlns เซ็น = "http://www.w3.org/2000/09/xmldsig#" >
<SignedInfo>
< อัลกอริทึม CanonicalizationMethod = "http://www.w3.org/TR/2001/REC-xml-c14n-20010315" / >
< อัลกอริทึม SignatureMethod = "http://www.w3.org/2000/09/xmldsig#rsa-sha1" / >
< อ้างอิง URI "..." = >
<Transforms>
< อัลกอริทึมแปลง = "http://www.w3.org/TR/1999/REC-xpath-19991116" / ></Transforms>< อัลกอริทึม DigestMethod = "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 (กระบวนการ 32 บิตระบบ 64 บิต)
ถ้าบล็อกของลายเซ็นประกอบด้วยข้อความต่อไปนี้ พิจารณาใช้รายการรีจิสทรีที่ระบุ:
ตัวอย่างของบล็อกลายเซ็น
<Document>
…
< xmlns เซ็น = "http://www.w3.org/2000/09/xmldsig#" >
<SignedInfo>
< อัลกอริทึม CanonicalizationMethod = "http://www.w3.org/TR/2001/REC-xml-c14n-20010315" / >
< อัลกอริทึม SignatureMethod = "http://www.w3.org/2000/09/xmldsig#rsa-sha1" / >
< อ้างอิง URI "..." = >
<Transforms>
< อัลกอริทึมแปลง = "http://www.w3.org/TR/1999/REC-xslt-19991116" / ></Transforms>< อัลกอริทึม DigestMethod = "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 (กระบวนการ 32 บิตระบบ 64 บิต)
หมายเหตุ โดยค่าเริ่มต้น เฉพาะเหล่านั้นลายเซ็นแปลง XML ที่ได้รับจาก.NET Framework และไม่ยอมรับอินพุตจากเอกสารมีลายเซ็น ถูกเปิดใช้งาน URI ลงทะเบียนสำหรับการแปลงที่ต้องระบุข้อมูลของค่าที่พิมพ์ REG_SZ ภายในรีจิสทรีคีย์นี้เมื่อต้องการเปิดใช้งานการยอมรับการป้อนข้อมูลการแปลงหรือการแปลงแบบกำหนดเอง ชื่อของค่าไม่ได้ประมวลผล และอาจเป็นสิ่งที่เลือกที่ผู้ดูแลระบบคอมพิวเตอร์
คำเตือน การแปลง XSLT และการ XPath อนุญาตให้ส่งเอกสารเพื่อสร้างเอกสารที่มีราคาแพงที่สุด computationally ซึ่งอาจก่อให้เกิดสถานการณ์ที่ปฏิเสธการใช้บริการ