Re: [TLS] implementation of cookies in DTLS

Eric Rescorla <ekr@rtfm.com> Tue, 15 March 2011 11:51 UTC

Return-Path: <ekr@rtfm.com>
X-Original-To: tls@core3.amsl.com
Delivered-To: tls@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id 6F1FD3A6D5F for <tls@core3.amsl.com>; Tue, 15 Mar 2011 04:51:24 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -102.932
X-Spam-Level:
X-Spam-Status: No, score=-102.932 tagged_above=-999 required=5 tests=[AWL=0.045, BAYES_00=-2.599, FM_FORGED_GMAIL=0.622, RCVD_IN_DNSWL_LOW=-1, USER_IN_WHITELIST=-100]
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 rEpHDvkhVESy for <tls@core3.amsl.com>; Tue, 15 Mar 2011 04:51:21 -0700 (PDT)
Received: from mail-gx0-f172.google.com (mail-gx0-f172.google.com [209.85.161.172]) by core3.amsl.com (Postfix) with ESMTP id EB3833A6C96 for <tls@ietf.org>; Tue, 15 Mar 2011 04:51:20 -0700 (PDT)
Received: by gxk19 with SMTP id 19so244448gxk.31 for <tls@ietf.org>; Tue, 15 Mar 2011 04:52:45 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.90.62.29 with SMTP id k29mr4571323aga.15.1300189965592; Tue, 15 Mar 2011 04:52:45 -0700 (PDT)
Received: by 10.90.79.10 with HTTP; Tue, 15 Mar 2011 04:52:45 -0700 (PDT)
In-Reply-To: <AANLkTin6B=h36BSuFvS=WwMVf2BmgU=hEHXLcEAdw22O@mail.gmail.com>
References: <4D7D0292.7080700@gnutls.org> <CC864D93-07CA-4381-8C7A-CB263A3CA7DA@fh-muenster.de> <4D7E3487.7090805@gnutls.org> <40048296-255C-4DBF-A1B0-3E18721EE710@fh-muenster.de> <5ED7449A-546E-4457-861E-D780A117FD5A@fh-muenster.de> <A28CA8BD-3C30-4D4A-9DD9-05A0FA1574E3@lurchi.franken.de> <FDF29FE9-F64F-42AE-B885-7F3B64E3424D@fh-muenster.de> <B62B9484-F16A-405C-A943-504ADB6D572F@lurchi.franken.de> <6E372B69-4A29-4664-910B-35665760C7E2@fh-muenster.de> <DE5FC70F-9E17-4595-9162-CFC70457EEDF@lurchi.franken.de> <AANLkTikpbA5wgxOEhLH95ojBzAXAZOr9ZUGvXjMUGR9H@mail.gmail.com> <5A4D85EB-BBBC-4854-B661-808C512668DA@lurchi.franken.de> <AANLkTimUWvrzb-JuHbsX3sRFo=EYP_BCYKiQRBOpveEP@mail.gmail.com> <AANLkTi=+5VOYNp4w8jV7G-oTOufm0jZRVVGcyz9MMObR@mail.gmail.com> <AANLkTinDDKLataFYaDO69OkH2A74mqH=A0wR7YQAcrT9@mail.gmail.com> <AANLkTin6B=h36BSuFvS=WwMVf2BmgU=hEHXLcEAdw22O@mail.gmail.com>
Date: Tue, 15 Mar 2011 04:52:45 -0700
Message-ID: <AANLkTi=8F0jTc4K0DmeWErECGLCKczKaKWPweDUioEaH@mail.gmail.com>
From: Eric Rescorla <ekr@rtfm.com>
To: Nikos Mavrogiannopoulos <nmav@gnutls.org>
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable
Cc: "tls@ietf.org" <tls@ietf.org>
Subject: Re: [TLS] implementation of cookies in DTLS
X-BeenThere: tls@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: "This is the mailing list for the Transport Layer Security working group of the IETF." <tls.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/tls>, <mailto:tls-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/tls>
List-Post: <mailto:tls@ietf.org>
List-Help: <mailto:tls-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/tls>, <mailto:tls-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 15 Mar 2011 11:51:24 -0000

On Tue, Mar 15, 2011 at 4:37 AM, Nikos Mavrogiannopoulos
<nmav@gnutls.org> wrote:
> On Tue, Mar 15, 2011 at 12:18 PM, Eric Rescorla <ekr@rtfm.com> wrote:
>
>>> 2. Drop requirement: The server MUST use the same
>>>   version number in the HelloVerifyRequest that it would use when
>>>   sending a ServerHello.  Upon receipt of the ServerHello, the client
>>>   MUST verify that the server version values match.
>>> This will create incompatibilities when more than 1 DTLS protocols are
>>> implemented
>>> in a single client or server. It is not really possible for a server
>>> to do an emulation of
>>> the decisions it would do as if a state existed. What are the reasons for this
>>> requirement?
>> I don't understand why this is an issue: the server can remember what the
>> client offered (indeed, he must remember a whole pile of other stuff in order
>> to verify that it hasn't changed) by stuffing a digest into the cookie.
>
> My issue is not about server remembering stuff, but the fact that at this point
> the server has minimum information  and has to do actual negotiation of the
> protocol version.
>
> Depending on the implementation chosing the version to negotiate might not
> be simple. I.e. the application might have configured that DTLS 1.0 and DTLS
> 1.2 are allowed, but say for example only ciphersuite 0xfb, 0xbf is enabled for
> this client, that has the constraint that it can be used with DTLS 1.0
> (probably
> this is not an issue now in DTLS but this scenario is common in TLS).
> Thus the server cannot readily negotiate the highest DTLS 1.2, but has to also
> check ciphersuites for conflicts, meaning that this pre-handshake cannot really
> be kept as minimal as possible.
>
> I think the pre-handshake should be as dumb as possible to serve its
> role as DoS
> protection and no more. In typical cases it is expected to be implemented as
> something external to the handshake process, thus would be nice to require
> as less information and information interpreting as possible.

Ah, I see your point. I'll have to think a bit about what I think the
best approach is
here.

-Ekr