我想创建一个可以通过SSL / TLS连接的Web服务器。
由于HTTPS协议是无状态的,我假设每次浏览器连接到服务器时都会进行握手。 我想避免在连接到同一个客户端浏览器并使用之前握手中的相同信息时进行rehandshaking。
要使服务器识别它是重新连接到以前的浏览器,应使用SSL会话ID。我在哪里可以找到数据包中的SSL会话ID?
为了让服务器知道它是一个重新连接,我认为ID应该在数据包中(即TCP头)。我错了吗?
我从头开始制作服务器,所以我没有使用任何库。我正在直接操纵数据包。我已经为操作数据包创建了类。并且TLS层位于TCP层之上,因此我不需要太多努力来访问TLS层数据。我查看了记录层'数据结构,但我找不到会话ID。它在哪里?
我已经完成了HTML服务器部分,我想添加SSL / TLS功能。
我知道如何完成hello协议和握手。我想知道在握手之后,如何通过以下主要数据包中的服务器知道受损的SSL会话ID。
答案 0 :(得分:0)
我正在回答我自己的问题。 我认为我的假设是错误的。 我认为hello协议和其他方法之后会使用不同的连接。
我的新主张是“ 即使在HTTPS协议中,也会在从握手到一定数量的数据传输期间保持连接。 这是https传输的单位。 因此,每个https连接都将从hello协议开始。“
因此,每次建立https连接时,服务器都会知道来自hello协议的会话ID,并将在已建立的会话中查找id。
我没有发现任何明确的提及。 但是从我收集的信息中,我得出了这样的结论。 如果有人知道答案,请在此发布。