- From: Adrien de Croy <adrien@qbik.com>
- Date: Wed, 15 Jan 2014 21:34:39 +0000
- To: "Peter Lepeska" <bizzbyster@gmail.com>, "Yoav Nir" <synp71@live.com>
- Cc: "Salvatore Loreto" <salvatore.loreto@ericsson.com>, "HTTP Working Group" <ietf-http-wg@w3.org>, "Robert Skog" <robert.skog@ericsson.com>, "Hans Spaak" <hans.spaak@ericsson.com>, "John Mattsson" <john.mattsson@ericsson.com>
What I would expect in this mechanism, is that you wouldn't get the
Client Hello blocked unless the proxy was asserting that it must be
used.
Otherwise you'd need 2 different types of response - 1 "you must use
me", or 2 "you can try again and I won't block it next time honest"
In case 1, the user gets to choose between
1. I will trust the proxy; or
2. I will not use the internet
which is a perfectly reasonable choice IMO. Just like the EULA page on
many a software installer.
Cheers
Adrien
------ Original Message ------
From: "Peter Lepeska" <bizzbyster@gmail.com>
To: "Yoav Nir" <synp71@live.com>
Cc: "Salvatore Loreto" <salvatore.loreto@ericsson.com>; "HTTP Working
Group" <ietf-http-wg@w3.org>; "Robert Skog" <robert.skog@ericsson.com>;
"Hans Spaak" <hans.spaak@ericsson.com>; "John Mattsson"
<john.mattsson@ericsson.com>
Sent: 16/01/2014 07:31:03
Subject: Re: new draft trusted-proxy20-00
>More questions:
>
>"The proxy intercept and does not forward the ClientHello message,
> instead it returns a signed error message ("Here be proxies")
> containing a certificate identifying the proxy. "
>
>What happens if the client decides that it does not trust the proxy?
>Does it send a new ClientHello that the proxy forwards? How does the
>proxy distinguish between the first ClientHello that it does not
>forward and the second ClientHello that it does forward?
>
>Or, on the other hand, is trusting the proxy required to use the
>network in the use case for this new mechanism?
>
>Thanks,
>
>Peter
>
>
>
>But taking a step back, it seems like you are proposing a way for a
>proxy to advertise its presence for HTTPS connections. D
>
>On Mon, Jan 13, 2014 at 9:55 AM, Yoav Nir <synp71@live.com> wrote:
>> Hi, Salvatore
>>
>> Thanks for writing this. A few comments:
>>
>> Section 3.1 has the HTTP proxy indicate its presence by intercepting
>>the
>> ClientHello and returning an error. There are some issue here:
>>
>> * An explicit proxy does not have to be on the data path, and in
>>fact
>> it usually isn't. While MitM proxies have to intercept, clients
>>open
>> connections to explicit proxies, so they're likely to reside in a
>> data-center (sometimes even in the cloud). Blocking HTTP(S) falls
>>to
>> a network firewall. In other words, a MitM proxy usually needs to
>>be
>> co-located with the firewall, but not so for an explicit proxy.
>> * I don't get how the firewall is supposed to redirect the client to
>> the proxy. The third paragraph says "The error could for e.g. be
>> sent using the TLS Alert protocol, but this requires registration
>>of
>> a new error type." I didn't understand whether this is what you
>>are
>> recommending (at least for this solution) or whether there are
>>other
>> options. It should be noted that in order for the firewall to be
>> able to send TLS alerts, it has to MitM at least TCP, as the
>>browser
>> thinks it is opening a connection with the server. If we were
>> specifying the Internet from scratch, we could define an ICMP
>> message that can be sent to the browser in response to the TCP-SYN
>> packet. I'm not sure how well that would work, and whether the
>> operating systems that we're using even have APIs to tell the
>> application what the content of the ICMP was, so I guess we're
>>stuck
>> with firewalls impersonating servers at the TCP layer.
>>
>> Section 4.1 describes tunneling by using the HTTP CONNECT method, but
>>then
>> the connection between the UA and the proxy is described at an HTTPS2
>> connection, and the proxy seems to have access to the request frames.
>> Specifically, a decryption key is passed in an HTTP2 frame. To add to
>>the
>> confusion, the title of this section is "Tunneling". The CONNECT
>>method does
>> go with the term "Tunneling", but then the TLS session is between the
>>UA and
>> the server, while the proxy only sees TLS records and cannot read any
>>of the
>> HTTP2 frames, which may share a TLS record, or span several TLS
>>records.
>> With tunneling, the proxy does little more than moving packets back
>>and
>> forth.
>>
>> The alternative to tunneling, that is sort-of described in section
>>4.2 is
>> the use of a GET method. In this case the client really opens an
>>HTTPS(2)
>> connection to the proxy, and then sends a GET method for resource
>> "https://server.example.com/resource.html". The server has a totally
>> separate TLS connection with the server and tunnels the requests back
>>and
>> forth. If the proxy can reply to a request from its own cache, it may
>>do so.
>> If it is configured to inspect the content to filter out
>>inappropriate
>> content, it can do that as well. *This* is a trusted proxy. A proxy
>>with
>> tunneling does not need to be trusted any more than the Internet
>>does.
>>
>> Lastly, section 4.2 says that the UA "tunnels" all requests towards
>>the same
>> web server in a single connection. In fact, the UA can tunnel all of
>>its
>> requests towards all servers in the world through this connection.
>> Similarly, the proxy could unify the traffic for several UAs into a
>>single
>> connection with the server. This would work for normal servers, but
>>do we
>> know that no servers make any assumptions about requests based on TCP
>> connection? I know they shouldn't - that's what HTTP cookies are for
>>- but
>> it's possible that some do.
>>
>> Yoav
>>
>>
>>
>> On 10/1/14 1:51 PM, Salvatore Loreto wrote:
>>>
>>> Hi there,
>>>
>>> we have submitted a new draft with the aim to continue the
>>>discussion on
>>> explicit and trusted proxy as intermediary of HTTP2S traffic:
>>>
>>>
>>>http://www.ietf.org/internet-drafts/draft-loreto-httpbis-trusted-proxy20-00.txt
>>>
>>>
>>> The document proposes a method for an user agent to automatically
>>> discover (using the TLS Alert) and configure a proxy via a secure
>>>HTTP2.0
>>> session.
>>>
>>> Moreover the document also draft two alternative mechanisms that
>>>allow
>>> the presence of HTTP2.0 secure proxies for TLS protected traffic
>>>when an
>>> user-agent
>>> is requesting an http resource.
>>>
>>> br
>>> Salvatore
>>
>>
>>
>
Received on Wednesday, 15 January 2014 21:35:11 UTC