Re: [hybi] Extensibility mechanisms?

Greg Wilkins <gregw@webtide.com> Thu, 22 July 2010 12:47 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 2BD363A688B for <hybi@core3.amsl.com>; Thu, 22 Jul 2010 05:47:52 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.834
X-Spam-Level:
X-Spam-Status: No, score=-1.834 tagged_above=-999 required=5 tests=[AWL=0.142, BAYES_00=-2.599, FM_FORGED_GMAIL=0.622, HTML_MESSAGE=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 Za63HAF9NhSU for <hybi@core3.amsl.com>; Thu, 22 Jul 2010 05:47:50 -0700 (PDT)
Received: from mail-fx0-f44.google.com (mail-fx0-f44.google.com [209.85.161.44]) by core3.amsl.com (Postfix) with ESMTP id 39B4E3A657C for <hybi@ietf.org>; Thu, 22 Jul 2010 05:47:50 -0700 (PDT)
Received: by fxm1 with SMTP id 1so4682747fxm.31 for <hybi@ietf.org>; Thu, 22 Jul 2010 05:48:06 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.223.104.7 with SMTP id m7mr1840577fao.8.1279802886801; Thu, 22 Jul 2010 05:48:06 -0700 (PDT)
Received: by 10.223.112.129 with HTTP; Thu, 22 Jul 2010 05:48:06 -0700 (PDT)
In-Reply-To: <AANLkTim7AsQGSwLE51uktj=B1vB6roZChAtDoCrE6fFG@mail.gmail.com>
References: <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> <4C479CE4.6070805@caucho.com> <AANLkTims1er0Rbv0ysP4gRs1Kd0He8hapHeJ3nON=JQa@mail.gmail.com> <4C47C5B0.3030006@caucho.com> <AANLkTi=ND-FOH8OoD=TCbiyeSZ-h0LhxQBXN5w-2hfvj@mail.gmail.com> <20100722055452.GL7174@1wt.eu> <AANLkTik_rpxo=1OfzHkwpC5soQG_NxvGuZNXx7gdhVTh@mail.gmail.com> <20100722064945.GM7174@1wt.eu> <AANLkTim7AsQGSwLE51uktj=B1vB6roZChAtDoCrE6fFG@mail.gmail.com>
Date: Thu, 22 Jul 2010 22:48:06 +1000
Message-ID: <AANLkTimsDOmYBXAs7wYDvHwIQmjeh1SjsKd-5EyBy3ZK@mail.gmail.com>
From: Greg Wilkins <gregw@webtide.com>
To: Adam Barth <ietf@adambarth.com>
Content-Type: multipart/alternative; boundary="001636c5966c734971048bf9547d"
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 12:47:52 -0000

On 22 July 2010 17:08, Adam Barth <ietf@adambarth.com> wrote:
>
> You're describing a defense which we've been calling rigidity.  By
> making the handshake rigid, it's harder to squeeze though some other
> protocol's state machine.  However, you can imagine protocols that are
> vulnerable to a perfectly rigid handshake.  As an example, imagine a
> protocol like gopher where the attacker might be able to control all
> the bytes returned by the server (e.g., because the server accepts
> uploads).
>
> There's value to having other defenses against cross-protocol attacks
> in addition to rigidity.  Just as Greg's nonce isn't magic security
> pixie dust, neither is rigidity.
>
>
Adam,

well the nonce idea was not mine (and I once was very unconvinced of it's
need), but as it's current advocate I OK if you want to label it that way.

However, I do very much like your analysis of rigidity as a protection
against security attacks.  In essence, the rigid approach is trying to focus
on the syntax off the message on the basis that it "would be impossible" for
an attacker to generate those bytes.  The nonce/token alternative is based
on the assumption that it would be impossible for an attacker to know what
bytes they need to generate (regardless of syntax).

Of the two, I believe that rigidity is the weaker approach as it is
extremely difficult to "prove" that nothing on the internet can be tricked,
subverted or exploited to produce any arbitrary bytes that an attacker
wishes to generates.

The nonce/token approach is intended to deny attackers working within the
browser having the ability to know what bytes they should generate, so that
even if they could inject them, they don't know what to object.  Thus I
think it is a stronger approach, but for more limited circumstances - as it
does not address non browser clients.

In the spirit of defence in depth, I think we probably need elements of both
approaches.   However, I would suggest that currently the specification has
placed too much emphasis on rigidity, to the extent that it will effect
interoperability and extensibility without any significant gain in security.

regards