[AI生成] https对请求加密的内容
一、HTTPS 加密的内容
1.1 请求行
HTTP 方法(GET、POST、PUT、DELETE 等)
请求 URL 的路径和查询参数(如 /api/user?id=123)
HTTP 协议版本(HTTP/1.1、HTTP/2 等)
1.2 请求头(Request Headers)
Host - 目标主机名
User-Agent - 客户端标识
Content-Type - 请求体类型
Content-Length - 请求体长度
Authorization - 认证令牌(如 Bearer token、Basic Auth 等)
Cookie - 会话 Cookie 信息
Referer - 来源页面地址
Accept、Accept-Encoding、Accept-Language 等
所有自定义请求头
1.3 请求体(Request Body)
POST/PUT/PATCH 请求的表单数据
JSON/XML 格式的业务数据
文件上传内容
用户名、密码等敏感信息
1.4 响应内容(Response)
响应状态行(状态码、状态描述)
响应头(Content-Type、Set-Cookie、Cache-Control 等)
响应体(HTML、JSON、图片、文件等所有响应数据)
Set-Cookie 中的会话标识
总结:HTTPS 加密了 HTTP 报文的所有内容,包括请求行、请求头、请求体、响应行、响应头、响应体。从 TLS 握手完成后的第一个字节开始,后续所有 HTTP 数据都被加密传输。
二、HTTPS 未加密的内容
2.1 TLS 握手阶段可见信息
域名(SNI - Server Name Indication):TLS 握手阶段,客户端以明文形式发送目标域名,以便服务器选择合适的证书。但在 TLS 1.3 的 ESNI/ECH 扩展中,域名也可以被加密。
服务器的数字证书:证书中包含服务器公钥和域名信息,在握手阶段明文传输。
支持的加密套件列表:客户端支持的 TLS 版本和加密算法列表。
2.2 网络层可见信息
源 IP 地址和目标 IP 地址
源端口和目标端口(通常是 443)
TCP 层的序列号、确认号等控制信息
数据包大小和时间信息(可被用于流量分析)
TLS 协议版本
总结:HTTPS 无法隐藏网络层元数据(IP 地址、端口),也无法完全隐藏通信目标(域名在 TLS 握手 SNI 中可见)。这些信息可被中间网络设备(如防火墙、代理)观察到。
三、加密流程
HTTPS 的加密分为两个阶段:
3.1 非对称加密阶段(TLS 握手)
客户端与服务器协商加密算法
服务器发送数字证书(包含公钥)
客户端验证证书合法性
双方通过密钥交换算法(如 ECDHE)生成共享的对称密钥(会话密钥)
3.2 对称加密阶段(数据传输)
握手完成后,双方使用会话密钥进行对称加密通信
所有 HTTP 报文(请求和响应)都用会话密钥加密
对称加密效率高,适合大量数据传输
两者结合:非对称加密用于安全交换会话密钥,对称加密用于高效传输数据。
四、安全特性总结
机密性(Confidentiality):HTTP 报文内容被加密,中间人无法读取
完整性(Integrity):通过 MAC(Message Authentication Code)确保数据未被篡改
身份认证(Authentication):通过数字证书验证服务器身份,防止中间人攻击
前向安全性(Forward Secrecy):使用 ECDHE 等密钥交换算法,即使服务器私钥泄露,历史会话密钥也无法被推算
五、常见误区
误区 1:HTTPS 加密了域名
事实:完整 URL 路径和参数被加密,但域名在 TLS 握手的 SNI 字段中明文传输(TLS 1.3 ECH 可解决)。
误区 2:HTTPS 隐藏了访问目标 IP
事实:IP 地址在 IP 层可见,HTTPS 无法隐藏 IP 地址。
误区 3:HTTPS 加密了所有网络层数据
事实:HTTPS 只加密应用层数据(HTTP 报文),网络层和传输层头部信息不加密。
误区 4:HTTPS 保护了本地缓存和 Cookie 安全
事实:HTTPS 只保护传输过程,不保护浏览器本地存储的 Cookie、缓存等数据。
浙公网安备 33010602011771号