跳至正文
中文
立即开始

SSL/TLS

SSL/TLS 是用于认证服务器并加密传输中数据的技术。SSL 已淘汰,现代安全连接使用 TLS。

文章目录(8 个章节)

SSL/TLS 保护什么

TLS 为客户端与服务器之间传输的数据提供三重保护:

  • **机密性:**加密可防止没有会话密钥的人读取内容。
  • **完整性:**认证加密能检测出应用数据在传输途中是否遭到篡改。
  • **服务器认证:**证书可帮助客户端确认连接到的是所请求的域名。

成功的 TLS 握手会验证证书,并确认服务器持有对应的私钥,以证明服务器确实代表该域名,同时建立加密连接。但这不能证明网站本身可信。

TLS 连接的工作原理

HTTPS 经由 TCP 传输时,TLS 握手会在 TCP 连接建立后开始:

  1. 客户端发送 ClientHello,其中包含支持的 TLS 版本和加密选项。
  2. 服务器选择兼容的选项并发送证书。
  3. 客户端检查证书中的域名、到期时间和签名链。
  4. 双方生成会话密钥,然后交换加密的应用数据。

例如,浏览器向 https://example.com 发送 GET / HTTP/1.1 前,通常会先连接 443 端口并完成这一握手。

SSL 与 TLS 的区别

协议 状态 要点
SSL 2.0 和 3.0 已淘汰 不应启用
TLS 1.2 广泛支持 使用现代配置时安全
TLS 1.3 最新版本 移除了过时算法

人们仍会说“SSL 证书”,但如今网站实际会将这类证书用于 TLS。SSL 主要作为加密网络连接的俗称保留了下来。

TLS 如何通过代理工作

使用 HTTP 代理 时,HTTPS 客户端通常会要求代理建立隧道:

CONNECT example.com:443 HTTP/1.1
Host: example.com:443

之后,TLS 握手会通过该隧道传输。代理可以看到目标地址和连接元数据,例如时间信息和字节数,但通过标准隧道传输时,代理无法读取加密的 HTTP 标头或正文。隧道内的网站流量始终保持端到端加密。普通 HTTP 代理未加密的是 CONNECT 请求本身,其中包括代理认证信息;HTTPS 代理 还会加密客户端与代理之间的这段链路。

执行 TLS 检查的代理会终止客户端的 TLS 连接,并另行与网站建立第二条 TLS 连接。要让这种方式正常工作,客户端必须信任代理的证书颁发机构。

使用代理会改变网站看到的源 IP,但不会改变客户端的 TLS 行为。网站仍可通过 TLS 指纹识别 对客户端分类。这种方法会分析扩展顺序、支持的算法等握手细节。

常见问题

SSL 和 TLS 一样吗?

不一样。SSL 是 TLS 已淘汰的前身。人们仍经常用“SSL”代指 TLS 或 HTTPS 证书。

代理能读取 HTTPS 流量吗?

如果代理仅承载 TLS 隧道,通常不能。若代理终止 TLS,而且设备信任其提供的证书,代理就能读取流量内容。

SSL/TLS 会隐藏我的 IP 地址吗?

不会。TLS 会加密应用数据,但不会隐藏路由信息。不使用代理时,网站看到的是公网 IP;使用代理后,看到的是代理的出口 IP。

相关术语

查看全部术语