搜索了一下,发现了不同的工具来检查弱密码。如何通过.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?
有什么想法吗?
发布于 2011-01-06 05:12:26
SslStream的CipherAlgorithm和HashAlgorithm属性。你定义什么对你来说是“弱”的,并根据你的“弱”列表检查协商的算法。
更新:很抱歉误解了这个问题。服务器似乎不会发送支持的密码套件列表,因此唯一的选择是在客户机上一次启用一个密码套件,并尝试使用它进行连接。我不认为SslStream允许您指定允许的密码套件,但是您可以使用我们的SecureBlackbox组件来实现这一点-它们可以让您轻松地微调组件(SSL客户端)。
发布于 2011-01-06 05:40:39
服务器从客户端请求的列表中选择要使用的密码组。也就是说,你应该带一些允许启用/禁用某些密码套件的库,并尝试逐个连接到服务器启用套件。SslStream不支持灵活的密码套件调整。
发布于 2011-01-11 03:01:15
我仍然会看一看all诊断,也许可以使用OpenSSL.NET?http://sourceforge.net/projects/openssl-net/将其移植到c#,然后您所要做的就是将c代码移植到c#中,并保留OpenSSL代码。
https://stackoverflow.com/questions/4609109
复制相似问题