当前位置首页 > 百科> 正文

网路代理自动发现协定

2019-11-08 15:23:55 百科
网路代理自动发现协定

网路代理自动发现协定

网路代理自动发现协定(Web Proxy Auto-Discovery Protocol,WPAD)是一种客户端使用DHCP或DNS发现方法来定位一个配置档案URL的方法。在检测和下载配置档案后,它可以执行配置档案以测定特定URL应使用的代理。

基本介绍

  • 中文名:网路代理自动发现协定
  • 外文名:Web Proxy Auto-Discovery Protocol, WPAD

简介

网路代理自动发现协定(Web Proxy Autodiscovery Protocol),通过让浏览器自动发现代理伺服器,定位代理配置档案,下载编译并运行,最终自动使用代理访问网路。
代理自动配置档案(Proxy Auto-Config,PAC),定义了浏览器和其他用户代理如何自动选择适当的代理伺服器来访问一个URL。要使用 PAC,我们应当在一个网页伺服器上发布一个PAC档案,并且通过在浏览器的代理连结设定页面输入这个PAC档案的URL或者通过使用WPAD协定告知用户代理去使用这个档案。

相关技术

若要为组织中的所有浏览器提供相同的代理策略,而无需手动配置每个浏览器,需要使用下列两种技术:
  • 代理自动配置(PAC)标準:创建和发布一个中央代理配置档案。
  • 网路代理自动发现协定(WPAD)标準:确保组织中的浏览器在非手动配置的情况下找到档案。
WPAD标準定义了两种备用方法,系统管理员可以用它们发布代理配置档案的位置,它们是使用动态主机设定协定(DHCP)或域名系统(DNS):
在获取第一个页面前,实现有此方法的网页浏览器给本地DHCP伺服器传送一个DHCPINFORM查询,并使用伺服器的回覆中的WPAD选项。如果DHCP伺服器没有提供所需的信息,则再使用DNS。假设用户的计算机网路名称为pc.department.branch.example.com,浏览器将依次尝试下列URL,成功在客户端的域中找到一个代理配置档案:
  • http://wpad.department.branch.example.com/wpad.dat
  • http://wpad.branch.example.com/wpad.dat
  • http://wpad.example.com/wpad.dat
  • http://wpad.com/wpad.dat

要点

DHCP比DNS有着更高的优先权:如果DHCP提供了WPAD URL,则不会进行DNS查询。只能配合DHCPv4使用,WPAD-Option选项没有在DHCPv6中定义。 应注意Firefox不支持DHCP,只进行DNS查询,并且非Windows、ChromeOS平台以及版本号小于13的Chrome也是如此。
当构造查询数据包时,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方法。

前提条件

为使WPAD生效,需要具备几个条件:
  • 为使用DHCP,伺服器必须配置为提供“site-local”选项252(“auto-proxy-config”及字元串值“http://example.com/wpad.dat”(无须引号),其中“example.com”是网页伺服器的地址(无论点分十进制格式的IP位址或一个DNS名称)。
  • 为使用仅DNS模式,需要一个主机名为WPAD的DNS项目。
  • 在WPAD地址上的主机必须可以提供网页。
  • 在这两种情况下,网页伺服器必须配置为提供MIME类型为“application/x-ns-proxy-autoconfig”的WPAD档案。
  • 如果使用了DNS方法,名为wpad.dat的档案必须位于WPAD网页伺服器的根目录。
  • PAC档案的细节见代理自动配置条目。
  • 在一个虚拟主机环境中配置WPAD伺服器时请小心使用。在使用自动代理检测时,Internet Explorer 6及更早版本中的WinHTTP和WinINET会传送“Host: <IP address>”头,在IE7+和Firefox中则传送“Host: wpad”头。因此,建议将wpad.dat档案託管在默认虚拟主机而非其自身下。
  • Internet Explorer版本6.0.2900.2180.xpsp_sp2_rtm会向网页伺服器请求“wpad.da”而不是“wpad.dat”。
  • 如果您使用Windows Server 2003(及更新版本)作为您的DNS伺服器,您可能必须禁用DNS伺服器全局查询阻止列表(DNS Server Global Query Block List)或修改注册表以编辑阻止查询的列表。

安全

在极大简化组织中浏览器配置的同时,WPAD协定必须被小心使用:简单的疏失就可能留下漏洞,攻击者可以篡改用户浏览器中显示的内容:
  • 网路内部的攻击者可以创建一个DHCP伺服器,提供一个恶意PAC脚本的网址。
  • 如果网路是“company.co.uk”并且http://wpad.company.co.uk/wpad.dat档案未提供,浏览器将请求http://wpad.co.uk/wpad.dat。浏览器不会测定这是否仍处在公司内部。
  • 同样的方法已被http://wpad.org.uk使用。它提供一个wpad.dat档案从而将用户的所有流量重定向到一个网际网路拍卖网站。
  • 实施DNS劫持的ISP可能阻断WPAD协定的DNS查询,从而将用户引导至非代理伺服器的主机。
  • 泄露的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。
声明:此文信息来源于网络,登载此文只为提供信息参考,并不用于任何商业目的。如有侵权,请及时联系我们:baisebaisebaise@yeah.net