如何确定SSL连接的“强度”

时间:2010-01-18 17:17:16

标签: c# web-services httpwebrequest

我有一个富客户端应用程序,它连接到一组支持Web服务,其中连接由SSL保护。我需要确定用于实际SSL流的加密的“强度”,以便将此信息显示给最终用户。

我的理解是客户端和服务器将协商它们之间的对称加密方法(SSL / TLS),具有不同的加密级别(40,56,128,256)。有什么办法可以在C#代码中检测HttpWebRequest / ServicePoint /中使用哪种模式?

2 个答案:

答案 0 :(得分:1)

由于您已经建立了SslStream stream,因此可以使用以下内容:

stream.CipherAlgorithm //to get the algorithm that is used
stream.CipherStrength //to get the strength of the cipher algorithm

您可以找到更多信息here

答案 1 :(得分:1)

这扩展了@Alex的帖子,显然添加了你自己的错误处理

        System.Net.Sockets.TcpClient TC = new System.Net.Sockets.TcpClient();
        TC.Connect("mail.google.com", 443);
        using (System.Net.Security.SslStream Ssl = new System.Net.Security.SslStream(TC.GetStream()))
        {
            Ssl.AuthenticateAsClient("mail.google.com");
            Console.WriteLine(Ssl.CipherAlgorithm);
            Console.WriteLine(Ssl.CipherStrength);
        }
        TC.Close();

我认为您不能直接从Web服务访问SSL信息,您必须使用此帮助程序代码直接与主机通信。