2011-09-23 46 views
1

随着BEAST(利用SSL/TLS1.0中有效负载的初始字节总是相同的漏洞)的最近出现,我查看了SslStream class以查看它是否支持TLS 1.1, TLS 1.2等。它只有supports (SslProtocol) SSL 2和3(都在TLS之前)和TLS 1.0。SslStream,BEAST和TLS 1.1

鉴于SslProtocol只支持TLS 1.0及更低版本,是否可以使用SslStream用于TLS 1.1及更高版本?

+2

AFAIK有限制/没有在客户的TLS支持1.1+,所以因此没有服务器困扰支持它,因为TLS到目前为止,1.0已经“足够好”了。解决此漏洞的实用方法,直到支持更好的协议为止,首选客户端或服务器上的非CBC密码套件(如RC4)。关于服务器端请参阅http://www.phonefactor.com/blog/slaying-beast-mitigating-the-latest-ssltls-vulnerability.php。不知道如何更喜欢客户端的某个密码。 – Yoshi

+0

@Yoshi你能回答吗,似乎我不会再有更多的东西,而你的相当不错。 –

回答

1

看起来像更新是为了。

从.NET 4.5开始,SslProtocol(因此SslStream)现在支持TLS 1.1和TLS 1.2。

这些协议在4.6中默认启用。 4.5,你需要通过使用重载AuthenticateAsClient电话来激活他们在您的SslStream对象:

sslStream.AuthenticateAsClient(hostname, null, SslProtocols.Tls12 | SslProtocols.Tls11, true);