是否可以通过 telnet 执行 SSL 握手?

use*_*882 1 ssl networking protocols telnet

我正在阅读有关 SSL 工作原理的信息,并尝试与 google pop3 server 执行握手pop.gmail.com 995我在那里找到了客户端问候消息的示例。所以,我连接到 gmail pop 3 服务器

telnet pop.gmail.com 995
Run Code Online (Sandbox Code Playgroud)

没关系。现在我可以向服务器发送消息了。据我了解,我需要做的第一件事是发送客户端问候消息。因此,我输入以下行(\r\n为了简化阅读,我将在标记后换行):

ClientVersion 3,1\r\nClientRandom[32]\r\n
SessionID: None (new session)\r\n
Suggested Cipher Suites:\r\n
  TLS_RSA_WITH_3DES_EDE_CBC_SHA\r\n
  TLS_RSA_WITH_DES_CBC_SHA\r\n
Suggested Compression Algorithm: NONE
Run Code Online (Sandbox Code Playgroud)

按 Enter 键并接收消息

Connection closed by foreign host.
Run Code Online (Sandbox Code Playgroud)

怎么了?我应该收到服务器问候消息吗?我要发送什么才能收到它?

小智 6

不,这是不可能的。您尝试输入的文本是 ClientHello 消息的人类可读表示,而不是真实的文本。真正的ClientHello消息是二进制数据,不能通过Telnet会话输入。