Re: [hybi] New port and Tunneling?

"Shelby Moore" <shelby@coolpage.com> Sun, 15 August 2010 22:01 UTC

Return-Path: <shelby@coolpage.com>
X-Original-To: hybi@core3.amsl.com
Delivered-To: hybi@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id 686673A67EE for <hybi@core3.amsl.com>; Sun, 15 Aug 2010 15:01:14 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.467
X-Spam-Level:
X-Spam-Status: No, score=-1.467 tagged_above=-999 required=5 tests=[AWL=0.532, BAYES_00=-2.599, J_CHICKENPOX_46=0.6]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id yR0v2n8zlsep for <hybi@core3.amsl.com>; Sun, 15 Aug 2010 15:01:13 -0700 (PDT)
Received: from www5.webmail.pair.com (www5.webmail.pair.com [66.39.3.83]) by core3.amsl.com (Postfix) with SMTP id A936E3A6833 for <hybi@ietf.org>; Sun, 15 Aug 2010 15:01:12 -0700 (PDT)
Received: (qmail 29367 invoked by uid 65534); 15 Aug 2010 22:01:48 -0000
Received: from 121.97.54.174 ([121.97.54.174]) (SquirrelMail authenticated user shelby@coolpage.com) by sm.webmail.pair.com with HTTP; Sun, 15 Aug 2010 18:01:48 -0400
Message-ID: <a8358c0239c686dfd4753b55c6c34385.squirrel@sm.webmail.pair.com>
In-Reply-To: <20100815210332.GH27614@1wt.eu>
References: <7ffabb591b2292c9b81abecfaec3cdb6.squirrel@sm.webmail.pair.com> <20100815210332.GH27614@1wt.eu>
Date: Sun, 15 Aug 2010 18:01:48 -0400
From: Shelby Moore <shelby@coolpage.com>
To: Willy Tarreau <w@1wt.eu>
User-Agent: SquirrelMail/1.4.20
MIME-Version: 1.0
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: 8bit
X-Priority: 3 (Normal)
Importance: Normal
Cc: hybi@ietf.org
Subject: Re: [hybi] New port and Tunneling?
X-BeenThere: hybi@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
Reply-To: shelby@coolpage.com
List-Id: Server-Initiated HTTP <hybi.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/hybi>, <mailto:hybi-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/hybi>
List-Post: <mailto:hybi@ietf.org>
List-Help: <mailto:hybi-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/hybi>, <mailto:hybi-request@ietf.org?subject=subscribe>
X-List-Received-Date: Sun, 15 Aug 2010 22:01:14 -0000

> On Sun, Aug 15, 2010 at 04:48:35PM -0400, Shelby Moore wrote:
>> I googled this discussion list archive and did not find much on this.
>>
>> Seems the great likelihood of messy soft failure and other a priori
>> unquantifiable complexity with reusing the port 80 or 443+TLS due to the
>> HTTP legacy on the network and/or complexity issues with HTTP Upgrade or
>> non-mainstream use of TLS.
>>
>> Seems what we really need is a hard fail, so we can dynamically and
>> gracefully downgrade to long polling solutions (Comet/BOSH...).
>> K.I.S.S.
>>
>> We are going to have to downgrade whether due to proxy soft failure or
>> new
>> port tunnel failure, so why chose the higher complexity "root canal"
>> route?
>>
>> Am I missing something or is the K.I.S.S.  way to get a hard fail is
>> tunnel over a new port?  Then we can get P2P WebSockets too (wow)!
>>
>> http://samy.pl/pwnat/
>> http://mackys.livejournal.com/896428.html
>>
>> FAQ at the above link seems to be pretty simple and deterministic in
>> terms
>> of failure detection.
>>
>> The man-in-middle vulnerability and the beneficial features of HTTP
>> (e.g.
>> URL redirection, virtual hosting,...) could still be obtained by
>> handshaking orthogonally with standard HTTP GET.
>>
>> Educate me please.  Certainly the solution can't be this simple correct?
>> Why?
>
> The specific port was discussed too. But it does not solve everything.

But no solution will solve everything.

Rather I am arguing that a hard fail at firewall tunnel attempt, is
superior to soft fail at unknown times in the corruption/delay of data by
the proxies or other complexity of trying to shoehorn a bi-directional
channel into a stack that isn't designed for it.

Once the specific port tunnel succeeds, we get rid of all the other
problems.  If it fails, we know it, and can gracefully degrade to the 100%
reachable Comet/BOSH options.

> In your opinion, why do Comet/BOSH work over HTTP ? Precisely because
> they can reach almost 100% of the visitors.

Agreed.

> In many (I mean *many*)
> enterprises, here's what you have as options to access the outside :
>   - port 80 via a proxy/cache/anti-virus/url-filtering
>   - port 443 on a small hand-selected list of sites
>   - nothing else
>
> I've heard it's basically the same with mobile gateways at most operators.
>
> And given the number of malware on the net, the trend is certainly not
> going backwards. Thus, port 80 with HTTP has a major advantage over the
> other alternatives.

Did you look at the links I provided?  AFAIU, the firewall/NAT would have
to block traceroute in order to stop this tunneling.  I suppose the
firewall could block the specific port (knowing that traceroute doesn't
normally run on that port)?  But why would the firewall want to
retroactively block our specific port, when malware wouldn't be able to
abuse that port+tunneling and more than malware could abuse port 80,
especially if there was already a rapid adoption of popular applications
that relied on the port staying open?


> Right now the success rate of tests appears lower
> with HTTP than with TLS, but in my opinion, it will increase once the
> protocol is ratified, because proxy vendors will simply add support for
> it in their proxies.
>
> If you open a dedicated port, it's very interesting in order to reduce
> the number of round trips, but you'll still miss a part of the population.

See my point above, maybe the part is not larger than what will be missed
with HTTP Upgrade, once the unknown soft fails are experience in the wild.
 There will need to be fallback to Comet/BOSH no matter what we do.  So
why not go for the simplest solution that gives us the most robust
channel?

>
> Also, TLS as proposed by Adam looks very promising. But it still has the
> inconvenient that it will never be blindly opened in many enterprises due
> to the impossibility to analyse it.

The tunneled specific port can be analyzed.

> And it does not easily allow server
> stickiness for a user connecting to the WS port of the HTTP server he was
> on.

I don't understand.

>
> However, having TLS as a complement of HTTP would be very nice and it
> could probably make sense to try it by default.

How about TLS as a complement to specific port+tunnel?  Seems like a
better combination.

Hard fail -> TLS or Comet/BOSH (configurable choice, or let application
layer implement)

>
> Regards,
> Willy
>
>
>