繁体   English   中英

如何确定传入连接是否需要SSL?

[英]How can I determine whether an incoming connection is expecting SSL?

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

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

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

SSL 2将具有8x yz(十六进制)作为前两个字节(x yz可以是任何内容,例如8F 13),并且SSL 3和更高版本具有16 03十六进制作为前两个字节。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM