4

我想为未加密的 TCP 和 SSL 使用 1 个端口。

目标是使 1 个端口成为机器的入口。这意味着将所有协议和传输复用到端口中。例如,我偷看流的前 4 个字节。如果它以“GET”、“POST”、“HEAD”等开头。我知道它是 HTTP 协议,所以我将连接传递给 HTTP 服务器。如果是“HELO”或“EHLO”,我知道将其传递给 SMTP 服务器。

问题是,如果它是 SSL 连接(以便将其传递给 OpenSSL),我应该寻找什么?

4

1 回答 1

4

SSL 2 将 8x yz(十六进制)作为前两个字节(x yz 可以是任何东西,例如 8F 13),SSL 3 及更高版本将 16 03 十六进制作为前两个字节。

更新:正如评论中所指出的,某些协议要求服务器首先发送一些东西(FTP 和 POP3 仅举几例,评论中提到了 SMTP),因此您的方法仅适用于有限数量的协议。

于 2012-07-06T18:04:54.430 回答