什么是TLS会话恢复( TLS Session Resumption )
计算机科学家Erik Sy,Hannes Federrath,Christian Burkert和Mathias Fischer在最近的一篇论文中,描述了一种涉及传输层安全(TLS)会话恢复的新型跟踪技术。
TLS协议是SSL协议的升级版本,是广泛熟悉的传输加密协议,用于为客户端和服务器之间传输的数据进行加密,保护web通信安全。TLS协议的最新版本是TLS 1.3版本。
在访问HTTPS网站时,建立TLS连接需要通过网络进行一些来回协商,因此也存在一种方法可以通过更快捷的方式,恢复以前已经建立的会话,这就是“TLS会话恢复(TLS Session Resumption)”。
这项技术是通过预共享密钥(PSK)实现的,因TLS 1.3和旧版本而各不相同,往返时间分别为0 RTT 和1 RTT,而传统的方法涉及会话ID(sessions IDs)和会话记录单(session tickets)。
关键是会话恢复依赖于在初始握手期间传递给客户端设备的标识符,并且因为这个标识符(会话ID、会话记录单、PSK身份)在浏览器的TLS缓存中持续存在,所以可以像跟踪任何其他数字标识符一样对其进行跟踪。
对于在台式计算机上运行的浏览器来说,这不是问题,只要用户经常重启浏览器即可。但研究人员发现,移动设备可能数天甚至数周(根据充电时间),都不需要重启浏览器。
会话恢复标识符具有不同的到期时间,服务器可以提供非绑定的ticket_lifetime_hint字段,以秒为单位指定标识符的生命周期为32位无符号整数,这就是允许大约68年的有效期,但是TLS 1.2和1.3对凭证有效期的要求更加严格,分别是24小时和7天。
Sy,Federrath,Burkert和Fischer发现,Alexa前百万已启用TLS会话记录单的网站中,80%设定了10分钟甚至更短的到期时间,大约10%设置了高于24小时的到期时间。
研究人员指出,Facebook和谷歌由于他们的行为定向广告业务,指定的会话恢复到期时间比大多数网站要长。Facebook的到期时间设置为48小时,比99.99%的已知会话记录单到期时间要更高。谷歌的是28小时,高于前百万网站中97.13%的网站。
但是,如果正确的标识符可以在此之前放置,那么会话恢复凭证的到期也仍然可以继续跟踪用户。研究人员观察到,当客户端尝试恢复会话时,无论会话恢复或结束,它会将其TLS会话恢复标识符发给服务器。然后,该数据可以和由同一用户新建立的连接相关联,网站可以在每次访问中发布新的会话标识符,“只要两次访问之间不超过浏览器的会话恢复生命周期,就可以无限地跟踪用户。”
目前大多数web浏览器的默认配置可以降低这一风险,在调查的45个浏览器中,三分之二的浏览器仅允许会话ID和会话记录单的会话恢复有效期为60分钟。为了降低通过TLS会话恢复标识符进行跟踪的风险,boffins建议将TLS 1.3中指定的7天会话恢复上限时间减少至10分钟,以确保浏览器制造商解决第三方跟踪。
研究人员总结称,“最有效的技术是完全禁用浏览器中的TLS会话恢复。”而至关重要的是,不要放弃TLS和HTTPS,它们对于现代互联网保持安全与可信起到非常重要的作用,但会话恢复存在的问题,还需要业内浏览器和网站开发人员好好考虑。