我正在设计一个服务器,其中协议允许客户端打开与服务器的额外物理连接,这些连接在单个逻辑连接的上下文中运行。
有一个想法是,如果我们使用ssl,我们将需要为新连接进行另一次ssl握手。在我看来,应该可以通过原始的安全连接向客户端发送一些秘密,这样可以在没有握手的情况下安全地建立新连接(类似于我读过的有关ssl会话重用的内容)。 / p>
这实际上可行吗?
答案 0 :(得分:1)
SSL已经这样做了。如果两端都支持它,则会有一个名为“会话恢复”的功能。它允许通过现有的SSL会话通过一个简短的握手进行新的连接,而无需交换证书和协商秘密。
答案 1 :(得分:1)
是的,重用SSL Session。您可以使用PEM_write_bio_SSL_SESSION
和PEM_read_bio_SSL_SESSION
然后将其添加到SSL上下文来执行此操作。
请记住,您只需要在客户端模式下执行此操作,服务器模式会自动为您执行此操作。