Re: [TLS] Simplifying signature algorithm negotiation

Eric Rescorla <> Tue, 15 March 2016 00:22 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id 4406612D70F for <>; Mon, 14 Mar 2016 17:22:42 -0700 (PDT)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -2.599
X-Spam-Status: No, score=-2.599 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_LOW=-0.7] autolearn=ham autolearn_force=no
Authentication-Results: (amavisd-new); dkim=pass (2048-bit key)
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id uLMwH0gOFR0b for <>; Mon, 14 Mar 2016 17:22:40 -0700 (PDT)
Received: from ( [IPv6:2607:f8b0:4002:c05::229]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by (Postfix) with ESMTPS id B8C4F12D53B for <>; Mon, 14 Mar 2016 17:22:39 -0700 (PDT)
Received: by with SMTP id g127so1787104ywf.2 for <>; Mon, 14 Mar 2016 17:22:39 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;; s=20150623; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=i1AvZJUe/s9Ei8UbXmvqIEmKMvjTmnfHIMcxmr70zGQ=; b=MIcum8U1SBNhQEPnRX6gx97B/7aqZ0H1gBQgRRADPvGGDikKzqBxBBcIi900EVtCm8 PZLClffyFAOrDkJLck8gZrdiuPwbeOI4/7rOltrfUFVnDbqt81Fy+jUCpZHTC0g7BFNS P2UNlmxWXMRiUGMH+sAUbRAW4En38FaZJqPSxpKNSZJ/rSr4tG5grnxgFbtFkYUaAH7H yiZZE1CvbCePaIwk/yHT7u6tkFBVcAyv7QcCSj3q4uN3fm6ndPsvO9Bxr97XXFX4AbGm udiWPvJFulpI+qmaXmr+LrgKp14ZXUguPuadfwWlf8OL7xahZUMujh/7IV+SGlQDIiFT Z0VQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=i1AvZJUe/s9Ei8UbXmvqIEmKMvjTmnfHIMcxmr70zGQ=; b=kIFwn3U8l0GDqn4cj+9V9irrTAdZ1yKwupKZ9XyFC6gUzOhkrzLj5Ngare5qoa+UeY j195uTvOzkGYVIAmtRpKcRMi7t9NBwqDSC2c/gvAG/9GQG0gh0fuBEO3PGCBchD+aeDv oZjcPYKQ22OWqAhVFMnpxGCJ2bCjR65/7i4ESp6cAx17v64/Fpy0hygqNg9Ht/lU9nVa rAWx2m2vKPvvYdwATiF4aXykeGokwMlLNRIodX40g375e6lvsvy7Apf8vCUP9A/ErwbA Z2z9bPOAPacStmpIljaFGr6sa+7nexQ/iSzsEoFqTH6P9ivd9lnBBOBL+FAICJ13xd5S eD/w==
X-Gm-Message-State: AD7BkJIOrS6yDSKlLaYwc2sT7EE/i+1jPxseCdnlOBcZnQsvOhMzpk4jYc/q0r/kW/TEZhqBHD6b0nNaO2OKlw==
X-Received: by with SMTP id 140mr6609945ybn.159.1458001358939; Mon, 14 Mar 2016 17:22:38 -0700 (PDT)
MIME-Version: 1.0
Received: by with HTTP; Mon, 14 Mar 2016 17:21:59 -0700 (PDT)
In-Reply-To: <>
References: <> <> <> <> <>
From: Eric Rescorla <>
Date: Mon, 14 Mar 2016 17:21:59 -0700
Message-ID: <>
To: David Benjamin <>
Content-Type: multipart/alternative; boundary=001a11c0417c1525ad052e0b65d8
Archived-At: <>
Cc: ekr <>, "" <>
Subject: Re: [TLS] Simplifying signature algorithm negotiation
X-Mailman-Version: 2.1.17
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, 15 Mar 2016 00:22:42 -0000


Thanks for being patient with me here. Sorry it took so long

As usual, this seems like a question of whether we're going to want a lot
of flexibility
(thus motivating orthogonal negotiation) versus whether we're going to want
little flexibility
(thus motivating suites). I think that with the historical practice, the
arguments for orthogonal
negotiation were a lot stronger, but now that we seem to be leaning towards
(a) fewer algorithms
and (b) having algorithms which are themselves suites, I do agree that the
pendulum is swinging
more towards suites.

On balance, I guess, I'm neutral-to-supportive of this change in general,
if others in the WG want
to make it. On the details:

- It seems like we could let measurements tell us what code points we need.
If we never see
  P256-SHA512 in the wild, then we don't need it (and can add it later if

- I took a quick look at the PR and I'm not sure that some of the code
points assignments are
  right. I made comments.

- If we decide to allow PKCS#1 v1.5 for in-protocol signatures, then we'll
probably want to define
  code points for 1.5 in both in-protocol (CertificateVerify) and
certificates to distinguish these.

As far as process, it seemed like people were generally positive about this
in this discussion,
but I'll rely on the chairs to determine consensus.


On Mon, Feb 29, 2016 at 9:16 AM, David Benjamin <>

> On Fri, Jan 15, 2016 at 8:23 PM Eric Rescorla <> wrote:
>> On Fri, Jan 15, 2016 at 5:19 PM, David Benjamin <>
>> wrote:
>>> On Fri, Jan 15, 2016 at 8:07 PM Dave Garrett <>
>>> wrote:
>>>> On Friday, January 15, 2016 03:45:34 pm David Benjamin wrote:
>>>> > This is a proposal for revising SignatureAlgorithm/HashAlgorithm. In
>>>> TLS
>>>> > 1.2, signature algorithms are spread across the handshake.
>>>> [...]
>>>> > I propose we fold the negotiable parameters under one name.
>>>> [...]
>>>> > 2. Remove HashAlgorithm, SignatureAlgorithm,
>>>> SignatureAndHashAlgorithm as
>>>> > they are. Introduce a new SignatureAlgorithm u16 type and negotiate
>>>> that
>>>> > instead.
>>>> I previously proposed this here:
>>>> ekr was against it, though it hasn't been discussed that throughly.
>>> Ah, thanks! I must have missed this discussion. Or perhaps I saw it and
>>> forgot.
>>> ekr, are you still against this sort of thing? I think the new CFRG
>>> signature algorithms tying decisions together is a good argument for why
>>> we'd want this. If we believe this trend is to continue (and I hope it
>>> does. Ed25519 is a nice and simple interface), trying to decompose it all
>>> seems poor.
>> I'm not sure. I agree that the CFRG thing seems to be a new development.
>> I'll
>> try to confirm my previous opinion or develop a new one over the weekend
>> :)
> ekr, did you have confirmed or new thoughts on this change?
> From elsewhere in the thread, I put together a draft PR if you wanted
> something to look at in that form.
> It incorporated some of the suggestions in the thread (not mentioning the
> really legacy values, pairing NIST curves with hashes, etc.), but that's
> not the important part. The meat of the proposal is unifying signature
> algorithms under one number and a shared interface, which I think is a
> valuable simplification.
> David