Re: [hybi] Handshake was: The WebSocket protocol issues.

Adam Barth <ietf@adambarth.com> Mon, 27 September 2010 06:26 UTC

Return-Path: <ietf@adambarth.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 B92C63A6C72 for <hybi@core3.amsl.com>; Sun, 26 Sep 2010 23:26:05 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -0.798
X-Spam-Level:
X-Spam-Status: No, score=-0.798 tagged_above=-999 required=5 tests=[AWL=-1.280, BAYES_20=-0.74, FM_FORGED_GMAIL=0.622, J_CHICKENPOX_33=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 FWCwMOSIJo+b for <hybi@core3.amsl.com>; Sun, 26 Sep 2010 23:26:04 -0700 (PDT)
Received: from mail-iw0-f172.google.com (mail-iw0-f172.google.com [209.85.214.172]) by core3.amsl.com (Postfix) with ESMTP id AB5663A682B for <hybi@ietf.org>; Sun, 26 Sep 2010 23:26:04 -0700 (PDT)
Received: by iwn3 with SMTP id 3so5250297iwn.31 for <hybi@ietf.org>; Sun, 26 Sep 2010 23:26:42 -0700 (PDT)
Received: by 10.231.11.3 with SMTP id r3mr8620917ibr.53.1285568802549; Sun, 26 Sep 2010 23:26:42 -0700 (PDT)
Received: from mail-iw0-f172.google.com (mail-iw0-f172.google.com [209.85.214.172]) by mx.google.com with ESMTPS id r3sm5827065ibk.1.2010.09.26.23.26.41 (version=SSLv3 cipher=RC4-MD5); Sun, 26 Sep 2010 23:26:42 -0700 (PDT)
Received: by iwn3 with SMTP id 3so5250226iwn.31 for <hybi@ietf.org>; Sun, 26 Sep 2010 23:26:38 -0700 (PDT)
Received: by 10.231.146.136 with SMTP id h8mr8873014ibv.0.1285568798845; Sun, 26 Sep 2010 23:26:38 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.231.149.20 with HTTP; Sun, 26 Sep 2010 23:26:08 -0700 (PDT)
In-Reply-To: <AANLkTim0R-cHCKiMw-zA7r+NrQbbiyM2xPLVm8G-shCx@mail.gmail.com>
References: <AANLkTikszM0pVE-0dpZ2kv=i=y5yzS2ekeyZxtz9N=fQ@mail.gmail.com> <62B5CCE3-79AF-4F60-B3A0-5937C9D291D7@apple.com> <AANLkTikKc+4q_Q1+9uDo=ZpFF6S49i6vj2agZOGWVqKm@mail.gmail.com> <E2D38FF3-F1B9-4305-A7FC-A9690D2AEB4A@apple.com> <AANLkTikRYB_suPmSdH3uzGmdynozECRszDx+BpUvtZ4h@mail.gmail.com> <AANLkTikfYOCOm_+g3=QCTFOCo=rYsj8WpX8AS65qgkPm@mail.gmail.com> <AANLkTim0R-cHCKiMw-zA7r+NrQbbiyM2xPLVm8G-shCx@mail.gmail.com>
From: Adam Barth <ietf@adambarth.com>
Date: Sun, 26 Sep 2010 23:26:08 -0700
Message-ID: <AANLkTinRRX7GURvLvHAm5cNY2GXrAoRAEo9WW8S-Ae85@mail.gmail.com>
To: Greg Wilkins <gregw@webtide.com>
Content-Type: text/plain; charset="ISO-8859-1"
Content-Transfer-Encoding: quoted-printable
Cc: hybi <hybi@ietf.org>
Subject: Re: [hybi] Handshake was: The WebSocket protocol issues.
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, 27 Sep 2010 06:26:05 -0000

Your email appears to proceed from the assumption that the current
handshake is sufficiently robust to cross-protocol attacks.  That
might well be true.  However, I don't think we have any reasonable
assurance that it is true.  If we can't have reasonable assurance of
the security of the -76 handshake, then we certainly cannot have such
assurance about your handshake since it is strictly weaker.

On the other hand, we can be reasonably assured that the TLS+NPN
handshake resists cross-protocol attacks.  I provided a security
argument to that effect in an email a while ago.  No one has provided
a similarly detailed security analysis of the -76 handshake or of the
handshake that you propose.

Adam


On Sun, Sep 26, 2010 at 11:16 PM, Greg Wilkins <gregw@webtide.com> wrote:
> On 27 September 2010 11:35, Adam Barth <ietf@adambarth.com> wrote:
>> Browser also protect intranet servers which use connectivity as their
>> sole means of authentication/authorization.
>
> True.
>
> So does the presence of WS capability in the browser and/or server
> provide any additional capability to exploit such servers?
>
> If so, do the measures in the current and proposed handshakes help in
> any significant way?
>
> If not, is there something that we need to do to explicitly protect
> port ranges etc in the same way that browsers currently do for XHR?
>
>
>> The existing HTTP mechanisms exposed to untrusted content in browser
>> already respects these security invariants.  In adding new network
>> APIs, browser wish to continue to maintain these invariants.
>
> Excellent and both the requirements document and all recent versions
> of the specification have included text to the effect that the
> existing browser security model will be used.
>
> Maybe that text needs clarification, but nobody has suggested watering
> it down in any way.
>
>
>
>>> I think that any server that "performs any side effects in response to
>>> messages from the client" will have a security vulnerability if they
>>> do not correctly check the authentication and authorization of the
>>> client.
>>
>> This is not an accurate understanding of the security invariants
>> browsers seek to maintain.
>
> I was not attempting to describe the security invariants that a
> browser seeks to maintain.
>
> I was making the observation that a server that performs side effects
> on the basis of unauthenticated requests will by definition have a
> security issue.   The ability to trigger that issue from a cross
> protocol attack is essentially irrelevant if we are proposing the wide
> spread deployment of a same protocol mechanism that can trigger the
> same side effects.
>
>
>>> Eventually most browsers will have WS available to the
>>> javascript, so a server that is so vulnerable will be able to be
>>> exploited just with WS instead of trying to trick HTTP.
>>
>> Browser seek to protect servers that have never heard of WebSockets
>> and have no interest in these newer technologies.  From that
>> perspective, it's important to compare the security invariants of the
>> browser before and after introducing WebSockets.  We need to study any
>> change in these invariants to make sure they don't introduce security
>> vulnerabilities in existing servers.  This is a prerequisite for
>> exposing the WebSocket API to untrusted content in the browser.
>
> Which is precisely why I have been advocating that we study the impact
> of the current handshake and proposed changes.
>
> We need to discuss what type of byte sequences can a compromised WS
> capable browser generate that a HTTP capable browser cannot? Are any
> of these types of sequences a threat to WS unaware servers?   Does the
> space counting and unframed bytes help in any way?
>
> I have suggested that the defence in depth of Sec-headers, nonce
> generation, handshake sequence requirements and normal web
> authentication/authorization should limit the byte sequence that can
> be generated to nothing that is more harmful that what can already
> been generated.
>
> All I have asked is if you have done any study that indicates that
> suggests that space counting and unframed data provide any additional
> meaningful security?
>
> regards
>