Re: [hybi] Extensibility mechanisms?

Greg Wilkins <gregw@webtide.com> Mon, 19 April 2010 07:52 UTC

Return-Path: <gregw@webtide.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 17B623A684C for <hybi@core3.amsl.com>; Mon, 19 Apr 2010 00:52:33 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -0.507
X-Spam-Level:
X-Spam-Status: No, score=-0.507 tagged_above=-999 required=5 tests=[AWL=-0.508, BAYES_50=0.001]
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 lNEgcbyW5bex for <hybi@core3.amsl.com>; Mon, 19 Apr 2010 00:52:32 -0700 (PDT)
Received: from fg-out-1718.google.com (fg-out-1718.google.com [72.14.220.155]) by core3.amsl.com (Postfix) with ESMTP id C6D553A67D2 for <hybi@ietf.org>; Mon, 19 Apr 2010 00:52:31 -0700 (PDT)
Received: by fg-out-1718.google.com with SMTP id 22so1097486fge.13 for <hybi@ietf.org>; Mon, 19 Apr 2010 00:52:16 -0700 (PDT)
Received: by 10.87.47.25 with SMTP id z25mr3775774fgj.13.1271663536159; Mon, 19 Apr 2010 00:52:16 -0700 (PDT)
Received: from [192.168.0.100] (host116-234-static.43-88-b.business.telecomitalia.it [88.43.234.116]) by mx.google.com with ESMTPS id 12sm3989130fgg.24.2010.04.19.00.52.14 (version=TLSv1/SSLv3 cipher=RC4-MD5); Mon, 19 Apr 2010 00:52:14 -0700 (PDT)
Message-ID: <4BCC0BAD.1030209@webtide.com>
Date: Mon, 19 Apr 2010 09:52:13 +0200
From: Greg Wilkins <gregw@webtide.com>
User-Agent: Thunderbird 2.0.0.24 (X11/20100411)
MIME-Version: 1.0
To: Hybi <hybi@ietf.org>
References: <h2w5c902b9e1004152345j992b815bz5f8d38f06a19181a@mail.gmail.com> <Pine.LNX.4.64.1004161952530.751@ps20323.dreamhostps.com> <4BC96A0D.4080904@webtide.com> <Pine.LNX.4.64.1004180246380.751@ps20323.dreamhostps.com> <4BCAB2C1.2000404@webtide.com> <B9DC25B0-CD21-44E7-BD9B-06D0C9440933@apple.com> <Pine.LNX.4.64.1004181812370.751@ps20323.dreamhostps.com> <4BCB6641.70408@webtide.com> <Pine.LNX.4.64.1004182010070.751@ps20323.dreamhostps.com> <4BCB6FD0.7080003@webtide.com> <k2r2a10ed241004181406zf93cf5c4p9652e4a78980027d@mail.gmail.com>
In-Reply-To: <k2r2a10ed241004181406zf93cf5c4p9652e4a78980027d@mail.gmail.com>
X-Enigmail-Version: 0.95.7
Content-Type: text/plain; charset="ISO-8859-1"
Content-Transfer-Encoding: 7bit
Subject: Re: [hybi] Extensibility mechanisms?
X-BeenThere: hybi@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
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: Mon, 19 Apr 2010 07:52:33 -0000

Mike Belshe wrote:

> Should intermediaries know about these protocols?  Why?
> ...
> If we run all websockets through SSL, the protocol is stronger.  And
> poor users aren't left holding the bag wondering why they just got hacked.


Mike,

I'm not arguing against SSL or having that the
default/preferred transport.

But in many deployments, SSL will be terminated on a box
remote from the application and the connection will go through
intermediaries provided by many vendors for load balancing,
aggregation, connection aggregation etc. The specification
needs to support such intermediaries in 2020.

But to make it to 2020, we also need something that is
deployable in 2010.  So that means respecting the HTTP
protocol.

What Ian is proposing is that a websocket client and server
can just agree on some new field, that can be used to
upgrade to any protocol they like eg BEEP!

HTTP has an upgrade mechanism and it's called Upgrade.
Websocket should not be allowed to subvert that with
something like:

   GET /something HTTP/1.1
   Host: somewhere:80
   Upgrade: WebSocket
   Connection: Upgrade
   My-Upgrade: BEEP

        HTTP/1.1 101 Web Socket Protocol Handshake
        Upgrade WebSocket
        Connection: Upgrade
        My-Upgrade: BEEP

   <-- Beep frames -->

Any intermediary involved will have seen that
as an upgrade to WebSocket, not to BEEP.
I can't see how that can be interpreted as
a compliant HTTP upgrade.




Finally,  if I  really try to imagine protocols
in 2020, I can't see secure connections being
allowed end to end in all environments.   For
better or worse, Corporations (and even countries)
like to monitor and apply policy to what their
users are doing.  I can imagine that every
hop will be encrypted, but I think that end
to end will not be universal (unless there
some some huge break out of progressive
libertarian sentiment in fortune 500 and
world governments).


regards