当通过HTTPS发送数据时,我知道内容是加密的,但是关于头是否加密,或者头加密了多少,我听到了不同的答案。
有多少HTTPS头是加密的?
包括GET/POST请求url, cookie等。
当通过HTTPS发送数据时,我知道内容是加密的,但是关于头是否加密,或者头加密了多少,我听到了不同的答案。
有多少HTTPS头是加密的?
包括GET/POST请求url, cookie等。
当前回答
头部是完全加密的。在网络上“明确”传递的唯一信息与SSL设置和D/H密钥交换有关。这种交换经过精心设计,不会向窃听者提供任何有用的信息,而且一旦发生,所有数据都是加密的。
其他回答
所有HTTP头都是加密的†。 这就是为什么vhosts上的SSL工作得不太好——你需要一个专用的IP地址,因为Host头是加密的。
†服务器名称识别(SNI)标准意味着如果您使用TLS,主机名可能不会加密。此外,无论你是否使用SNI, TCP和IP头都不会加密。(如果是的话,你的包就不能路由了。)
使用SSL,加密是在传输级别,因此它在发送请求之前进行。
所以请求中的所有内容都是加密的。
头部是完全加密的。在网络上“明确”传递的唯一信息与SSL设置和D/H密钥交换有关。这种交换经过精心设计,不会向窃听者提供任何有用的信息,而且一旦发生,所有数据都是加密的。
是的,头文件是加密的。写在这里。
HTTPS消息中的所有内容都是加密的,包括头和请求/响应负载。
要理解什么是加密的,什么是不加密的,您需要知道SSL/TLS是传输层和应用层之间的一层。
对于HTTPS, HTTP是应用层,TCP是传输层。这意味着ssl级别以下的所有header都是未加密的。此外,SSL本身也可能公开数据。暴露的数据包括(对于每个层的Header):
注意:其他数据也可能会被暴露,但这些数据肯定会被暴露。
MAC:
源MAC地址(当前跳) 目的MAC地址(下一跳)
IP(假设IPv4):
目的IP地址 源IP地址 IP选项(如果设置) 类型的服务(TOS) 如果TTL设置为64,则当前数据包通过的跳数
TCP:
源端口 目的港 tcp选项
理论上,您可以加密TCP-Headers,但这很难实现。
SSL:
主机名(如果使用SNI)
通常,浏览器不会直接使用HTTPS通过IP连接到目标主机,有一些早期的请求,可能会暴露以下信息(如果您的客户端不是浏览器,它可能会有不同的行为,但DNS请求是相当常见的):
域名: 发送此请求以获取服务器的正确IP地址。它将包括主机名,其结果将包括属于服务器的所有IP地址。
HTTP: 对服务器的第一个请求。浏览器只会在有指示的情况下使用SSL/TLS,先使用未加密的HTTP。通常,这将导致重定向到安全站点。然而,有些头文件可能已经包含在这里了:
用户-代理(客户端的规范) 主机(主机名) 接收语言(用户的语言)