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

Ben Schwartz <bemasc@google.com> Wed, 31 July 2019 12:01 UTC

Return-Path: <bemasc@google.com>
X-Original-To: tls@ietfa.amsl.com
Delivered-To: tls@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id CBA35120145 for <tls@ietfa.amsl.com>; Wed, 31 Jul 2019 05:01:46 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -17.5
X-Spam-Level:
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: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=google.com
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 zmxTJ6WoQGML for <tls@ietfa.amsl.com>; Wed, 31 Jul 2019 05:01:44 -0700 (PDT)
Received: from mail-io1-xd32.google.com (mail-io1-xd32.google.com [IPv6:2607:f8b0:4864:20::d32]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 466E51200F6 for <tls@ietf.org>; Wed, 31 Jul 2019 05:01:44 -0700 (PDT)
Received: by mail-io1-xd32.google.com with SMTP id q22so15833699iog.4 for <tls@ietf.org>; Wed, 31 Jul 2019 05:01:44 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; 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; d=1e100.net; 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: <CAF8qwaDxRhGXc522Rf4C-8OcGM4Mm08Xca4KNNpHcT=4Va89aA@mail.gmail.com> <CAF8qwaD=5B9AXkGziwHZ-=LGH-n6fW0KQ9cQfZ2DWhpjDujhEQ@mail.gmail.com> <CAHbrMsCBvZz7j5uH-gKfDrxc4ub=btZh7RyxNZmaADXZEEFJ+A@mail.gmail.com> <19909dab-34bf-442e-9e67-9aef459d472c@www.fastmail.com> <CAF8qwaA1ckZEQmEgcevHVSPVPLfUb-4iVvOb=J9kd=EL=Ckvqw@mail.gmail.com>
In-Reply-To: <CAF8qwaA1ckZEQmEgcevHVSPVPLfUb-4iVvOb=J9kd=EL=Ckvqw@mail.gmail.com>
From: Ben Schwartz <bemasc@google.com>
Date: Wed, 31 Jul 2019 08:01:28 -0400
Message-ID: <CAHbrMsAV0gOSxVKTozO3D813gpHpaOSJWG2vJJuS9VXdKL9ysQ@mail.gmail.com>
To: David Benjamin <davidben@chromium.org>
Cc: Martin Thomson <mt@lowentropy.net>, "<tls@ietf.org>" <tls@ietf.org>
Content-Type: multipart/signed; protocol="application/pkcs7-signature"; micalg=sha-256; boundary="00000000000064faf1058ef8e3e5"
Archived-At: <https://mailarchive.ietf.org/arch/msg/tls/OPwwbHENtVgjwP0MEcaRFPNz-nE>
Subject: Re: [TLS] Drafts for batch signing and PKCS#1 v1.5
X-BeenThere: tls@ietf.org
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." <tls.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/tls>, <mailto:tls-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/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: Wed, 31 Jul 2019 12:01:47 -0000

On Wed, Jul 31, 2019 at 12:12 AM David Benjamin <davidben@chromium.org>;
wrote:

> On Tue, Jul 30, 2019 at 11:59 PM Martin Thomson <mt@lowentropy.net>; 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.

David
> _______________________________________________
> TLS mailing list
> TLS@ietf.org
> https://www.ietf.org/mailman/listinfo/tls
>