在.NET 4.5中,如果我将ServicePointManager.SecurityProtocol设置为多个协议,并且服务器接受所有这些协议,那么将使用哪个协议进行请求?
它是从最高的协议开始并返回失败,还是从最简单的协议开始,然后失败呢?
ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3 | SecurityProtocolType.Tls | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12;发布于 2016-05-21 23:17:08
我还没有对此进行过多的研究,但这里一文提到.Net 4.6将尝试首先使用最安全的行为。从外表上看,很不幸的是,这差不多是好的。
发布于 2018-09-21 06:01:17
我相信这其中有很多都是在TLS RFC中规定和概述的。
连接到使用SSL/TLS保护的服务器需要交换“Hello”数据包,其中浏览器提供它可以使用的所有TLS协议版本,以及它可以使用的所有密码套件和其他TLS扩展。然后,服务器选择将使用哪些协议、密码和扩展并通知客户端。
当客户端和服务器就协议和密码进行交谈时,它们会按偏好顺序列出。偏好是最安全的而不是最不安全的。如果服务器需要选择它支持的最安全的协议,我在RFC中找不到,但这是一个普遍接受的规范。
这可能有助于:
https://stackoverflow.com/questions/37308028
复制相似问题