HTTPBIS | W. Chow |
Internet-Draft | Mobolize |
Intended status: Standards Track | S. Mishra |
Expires: April 30, 2015 | Verizon Communications |
J. McEachern, Ed. | |
ATIS | |
October 27, 2014 |
Web Proxy Description (WPD) Proxy Discovery
draft-chow-httpbis-proxy-discovery-00
This document proposes mechanisms for applications to discover web proxy description files across different network configurations that are complementary to but not reliant upon an external network service or function, such as DHCP or DNS.
This Internet-Draft is submitted in full conformance with the provisions of BCP 78 and BCP 79.
Internet-Drafts are working documents of the Internet Engineering Task Force (IETF). Note that other groups may also distribute working documents as Internet-Drafts. The list of current Internet-Drafts is at http://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress."
This Internet-Draft will expire on April 30, 2015.
Copyright (c) 2014 IETF Trust and the persons identified as the document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include Simplified BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Simplified BSD License.
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in [RFC2119].
[I-D.nottingham-web-proxy-desc] proposes a web proxy description ("WPD") format and use of well-known URI to download it, but it does not specify a mechanism to identify the authority for the URL of the WPD.
This document proposes a process to bootstrap the WPD process, and outlines mechanisms to locate the authority for the WPD file, and how to validate that authority.
The mechanisms specified in this document leverage HTTP to enable a wide variety of user agents to discover a WPD without reliance on extensions being implemented in another protocol or external network service, such as DNS or DHCP. This approach also allows the WPD to be automatically discovered for a zero configuration setup.
The mechanisms in this document were designed to enable the following use cases:
The mechanisms proposed in this document are designed to meet the following goals:
The location of a proxy will influence the characteristics of a proxy and how it is used. This document considers the following proxy locations:
A proxy's location determines the authority that is used to discover the WPD that describes it. The WPD authority may be distinct from the proxies described in the WPD, so the WPD Server is considered a logically distinct entity from the proxy. This document describes several possible WPD authorities, and provides a mechanism to identify and authenticate each one in the following sections.
In this case, the authority is pre-configured into the device or application, and is used by the UA to probe for the appropriate proxy. This mechanism would be limited to instances where the proxy provider is explicitly authorized to control the configuration of the device or application. Examples would include "locked" mobile phones, PCs owned by the enterprise/school, or a browser associated with a cloud-based compression service.
+-------+ +------+ +----------+ +---------+ |Origin | |Client| |WPD Server| | Proxy | |Server | +--+---+ +----+-----+ +---------+ +---+---+ | | | | 1 -->| | | | | | | | |UA: GET https:// | | | |<WPDAUTH>/<WPDURI> | | | |------------------->| | | | | | | |UA: set up TLS connection | | |------------------------------------>| | | | | | |UA: send HTTP/s requests |Proxy: forwards | |------------------------------------>|----------------->| | | | | | | | | | | | | 1: OOB-defined WPD authority
In this case, the UA probes the network for the WPD, allowing the current network to advertise its web proxies, such as a privacy proxy on a public WiFi hotspot, optimization proxy on a MiFi device, or a content filtering proxy on a corporate network. This approach allows the proxy configuration to be customized for the current network, and is dynamically updated when the user device attaches to a different network.
+-------+ +------+ +----------+ +-----+ +----------+ |Origin | |Client| | WiFi AP | |Proxy| |WPD Server| |Server | +--+---+ +----+-----+ +-----+ +----------+ +---+---+ |Device connects to | | | | |WiFi access point | | | | |------------------->| | | | | | | | | |UA: captive portal | | | | |detect/login | | | | |------------------->| | | | | | | | | | | | | | |UA: GET http://*/<WPDURI> | Redirect | | |-------------------------------------. | | | | | | | | .--<------------------------------------' | | | |UA: GET https://<WPDAUTH>/<WPDURI> | | | '-|---------------------------------------------->| | | | | | | | | | | | |UA: set up TLS connection | | | |---------------------------------->| | | | | | | | | | | | | |UA: send HTTP/s requests |Proxy: forwards | |---------------------------------->|------------------------->| | | | | |
In this case, the UA probes for the WPD using the origin server as the authority for the WPD URI. This allows the content provider to specify a proxy for its content. The scope of the WPD from the origin server is inherently limited to the traffic to/from that origin and the UA MUST enforce this.
+-------+ +------+ +---------+ |Origin | |Client| | Proxy | |Server | +--+---+ +---------+ +---+---+ | | | | | | |UA: GET https://<ORIGIN>/<WPDURI> | |------------------------------------------->| | | | |UA: send HTTP/s requests |Proxy: forwards | |------------------------>|----------------->| | | | | | | | | |
This document does not contain any considerations for IANA.
This document specifies mechanisms to locate the authority for the WPD across different applications and network types, so it is important that these mechanisms allow the user agent to securely authenticate the WPD. Therefore, this document proposes that WPD requests SHOULD use the "https" scheme whenever possible to ensure strong authentication for the WPD server for each of the mechanisms. However, certain network scenarios may provide strong authentication of the WPD authority through other means, such as through operational security on a private network, so this document does not preclude those alternatives.
The proxy can observe unencryped traffic that traverses it, but it MUST NOT alter the end-to-end encryption for "https" requests. Also, the scope of the WPD and the traffic it affects is enforced by the user agent. In the case where the WPD is advertised by the content provider, the user agent MUST ensure that the scope of the network traffic is limited to the authority specified when requesting that WPD. This ensures that an origin server can only direct requests to proxies for its own traffic and it cannot reroute traffic for other origins.
The editor and authors thank Dan Druta, Vijay K. Gurbani, David Lerner, Peter Lepska, John Border and Chi-Jiun Su for feedback and suggestions.