TLS 的前身是 SSL,如今通用的版本是 TLS 1.2 与 TLS 1.3。它做三件事:用证书验证服务端身份、协商出一把只有通信双方知道的会话密钥、对之后的数据做加密与完整性保护。浏览器地址栏里的 https:// 与锁形图标,背后就是一次完整的 TLS 握手。
在代理场景里的位置
代理协议使用 TLS 主要不是为了”更安全”,而是为了”更像普通流量”。Trojan 直接把代理数据塞进标准 TLS 连接并监听 443 端口,让服务器在外部看来就是一台普通的 HTTPS 网站服务器;VLESS 自身不加密,通常要外挂 TLS 或 REALITY 这类基于 TLS 特征的传输层才能上线使用。因此机场节点参数里常见的 tls: true、sni、skip-cert-verify 等字段,都是在描述这层握手怎么做。
其中 SNI(服务器名称指示)填写的域名会在握手初期以明文出现,它决定了链路中间设备看到的”你在访问哪个站点”;而 skip-cert-verify 表示跳过证书校验,虽然能让自签证书的节点连上,却也让中间人替换证书变得可行,不建议长期开启。
常见误解
一是把 TLS 等同于匿名。TLS 保护的是内容,不隐藏你连接了哪个 IP、什么时间连、连了多久,这些元数据服务商与链路两端依然可见。二是认为”开了 TLS 就不会被识别”。加密内容确实读不出来,但握手指纹、证书特征、流量时序仍可能构成识别依据,这也是 REALITY 等方案继续演进的原因。