Mitigasi: Protokol TLS
Dimulai dengan .NET Framework 4.6, System.Net.ServicePointManager kelas dan System.Net.Security.SslStream diizinkan untuk menggunakan salah satu dari tiga protokol berikut: Tls1.0, Tls1.1, atau Tls 1.2. Protokol SSL3.0 dan cipher RC4 tidak didukung.
Dampak
Perubahan ini memengaruhi:
Aplikasi apa pun yang menggunakan SSL untuk berkomunikasi dengan server HTTPS atau server soket menggunakan salah satu jenis berikut: HttpClient, HttpWebRequest, FtpWebRequest, SmtpClient, dan SslStream.
Aplikasi sisi server apa pun yang tidak dapat ditingkatkan untuk mendukung Tls1.0, Tls1.1, atau Tls 1.2..
Mitigasi
Mitigasi yang direkomendasikan adalah meningkatkan aplikasi sisi server ke Tls1.0, Tls1.1, or Tls 1.2. Jika tindakan ini tidak memungkinkan, atau jika aplikasi klien rusak, maka kelas AppContext dapat digunakan untuk menolak fitur ini dengan melakukan salah satu dari dua cara berikut:
Secara terprogram, dengan menggunakan cuplikan kode seperti berikut:
const string DisableCachingName = @"TestSwitch.LocalAppContext.DisableCaching"; const string DontEnableSchUseStrongCryptoName = @"Switch.System.Net.DontEnableSchUseStrongCrypto"; AppContext.SetSwitch(DisableCachingName, true); AppContext.SetSwitch(DontEnableSchUseStrongCryptoName, true);
Const DisableCachingName As String = "TestSwitch.LocalAppContext.DisableCaching" Const DontEnableSchUseStrongCryptoName As String = "Switch.System.Net.DontEnableSchUseStrongCrypto" AppContext.SetSwitch(DisableCachingName, True) AppContext.SetSwitch(DontEnableSchUseStrongCryptoName, True)
Karena objek ServicePointManager hanya diinisialisasi sekali, menentukan pengaturan kompatibilitas ini harus menjadi hal pertama yang dilakukan aplikasi.
Dengan menambahkan baris berikut ke bagian <runtime> di file app.config:
<AppContextSwitchOverrides value="Switch.System.Net.DontEnableSchUseStrongCrypto=true"/>
Namun, perhatikan bahwa menolak perilaku default tidak disarankan, karena membuat aplikasi kurang aman.