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

Karthikeyan Bhargavan <> Tue, 26 May 2015 08:05 UTC

Return-Path: <>
Received: from localhost ( []) by (Postfix) with ESMTP id 09D5A1B2A34 for <>; Tue, 26 May 2015 01:05:09 -0700 (PDT)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -6.56
X-Spam-Status: No, score=-6.56 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HELO_EQ_FR=0.35, RCVD_IN_DNSWL_HI=-5, T_RP_MATCHES_RCVD=-0.01] autolearn=ham
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id mq8DlFgWiB25 for <>; Tue, 26 May 2015 01:05:07 -0700 (PDT)
Received: from ( []) (using TLSv1 with cipher RC4-SHA (128/128 bits)) (No client certificate requested) by (Postfix) with ESMTPS id 905BD1B2A33 for <>; Tue, 26 May 2015 01:05:06 -0700 (PDT)
X-IronPort-AV: E=Sophos;i="5.13,497,1427752800"; d="asc'?scan'208";a="155045492"
Received: from ([]) by with ESMTP/TLS/AES128-SHA; 26 May 2015 10:05:05 +0200
Mime-Version: 1.0 (Mac OS X Mail 7.3 \(1878.6\))
Content-Type: multipart/signed; boundary="Apple-Mail=_9935C8F3-05CC-4C37-974A-3C4D5C2B886C"; protocol="application/pgp-signature"; micalg=pgp-sha512
X-Pgp-Agent: GPGMail 2.5b6
From: Karthikeyan Bhargavan <>
In-Reply-To: <20150526072724.GA9576@LK-Perkele-VII>
Date: Tue, 26 May 2015 10:05:04 +0200
Message-Id: <>
References: <> <> <> <20150526072724.GA9576@LK-Perkele-VII>
To: Ilari Liusvaara <>
X-Mailer: Apple Mail (2.1878.6)
Archived-At: <>
Cc: "" <>
Subject: Re: [TLS] More clarity on resumption and session hash
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." <>
List-Unsubscribe: <>, <>
List-Archive: <>
List-Post: <>
List-Help: <>
List-Subscribe: <>, <>
X-List-Received-Date: Tue, 26 May 2015 08:05:09 -0000

> 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.

It’s worth checking, but I believe these cases are covered in the spec.
We use SHOULD NOT for these cases; after being advised that MUST NOT is too strong for legacy interop.

> 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.

Indeed these are the cases that Ekr is objecting to.
In the current draft we say SHOULD NOT for these, and Ekr suggests it should be MUST NOT.
Formally, these cases are “safe” in the sense that they are protected by the extended master secret on the first handshake.
In practice, they are a bit weird because it looks like the connection security degraded between the two handshakes.

The question is whether these could happen in practice, and I would welcome more thought son that.

> 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