Re: [TLS] More clarity on resumption and session hash

Ilari Liusvaara <ilari.liusvaara@elisanet.fi> Tue, 26 May 2015 07:27 UTC

Return-Path: <ilari.liusvaara@elisanet.fi>
X-Original-To: tls@ietfa.amsl.com
Delivered-To: tls@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 8ABD81B29CC for <tls@ietfa.amsl.com>; Tue, 26 May 2015 00:27:29 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.901
X-Spam-Level:
X-Spam-Status: No, score=-1.901 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_NONE=-0.0001, SPF_PASS=-0.001] autolearn=ham
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id UDyAgqA3So8U for <tls@ietfa.amsl.com>; Tue, 26 May 2015 00:27:27 -0700 (PDT)
Received: from emh01.mail.saunalahti.fi (emh01.mail.saunalahti.fi [62.142.5.107]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 2103F1B29CD for <tls@ietf.org>; Tue, 26 May 2015 00:27:26 -0700 (PDT)
Received: from LK-Perkele-VII (a91-155-194-207.elisa-laajakaista.fi [91.155.194.207]) by emh01.mail.saunalahti.fi (Postfix) with ESMTP id C113210C013; Tue, 26 May 2015 10:27:24 +0300 (EEST)
Date: Tue, 26 May 2015 10:27:24 +0300
From: Ilari Liusvaara <ilari.liusvaara@elisanet.fi>
To: Karthikeyan Bhargavan <karthikeyan.bhargavan@inria.fr>
Message-ID: <20150526072724.GA9576@LK-Perkele-VII>
References: <CABcZeBM9UGZoifzDZZ3METMJJHa1ueX9CdHiccYTDW5UVC3RrA@mail.gmail.com> <CABkgnnVYu-YVQ9WkV_pi8R94dAmXSC9FrJ37iFRV=E4OxJyHTg@mail.gmail.com> <065E8B97-8EA0-4C6B-84B4-955648C329BE@inria.fr>
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <065E8B97-8EA0-4C6B-84B4-955648C329BE@inria.fr>
User-Agent: Mutt/1.5.23 (2014-03-12)
Sender: Ilari Liusvaara <ilari.liusvaara@elisanet.fi>
Archived-At: <http://mailarchive.ietf.org/arch/msg/tls/Tirs21AG6j_IXVmacE3QM51fV80>
Cc: "tls@ietf.org" <tls@ietf.org>
Subject: Re: [TLS] More clarity on resumption and session hash
X-BeenThere: tls@ietf.org
X-Mailman-Version: 2.1.15
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/options/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, 26 May 2015 07:27:29 -0000

On Tue, May 26, 2015 at 08:17:15AM +0200, Karthikeyan Bhargavan wrote:
> On 26 May 2015, at 07:03, Martin Thomson <martin.thomson@gmail.com> wrote:
> 
> > On 25 May 2015 at 10:35, Eric Rescorla <ekr@rtfm.com> wrote:
> >> The two main options appear to be:
> >> 
> >>    1. Fall back to a full handshake.
> >>    2. Abort the connection
> >> 
> >> The argument for the first appears to be interop. The argument for the
> >> second appears to be that it's likely there is an error or a mid-flight
> >> reconfiguration on the client (which seems not good). My mild preference
> >> is for abort but I think it's important in any case that the draft be
> >> clear.
> > 
> > I'd prefer the second two.  That is, unless someone can come up with a
> > legitimate scenario where the former is needed.
> 
> The feedback we’ve been getting on the draft has been to try and preserve interoperability
> with legacy clients and servers (even more than the current draft.)
> Considering this goal, aborting seems harsh.

Also, there are two dangerous scenarios:
- You have non-session_hash session and resume that.
- You try to use TLS-Exporter in non-session_hase session for authentication.

Based on this, it would seem to be the safest to:
- Not offer any non-session_hash sessions for resumption.
- Deny resumption (full handshake) of any non-session_hash sessions, regardless
  of client session_hash support.
- Disable TLS-Exporter in non-session_hash sessions.


The following are odd edge cases (assuming both ends are due endpoints, these
are safe):
- Resume session_hash-enabled session wihout session_hash extension
- Resume session_hash-enabled session with non-session_hash server.


I was thinking latter of those odd behaviours could occur if one performs
rolling security fix of server farm:
- Client is security fixed
- Server A is security fixed
- Client connects to A
- Client gets session_hash-enabled session.
- Client connects to B, attempting to resume.
- Servers share session DB/key, so resumption succeeds.
- Client gets resumption without session_hash extension.


-Ilari