什么是TLS
TLS即安全传输层协议,用于在两个通信应用程序之间提供保密性和数据完整性。
该协议由两层组成:TLS记录协议(TLS Record)和TLS握手协议(TLS Handshake)。
1999年,SSL因为应用广泛,已经成为互联网上的事实标准。IETF就在那年把SSL标准化。标准化之后的名称改为TLS,中文叫做传输层安全协议。所以TLS1.0可以认为是SSL3.1。
TLS原理
HTTPS是在HTTP和TCP之间加了一层TLS,这个TLS协商了一个对称密钥来进行HTTP加密。
同时TLS不仅仅可以用在HTTP,也可以用在FTP,Telnet等应用层协议上。
ssL/TLS实际上混合使用了对称和非对称密钥,主要分成这几步:
使用非对称密钥建立安全的通道
客户端请求HTTPS连接,发送可用的TLS版本和可用的密码套件
服务端返回证书,密码套件和TLS版本
用安全的通道产生并发送临时的随机对称密钥
生成随机对称密钥,使用证书中的服务端公钥加密,发送给服务端
服务端使用私钥解密获取对称密钥
使用对称密钥加密信息,进行交互
由于隐私浏览器技术的日渐成熟,网站越来越无法通过 Cookie 和网页浏览器特征来追踪用户,但道高一尺魔高一丈,现在这些网站会用 TLS 1.3 中的 TLS 对话恢复机制追踪用户。
包括 Facebook 以及 Google 在内的等公司,过去都会使用 HTTP Cookie 以及网页浏览器特征追踪用户,但随着用户越来越注意保护自己的隐私,更多的人开始使用强化隐私的浏览器,以隐私模式或是扩展来限制网页追踪,这使得上述两项技术几乎失灵。另外,通过 IP 位置追踪用户也受到限制,因为用户有可能以 NAT 共享公共 IP 地址,而且网站也无法跨过不同的网络追踪装置。
网站于是开始把目光瞄向了最新的 TLS 1.3 协议上,它们的追踪技术开始转向使用 TLS 对话恢复机制。TLS 对话恢复机制允许网站利用早前的 TLS 对话中交换的密钥,来缩减 TLS 握手程序,而这也开启了让网站可以链接两个对话的可能性。由于重启浏览器会顺便清空缓存,所以这个方法仅在浏览器未重启的情况下,网站才能通过 TLS 对话恢复进行连续的用户追踪。但是这个使用习惯在移动设备上完全不同,移动设备用户很少重启浏览器。
用TLS协议追踪用户
主要是使用TLS对话恢复机制。
TLS对话恢复机制允许网站利用早前的TLS对话中交换的密钥,来缩减TLS握手程序,而这也开启了让网站可以链接两个对话的可能性。由于重启浏览器会顺便清空缓存,所以这个方法仅在浏览器未重启的情况下,网站才能通过TLS对话恢复进行连续的用户追踪。
要防止网站通过 TLS 对话恢复追踪用户,需要修改 TLS 标准和常见浏览器的配置,而目前最有效的方式就是完全禁用 TLS 对话恢复功能。