Re: [TLS] Drafts for batch signing and PKCS#1 v1.5

Ben Schwartz <> Wed, 31 July 2019 12:01 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id CBA35120145 for <>; Wed, 31 Jul 2019 05:01:46 -0700 (PDT)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -17.5
X-Spam-Status: No, score=-17.5 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_MED=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, ENV_AND_HDR_SPF_MATCH=-0.5, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, USER_IN_DEF_DKIM_WL=-7.5, USER_IN_DEF_SPF_WL=-7.5] 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 zmxTJ6WoQGML for <>; Wed, 31 Jul 2019 05:01:44 -0700 (PDT)
Received: from ( [IPv6:2607:f8b0:4864:20::d32]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by (Postfix) with ESMTPS id 466E51200F6 for <>; Wed, 31 Jul 2019 05:01:44 -0700 (PDT)
Received: by with SMTP id q22so15833699iog.4 for <>; Wed, 31 Jul 2019 05:01:44 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=rmEvwFiwIQXEBGM3CTiVtRF+9kCRcWBSSKc2/Y4YbSE=; b=sKAocFNMVu5vivmcw7Z6/FIKA6VA39odMedoa/GWf6g77+Z2NAFBxlsUkSu0qUTwOe bfR/jQEIFicuUP6b/YpJ0JboIG4mBrdiNmgqU5jXqDIiwaWZESdqsRUsHQUxkGIA9yBL K74kkyAI3HTXiulglWqzbZqifkeZ7KQKcxvl16DuhJ2qcPuhprzab/cHqq7DMNSycZL+ C8j3FD8tVabUQw4nkGMILCihF4eiJPlD7uT8iCsXSiWTaDozy50fpSs3GvksKYaODSY0 AYBAzyR3AkPCV4/ObYBR3Y5YOqUGs/A6RE/56++CoRxN4evZVvxpOfqEgcV9cI1TKc48 4sSQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=rmEvwFiwIQXEBGM3CTiVtRF+9kCRcWBSSKc2/Y4YbSE=; b=A2k2rk28sCh7jeLthN6hmUaqY9Kg+JfkOCCdizvcOF2wNzb6bgjGOKcG4Pg+2QWuwv 7NQ3W8LW1Dj7unZZDYBBy4qndSss//Xmm9AGOc1EfhdvtnC+d2kMQcl6Vi1I9V523PBz 692nYnF2UHO7tBktE03Fv2P7FVQ+aLJwxlX0mYBeQ7out7nuWUHEF8r6oetdjWcsNM0w U39gD/Prkzw4mKV4ohsRj83G4iFAWFoT/QaDNoqQgMDCzks+yn5bYGwwH4nX30jVC1Xt IlEnglha2AAsDG1pYYDSB7T4zSP0bfymrXU02Fan5GxWXP3AlNrZazyF7N4U6ykP4jZp hu+Q==
X-Gm-Message-State: APjAAAVnvRVZTz9yJSAkhtKSzsFl9Cvi0o1UxQduBxLj6Cl9cH6foWnh AQz1xNjpH6G1m4Aw3WnaHlmcFHpDxeIdMSlUhC12sQ==
X-Google-Smtp-Source: APXvYqyzwKO7ciJMLV3K3HrhVmJ0zXOBa7ZBpZpzYLJBewKmuG+2AsGiPwfubd9w3iNMPTkJ1pLFXD7Y0tAVAv9kYvk=
X-Received: by 2002:a02:c550:: with SMTP id g16mr123998613jaj.49.1564574501064; Wed, 31 Jul 2019 05:01:41 -0700 (PDT)
MIME-Version: 1.0
References: <> <> <> <> <>
In-Reply-To: <>
From: Ben Schwartz <>
Date: Wed, 31 Jul 2019 08:01:28 -0400
Message-ID: <>
To: David Benjamin <>
Cc: Martin Thomson <>, "<>" <>
Content-Type: multipart/signed; protocol="application/pkcs7-signature"; micalg="sha-256"; boundary="00000000000064faf1058ef8e3e5"
Archived-At: <>
Subject: Re: [TLS] Drafts for batch signing and PKCS#1 v1.5
X-Mailman-Version: 2.1.29
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: Wed, 31 Jul 2019 12:01:47 -0000

On Wed, Jul 31, 2019 at 12:12 AM David Benjamin <>

> On Tue, Jul 30, 2019 at 11:59 PM Martin Thomson <> wrote:
>> On Wed, Jul 31, 2019, at 13:54, Ben Schwartz wrote:
>> > The batch signing idea is very cool. I'm not entirely sure I understand
>> > the intended use case, though. The intro suggests that this motivated
>> > by DoS defense, but presumably an attacker who controls their own TLS
>> > client stack could simply omit support for these signature schemes. Do
>> > you envision a future where servers can safely omit support for all the
>> > non-batch signature schemes? Or are you thinking of attackers who don't
>> > control the TLS client stack?
>> The usual trick when under duress is to attempt to process some requests,
>> and lowering the cost of handling those requests enables higher tolerance
>> to attack and better continuity of service.  A server might choose not to
>> serve clients that don't offer batching if it is stressed.
> Yup. The signing cost of a batch-capable client is effectively zero. (I
> expect it's already common to preferentially serve ECDSA-capable clients
> when under load.) Also, if many clients implement this, serving load under
> normal operation goes down, which is also valuable..

OK.  I think it would be good to clarify the motivation in the intro.  (For
me, defending against DDoS attackers who don't control the TLS client stack
is also a compelling use case.)

>> > Minor question: in the tree diagrams, m2 goes to t04. Is there any
>> > reason it couldn't go directly to t12? That would seem more natural to
>> > me.
>> The blinding process is explained in Section 4.3.
> I think Ben is asking why the tree doesn't put m2 a level higher (like CT
> does), instead of adding the padding nodes. That would work too. I chose
> this one because I found it more straightforward, and it doesn't
> particularly matter. Also it's what Roughtime did and I cribbed the
> construction from Roughtime. :-)

OK, thanks for the explanation.  My main reason to favor the CT-style tree
structure is that it avoids load spikes.  In this structure, incrementally
processing message mk requires k hashes when k is a power of 2, as opposed
to O(1) hashes for each message in a CT-style tree.

In principle, the signer could pick any tree strategy as long as it
> produced valid paths for each message. But I think it's probably better for
> the draft to be opinionated, rather than risk implementers mess things up.

A SHOULD-strength recommendation for a particular approach seems fine, but
I think sophisticated implementers might want to use different structures
depending on their needs.

> _______________________________________________
> TLS mailing list