3

搜索了一下,发现了不同的工具来检查弱密码。如何确定服务器通过 .net/c# 支持哪些密码/算法?

我可以通过 (ssl.protocols.ssl2/ssl3/tls) 测试 sslv2、sslv3 和 tls:

            TcpClient client = new TcpClient();
            client.Connect("host", 443);
            using (SslStream Ssl = new SslStream(client.GetStream()))
            {
                Ssl.AuthenticateAsClient("host", null, System.Security.Authentication.SslProtocols.Ssl3, false);
                Console.WriteLine(Ssl.CipherAlgorithm);
                Console.WriteLine(Ssl.CipherStrength);
                Console.WriteLine(Ssl.SslProtocol);
            }
            client.Close();

如何通过 C# 检查算法和其他弱密码?我正在查看 SSLDiagnos,但它在 c 中?

有任何想法吗?

4

4 回答 4

3

SslStream 的CipherAlgorithm和 HashAlgorithm 属性。您为您定义什么是“弱”,并根据您的“弱”列表检查协商算法。

更新:抱歉误解了这个问题。服务器似乎没有发送支持的密码套件列表,因此唯一的选择是在客户端上一次启用一个密码套件并尝试使用它进行连接。我没有看到 SslStream 允许您指定允许的密码套件,但是您可以为此使用我们的SecureBlackbox组件——它们让您可以轻松地微调组件(SSL 客户端)。

于 2011-01-05T21:12:26.380 回答
1

服务器从客户端请求的列表中选择要使用的密码套件。即,您应该使用一些允许启用/禁用某些密码套件的库,并尝试一个接一个地连接到启用套件的服务器。SslStream 不支持灵活的密码套件调整。

于 2011-01-05T21:40:39.393 回答
0

我仍然会看一下 ssldiagnos 并可能使用 OpenSSL.NET 将其移植到 c#?http://sourceforge.net/projects/openssl-net/ 然后您所要做的就是将 c 代码移植到 c# 并留下 OpenSSL 代码。

于 2011-01-10T19:01:14.987 回答
0

ssldiagnos 应用程序现在与另一个工具合并:sslpressure,它根本不使用 openssl,只需检查初始客户端 hello(简单得多),也许您可​​以将其用作项目的模板。

于 2011-01-27T07:45:47.530 回答