浏览器代理有哪些合法用途?

信息安全 代理人
2021-08-12 23:10:50

我唯一一次使用浏览器的代理设置是在设置 Burp Pro 时,这让我想知道:

这些设置的原始用例是什么?除了测试/调试之外,此功能的设计目的是什么?人们真的在野外使用它来进行公司内容过滤、访问控制等吗?

(注:我对 Tor 或其他匿名技术不太感兴趣;我对传统基础设施/原始设计意图更感兴趣)

作为参考,我说的是这些设置:

Firefox 代理设置页面

4个回答

HTTP 代理的早期用途之一是缓存代理,以便更好地利用昂贵的带宽,并通过缓存用户附近大量使用的内容来加快冲浪速度。我记得有一次 ISP 为用户使用了明确的强制代理。当时互联网上的大多数内容都是静态的,而不是特定于用户的,因此缓存非常有效。但即使多年后,透明代理(即不需要显式配置)仍然在移动网络中使用。

另一个主要的早期用例是公司中的代理。这些用于限制访问,也仍然用于缓存内容。虽然许多外围防火墙在不需要配置的情况下使用透明代理,但经典的安全 Web 网关通常至少具有要求显式(非透明)代理访问的能力。通常并非所有流量都通过代理发送,即内部流量通常通过一些显式配置或使用根据目标 URL 定义代理的PAC 文件来排除。该领域常用的代理是免费的Squid 代理,它提供广泛的 ACL、分布式缓存、身份验证、内容检查、SSL 拦截等。

使用显式代理进行过滤的优点是可能需要针对代理的带内身份验证,即通过用户名而不是源 IP 地址来识别用户。另一个优点是来自客户端的连接在代理处结束,如果 ACL 检查正常并且可能在重写部分请求之后(例如确保标Host头实际上与目标主机匹配)。与 inline-IDS/IPS(这是许多 NGFW 中的基本技术)相反,来自客户端的连接设置已经转发到最终服务器,并且 ACL 检查基于Host标头,它可能与客户端连接的 IP 地址匹配,也可能不匹配。这实际上被一些恶意软件 C2 通信用来绕过阻塞或检测,方法是在标头中声明一个列入白名单的主机,Host但实际上具有不同的目标作为 IP 地址。

一些例子如下:

  • 启用防火墙规则,例如“代理服务器到 80、443 上的任何目的地”,而不是从“任何内部到任何外部”
  • 通过日志监控所有访问的网站
  • 控制、限制、过滤通过强制执行规则访问的网站 - 这些可能是已批准网站的列表、列入黑名单的网站、内容类别等
  • 强制用户身份验证以使用互联网 - 例如限制域用户、证书持有者
  • 如果您在 VPN、本地办公室、工作站、服务器上,则可以为不同的上下文设置单独的出口点

出于“原始”的原因,回想一下 1993 年发布的 Netscape 0.9。它有一个“邮件和代理”选项对话框(根据手册的副本)。那时,大学校园和政府之间的大多数 Internet 链路是 56-kbit 或部分 T1 线路。HTTP 代理可以通过多种方式提供帮助,甚至是必需的:

  • Web 浏览器可能位于没有(IP 级别)路由到 Internet 的 TCP/IP LAN 上,但在该 LAN 和 Internet 上具有双宿主主机。双宿主主机可以运行 HTTP 代理服务和 DNS 代理服务,允许 LAN 上的客户端访问 Web。(请注意,描述标准私有地址范围和 NAT 的 RFC、RFC 1597RFC 1631直到 1994 年 3 月和 5 月才发布。)
  • 即使 LAN 有可路由的地址,或者即使在部署了 NAT 之后,异地带宽也可能远低于客户端和潜在代理位置之间的本地带宽。只要客户端浏览大量相同的、静态的或缓慢变化的内容,代理就会为客户端(通过快速返回缓存的内容)和网络运营商(通过为其他网络功能,或在按数据包或按字节计费时减少数据使用费用)。
  • 如果有足够多的最终用户支持代理,那么 10 年后被称为“Slashdot 效应”的优势就会消失:全球流行内容的源服务器只需将其提供给每个代理,而不是每个最终用户。

当然,通过指定进程发送所有 HTTP 流量也使该进程成为应用安全策略的良好控制点:通过(解码)请求或响应正文中的关键字过滤;只允许对代理进行身份验证的用户访问;记录。

是的,有些组织将代理策略“推送”到他们控制的最终用户设备,并通过边界路由器的限制性策略强制执行。

另请注意,即使您认为自己在“干净”的网络上浏览,您的流量也可能通过代理;例如,参见Linux 和 Squid mini-HOWTO 的透明代理

但确实,明确配置的代理可能不会带来什么好处,甚至会使当今 Internet 上的浏览​​变得更糟。当流行的网站使用 CDN 时,大多数内容都是动态的,甚至看起来可以缓存的内容(如 Google 地图图块和 Youtube 视频数据)也会因浏览器版本、操作系统、屏幕大小甚至随机 cookie 的不同而不同为了使其不可缓存,缓存为最终用户附近的缓存节省了很少的带宽(尽管原始服务器通常在它们前面有缓存)。对于不可缓存的内容,另一个缓存会为每个请求添加 RTT,从而使浏览速度变慢。

是的,它们经常用于企业界。现在可能比过去少,但几年前,它们通常是从本地网络到 Internet 的唯一网关。在许多情况下,甚至只有部分域用户被授权访问 Internet,并且会在网络边缘配置像 ISA 这样的代理服务器,用户必须进行身份验证才能遍历它。

除了简单地限制谁可以访问互联网之外,这实际上还用于内容过滤、内容检查和报告谁花费了所有工作时间在 Monster.com 上寻找新工作。还有其他与安全无关的功能,例如缓存。20 年前,数百甚至数千人使用相对较小的管道连接到 Internet 的设施(如分数 T-3 甚至 T-1)并不少见。能够在本地网络边缘缓存内容非常有用,因此外部世界非常有限的带宽不会因对相同资源的重复请求而饱和。