यह एक महत्वपूर्ण सवाल है। 2014 के प्रकाशित Poodle के हमले से SSL 3 प्रोटोकॉल (1996) अपूरणीय रूप से टूट गया है। IETF ने "SSLv3 MUST NOT इस्तेमाल किया" प्रकाशित किया है । वेब ब्राउजर इसे डिच कर रहे हैं। मोज़िला फ़ायरफ़ॉक्स और गूगल क्रोम पहले ही ऐसा कर चुके हैं।
ब्राउज़रों में प्रोटोकॉल समर्थन की जाँच के लिए दो उत्कृष्ट उपकरण एसएसएल लैब के ग्राहक परीक्षण और https://www.howsmyssl.com/ हैं । उत्तरार्द्ध को जावास्क्रिप्ट की आवश्यकता नहीं है, इसलिए आप इसे .NET के HttpClient से आज़मा सकते हैं :
File.WriteAllText("howsmyssl-httpclient.html", new HttpClient().GetStringAsync("https://www.howsmyssl.com").Result);
परिणाम हानिकारक है:
आपका क्लाइंट टीएलएस 1.0 का उपयोग कर रहा है, जो कि बहुत पुराना है, संभवतः BEAST हमले के लिए अतिसंवेदनशील है, और उस पर सबसे अच्छा सिफर सूट उपलब्ध नहीं है। MD5-SHA-1 को बदलने के लिए AES-GCM, और SHA256 जैसे परिवर्धन TLS 1.0 क्लाइंट के साथ-साथ कई और आधुनिक सिफर सुइट्स के लिए उपलब्ध नहीं हैं।
जिसके विषय में है। यह 2006 के इंटरनेट एक्सप्लोरर 7 के बराबर है।
एक HTTP क्लाइंट का समर्थन करने वाले प्रोटोकॉल को वास्तव में सूचीबद्ध करने के लिए, आप नीचे दिए गए संस्करण-विशिष्ट परीक्षण सर्वर आज़मा सकते हैं:
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 फ्रेमवर्क का उपयोग कर रहा हूँ 4.6.2। मैंने पाया कि HttpClient केवल SSL 3 और TLS 1.0 का समर्थन करता है। यह विषय है। यह 2006 के इंटरनेट एक्सप्लोरर 7 के बराबर है।
अद्यतन: यह मुड़ता है HttpClient टीएलएस 1.1 और 1.2 का समर्थन करता है, लेकिन आपको उन्हें मैन्युअल रूप से चालू करना होगा System.Net.ServicePointManager.SecurityProtocol
। Https://stackoverflow.com/a/26392698/284795 देखें
मुझे नहीं पता कि यह खराब प्रोटोकॉल का उपयोग क्यों करता है। ऐसा लगता है कि एक खराब सेटअप पसंद है, एक प्रमुख सुरक्षा बग के लिए टेंटमाउंट (मैं शर्त लगाता हूं कि बहुत सारे एप्लिकेशन डिफ़ॉल्ट नहीं बदलते हैं)। हम इसे कैसे रिपोर्ट कर सकते हैं?