Re: [hybi] Extensibility mechanisms?

Scott Ferguson <ferg@caucho.com> Thu, 22 July 2010 01:20 UTC

Return-Path: <ferg@caucho.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 90C8E3A697F for <hybi@core3.amsl.com>; Wed, 21 Jul 2010 18:20:32 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.599
X-Spam-Level:
X-Spam-Status: No, score=-2.599 tagged_above=-999 required=5 tests=[BAYES_00=-2.599]
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 qv6+9Gq-9b4T for <hybi@core3.amsl.com>; Wed, 21 Jul 2010 18:20:29 -0700 (PDT)
Received: from smtp113.biz.mail.re2.yahoo.com (smtp113.biz.mail.re2.yahoo.com [66.196.116.98]) by core3.amsl.com (Postfix) with SMTP id F14B63A6838 for <hybi@ietf.org>; Wed, 21 Jul 2010 18:20:28 -0700 (PDT)
Received: (qmail 17713 invoked from network); 22 Jul 2010 01:20:42 -0000
Received: from [192.168.1.11] (ferg@66.92.8.203 with plain) by smtp113.biz.mail.re2.yahoo.com with SMTP; 21 Jul 2010 18:20:42 -0700 PDT
X-Yahoo-SMTP: L1_TBRiswBB5.MuzAo8Yf89wczFo0A2C
X-YMail-OSG: yKw6a.4VM1mr0jTqts_tx9HpDEMD1l4YSvRaJLVkE7NuE8I IWxiqalDy6qNXr4vGNonjBvSiynSSDFyE4nbwGYxRD.qoYsITXt7I__og.7u An_uoXnFCmKQMGUupubVX8DmCtxuJvC40mIBSGRBU1M4NX99C4HL4FxEdjqP RWYmK6p13MLbKW.mpN98KHzMEhb4NJVZR_nCZwgqb2BkcDwPXJmqCM.SbvL0 WYAQasnModnwor.54VTUfy5RuueM35eOZrhP1WUqw.fhZ9zThEjBwuzS8fWB Cc_L6Cbu9qCq3OAxCDHB__VcVBickWuW5ApMm0v_6qhiHuTPFd.4IERwK61S Sa4sK0BMORot3ldMKDL7iyzpnCFoHWfvZZoY8v88Ru6rkvonzETmhakm9A0F wtlPluEjU0bNfMg0RC1OPHT41.u1u74Po2_2Pq_oUDPerBTshCwQ-
X-Yahoo-Newman-Property: ymail-3
Message-ID: <4C479CE4.6070805@caucho.com>
Date: Wed, 21 Jul 2010 18:20:36 -0700
From: Scott Ferguson <ferg@caucho.com>
User-Agent: Thunderbird 2.0.0.23 (X11/20090817)
MIME-Version: 1.0
To: Adam Barth <ietf@adambarth.com>
References: <h2w5c902b9e1004152345j992b815bz5f8d38f06a19181a@mail.gmail.com> <4BCAB2C1.2000404@webtide.com> <B9DC25B0-CD21-44E7-BD9B-06D0C9440933@apple.com> <4BCB7829.9010204@caucho.com> <Pine.LNX.4.64.1004182349240.751@ps20323.dreamhostps.com> <4BCC0A07.9030003@gmx.de> <Pine.LNX.4.64.1004190753510.23507@ps20323.dreamhostps.com> <4BCC111C.90707@gmx.de> <Pine.LNX.4.64.1004190837570.23507@ps20323.dreamhostps.com> <4BCC204D.30004@gmx.de> <z2gad99d8ce1004190822ne4dd36b6v54d63efcc448e840@mail.gmail.com> <Pine.LNX.4.64.1007202204270.7242@ps20323.dreamhostps.com> <AANLkTikkfdlUxQ0MGNvVQKa5gfovkGHWdCgyN9juKSQJ@mail.gmail.com> <4C462F9E.9030207@caucho.com> <Pine.LNX.4.64.1007212153110.7242@ps20323.dreamhostps.com> <AANLkTiku76oSucTNDFdwgsFBNFa_cCpC-YktTnMfX47-@mail.gmail.com> <4C479130.4020500@caucho.com> <AANLkTikLDjBP-Xs5t6TxmJuq4nG8jwThQ=n34B4cEmup@mail.gmail.com>
In-Reply-To: <AANLkTikLDjBP-Xs5t6TxmJuq4nG8jwThQ=n34B4cEmup@mail.gmail.com>
Content-Type: text/plain; charset="ISO-8859-1"; format="flowed"
Content-Transfer-Encoding: 7bit
Cc: Hybi <hybi@ietf.org>
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: Thu, 22 Jul 2010 01:20:32 -0000

Adam Barth wrote:
> On Wed, Jul 21, 2010 at 5:30 PM, Scott Ferguson <ferg@caucho.com> wrote:
>   
>> The counterproposal at
>>
>>  http://hessian.caucho.com/websockets/draft-ferg-hybi-websockets-latest.html
>>
>> not complicated at all: it's a trivial protocol, and yet it solves the HyBi
>> requirements, including requirements that the current draft ignores, as well
>> as being extensible to muxing requirements.
>>
>> A dozen members of this list could come up with proposals as simple as that
>> one and most would improve on it.
>>     
>
> This protocol is highly insecure.  First, the server offers no proof
> that it understands the protocol, so it's very likely that it's
> vulnerable to cross-protocol attacks.  Second, the client doesn't even
> require the server to respond at all before sending (almost) arbitrary
> content over the socket, which is very likely to lead to disaster.
>   
Like I said, most people on the list could improve on it. (Since my 
interest is on the stream encoding itself, I'm perfectly willing to 
defer to others expertise on fixing the handshake.) That said,

1. The server's proof is its initial HELLO control frame. From a 
security standpoint, I don't see how this is different than a HTTP 
server's proof that it understands HTTP. If you want a hash of the 
input, it's trivial to add a nonce header for the client and a 
calculated hash for the response.

1a. How so? I'd like to see an actual attack.

2. No different from HTTP POST. The client may wait for the response if 
it it wants, but clients which want the equivalent responsiveness of 
HTTP POST can send data immediately. It's up to the requirements of the 
application. This design allows both application models.

-- Scott






> Adam
>
>
>
>