โพรโทคอลความปลอดภัยเริ่มต้นสำหรับการสื่อสารกับเซิร์ฟเวอร์ที่รองรับสูงสุด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 และบริการต่างๆที่จะไม่ปรับลดและควรเลือกระดับสูงสุดของSSLv3TLS
วิธีการนี้ฟังดูสมเหตุสมผลหรือเกินความจริงหรือไม่? ฉันมีแอปพลิเคชั่นมากมายที่ต้องอัปเดตและฉันต้องการพิสูจน์ในอนาคตเนื่องจากฉันได้ยินว่าTLS 1.0อาจเลิกใช้งานในอนาคตอันใกล้โดยผู้ให้บริการบางราย
ในฐานะที่เป็นลูกค้าที่ทำการร้องขอขาออกไปยัง APIs การปิดใช้งาน SSL3 ในรีจิสทรีจะมีผลใน. NET Framework หรือไม่ ฉันดูตามค่าเริ่มต้น TLS 1.1 และ 1.2 ไม่ได้เปิดใช้งานเราต้องเปิดใช้งานผ่านรีจิสทรีหรือไม่ RE http://support.microsoft.com/kb/245030
หลังจากการตรวจสอบเล็กน้อยฉันเชื่อว่าการตั้งค่ารีจิสทรีจะไม่มีผลกระทบเนื่องจากจะใช้กับ IIS (คีย์ย่อยของเซิร์ฟเวอร์) และเบราว์เซอร์ (คีย์ย่อยของไคลเอ็นต์)
ขออภัยโพสต์นี้กลายเป็นคำถามหลายข้อติดตามด้วยคำตอบ "อาจจะ"
