经过一番搜索,找到了不同的工具来检查弱密码.如何确定服务器通过.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中?
有任何想法吗?
解决方法:
SslStream的CipherAlgorithm和HashAlgorithm属性.您定义什么是“弱”,然后对照“弱”算法列表检查协商的算法.
更新:很抱歉误解了这个问题.服务器似乎没有发送受支持密码套件的列表,因此唯一的选择是一次在客户端上启用一个密码套件并尝试使用它进行连接.我看不到SslStream允许您指定允许的密码套件,但是您可以为此使用我们的SecureBlackbox组件-它们使您可以轻松地微调该组件(SSL客户端).