Bu önemli bir soru. SSL 3 protokolü (1996), 2014 yılında yayınlanan Kaniş saldırısı tarafından onarılamayacak şekilde bozulmuştur. IETF, "SSLv3 KULLANILMAMALIDIR" yayınlamıştır . Web tarayıcıları bundan kurtuluyor. Mozilla Firefox ve Google Chrome bunu zaten yaptı.
Tarayıcılarda protokol desteğini kontrol etmek için iki mükemmel araç, SSL Lab'ın istemci testi ve https://www.howsmyssl.com/'dir . İkincisi Javascript gerektirmez, bu yüzden .NET'in HttpClient'ından deneyebilirsiniz :
File.WriteAllText("howsmyssl-httpclient.html", new HttpClient().GetStringAsync("https://www.howsmyssl.com").Result);
Sonuç kahredici:
Müşteriniz çok eski olan, muhtemelen BEAST saldırısına duyarlı olan ve üzerinde mevcut en iyi şifre paketlerine sahip olmayan TLS 1.0 kullanıyor. MD5-SHA-1'in yerini alacak AES-GCM ve SHA256 gibi eklemeler, bir TLS 1.0 istemcisinin yanı sıra daha birçok modern şifre paketi için kullanılamaz.
Bu ilgili. 2006'nın Internet Explorer 7'si ile karşılaştırılabilir.
Bir HTTP istemcisinin tam olarak hangi protokolleri desteklediğini listelemek için, aşağıdaki sürüme özgü test sunucularını deneyebilirsiniz:
var test_servers = new Dictionary<string, string>();
test_servers["SSL 2"] = "https://www.ssllabs.com:10200";
test_servers["SSL 3"] = "https://www.ssllabs.com:10300";
test_servers["TLS 1.0"] = "https://www.ssllabs.com:10301";
test_servers["TLS 1.1"] = "https://www.ssllabs.com:10302";
test_servers["TLS 1.2"] = "https://www.ssllabs.com:10303";
var supported = new Func<string, bool>(url =>
{
try { return new HttpClient().GetAsync(url).Result.IsSuccessStatusCode; }
catch { return false; }
});
var supported_protocols = test_servers.Where(server => supported(server.Value));
Console.WriteLine(string.Join(", ", supported_protocols.Select(x => x.Key)));
.NET Framework 4.6.2 kullanıyorum. HttpClient'in yalnızca SSL 3 ve TLS 1.0'ı desteklediğini öğrendim. Bu ilgili. Bu, 2006'nın Internet Explorer 7'si ile karşılaştırılabilir.
Güncelleme: HttpClient'in TLS 1.1 ve 1.2'yi desteklemesini sağlar, ancak bunları adresinden manuel olarak açmanız gerekir System.Net.ServicePointManager.SecurityProtocol
. Bkz. Https://stackoverflow.com/a/26392698/284795
Kutudan çıkar çıkmaz kötü protokolleri neden kullandığını bilmiyorum. Bu, kötü bir kurulum seçeneği gibi görünüyor, büyük bir güvenlik hatasıyla eşdeğerdir (bahse girerim pek çok uygulama varsayılanı değiştirmez). Nasıl rapor edebiliriz?