也许某些服务器可以处理非安全和安全协议。 有没有已知的方法来确定现有的TCP连接是否安全?
(我相信它可能只是监控流量并检查某些文本是否可读,但是可能有更好或更详细的建议?)
答案 0 :(得分:1)
如果您使用的是.Net,则可以使用现有的TCP连接作为SSL连接的基础。以编程方式检查服务器端口是否实现SSL将是建立TCP连接然后尝试在其上创建SSL连接的问题。如果SSL握手失败,这将引发异常,那么您将知道该端口上没有SSL。
代码将遵循:
TcpClient tcpClient = new TcpClient();
tcpClient.Connect(remoteEndPoint);
SslStream sslStream = new SslStream(tcpClient.GetStream(), false, new RemoteCertificateValidationCallback(ValidateServerCertificate), null);
sslStream.AuthenticateAsClient(serverCN);
异常表示没有SSL。