确定 TCP 连接是否使用 SSL

问题描述 投票:0回答:1

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

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

ssl networking tcp network-protocols
1个回答
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。

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.