苹果公司已经开始阻止在其Safari浏览器WebKit框架中的滥用指向向量的做法了,并允许泛用HSTS作为用户跟踪的“超级用户”。
HSTS--HTTP Strict Transport Security(HTTP严格传输安全) ,允许网站向浏览器声明它只能通过HTTPS访问。如果用户尝试点击某个网站的纯HTTP版本,他们将被重定向到HTTPS服务。
该功能的缺点是,一个网站可以使用重定向信息作为追踪超级电脑,因为HSTS标准规定网络浏览器应该记住重定向以备将来使用。
以下是RFC 6797中的描述:
UA [User Agents - El Reg ]需要保留关于网站的永久数据,这些数据由严格的安全策略支持,包含网站声明的整个时间跨度。此外,UA需要缓存“最新”的严格安全策略信息,以便允许网站更新。
RFC认识到了HSTS追踪的潜力,并且在2015年证明了被滥用的可能性。
那时候,我们报告了Sam Greenhalgh的研究,他写道,可以为每个使用的HTTPS重定向站点设置了一个HSTS“pin”,它是用户和站点独有的,并且可以从任何站点的浏览器设置中读取。这些数据可以在未来被恢复,并且用户没有机会清除它们。
“简而言之,攻击者可以为他们自己的域设置任意数量的子域名来开启或关闭HSTS,”Helme写道,而这个由Brent Fulgham 撰写的Webkit博客文章包含了苹果公司所观察到的内容。
攻击者可以为他们拥有的域名的任意数量的子域名开启或关闭HSTS
“试图追踪网站访问者的攻击者可以利用用户的HSTS缓存在该用户的设备上存储一位信息。例如,'用HTTPS加载这个域'可能代表1,而HSTS缓存中没有条目代表0。
“通过注册大量域名(例如,32个或更多),并强制从这些域的受控子集中加载资源,它们可以创建足够大的比特向量来唯一地表示每个网站访问者。”
Fulgham在观察到隐私攻击时写道,有必要在不破坏HSTS的情况下找到修复方案。
他写道,在WebKit中,苹果决定通过将HSTS状态限制在顶级域名(TLD)来缓解“攻击的双方” 并解决如何记录HSTS状态。
“缓解措施一”解决了Cookie设置问题:攻击者对TLD进行了长时间附加组件的迭代(下文中有一个例子):
https://bit00.example.com
https://bit01.example.com
https://bit02.example.com
...etc...
https://bit64.example.com
网络堆栈只设置要为加载的主机名或“TLD加1”设置的HSTS状态,并且“WebKit还限制可以链接在一起的重定向的数量,这将重新定位位数的上限即使延迟被认为是可以接受的,也是可以设置。“
领取专属 10元无门槛券
私享最新 技术干货