确定TCP连接是否使用SSL

时间:2010-02-25 09:47:46

标签: ssl networking tcp network-protocols

也许某些服务器可以处理非安全和安全协议。 有没有已知的方法来确定现有的TCP连接是否安全?

(我相信它可能只是监控流量并检查某些文本是否可读,但是可能有更好或更详细的建议?)

1 个答案:

答案 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。