นำไปใช้กับ
.NET Framework 4.6.2

อาการ

สมมติว่า คุณได้ปรับรุ่นเป็น Microsoft .NET Framework 4.6 บนคอมพิวเตอร์ของคุณ เมื่อคุณใช้โปรแกรมประยุกต์ที่ใช้ SSL 3.0 ร่วมกับServicePointManagerหรือSslStream Api ที่สามารถเชื่อมต่อไปยังเซิร์ฟเวอร์ การเชื่อมต่อล้มเหลว

สาเหตุ

ปัญหานี้เกิดขึ้นเนื่องจากมีการเปลี่ยนแปลงการตั้งค่าเริ่มต้นของโพรโทคอล SSL/TLS ที่ถูกใช้ โดยServicePointManagerและSslStream

ค่าเก่า: Ssl 3.0 | Tls 1.0 | Tls 1.1

ค่าใหม่: Tls 1.0 | Tls 1.1 | Tls 1.2

วิธีแก้ปัญหา

เมื่อต้องการหลีกเลี่ยงปัญหานี้ ปรับปรุงเซิร์ฟเวอร์ การ Tls 1.0, Tls 1.1, Tls 1.2 เนื่องจาก SSL 3.0 ได้ถูกแสดงเป็นความเสี่ยงต่อการโจมตีเช่นเปิดกรุกระโปรง และไม่ปลอดภัยหมายเหตุ  ถ้าคุณไม่สามารถปรับปรุงเซิร์ฟเวอร์ ใช้คลาสAppContextเพื่อเข้าร่วมออกจากคุณลักษณะนี้ เมื่อต้องการทำเช่นนี้ ใช้หนึ่งในวิธีต่อไปนี้:

  • โดยการเขียนโปรแกรม: ต้องเป็นสิ่งแรกที่แอพลิเคชันไม่ได้เนื่องจากServicePointManagerจะเตรียมใช้งานเพียงครั้งเดียว ใช้ตัวอย่างรหัสต่อไปนี้ในโปรแกรมประยุกต์ของคุณ:

    private const string DisableCachingName = @"TestSwitch.LocalAppContext.DisableCaching";        private const string DontEnableSchUseStrongCryptoName = @"Switch.System.Net.DontEnableSchUseStrongCrypto";        AppContext.SetSwitch(DisableCachingName, true);        AppContext.SetSwitch(DontEnableSchUseStrongCryptoName, true);
  • โดยใช้แฟ้ม AppConfig สำหรับโปรแกรมประยุกต์ของคุณ: ให้เพิ่มบรรทัดต่อไปนี้ไปยังแฟ้ม Appconfig:< AppContextSwitchOverrides value="Switch.System.Net.DontEnableSchUseStrongCrypto=true"/ >

สำหรับข้อมูลเพิ่มเติมเกี่ยวกับปัญหาที่ทราบใน 4.6 กรอบงาน.NET ดูการตัดสินค้าจากคลังสำหรับ 4.6 กรอบงาน.NET รู้จักกันในชื่อ

ข้อมูลเพิ่มเติม

สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการเปลี่ยนแปลงการกำหนดรุ่นผลิตภัณฑ์และผลกระทบใน 4.6 กรอบงาน.NET ดูความเข้ากันได้ของโปรแกรมประยุกต์ใน 4.6 กรอบงาน.NETหมายเหตุ

  • การตั้งค่าคอนฟิกใหม่จะใช้ได้เฉพาะเมื่อแอพลิเคชันจะกำหนดเป้าหมาย 4.6 กรอบงาน.NET .NET Framework 4.5.2 และรุ่นก่อนหน้านี้จะไม่มีผลแม้ว่าจะทำงานในสภาพแวดล้อมของ.NET Framework 4.6

  • รายการของ APIs ระดับสูงสุดที่ได้รับผลกระทบ:

    • HttpClient, HttpWebRequest

    • FtpClient

    • SmtpClient

    • SslStream

  • SCH_USE_STRONG_CRYPTO ค่าสถานะนี้จะถูกใช้โดยอัตโนมัติใน 4.6 กรอบงาน.NET และมีผลต่อลักษณะการทำงาน โดยการเอาออกไม่ปลอดภัยเข้ารหัสลับ และการแปลงแป้นพิมพ์อัลกอริทึม สำหรับแพลตฟอร์มระบบปฏิบัติการทั้งหมด เร็วกว่า Windows 10 อัลกอริทึมแบบ RC4จะถูกเอาออกจากการใช้งาน จาก Windows 10 อัลไม่ปลอดภัยเพิ่มเติมต่อไปนี้จะถูกเอาออก: DES, NULLส่งออกและmd 5

ต้องการความช่วยเหลือเพิ่มเติมหรือไม่

ต้องการตัวเลือกเพิ่มเติมหรือไม่

สํารวจสิทธิประโยชน์ของการสมัครใช้งาน เรียกดูหลักสูตรการฝึกอบรม เรียนรู้วิธีการรักษาความปลอดภัยอุปกรณ์ของคุณ และอื่นๆ