Re: HTTP router point-of-view concerns

Yoav Nir <ynir@checkpoint.com> Fri, 12 July 2013 19:49 UTC

Return-Path: <ietf-http-wg-request@listhub.w3.org>
X-Original-To: ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com
Delivered-To: ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 6B5F721F9D7C for <ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com>; Fri, 12 Jul 2013 12:49:57 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -10.554
X-Spam-Level:
X-Spam-Status: No, score=-10.554 tagged_above=-999 required=5 tests=[AWL=0.045, BAYES_00=-2.599, RCVD_IN_DNSWL_HI=-8]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 2yqBbnMQRmCt for <ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com>; Fri, 12 Jul 2013 12:49:52 -0700 (PDT)
Received: from frink.w3.org (frink.w3.org [128.30.52.56]) by ietfa.amsl.com (Postfix) with ESMTP id D501321F9C60 for <httpbisa-archive-bis2Juki@lists.ietf.org>; Fri, 12 Jul 2013 12:49:51 -0700 (PDT)
Received: from lists by frink.w3.org with local (Exim 4.72) (envelope-from <ietf-http-wg-request@listhub.w3.org>) id 1UxjLN-0002xp-Ln for ietf-http-wg-dist@listhub.w3.org; Fri, 12 Jul 2013 19:49:29 +0000
Resent-Date: Fri, 12 Jul 2013 19:49:29 +0000
Resent-Message-Id: <E1UxjLN-0002xp-Ln@frink.w3.org>
Received: from maggie.w3.org ([128.30.52.39]) by frink.w3.org with esmtp (Exim 4.72) (envelope-from <ynir@checkpoint.com>) id 1UxjLF-0002w0-KK for ietf-http-wg@listhub.w3.org; Fri, 12 Jul 2013 19:49:21 +0000
Received: from smtp.checkpoint.com ([194.29.34.68]) by maggie.w3.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.72) (envelope-from <ynir@checkpoint.com>) id 1UxjLE-0007vD-4z for ietf-http-wg@w3.org; Fri, 12 Jul 2013 19:49:21 +0000
Received: from IL-EX10.ad.checkpoint.com ([194.29.34.147]) by smtp.checkpoint.com (8.13.8/8.13.8) with ESMTP id r6CJkk8C018659; Fri, 12 Jul 2013 22:46:47 +0300
X-CheckPoint: {51E05D26-0-1B221DC2-1FFFF}
Received: from DAG-EX10.ad.checkpoint.com ([169.254.3.48]) by IL-EX10.ad.checkpoint.com ([169.254.2.91]) with mapi id 14.02.0342.003; Fri, 12 Jul 2013 22:46:46 +0300
From: Yoav Nir <ynir@checkpoint.com>
To: Willy Tarreau <w@1wt.eu>
CC: Poul-Henning Kamp <phk@phk.freebsd.dk>, Mark Nottingham <mnot@mnot.net>, Sam Pullara <spullara@gmail.com>, James M Snell <jasnell@gmail.com>, Martin Thomson <martin.thomson@gmail.com>, Amos Jeffries <squid3@treenet.co.nz>, HTTP Working Group <ietf-http-wg@w3.org>
Thread-Topic: HTTP router point-of-view concerns
Thread-Index: AQHOfcCOZ2fHYp9biUaCEWX0LISz35leleMAgAAFrACAABKEAIAAzZcAgAAKzQCAAAHDAIAA5EwAgAAGJQCAAEn9gIAAE/4AgAByqAA=
Date: Fri, 12 Jul 2013 19:46:46 +0000
Message-ID: <22115082-53F8-433C-9497-755800803B93@checkpoint.com>
References: <CA+qvzFPUpcm6kUtJx+rTw8Dpp4Gtx4Bmr3XPDhjNsjchUfN9_w@mail.gmail.com> <51DE1E32.9010801@treenet.co.nz> <CAP+FsNdcYhA=V5Z+zbt70b5e7WmcmXgjG5M9L3vfXeXfTwmRnw@mail.gmail.com> <51DE327C.7010901@treenet.co.nz> <CABkgnnXeqD6wh0dcJ1Dz=4PLAJNkDeGcCuzMr9ATd_7xS7nbGQ@mail.gmail.com> <CABP7RbcUkLf3CTAB4jwicnsiKWLGVY6=hX0k=0256SR_gcVt9A@mail.gmail.com> <092D65A8-8CB7-419D-B6A4-77CAE40A0026@gmail.com> <3835.1373612286@critter.freebsd.dk> <CD9E163F-1225-4DA8-9982-8BDBD16B1051@mnot.net> <1772.1373629495@critter.freebsd.dk> <20130712125628.GC28893@1wt.eu>
In-Reply-To: <20130712125628.GC28893@1wt.eu>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-originating-ip: [172.31.20.85]
x-kse-antivirus-interceptor-info: protection disabled
x-cpdlp: 11dc4f62663d382bc5fd24294d5f2e6131806c8fff
Content-Type: text/plain; charset="us-ascii"
Content-ID: <EB2D65B3FDFFF64F9AFB550C2CBCA4C3@ad.checkpoint.com>
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
Received-SPF: pass client-ip=194.29.34.68; envelope-from=ynir@checkpoint.com; helo=smtp.checkpoint.com
X-W3C-Hub-Spam-Status: No, score=-6.1
X-W3C-Hub-Spam-Report: AWL=-0.798, RCVD_IN_DNSWL_HI=-5, RP_MATCHES_RCVD=-0.303, SPF_PASS=-0.001
X-W3C-Scan-Sig: maggie.w3.org 1UxjLE-0007vD-4z 1207fadc26576113437c2379308af140
X-Original-To: ietf-http-wg@w3.org
Subject: Re: HTTP router point-of-view concerns
Archived-At: <http://www.w3.org/mid/22115082-53F8-433C-9497-755800803B93@checkpoint.com>
Resent-From: ietf-http-wg@w3.org
X-Mailing-List: <ietf-http-wg@w3.org> archive/latest/18735
X-Loop: ietf-http-wg@w3.org
Resent-Sender: ietf-http-wg-request@w3.org
Precedence: list
List-Id: <ietf-http-wg.w3.org>
List-Help: <http://www.w3.org/Mail/>
List-Post: <mailto:ietf-http-wg@w3.org>
List-Unsubscribe: <mailto:ietf-http-wg-request@w3.org?subject=unsubscribe>

Hi

This thread has forked to discussing session management. I'd like to call your attention to the fact that in the past, this working group was considered too busy with HTTP/2.0 to spend time on things like session management or HTTP authentication schemes. For this reason it was suggested that the WebSec working group work on session management. 

Right now, on the WebSec mailing list ([1]) there is a thread ([2]) about taking on this work. Being engineers, the discussion there is veering towards solutions before there's even an agreed-upon problem statement, but that's besides the point. If you are interested in defining an alternative to session management based on session cookies, please subscribe ([3]) to the WebSec mailing list and say so. 

Thanks

Yoav

[1] http://www.ietf.org/mail-archive/web/websec/current/threads.html
[2] http://www.ietf.org/mail-archive/web/websec/current/msg01680.html
[3] https://www.ietf.org/mailman/listinfo/websec

On Jul 12, 2013, at 3:56 PM, Willy Tarreau <w@1wt.eu> wrote:

> Hi Poul-Henning,
> 
> On Fri, Jul 12, 2013 at 11:44:55AM +0000, Poul-Henning Kamp wrote:
>> In message <CD9E163F-1225-4DA8-9982-8BDBD16B1051@mnot.net>, Mark Nottingham wri
>> tes:
>> 
>>> This has been brought up a number of times. I think what we need is a =
>>> concrete proposal *with* a detailed plan for a workable transition to =
>>> the new mechanism -- which seems to be the (or at least one) sticking =
>>> point whenever this comes up.
>> 
>> I have given a concrete example multiple times, it's very simple:
>> 
>> 	The client always sends along a session-identifier of N (128?)
>> 	bits.
>> 
>> 	If the first bit is zero, this is an anonymous, transient
>> 	session, not (to be) associated with any other session.
>> 
>> 	If the first bit is one, this is a persistent session
>> 	identifier, which the server can use to look up any relevant
>> 	state or information from previous instances of this
>> 	session, in its local database.
>> 
>> 	This replaces the Cookie: and Set-Cookie: headers, which
>> 	SHALL NOT be sent in the HTTP/2.0 protocol.
>> 
>> Advantages:
>> 
>> 	We get a fixed size session-identifier for HTTP routers to
>> 	use for flow-routing.
>> 
>> 	We get an actual (client controlled) session-concept, rather
>> 	than all sorts of ad-hoc simulations with cookies.
>> 
>> 	Data with privacy-concerns are stored on the server not on
>> 	random clients the user happens to borrow or use.
>> 
>> 	The overhead of encrypting and signing the data in cookies
>> 	is avoided, since they are stored on the server side where
>> 	nobody can fudge them.
>> 
>> Backwards compatibility:
>> 
>> 	It should be obvious that simulating the Cookie concept for
>> 	framework compatibility on the server side is a trivial
>> 	matter of programming:  Rather than send set-cookies, write
>> 	them to a database, indexed by the session-id.  Rather than
>> 	receive Cookie: headers, look them up in the database.
>> 
>> There, solved.
> 
> Not really in fact. While I tend to generally agree with the points
> you make for scalability, this one does not scale. One of the big
> benefits of cookies is that client is responsible for synchronizing
> information between multiple servers *if needed*. When you're building
> an architecture using anycast DNS + ECMP + L4 load balancers to reach
> your servers, you can't predict if a client will come back to the same
> place to retrieve its context, and having the ability to make it hold
> *some* data is really useful.
> 
> If you store everything on server-side, you're forced to synchronize
> everything between all servers of all datacenters because you don't
> even know where your client will go with next hit, let alone parallel
> requests. And this is clearly not possible on many of the platforms
> where both of our products are deployed to achieve connection rates
> in the 6 digits.
> 
> So there *is* some use to store data on the client, it's just that it
> has been long abused to store session identifiers because it was the
> only mechanism available.
> 
> While I'd like to see a simple session management system (like the one
> you propose maybe, even if it does not cover the case of low entropy
> client devices), I don't want to see the cookies disappear. I just want
> to be able to rely on session ID without having to parse cookies when
> that's not needed.
> 
> Regards,
> Willy