Apa protokol keamanan default untuk berkomunikasi dengan server yang mendukung hingga TLS 1.2
? Akan .NET
secara default, pilih protokol keamanan tertinggi yang didukung di sisi server atau apakah saya harus menambahkan baris kode ini secara eksplisit:
System.Net.ServicePointManager.SecurityProtocol =
SecurityProtocolType.Tls | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12;
Apakah ada cara untuk mengubah default ini, selain perubahan kode?
Terakhir, apakah .NET 4.0
hanya mendukung hingga TLS 1.0
? yaitu saya harus meningkatkan proyek klien ke 4,5 untuk mendukung TLS 1.2
.
Motivasi saya adalah untuk menghapus dukungan untuk SSLv3
di sisi klien bahkan jika server mendukungnya (saya sudah memiliki skrip PowerShell untuk menonaktifkan ini di registri mesin) dan untuk mendukung protokol TLS tertinggi yang didukung server.
Pembaruan:
Melihat ServicePointManager
kelas di .NET 4.0
saya tidak melihat nilai yang disebutkan TLS 1.0
dan 1.1
. Dalam keduanya .NET 4.0/4.5
, standarnya adalah SecurityProtocolType.Tls|SecurityProtocolType.Ssl3
. Semoga standar ini tidak akan rusak dengan menonaktifkan SSLv3
di registri.
Namun, saya telah memutuskan saya harus memutakhirkan semua aplikasi .NET 4.5
dan untuk menambahkan secara eksplisit SecurityProtocolType.Tls | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12;
pula ke semua kode bootstrap semua aplikasi.
Ini akan membuat permintaan keluar ke berbagai apis dan layanan untuk tidak menurunkan ke SSLv3
dan harus memilih tingkat tertinggi TLS
.
Apakah pendekatan ini terdengar masuk akal atau berlebihan? Saya memiliki banyak aplikasi untuk diperbarui, dan saya ingin membuktikannya di masa depan karena saya mendengar bahkan TLS 1.0
mungkin akan ditinggalkan dalam waktu dekat oleh beberapa penyedia.
Sebagai klien yang membuat permintaan keluar ke API, apakah menonaktifkan SSL3 di registri bahkan memiliki efek dalam .NET framework? Saya melihat secara default, TLS 1.1 dan 1.2 tidak diaktifkan, apakah kita harus mengaktifkannya melalui registri? RE http://support.microsoft.com/kb/245030 .
Setelah sedikit penyelidikan, saya yakin pengaturan registri tidak akan berpengaruh karena mereka berlaku untuk IIS (server subkey) dan browser (subkey klien).
Maaf posting ini berubah menjadi beberapa pertanyaan, diikuti dengan jawaban "mungkin".