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

Adam Barth <ietf@adambarth.com> Sat, 09 October 2010 00:03 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 977FF3A698A for <hybi@core3.amsl.com>; Fri, 8 Oct 2010 17:03:22 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.986
X-Spam-Level:
X-Spam-Status: No, score=-1.986 tagged_above=-999 required=5 tests=[AWL=-0.009, BAYES_00=-2.599, FM_FORGED_GMAIL=0.622]
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 QP7BWgJNPZqM for <hybi@core3.amsl.com>; Fri, 8 Oct 2010 17:03:21 -0700 (PDT)
Received: from mail-gw0-f44.google.com (mail-gw0-f44.google.com [74.125.83.44]) by core3.amsl.com (Postfix) with ESMTP id AB8D43A699F for <hybi@ietf.org>; Fri, 8 Oct 2010 17:03:21 -0700 (PDT)
Received: by gwb20 with SMTP id 20so613309gwb.31 for <hybi@ietf.org>; Fri, 08 Oct 2010 17:04:27 -0700 (PDT)
Received: by 10.236.110.165 with SMTP id u25mr6472390yhg.82.1286582667437; Fri, 08 Oct 2010 17:04:27 -0700 (PDT)
Received: from mail-iw0-f182.google.com (mail-iw0-f182.google.com [209.85.214.182]) by mx.google.com with ESMTPS id f4sm2853822yhc.9.2010.10.08.17.04.26 (version=SSLv3 cipher=RC4-MD5); Fri, 08 Oct 2010 17:04:26 -0700 (PDT)
Received: by iwn8 with SMTP id 8so2288956iwn.27 for <hybi@ietf.org>; Fri, 08 Oct 2010 17:04:25 -0700 (PDT)
Received: by 10.231.38.9 with SMTP id z9mr2872565ibd.24.1286582665378; Fri, 08 Oct 2010 17:04:25 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.231.149.20 with HTTP; Fri, 8 Oct 2010 17:03:55 -0700 (PDT)
In-Reply-To: <55bva61goeqtn0lifgjt5uihf50obh7kf4@hive.bjoern.hoehrmann.de>
References: <4CABCBFA.6020100@caucho.com> <AANLkTi=5wbCXWpOtUQT1MndgCxt9gj6uR_3U=nONpjKc@mail.gmail.com> <4CABD11F.3060500@caucho.com> <AANLkTiksehiSp7DB17MBVBb457p6pN5E8vma6FHz1c9j@mail.gmail.com> <4CACA667.3040309@caucho.com> <4CAF9589.1060007@caucho.com> <AANLkTinnnT5Oib7FvDdZF2q_WUT8=q8KNmfkfajE0Mor@mail.gmail.com> <4CAFA043.10101@caucho.com> <AANLkTi=eo-cjBz160FN0cn53v4-CpDSYaEneqkr_ZP7k@mail.gmail.com> <4CAFAC2B.5000800@caucho.com> <55bva61goeqtn0lifgjt5uihf50obh7kf4@hive.bjoern.hoehrmann.de>
From: Adam Barth <ietf@adambarth.com>
Date: Fri, 08 Oct 2010 17:03:55 -0700
Message-ID: <AANLkTinmzZZqVpPzOosJJX3hKqyrxtJHWCAXX0NTans-@mail.gmail.com>
To: Bjoern Hoehrmann <derhoermi@gmx.net>
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: Sat, 09 Oct 2010 00:03:22 -0000

On Fri, Oct 8, 2010 at 5:00 PM, Bjoern Hoehrmann <derhoermi@gmx.net> wrote:
> * Scott Ferguson wrote:
>>So the attacker has a PHP script running on the same physical machine as
>>the target site, on the same VM guest as the target, and using the same
>>shared web server as the target, and has decided that a cross protocol
>>attack is the appropriate vector against a target on the same machine as
>>his PHP script.
>
> In the scenario the browser thinks it is talking Websocket while the
> server thinks the browser is talking HTTP, so basically
>
>  +----------------+                    +------------------+
>  | User's browser | -- "Websocket" +-- | attacker.example |
>  +----------------+                |   +------------------+
>                                  HTTP
>                                    |   +------------------+
>                                    +-- | target.example   |
>                                        +------------------+
>
> How attacker.example and target.example are organized is up to the
> web server, it could just be some kind of firewall where the two sites
> are actually hosted on physically separate machines behind it and they
> may be unable to talk to each other. I do think this is something that
> the Websocket protocol needs to address.

Yes, precisely.  The proposal I sent recently addresses this issue by
putting the virtual host dispatch information in a place that's only
visible to a server that understands WebSockets.  That way we know
it's making an informed decision about accepting the handshake.

Adam