TechTok #9. 浏览器扩展如何工作?什么是防火墙?
去年12月我们推出 TechTok 系列时,就将其设想为直接回答读者关于广告拦截和隐私保护相关技术问题的机会。流程如下:您提问,我们回答。多亏了大家通过专属在线表单提交的问题,TechTok 系列已经持续了八期。不过今天我们要稍微偏离一下常规。
今天的两个问题都来自 AdGuard 首席技术官兼联合创始人 Andrey Meshkov,他注意到一些常见技术术语经常被提及却很少得到清晰解释。所以,让我们言归正传来看第一个问题:
浏览器扩展如何工作呢?
首先让我们定义一下,什么是浏览器扩展。简而言之,它们是在浏览器中运行并改变用户网络体验的小型程序。地址栏旁边那些小图标吗?没错,那就是浏览器扩展。它们功能各异,从微小调整到重大升级都有。有些只是改变链接打开方式或自动复制文本,有些则更进一步,拦截广告和追踪器、作为 VPN 工作,甚至使用 AI 帮助撰写或总结内容。通常用户只需要知道如何将扩展添加到浏览器即可。不过,所有扩展究竟如何工作?让我们一探究竟。
浏览器扩展的关键就在其名称中。与独立软件不同,它们离不开浏览器。浏览器与扩展交互的核心是 API(全名:应用程序编程接口),是指浏览器提供的方法和属性集合,允许扩展基于权限有限访问某些浏览器功能和数据。例如,如果 API 允许创建新标签页或关闭现有标签页,拥有必要权限的扩展就能通过访问该 API 实现这些操作。扩展想要访问的功能和数据越多,所需权限就越多,因此在浏览器安装新扩展时要特别注意权限请求。这一点我们下面再详谈。
一般来说,每个浏览器开发者都会创建适合自己浏览器的 API。这就是用户常会发现适用于 Chrome 的扩展在 Safari 上无法工作的原因,反之亦然。这当然不够理想,因此业界一直在努力标准化这些 API,WebExtensions API 就是其中之一。得益于它,Chrome、Firefox 和 Safari 等主流浏览器提供高度兼容的扩展 API,使开发者能创建跨浏览器工作的扩展而只需极少修改。但这并非必然。许多情况下让扩展在不同浏览器上流畅运行需要大量工作,并非所有开发者都有资源和意愿走这额外的一步。
回到安全问题上,让我们谈谈浏览器对扩展的限制。浏览器扩展在所谓的沙盒中运行,这种封闭环境只允许每个扩展访问浏览器 API,限制其与操作系统和其他应用的交互。每个扩展都有一个清单,声明其执行功能所需的权限(例如修改页面内容或发起和取消下载的权限)。浏览器会强制执行这些权限,不允许扩展越权操作。这样即使扩展被攻破,至少在理论上也无法对其影响范围外的进程和文件造成损害。
您常会看到不要从官方商店外安装浏览器扩展的警告,因为商店提供额外防护层。开发者向商店提交扩展时需经过审核流程,期间必须说明扩展为何需要所有请求的权限。如果审查代码后发现请求权限超出扩展功能所需,就可能会删除。不过审核流程并非万无一失。有很多例子表明 Chrome 商店和其他流行商店收录的扩展也会作恶,窃取用户数据甚至进行更糟的行为。因此安装前务必仔细检查扩展的权限。
谈及扩展安全,不得不提 Chrome 向 Manifest V3 扩展平台的转型。我们多次撰文讨论,甚至在广告过滤开发者峰会进行了专题演讲,因为它对浏览器扩展(尤其是广告拦截扩展)影响深远。虽然给开发者带来不少困扰,但客观来说 Manifest V3 提升了 Chrome 扩展的安全性,禁止扩展执行远程托管或任意代码,所有代码必须经过审核,这能大幅降低安全风险。
接下来是第二个问题:
什么是防火墙?
这个问题若要全面展开,恐怕十张页都写不完。但我们不妨抛开细枝末节,直击关键要点。首先解答最根本的疑问:为什么称之为「防火墙」?
「防火墙」一词最初并非技术术语,它的出现远早于互联网时代。其本义是指建筑物内部用于阻隔火势蔓延的实体墙体。这种墙体比普通墙壁更厚实,完全由防火建材构成,通常不设窗户等任何可能让火焰穿透的结构。
计算机网络世界的防火墙诞生于1980年代末。正如其名,它的设计初衷同样是阻止某种事物的扩散,这里指的是有害或不必要的网络流量。
第一代防火墙被称为「包过滤防火墙」(英文:packet filters)。它们工作在网络层,通过分析数据包(互联网传输中被分割的最小数据单元)来检测流量。其过滤规则基于源/目标 IP 地址、端口号和传输协议等属性,核心机制是通过预定义规则集来允许或阻断流量。
1990年代初,第二代「状态检测防火墙」(英文:stateful firewalls)问世。与前代不同,这类防火墙能持续追踪流量状态,不仅检查单个数据包,还能判断数据包是否属于已建立的合法会话,而非随机传入的请求。
随着互联网的不断发展,防火墙技术也在持续演进。Web 应用的兴起催生了「应用层防火墙」(英文:application-layer firewalls),因其工作在应用层而得名。这类防火墙能够基于特定应用协议(如网页浏览器加载网站使用的 HTTP 协议,或将域名解析为 IP 地址的 DNS 协议)来理解和过滤流量,而不仅限于 IP 地址和端口判断。到了2008年左右,防火墙开始集成深度包检测(DPI)技术,这项技术使其能够分析数据包的实际内容,而不仅是头部信息。
就防火墙的实现形式而言,主要分为以下几种:可以是硬件防火墙,即部署在网络边界的物理设备(如家用路由器);可以是软件防火墙,例如运行在终端设备上的流量过滤程序(Windows Defender 防火墙等);甚至可以是虚拟/云防火墙,通过远程部署实现网络或设备的防护,无需依赖特定硬件。
您可能好奇:AdGuard 广告拦截程序算防火墙吗?简而言之并非传统意义上的防火墙。不过,我们的产品确实具备防火墙特性:AdGuard Android 版特别设有防火墙模块,用户可通过该功能管理设备应用的网络访问权限,按需阻止或放行特定应用的联网请求。
当某些应用出现可疑行为(例如在未使用时仍发送数据)时,此功能就显得尤为重要。通过AdGuard Android 版的防火墙模块,用户可以阻断指定应用的网络访问、在屏幕关闭时禁用后台流量,甚至能在漫游时切断移动数据连接。这一切都无需 Root 权限手机或深入复杂的系统设置,即可全面掌控应用联网的方式与时机。
尽管防火墙本是保护家庭网络和设备隐私安全的重要工具,但如今这一术语已更多与网络审查相关联,这在很大程度上源于中国「防火长城」(英文:Great Firewall of China)的全球影响。对此我们有必要稍作说明:
中国防火长城是一套由国家主导的大规模网络管理系统,其主要功能包括对境外互联网内容的访问限制,涉及 Google、Facebook、Twitter 和 YouTube 等服务平台。该系统采用了 DNS 解析干预、关键词网址过滤、深度数据包检测(DPI)以及数据包模拟等多种技术手段来实现流量管控。全球范围内还存在其他类似的以网络安全为设计初衷的国家级网络管理系统,这一议题值得单独撰文深入探讨。