สรุป
ปรับปรุงการรักษาความปลอดภัยที่อธิบายไว้ในกระดานข่าวการรักษาความปลอดภัย Microsoft MS10 070 ทำการเปลี่ยนแปลงกลไกการเข้ารหัสเริ่มต้นใน ASP.NET จะทำการตรวจสอบ (เซ็นชื่อ) นอกเหนือจากการเข้ารหัสลับ บทความนี้อธิบายถึงตัวเลือกการตั้งค่าคอนฟิกเพื่อเปลี่ยนกลับไปเป็นลักษณะการทำงานแบบดั้งเดิมสำหรับการเข้ารหัสลับใน ASP.NET.For ข้อมูลเพิ่มเติมเกี่ยวกับการปรับปรุงการรักษาความปลอดภัยนี้ แวะไปที่เว็บไซต์ต่อไปนี้:
http://www.microsoft.com/technet/security/bulletin/ms10-070.mspx
ข้อมูลเพิ่มเติม
ASP.NET อนุญาตให้ผู้ใช้สามารถเลือกที่จะเข้ารหัสลับ หรือการตรวจสอบข้อมูลโดยใช้การตั้งค่าคอนฟิกในส่วนของ MachineKey การปรับปรุงความปลอดภัยที่อยู่ภายในความปลอดภัยอัพเด MS10 070 การเปลี่ยนแปลงลักษณะการทำงานเริ่มต้นของการเข้ารหัสลับใน ASP.NET เพื่อทำการตรวจสอบที่นอกเหนือจากการเข้ารหัสลับแม้ว่าจะมีการร้องขอการเข้ารหัสลับเฉพาะ หลังจากที่คุณติดตั้งการปรับปรุงการรักษาความปลอดภัยที่อธิบายไว้ในบูเลทีนรักษาความปลอดภัย MS10 070 การดำเนินการต่อไปนี้จะดำเนินการเมื่อมีตั้งค่าการเข้ารหัสลับสำหรับ ASP.NET:
-
ในระหว่างการเข้ารหัสข้อมูล ลายเซ็น HMAC จะถูกสร้างขึ้นสำหรับข้อมูลเข้ารหัสลับ และจะถูกผนวกเข้าไป
-
ในระหว่างการถอดรหัสลับข้อมูล HMAC ลายเซ็นผ่านการตรวจสอบก่อนที่จะถอดรหัสข้อมูล
คีย์ต่อไปนี้ใน ASP.NET แอพลิเคชัน (appSettings) การตั้งค่าที่ควบคุมลักษณะการทำงานนอกรับรองการเข้ารหัสลับ
คีย์ |
ชนิด |
ค่าเริ่มต้น |
รุ่น on.NET ได้รับการสนับสนุน |
---|---|---|---|
aspnet:UseLegacyEncryption |
บูลีน |
เท็จ |
Microsoft .NET Framework 2.0 Service Pack 1Microsoft .NET Framework 2.0 Service Pack 2Microsoft .NET Framework 3.5Microsoft .NET Framework 3.5 Service Pack 1Microsoft .NET Framework 4.0 |
aspnet:UseLegacyMachineKeyEncryption |
บูลีน |
เท็จ |
Microsoft .NET Framework 4.0 |
aspnet:ScriptResourceAllowNonJsFiles |
บูลีน |
เท็จ |
Microsoft .NET Framework 3.5 Service Pack 1Microsoft .NET Framework 4.0 |
คำอธิบายของการ appSetting aspnet:UseLegacyEncryption
การตั้งค่าแอพลิเคชันนี้ระบุว่า การเข้ารหัสลับจะนอกจากนี้ทำการตรวจสอบ ด้วยคีย์การ HMAC แม้ว่าจะไม่มีการกำหนดค่าส่วนตรวจสอบในส่วนของ machineKey ของการตั้งค่าคอนฟิก ASP.NET สำหรับการตรวจสอบลายเซ็นของ HMAC
aspnet:UseLegacyEncryption |
คำอธิบาย |
---|---|
เท็จ (ค่าเริ่มต้น) |
การตั้งค่านี้กำหนดค่า ASP.NET เพื่อทำการตรวจสอบลายเซ็นของ HMAC นอกจากนี้เมื่อมีการกำหนดค่า ASP.NET จะใช้การเข้ารหัสลับ ซึ่งจะเกิดขึ้นแม้ว่าจะไม่มีการกำหนดค่าการตรวจสอบใน machineKey เพื่อลงชื่อเข้าใช้ โดยใช้คีย์การ HMAC |
เป็นจริง |
การตั้งค่านี้กำหนดค่า ASP.NET ไม่ให้ทำการตรวจสอบลายเซ็นของ HMAC เมื่อมีการกำหนดค่าการใช้การเข้ารหัสลับและไม่ HMAC เซ็นผ่านการตรวจสอบใน machineKey หมายเหตุ การตั้งค่านี้อาจทำให้ไคลเอนต์ที่เป็นอันตรายเพื่อถอดรหัสลับ ปลอม หรือเข้ามายุ่งกับข้อมูลที่เข้ารหัสลับหรือไม่เช่นนั้น |
เมื่อต้องการตั้งค่าคอนฟิกการตั้งค่านี้ เพิ่มการตั้งค่าคอนฟิกต่อไปนี้ในแฟ้ม web.config ของคอมพิวเตอร์หรือโปรแกรมประยุกต์:
<configuration>... <appSettings> ... <add key="aspnet:UseLegacyEncryption" value="false" /> </appSettings></configuration>
คำอธิบายของ aspnet:UseLegacyMachineKeyEncryption appSetting
การตั้งค่าแอพลิเคชันนี้ระบุว่า การเข้ารหัสลับโดยใช้คลาสSystem.Web.Security.MachineKeyจะนอกจากนี้ทำการตรวจสอบ ด้วยคีย์การ HMAC แม้ว่าอาร์กิวเมนต์MachineKeyProtectionให้มาไม่ได้ระบุที่ สามารถตรวจสอบ
aspnet:UseLegacyMachineKeyEncryption |
คำอธิบาย |
---|---|
เท็จ (ค่าเริ่มต้น) |
การตั้งค่านี้กำหนดค่า ASP.NET เพื่อทำการตรวจสอบลายเซ็นของ HMAC โดยใช้คลาสMachineKeyนอกจากนี้เมื่อมีการกำหนดค่า ASP.NET จะใช้การเข้ารหัสลับ ซึ่งจะเกิดขึ้นแม้ว่าอาร์กิวเมนต์MachineKeyProtectionให้มาไม่ได้ระบุว่า มีตรวจสอบ |
เป็นจริง |
การตั้งค่านี้กำหนดค่า ASP.NET ไม่ให้ทำการตรวจสอบลายเซ็นของ HMAC โดยใช้คลาสMachineKeyเมื่อมีการกำหนดค่าการใช้การเข้ารหัสลับและไม่ HMAC ที่เซ็นชื่อผ่านอาร์กิวเมนต์MachineKeyProtectionให้มา หมายเหตุ การตั้งค่านี้อาจทำให้ไคลเอนต์ที่เป็นอันตรายเพื่อถอดรหัสลับ ปลอม หรือเข้ามายุ่งกับข้อมูลที่เข้ารหัสลับหรือไม่เช่นนั้น |
เมื่อต้องการตั้งค่าคอนฟิกการตั้งค่านี้ เพิ่มการตั้งค่าคอนฟิกต่อไปนี้ในแฟ้ม web.config ของคอมพิวเตอร์หรือโปรแกรมประยุกต์:
<configuration>... <appSettings> ... <add key="aspnet:UseLegacyMachineKeyEncryption" value="false" /> </appSettings></configuration>
คำอธิบายของ aspnet:ScriptResourceAllowNonJsFiles appSetting
การตั้งค่าแอพลิเคชันนี้ระบุว่า ตัวจัดการ ScriptResource.axd ใน ASP.NET จะใช้ JavaScript ที่ไม่ใช่แฟ้ม (นามสกุล.js) ScriptResource.axd เป็นตัวจัดการ ASP.NET ที่คืนค่าแฟ้มต้นฉบับของ JavaScript กับส่วนประกอบ AJAX ในเว็บเพจที่มี ASP.NET
aspnet:ScriptResourceAllowNonJsFiles |
คำอธิบาย |
---|---|
เท็จ (ค่าเริ่มต้น) |
การตั้งค่านี้กำหนดค่า ASP.NET เพื่อให้บริการแฟ้มแบบคงที่มีนามสกุล.js (JavaScript) ผ่านตัวจัดการ ScriptResource.axd เท่านั้น |
เป็นจริง |
การตั้งค่านี้กำหนดค่า ASP.NET เพื่อให้บริการแฟ้มแบบคงใด ๆ ที่แอพลิเคชัน ASP.NET ได้เข้าถึงผ่านตัวจัดการ ScriptResource.axd หมายเหตุ การตั้งค่านี้อนุญาตให้แฟ้มใด ๆ ภายในโปรแกรมประยุกต์ ASP.NET ของคุณสามารถส่งผ่านตัวจัดการ ถ้าแฟ้มดังกล่าวประกอบด้วยข้อมูลที่สำคัญ หรือเป็นความลับ แล้วการตั้งค่านี้สามารถอาจให้ข้อมูลที่สำคัญไปยังไคลเอ็นต์มีการรั่วไหล |
เมื่อต้องการตั้งค่าคอนฟิกการตั้งค่านี้ เพิ่มการตั้งค่าคอนฟิกต่อไปนี้ในแฟ้ม web.config ของคอมพิวเตอร์หรือโปรแกรมประยุกต์:
<configuration>... <appSettings> ... <add key="aspnet:ScriptResourceAllowNonJsFiles" value="false" /> </appSettings></configuration>
อ้างอิง
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับส่วน MachineKey แวะไปที่เว็บไซต์ของ Microsoft ต่อไปนี้:
http://msdn.microsoft.com/en-us/library/w8h3skw9.aspxสำหรับข้อมูลเพิ่มเติมเกี่ยวกับคลาสSystem.Web.Security.MachineKeyแวะไปที่เว็บไซต์ของ Microsoft ต่อไปนี้:
http://msdn.microsoft.com/en-us/library/system.web.security.machinekey.aspxสำหรับข้อมูลเพิ่มเติมเกี่ยวกับวิธีการใช้การตั้งค่าแอพลิเคชัน (appSettings), คลิกหมายเลขบทความต่อไปนี้เพื่อดูบทความในฐานความรู้ของ Microsoft:
815786วิธีการจัดเก็บ และดึงข้อมูลที่กำหนดเองจากแฟ้มการตั้งค่าคอนฟิกแอพลิเคชัน โดยใช้ Visual C# 313405วิธีการจัดเก็บ และดึงข้อมูลที่กำหนดเองจากแฟ้มการตั้งค่าคอนฟิกแอพลิเคชัน โดยใช้ Visual Basic .NET หรือ Visual Basic 2005สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการตั้งค่าคอนฟิก ASP.Net คลิกหมายเลขบทความต่อไปนี้เพื่อดูบทความในฐานความรู้ของ Microsoft:
307626ข้อมูล: ภาพรวมการตั้งค่าคอนฟิก ASP.NET