gpt4 book ai didi

c# - 仅允许 TLS 1.0 后仍然可以进行 TLS 1.2 握手

转载 作者:太空宇宙 更新时间:2023-11-03 13:14:40 24 4
gpt4 key购买 nike

我的一位客户在操作系统级别关闭了 TLS 1.0。之后与我们产品的连接不再有效。客户没有使用 .NET 4.6.1 的最新版本。

由于我们没有指定所使用的协议(protocol),因此我们依赖于默认值。根据https://support.microsoft.com/en-us/help/3069494/cannot-connect-to-a-server-by-using-the-servicepointmanager-or-sslstre .NET 4.6 默认启用 TLS 1.2,这将是完美的,也是我们想要的。

我想尝试一些配置,以便更好地理解。我指定在代码级别仅允许 TLS 1.0:

ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls;

为了测试握手,我使用了 openssl。它应该与 TLS 1.0 完美配合。但令我惊讶的是,握手也适用于 TLS 1.2。

$ openssl s_client -connect localhost:30050 -tls1_2
<..snip..>
SSL-Session:
Protocol : TLSv1.2
<..snip..>

是否有我监督的一些 .NET 或 TLS 规则?据我了解,当将 TLS 1.0 指定为唯一协议(protocol)时,TLS 1.2 应该是不可能的。

最佳答案

mjwills 在评论中询问,SecurityProtocol 属性是否影响入站或出站连接。

经过一番研究,我找到了帖子 How do I disable SSL fallback and use only TLS for outbound connections in .NET? (Poodle mitigation)其中有一条评论可以回答这个问题:

如果您要从 .NET 代码启动出站连接,则只需设置 System.Net.ServicePointManager.SecurityProtocol,例如从服务器上运行的自定义代码连接到 Web 服务或 API。如果您只运行一个简单的网站,并且只接受来自浏览器的传入连接,那么注册表修复就足够了。

关于c# - 仅允许 TLS 1.0 后仍然可以进行 TLS 1.2 握手,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48642743/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com