2010-02-25 190 views
0

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

(我相信这是可能只是监控流量,并检查一些文字是可读的,但也许有更好或者更多详细的建议?)

+0

这是一个系统管理/网络问题,应该询问http://serverfault.com/ – CuriousPanda 2010-02-25 10:01:26

+0

好的,谢谢我在serverfault问过它。但也许有人知道如何编写程序来检查问题?或者只是指示在哪里寻找答案。 – noonex 2010-02-25 10:11:55

回答

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。