Re: MITM and proxy messages [was: Call for Adoption: draft-song-dns-wireformat-http]

"Adrien de Croy" <adrien@qbik.com> Mon, 08 August 2016 02:13 UTC

Return-Path: <ietf-http-wg-request+bounce-httpbisa-archive-bis2juki=lists.ie@listhub.w3.org>
X-Original-To: ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com
Delivered-To: ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 2440912D791 for <ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com>; Sun, 7 Aug 2016 19:13:21 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -8.168
X-Spam-Level:
X-Spam-Status: No, score=-8.168 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HEADER_FROM_DIFFERENT_DOMAINS=0.001, RCVD_IN_DNSWL_HI=-5, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, RP_MATCHES_RCVD=-1.247, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id akO2NxjwWJc8 for <ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com>; Sun, 7 Aug 2016 19:13:19 -0700 (PDT)
Received: from frink.w3.org (frink.w3.org [128.30.52.56]) (using TLSv1.2 with cipher DHE-RSA-AES128-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 9EA7912D78D for <httpbisa-archive-bis2Juki@lists.ietf.org>; Sun, 7 Aug 2016 19:13:19 -0700 (PDT)
Received: from lists by frink.w3.org with local (Exim 4.80) (envelope-from <ietf-http-wg-request@listhub.w3.org>) id 1bWa0E-0006y5-4g for ietf-http-wg-dist@listhub.w3.org; Mon, 08 Aug 2016 02:09:18 +0000
Resent-Date: Mon, 08 Aug 2016 02:09:18 +0000
Resent-Message-Id: <E1bWa0E-0006y5-4g@frink.w3.org>
Received: from bart.w3.org ([193.51.208.80]) by frink.w3.org with esmtps (TLS1.2:DHE_RSA_AES_128_CBC_SHA1:128) (Exim 4.80) (envelope-from <adrien@qbik.com>) id 1bWa08-0006wq-E4 for ietf-http-wg@listhub.w3.org; Mon, 08 Aug 2016 02:09:12 +0000
Received: from smtp.qbik.com ([122.56.26.1]) by bart.w3.org with esmtps (TLS1.2:DHE_RSA_AES_256_CBC_SHA256:256) (Exim 4.80) (envelope-from <adrien@qbik.com>) id 1bWZzz-0000YO-Pw for ietf-http-wg@w3.org; Mon, 08 Aug 2016 02:09:05 +0000
Received: From [192.168.1.146] (unverified [192.168.1.146]) by SMTP Server [192.168.1.3] (WinGate SMTP Receiver v9.0.0 (Build 5848)) with SMTP id <0000796795@smtp.qbik.com>; Mon, 08 Aug 2016 14:05:36 +1200
From: Adrien de Croy <adrien@qbik.com>
To: Amos Jeffries <squid3@treenet.co.nz>, "ietf-http-wg@w3.org" <ietf-http-wg@w3.org>
Date: Mon, 08 Aug 2016 02:05:36 +0000
Message-Id: <em350ee563-4606-4629-ac27-5c0bb6f1b21d@bodybag>
In-Reply-To: <bc3c4ddd-2650-5419-429e-68b921084436@treenet.co.nz>
Reply-To: Adrien de Croy <adrien@qbik.com>
User-Agent: eM_Client/6.0.24928.0
Mime-Version: 1.0
Content-Type: text/plain; format="flowed"; charset="utf-8"
Content-Transfer-Encoding: quoted-printable
Received-SPF: pass client-ip=122.56.26.1; envelope-from=adrien@qbik.com; helo=smtp.qbik.com
X-W3C-Hub-Spam-Status: No, score=-4.9
X-W3C-Hub-Spam-Report: AWL=-0.572, BAYES_00=-1.9, RP_MATCHES_RCVD=-0.432, SPF_PASS=-0.001, W3C_AA=-1, W3C_WL=-1
X-W3C-Scan-Sig: bart.w3.org 1bWZzz-0000YO-Pw a92626d3c9e735b9c73a6288cc543d7e
X-Original-To: ietf-http-wg@w3.org
Subject: Re: MITM and proxy messages [was: Call for Adoption: draft-song-dns-wireformat-http]
Archived-At: <http://www.w3.org/mid/em350ee563-4606-4629-ac27-5c0bb6f1b21d@bodybag>
Resent-From: ietf-http-wg@w3.org
X-Mailing-List: <ietf-http-wg@w3.org> archive/latest/32214
X-Loop: ietf-http-wg@w3.org
Resent-Sender: ietf-http-wg-request@w3.org
Precedence: list
List-Id: <ietf-http-wg.w3.org>
List-Help: <http://www.w3.org/Mail/>
List-Post: <mailto:ietf-http-wg@w3.org>
List-Unsubscribe: <mailto:ietf-http-wg-request@w3.org?subject=unsubscribe>


>>   E.g. tie the
>>  proxy configuration to the root of the cert tree - again this would 
>>only
>>  work for non-intercepted.
>
>Hmm. Can you elaborate please about how that tie would work?


Basically the client browser would be configured to

a) use a proxy and
b) understand that https via that proxy will have a specific cert at the 
root of the cert hierarchy

Kinda like cert pinning for a proxy.

How this is configured / bootstrapped is another matter.

But say we solve that problem, then the client can know nothing else is 
between it and the proxy for https.


>
>For some reason I think you mean something other than DNS WPAD with 
>DANE
>to verify the hostname from which to send a secret client-key (encoded
>to that hosts DANE provided public host-key) and fetch a
>Content-Encoded:aesgcm PAC-like file encoded to the secret client-key.
>
>
>>
>>  So I'm a little on the fence on this proposal for browsers, but for
>>  other agents, I think the machine-readable information could be very
>>  useful, so overall I'm in favour of such an approach. It could 
>>however
>>  alternatively be transported in a header, leaving the body for
>>  customization by the organization.
>
>I expect that would lead to just as many complaints asking about why
>their fancy body got ignored. If fancy body is possible, or even hinted
>at being possible. It will be mandatory required somewhere for what 
>turn
>out to be marketing reasons.

fair enough.

It may even be possible to allow for an image in the json.  As long as 
it can't be an anchor, you can't present a fake site with it.


>
>>
>>  One thing I would love to see more work done in is proxy discovery.
>>  Many many of our users want to use interception, so they can avoid 
>>the
>>  deployment issues.  WPAD goes some of the way, but there are still
>>  problems with that.
>>
>>  If we continue to just wish that connection interception and MitM 
>>will
>>  just go away, we won't improve things for users.  There should be a 
>>way
>>  for a intercepting proxy to safely (from a client POV) impose itself
>>  with full knowledge and assent of the client.
>>
>
>Aye. See above. The major parts are finally falling into place, but
>there are still some holes to plug.


It's kinda crazy that browsers, which are supposedly so 
security-conscious are still happy to download and evaluate javascript 
from some source they don't really verify (e.g. result of DNS lookup for 
WPAD or DHCP option 252).

An active attacker could very easily get themselves set up as the proxy 
by spoofing DHCP INFORM responses, or intercept requests to the WPAD 
server.

I wonder what restrictions there are on the code that may be evaluated 
in FindProxyForURL(...)

Adrien


>
>Amos
>
>