我正在从事一个涉及 Socket.IO 的项目,我想在其中添加加密。这似乎有点不对,但能够通过我的协议(protocol)添加一个标准的方式来隧道 TLS 套接字将非常有帮助,因为我的是传输不可知的,并且 TLS 非常适合协商和创建安全 session (我真的不想要一个轮子必须重新发明)。
最终,您将在 BCP 内的 TLS 内拥有 BCP(BCP 是我的协议(protocol)名称)。虽然丑陋,但它可以保证任何传输介质都可以轻松升级到 BCP 中的加密连接,考虑到我事先不知道 Socket.IO 将选择哪种传输方式,这很好(另外,面向 future 并提供选项其他人使用 BCP 等)。我理解这是否是一个坏主意,或者由于 TLS 级别太低而无法实现,但如果可以做到或者您有更好的选择,我很乐意听取您的想法。
最佳答案
一般来说,SSL/TLS 不关心传输,甚至可以处理信鸽邮件(如果笼子里有足够多的鸽子;)。因此,您可以在 TCP 以外的某些传输上运行它,并且可以在 SSL/TLS 上运行任何东西。
如果我答对了你的问题,请查看 Explicit SSL 模式是如何在 FTPS 和 SMTP 中完成的。最初建立非安全 session ,然后发送 STARTTLS 命令,然后发生 SSL 握手,最后其余通信在 SSL 之上进行。所有这一切都发生在单个套接字连接中。
关于security - 在另一个协议(protocol)中建立 TLS 隧道,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8637932/