相关疑难解决方法(0)

如何在.NET中禁用SSL回退并仅使用TLS进行出站连接?(贵宾犬缓解)

我正在努力减轻我们对Poodle SSL 3.0 Fallback攻击的漏洞.我们的管理员已经开始禁用SSL,转而使用TLS进行服务器的入站连接.我们还建议我们的团队在其Web浏览器中禁用SSL.我现在正在查看我们的.NET代码库,它通过System.Net.HttpWebRequest启动与各种服务的HTTPS连接.我相信如果这些连接允许从TLS回退到SSL,则它们可能容易受到MITM攻击.这是我到目前为止所确定的.有人可以仔细检查一下以确认我是对的吗?这个漏洞是全新的,所以我还没有看到微软如何在.NET中缓解它的任何指导:

  1. System.Net.Security.SslStream类的允许协议(支持.NET中的安全通信)通过System.Net.ServicePointManager.SecurityProtocol属性为每个AppDomain全局设置.

  2. .NET 4.5中此属性的默认值是Ssl3 | Tls(虽然我找不到支持它的文档.)SecurityProtocolType是带有Flags属性的枚举,因此它是这两个值的按位OR.您可以使用以下代码行在您的环境中进行检查:

    Console.WriteLine(System.Net.ServicePointManager.SecurityProtocol.ToString());

  3. 在应用程序中启动任何连接之前Tls,应该将其更改为正好或者可能Tls12:

    System.Net.ServicePointManager.SecurityProtocol = System.Net.SecurityProtocolType.Tls;

  4. 重要提示:由于该属性支持多个按位标志,因此我假设SslStream 在握手期间不会自动回退到其他未指定的协议.否则,支持多个标志会有什么意义?

TLS 1.0与1.1/1.2的更新:

根据Google安全专家Adam Langley的说法,如果没有正确实施,TLS 1.0后来被发现容易受到POODLE的影响,因此您应该考虑专门转移到TLS 1.2.

.net ssl

103
推荐指数
5
解决办法
12万
查看次数

根据请求在.net HttpWebRequest上设置SecurityProtocol(Ssl3或TLS)

我的应用程序(.net 3.5 sp1)使用HttpWebRequest与不同的端点进行通信,有时它使用HTTPS,其中每个托管服务器可能具有不同的安全协议要求,例如TLS或SSL3或其中之一.

通常,服务器可以很好地和愉快地协商/回退SecurityProtocol使用TLS或SSL3,但有些则没有,当.net被设置为TLS或SSL3(我认为默认)那些仅支持SSL3的服务器会导致.net抛出发送错误.

据我所知,.net为ServicePointManager对象提供了一个属性SecurityProtocol,可以将其设置为TLS,SSL3或两者.因此理想情况下,当设置为两个想法是客户端和服务器应该协商使用什么,但如前所述似乎不起作用.

据说你可以设置ServicePointManager.SecurityProtocol = Ssl3但是那些想要使用TLS的端点呢?

我在ServicePointManager和SecurityProtocol中看到的问题是它的静态和应用程序域范围.

那么问题..

我将如何使用不同的SecurityProtocol来使用HttpWebRequest,例如

1)url 1设置为使用TLS | Ssl3(谈判)

2)url 2设置为Ssl3(仅限Ssl3)

.net httpwebrequest

32
推荐指数
3
解决办法
4万
查看次数

.NET 4.5和.NET 4.5.1默认启用TLS 1.1和TLS 1.2

在我们的Windows 2012 Server R2上,我们需要禁用TLS 1.0.

但是我们运行.NET 4.5 Wcf服务.我们发现,如果我们禁用TLS 1.0,WCF服务不再运行,因为我们收到错误"现有连接被远程主机强行关闭".

.NET 4.5和.NET 4.5.1中是否默认启用了TLS 1.1/1.2?如果没有,我们假设是这样的,我们在WCF项目中强制项目使用TLS 1.1/1.2?

.net c# ssl wcf tls1.2

13
推荐指数
2
解决办法
3万
查看次数

标签 统计

.net ×3

ssl ×2

c# ×1

httpwebrequest ×1

tls1.2 ×1

wcf ×1