gpt4 book ai didi

c# - 如何在TLS1.2握手过程中忽略服务器请求的签名哈希算法?

转载 作者:行者123 更新时间:2023-11-30 18:16:48 26 4
gpt4 key购买 nike

我有一个 C# 应用程序通过相互身份验证成功建立了 TCP TLS 1.0 连接到另一家公司的服务器。它是使用 SslStream 类实现的。我们只是这个非常大的组织的众多客户之一。

上面的这个 TCP 链接必须经过 TLS 1.2 + SHA2 升级。在我们这边完成所有必要步骤并成功测试本地服务器后,我们仍然无法连接到远程服务器。一项冗长的调查表明,在 TLS 握手期间,服务器向我们发送了一个证书请求,其中只有选项 用于签名哈希算法 = SHA1-RSA(见下图)。我们的证书是 SHA256。结果,SslStream 根本没有将我们的证书发送到服务器,服务器将此视为握手失败并关闭了连接。

TLS Handshake Failure

造成这种麻烦的原因是我们的交易对手使用非常旧的 (10.x) 版本的 F5 防火墙来终止 SSL。它只在证书请求中发送 SHA1/RSA 签名哈希算法,尽管它支持客户端的 SHA2 证书。

虽然承认上述事实,但我们的交易对手无法尽快升级 F5。他们建议忽略请求的签名哈希算法并发送我们的 SHA256 证书。显然,连接到他们的其他客户端能够以某种方式做到这一点。

不幸的是,.Net 的 SslStream 没有为 TLS 握手提供那种级别的微调。

因此问题来了:是否可以完全忽略服务器对基于 SHA1RSA 的证书的请求?我有什么选择?是否有实现 TLS 1.2 的 SslStream 替代方案?有没有开源的第三方解决方案?任何建议都会有所帮助。提前致谢。

最佳答案

上述问题最终在没有任何特殊代码更改的情况下得到解决:在我们这边添加了代理服务器。它负责与对方的沟通。代理服务器能够忽略传入证书请求中的特定 SHA1/RSA 签名哈希算法。

关于c# - 如何在TLS1.2握手过程中忽略服务器请求的签名哈希算法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45725461/

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