Web捆绑包将如何损害内容阻止程序,安全工具和开放式Web

Google正在为网络捆绑包提出新的标准。该标准允许将所有网站资源捆绑到一个文件中,从而防止浏览器操纵指向其子资源的链接。该系统威胁到将网络从一系列超链接资源(可以浏览,安全下载甚至更改)转变为不透明的全有或全无的信息块(例如PDF或SWF)。相信开放,透明,易于使用的网站的组织,用户,研究人员和监管机构必须遵守此标准。



尽管我们赞赏Web捆绑包和相关建议致力于解决特定挑战,我们相信有更好的方法可以实现相同的目标,而又不会损害网络的开放,透明,以用户为中心的性质。一种可能的替代方法是对可独立下载的子资源使用已签名的承诺。替代方法的描述将需要单独的文章,并且其中一些已经与规范的作者共享。



借助URL链接,网络是一个独特的开放系统



网络之所以有价值,是因为它以用户为中心,由用户控制,由用户编辑。即使是经验不足的用户也可以找出页面上有哪些Web资源,并确定他们的浏览器应加载什么资源。即使您不是专家,也可以使用它并安装适当的扩展程序或工具来保护您的隐私。



Web对用户的关注点不同于大多数应用程序和信息分发系统的工作方式。大多数应用程序是代码和资源的编译集合,这些代码和资源很难分离甚至无法分离以进行单独评估。这个重要的区别说明了为什么有这么多针对Web的隐私保护工具而很少针对“二进制”应用程序的隐私保护工具。



基本上,使Web与其他系统不同,更开放,更以用户为中心并与其他应用程序不同的是URL。由于URL通常指向单个资源,因此研究人员和活动家可以预先研究并得出关于这些URL的结论。其他用户可以使用此信息来决定是否要下载URL指向什么以及如何下载。更重要的是,专家可以下载tracker.com/code.js,确定它侵犯了隐私,并与他人共享该信息,以便他们知道将来不应该下载此代码。



此规则有例外,并且Web平台中没有此类要求-但是,通常希望URL基本上保持不变。这些期望分散在整个Web平台上-在缓存策略,用于部署代码的库指令方面,等等。



Web捆绑软件使URL毫无意义



Google最近提出了三个相互关联的标准-Web捆绑软件,签名HTTP交换(有时缩写为SXG)和加载。基本上,在本文中,我们将通过Web Bundle来表示所有这三个。到目前为止,Web Bundle一直在宣传广告系统(TURTLEDOVE,SPARROW)中使用的标准,并作为Google未来AMP系统的一部分-尽管在我看来这只是冰山一角。



在较高的层次上,Web Bundle是一种将资产捆绑在一起的方法。您的浏览器无需下载整个页面,图像和JavaScript文件,而是下载整个“捆绑包”,该文件包含用于加载页面的所有信息。 URL不再是到网络资源的通用全局链接,而是成为包中的任意索引。



换句话说,Web Bundle将网站转换为PDF(或Flash SWF文件)。 PDF包含呈现PDF所需的所有图像,视频和脚本-您无需单独下载它们。就便利性而言,这具有其优点,但是使得无法独立于整个文件来检查PDF的各个部分。因此,没有用于PDF的内容阻止工具。 PDF是一项全有或全无的提议,Web Bundles将把网站变成这样的提议。



通过将URL从有意义的全局标识符更改为任意的特定于软件包的索引,Web Bundles为广告商和跟踪者提供了强大的新方法来绕过隐私和安全工具。以下部分提供了一些示例来说明这一点。



Web Bundles将使网站绕过隐私和安全工具



Web捆绑软件中的URL是指向捆绑软件中资源的任意链接,而不是指向全局可访问资源的链接。这为站点提供了几种绕过隐私和安全工具的方法。



他们当然可以引用程序包外部的资源,但是这种行为会使程序包系统失去意义,因此本文不讨论此问题。



主要的解决方法是基于这样一个事实,即Web Bundles为资源创建了一个本地名称空间,而与世界其他地方所看到的无关,这可能导致名称混乱,这使活动家们在改善隐私和安全性方面所做的多年努力成为现实。隐私和研究人员。下面仅介绍启用Web Bundles的网站利用这种混乱的三种方式。



通过URL随机化绕过安全工具



以前,如果网站希望使用脚本来跟踪用户操作,则它将在HTML页面中包含<script>标记,该标记指向具有不变URL的相同脚本。研究人员或用户组可能已将此URL添加到EasyPrivacy列表中,以便隐私问题可以访问该站点而无需下载跟踪脚本。这就是当今大多数阻止工具的工作方式。



Web捆绑包通过随机分配不需要的资源的URL,使站点更容易绕过此类工具。当今网络中的名称具有全局名称,例如example.org/tracker.js,在一个Web Bundle中可以命名1.js,在另一个2.js中命名,在第三个3.js中命名,依此类推。Web Bundle通过将其免费提供给站点来鼓励这种做法。缓存变得毫无意义(因为您为每个用户提供了所有资源并缓存了整个程序包),并且您不需要维护URL标记(因为发送给用户的程序包已经包含随机URL)。



通过URL重用绕过隐私工具



更糟的是,Web捆绑包允许站点通过使每个URL中的相同URL指向不同资源来绕过阻止工具。在当前的网络上,假设example.org/ad.jpg指向任何用户相同的事物。网站很难使同一URL返回两个不同的图像。结果,阻止工具可以知道自己正在阻止所有人的广告,从而可以阻止ad.jpg。对于某些人来说,这将是广告,对于其他人来说,这将是公司徽标(这并非不可能,但很困难-关键是Web Bundle将当今复杂而脆弱的规避方法变成简单且免费的风险)。



Web捆绑软件以危险的方式修改了该系统。 Example.org可以将其软件包制作为其中一个example.org/ad.jpg将指向广告,在另一个广告中将指向网站徽标,在第三个广告中将指向其他内容。这不仅会使研究人员更难以编制列表,甚至使列表变得不可能,而且还将为网站提供毒害阻止列表的新方法。



通过隐藏危险的URL绕过隐私工具



最后,Web Bundles提供了更危险的解决方法。如今,uBlock Origin和Google的“安全浏览”等组织列出了包含恶意和危险Web资源的URL。这样的项目认为URL是危险资源的唯一或至少最重要的标识符。 URL的通用性和全局性使这些列表很有用。



Web捆绑包再次允许站点通过经过验证的URL链接到已知的有害资源,从而绕过了这种保护。在网络上,很难使网站对待cdn.example.org/jquery.js一样对待cdn.example.org/cryptominer.js(反之亦然)。在Web Bundles中,这将是一件微不足道的任务。



Web Bundles ,



Web Bundles规范的开发人员和支持者认为,这里没有新内容,并且上述绕过保护的所有方法已经存在。从技术上讲,这是正确的,但从本质上讲,这样的声明忽略了该过程的经济性,因此并未描述整个情况。 Web Bundle使这些昂贵,不可靠和复杂的技术便宜甚至免费。



例如,网站实际上可以使多个URL指向同一个文件,从而使广告拦截者的工作更加艰难,但是实际上,网站很难做到这一点。 URL随机化会损害缓存,它需要将随机URL映射存储到正确的资源,并将该信息传递给CDN,依此类推。站点可以做到这一点,但是它既昂贵又困难,因此很少这样做。



同样,今天的网站可能会使用Cookie或其他用户跟踪机制,以使同一URL对不同用户的工作方式有所不同,从而执行上述各种URL混淆攻击。但是,此方法不可靠(对新访客怎么办?),复杂(您需要维护和分发Cookie和资源值的显示)且价格昂贵(大多数Web服务器和托管服务都依赖于缓存),因此此类技术对于大型公司不拥有的站点实际上是实用的。不可用)。



通常,Web Bundle通过使其更便宜而使不必要的行为变得更加容易。



其他问题



本文介绍了Web Bundle对隐私和安全工具可能造成的危害。但是与此相关的标准还有其他问题。特别是:



  • SXG没有回扣系统。如果今天在网站上出现了恶意资源,则可以简单地更新该网站。如果站点使用SXG对Web Bundle进行签名,则签名者没有明确的方法告诉所有人“不再信任此特定程序包”。
  • 与Manifest v3的互操作性:Manifest v3限制扩展使用URL模式进行阻止。Web捆绑软件使这些URL毫无意义。将这两件事结合在一起,将使站点能够完全绕过阻止。
  • 与来源混淆。通过Loading + SXG,您可以从一台服务器下载内容,然后使用另一台服务器的隐私和安全设置执行该内容。用户混乱的可能性非常大-尽管我们相信Google员工正在积极致力于解决此问题,但用户面临的风险仍然很高。


结论



勇敢的人们正在努力在我们的浏览器以及我们制作和分发的工具中以及在我们对标准组织的倡导中改善网络隐私。本文只是我们确保Web标准继续关注隐私,透明性和问责制的一个示例。



我们尝试了很长时间,但没有结果,请注意Web Bundles标准的作者就列出的问题。我们敦促Google和Web Bundle搁置此建议,直到解决本文所述的隐私和安全问题为止。我们还鼓励Web隐私和安全性社区的成员加入此讨论,并在解决所描述的问题之前不要实施此标准。



一种方法是本文作者在Web Bundles项目上发表的帖子中的评论中描述这些问题其他选择包括做新的规格说明,告诉浏览器开发人员个人隐私保护工具对您个人有多重要,以及这些新标准对这些工具造成了什么风险。



All Articles