网络代理自动发现协议
网络代理自动发现协议(Web Proxy Auto-Discovery Protocol,WPAD)是一种客户端使用DHCP和/或DNS发现方法来定位一个配置文件URL的方法。在检测和下载配置文件后,它可以执行配置文件以测定特定URL应使用的代理。 历史WPAD协议仅概述了发现该文件位置的机制,而最常被部署的文件格式是最初由网景在1996年为Netscape Navigator 2.0设计的代理自动配置格式。[1]WPAD协议由一个包括Inktomi、微软、RealNetworks和太阳微系统(现为甲骨文公司)公司组成的联盟起草。WPAD被文档化的互联网草案已在1999年12月到期,[2]但WPAD仍被所有主要浏览器支持。[3][4]WPAD在Internet Explorer 5.0中被首次引入。 上下文若要为组织中的所有浏览器提供相同的代理策略,而无需手动配置每个浏览器,需要使用下列两种技术:
WPAD标准定义了两种备用方法,系统管理员可以用它们发布代理配置文件的位置,它们是使用动态主机设置协议(DHCP)或域名系统(DNS): 在获取第一个页面前,实现有此方法的网页浏览器给本地DHCP服务器发送一个DHCPINFORM查询,并使用服务器的回复中的WPAD选项。如果DHCP服务器没有提供所需的信息,则再使用DNS。假设用户的计算机网络名称为pc.department.branch.example.com,浏览器将依次尝试下列URL,以期成功在客户端的域中找到一个代理配置文件:
(注意:上述例子不是实际“在线”的URL,其中的域名被采用保留域名“example.com”替代。) 在Windows上,如果DNS查询不成功,那么将使用本地链路多播名称解析(LLMNR)或NetBIOS。[5][6] 要点DHCP比DNS有着更高的优先级:如果DHCP提供了WPAD URL,则不会进行DNS查询。只能配合DHCPv4使用,WPAD-Option选项没有在DHCPv6中定义。 应注意Firefox不支持DHCP,只进行DNS查询,并且非Windows、ChromeOS平台以及版本号小于13的Chrome也是如此。[3][4] 当构造查询数据包时,DNS查询将剔除域名的首个部分(客户端的主机名)并以wpad取代。然后,它通过移除更多域名的部分来在层次结构中“向上移动”,直到它找到一个WPAD PAC文件或者离开当前组织。 浏览器会猜测组织的边界。这种猜测对于“company.com”或“university.edu”等是正确的,但对于“company.co.uk”出错(见下面的“安全”章节)。 对于DNS查询,配置文件的路径始终为wpad.dat。对于DHCP协议,任何URL均可。由于传统原因,PAC文件通常名为proxy.pac(当然,此名称的文件将被WPAD DNS搜索忽略)[來源請求] 配置文件的MIME类型必须为“application/x-ns-proxy-autoconfig”。参见代理自动配置了解更多信息。 Internet Explorer和Konqueror是目前唯一同时支持DHCP和DNS方法的浏览器;大多数主要浏览器都支持DNS方法。[7] 前提条件为使WPAD生效,需要具备几个条件:
安全在极大简化组织中浏览器配置的同时,WPAD协议必须被小心使用:简单的疏失就可能留下漏洞,攻击者可以篡改用户浏览器中显示的内容:
通过WPAD文件,攻击者可以引导用户的浏览器到他们自己的代理,拦截和修改所有WWW流量。尽管2005年对Windows WPAD的处理应用了一个简单的修复,但它只解决了.com域的问题。在Kiwicon的一次演讲表示,世界上的许多地方仍有极其脆弱的安全漏洞,在新西兰为测试目的注册的一个示例域名在几秒内收到了来自全国各地的代理请求。几个wpad.tld域名(包括COM, NET, ORG和US)现在指向客户端环回地址以帮助防范此安全漏洞,虽然还有一些名称仍是注册状态(如wpad.co.uk)。 因此,管理员应确保用户可以信任组织中的所有DHCP服务器,并且组织内的所有可能的wpad域都在控制之下。此外,如果没有为组织配置wpad域,用户将转向域层次结构中的下一个(更高层级)wpad站点并使用其配置。这允许能在顶级域注册wpad子域名的人将自己的代理设为对所有流量或特定站点提供服务,从而施行对特定国家或区域的大范围中间人攻击。 除了上述“陷阱”,WPAD方法是获取一个JavaScript文件并在所有用户浏览器上执行,即使用户已禁用查看网页时使用的JavaScript。 参考资料
拓展阅读
|
Portal di Ensiklopedia Dunia