我想为未加密的TCP和SSL使用1个端口。
目标是使1端口成为机器的入口。这意味着将所有协议和传输复用到端口。例如,我查看流的前4个字节。如果它以'GET','POST','HEAD'等开头,我知道它是HTTP协议,所以我将连接传递给HTTP服务器。如果是“HELO”或“EHLO”,我知道将其传递给SMTP服务器。
问题是,如果是SSL连接(为了将其传递给OpenSSL),我该寻找什么?
答案 0 :(得分:4)
SSL 2将具有8x yz(十六进制)作为前两个字节(x yz可以是任何内容,例如8F 13),并且SSL 3和更高版本具有16 03十六进制作为前两个字节。
更新:正如评论中所指出的,某些协议要求服务器首先发送内容(FTP和POP3仅举几例,并且注释中已提及SMTP),因此您的方法仅适用于有限数量的协议。