SSL 连接和 SSL 会话之间的区别

信息安全 tls
2021-08-15 05:30:38

SSL 连接和 SSL 会话有什么区别?

这是我的讲义必须说的,这对我来说毫无意义(我是 SSL 新手):

SSL 连接:

  • 瞬态点对点通信链路。
  • 每个连接都与一个 SSL 会话相关联。

SSL 会话:

  • 会话是客户端和服务器之间的关联。
  • 它是由握手协议创建的。
  • 它定义了一组安全参数。
  • 它可以由多个 SSL 连接共享。
  • 避免为每个连接进行昂贵的安全参数协商很有用。单个会话有许多连接。每个连接都有不同的密钥

我试着用谷歌搜索它,但结果并没有带来任何有用的东西。

我唯一知道的是一个 SSL 会话可以有多个 SSL 连接。

有人可以简单地向我解释一下有什么区别吗?

3个回答

一般来说:

连接是客户端和服务器之间的通信通道。例如:一个 TCP 套接字。连接通常是短暂的,如果连接空闲太久,服务器通常配置为超时。

会话是在服务器端维护状态的一种方式。您可以将其视为在服务器上分配的内存块,并且此内存块与连接相关联。即使连接中断,您也可以恢复会话(在 HTTP 协议的情况下使用 cookie)。

您可以在此白皮书中了解更多信息。

在 SSL 的上下文中:

这同样适用于 SSL/TLS 和任何其他协议。简单来说,在你用谷歌搜索的结果之一中得到了很好的解释干得好:

connection 和 session 的区别在于,connection 是一个实时通信通道,而 session 是一组协商的密码学参数。

您可以关闭连接,但保留会话,甚至将其存储到磁盘,然后使用另一个连接恢复它,可能处于完全不同的过程中,甚至在系统重新启动后(当然,存储的会话应该同时保留在客户端和服务器)。

另一方面,您可以在不中断连接的情况下重新协商 TLS 参数并创建全新的会话。

用外行的话来说:

  • 会话是一张“让我进去”的票
  • 连接是持续的对话

如果您有会话,只要会话有效,您就可以使用会话 ID 开始连接/对话。会话可以是 cookie,其中一个存储在您的浏览器中,另一半存储在服务器中。您出示您的会话 cookie,如果您的会话有效,服务器会说“OK”并让您与之交谈。

在 SSL 的情况下,您首先请求 SSL 会话。假设您登录example.com. 如果您提供正确的凭据,example.com则会为您提供会话 cookie。您将该 cookie 存储在您的浏览器中,这样您就不必每次在example.com.

当您关闭浏览器时,您的连接example.com将终止,因为您不再与它交谈。但是,您仍然有一个会话 cookie。当您example.com在浏览器中再次打开时,如果您有一个有效的会话 ID (cookie),您可以将该 cookieexample.com用于建立新的连接。相同的会话,不同的连接。

在一个会话中,您可以建立许多连接,直到它还活着。但请记住,会话不会持续这么长时间。以您的网上银行为例,当您登录网上银行时,如果您保持理想状态一段时间,它会说会话已过期,它会让您再次登录。这是出于安全目的,由 SSL 会话创建。