โพรโทคอลความปลอดภัยเริ่มต้นสำหรับการสื่อสารกับเซิร์ฟเวอร์ที่รองรับสูงสุดTLS 1.2
คืออะไร จะ.NET
เป็นค่าเริ่มต้นให้เลือกโปรโตคอลความปลอดภัยสูงสุดได้รับการสนับสนุนในด้านเซิร์ฟเวอร์หรือฉันจะต้องชัดเจนเพิ่มบรรทัดของรหัสนี้:
System.Net.ServicePointManager.SecurityProtocol =
SecurityProtocolType.Tls | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12;
มีวิธีในการเปลี่ยนค่าเริ่มต้นนี้นอกจากการเปลี่ยนรหัสหรือไม่
สุดท้ายนี้.NET 4.0
สนับสนุนได้มากถึงเท่านั้นTLS 1.0
? คือผมต้องปรับโครงการของลูกค้า 4.5 TLS 1.2
ที่ให้การสนับสนุน
แรงจูงใจของฉันคือการลบการสนับสนุนSSLv3
ในฝั่งไคลเอ็นต์แม้ว่าเซิร์ฟเวอร์รองรับ (ฉันมีสคริปต์ PowerShell เพื่อปิดการใช้งานนี้ในรีจิสทรีของเครื่อง) และเพื่อรองรับโปรโตคอล TLS สูงสุดที่เซิร์ฟเวอร์รองรับ
ปรับปรุง:
กำลังมองหาที่ServicePointManager
เรียนใน.NET 4.0
ผมเห็นไม่มีค่าแจกแจงสำหรับและTLS 1.0
1.1
ในทั้งสองเริ่มต้นคือ.NET 4.0/4.5
SecurityProtocolType.Tls|SecurityProtocolType.Ssl3
หวังว่าค่าเริ่มต้นนี้จะไม่แตกเมื่อปิดใช้งานSSLv3
ในรีจิสทรี
อย่างไรก็ตามฉันตัดสินใจว่าฉันจะต้องอัปเกรดแอพทั้งหมดเป็น.NET 4.5
และเพิ่มอย่างชัดเจนSecurityProtocolType.Tls | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12;
ในรหัส bootstrapping ของแอปพลิเคชันทั้งหมด
ซึ่งจะทำให้ขาออกการร้องขอไปยัง APIs และบริการต่างๆที่จะไม่ปรับลดและควรเลือกระดับสูงสุดของSSLv3
TLS
วิธีการนี้ฟังดูสมเหตุสมผลหรือเกินความจริงหรือไม่? ฉันมีแอปพลิเคชั่นมากมายที่ต้องอัปเดตและฉันต้องการพิสูจน์ในอนาคตเนื่องจากฉันได้ยินว่าTLS 1.0
อาจเลิกใช้งานในอนาคตอันใกล้โดยผู้ให้บริการบางราย
ในฐานะที่เป็นลูกค้าที่ทำการร้องขอขาออกไปยัง APIs การปิดใช้งาน SSL3 ในรีจิสทรีจะมีผลใน. NET Framework หรือไม่ ฉันดูตามค่าเริ่มต้น TLS 1.1 และ 1.2 ไม่ได้เปิดใช้งานเราต้องเปิดใช้งานผ่านรีจิสทรีหรือไม่ RE http://support.microsoft.com/kb/245030
หลังจากการตรวจสอบเล็กน้อยฉันเชื่อว่าการตั้งค่ารีจิสทรีจะไม่มีผลกระทบเนื่องจากจะใช้กับ IIS (คีย์ย่อยของเซิร์ฟเวอร์) และเบราว์เซอร์ (คีย์ย่อยของไคลเอ็นต์)
ขออภัยโพสต์นี้กลายเป็นคำถามหลายข้อติดตามด้วยคำตอบ "อาจจะ"