Re: [Trans] Long-term: scalable collective signing (of certs, log-heads, and/or SCTs)

Tom Ritter <tom@ritter.vg> Fri, 23 October 2015 18:59 UTC

Return-Path: <tom@ritter.vg>
X-Original-To: trans@ietfa.amsl.com
Delivered-To: trans@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 8CD8E1A8771 for <trans@ietfa.amsl.com>; Fri, 23 Oct 2015 11:59:07 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.379
X-Spam-Level:
X-Spam-Status: No, score=-1.379 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FM_FORGED_GMAIL=0.622, SPF_PASS=-0.001] autolearn=no
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 moUIEcjIgsPa for <trans@ietfa.amsl.com>; Fri, 23 Oct 2015 11:59:06 -0700 (PDT)
Received: from mail-qk0-x232.google.com (mail-qk0-x232.google.com [IPv6:2607:f8b0:400d:c09::232]) (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 D00881A877A for <trans@ietf.org>; Fri, 23 Oct 2015 11:59:05 -0700 (PDT)
Received: by qkca6 with SMTP id a6so86617932qkc.3 for <trans@ietf.org>; Fri, 23 Oct 2015 11:59:04 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ritter.vg; s=vg; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc:content-type:content-transfer-encoding; bh=0atP6RM19grB8wosVAfVXtVGFdGW2mltBtRAgz8NXDg=; b=muCw9WkHFXtXaPsEUtTY+os2w4C1fOUpugqB6/rWn3kNu+99m7KFW2diPGJBxA6DyH 9o2SK2L1OHHr6usY4+eG/yTlfYO+MeZduei/4nPHsl3ddrNh73sEvAH+bh8iWiWUPmzM FYELLSRVC5tzp1dEdFKfyWRoR5k0lTdP5anec=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc:content-type:content-transfer-encoding; bh=0atP6RM19grB8wosVAfVXtVGFdGW2mltBtRAgz8NXDg=; b=NamFMtZQi7qtInyHwpXFsctiTyRWWdPjwPM0b6qtEMeenxNlb9cpvbPig34LTryxqe L9IDBvW1vRTi90G/Qfs1RRmZEkpj9JdTrJtPScuN8QolcrqixVyv2jYFuxyoMmtP2PMU ULK4WiZV5Djvw4eKm6l9tLT5L7Jv9WVPFo5tU2dge7VO+WIGeWuCzyy13NGuLtaoGv1G sMgGwdqQ/zqbBgbIF6MoNzDSLxtrd+2gO4SNU5Da2xDS5z0BA60sUJcrB+ywY+Gk6fZk GzNUaLnUxvNvV5nP63xZv8RxmETiwkt8umHKvbH7+GIknDWGdZX8X3sAapD7kh938CL4 6Yhg==
X-Gm-Message-State: ALoCoQln/snrJo0WDDWp7Li1DDVqzYi0Bb4hx38fRW/FHd0QH9/SrtQyI4nSKwUhUNgxD1hM7IJM
X-Received: by 10.55.43.37 with SMTP id r37mr27466149qkh.57.1445626744840; Fri, 23 Oct 2015 11:59:04 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.140.94.117 with HTTP; Fri, 23 Oct 2015 11:58:45 -0700 (PDT)
In-Reply-To: <2D598C01-6CE0-4151-BB58-1A93E4C265C1@gmail.com>
References: <17C96998-E1FB-4B25-8DC4-EF177D13FCF3@gmail.com> <CALzYgEe2WKMwx2LMNaC86QLC81ANLo2MB_Of1PjbwCUK17GcEQ@mail.gmail.com> <CABEqWMBwhe=JH1jftAa33xxWP4UCih64WHjYHMQ+MYK6ARiVsw@mail.gmail.com> <CALzYgEdLsBbc6fTgLMz0_z04RKv1Rp4xcSLf=nOAkHivDgQQvg@mail.gmail.com> <CA+cU71nowQTsPwvqRUdUy0GdjxUNVnJiOzS_ur-53+Y8wWkNxA@mail.gmail.com> <2D598C01-6CE0-4151-BB58-1A93E4C265C1@gmail.com>
From: Tom Ritter <tom@ritter.vg>
Date: Fri, 23 Oct 2015 13:58:45 -0500
Message-ID: <CA+cU71k=h74BfL304AiWX4yuwLEsCs5dkY8rV-USkxDjUkT+VA@mail.gmail.com>
To: Bryan Ford <brynosaurus@gmail.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
Archived-At: <http://mailarchive.ietf.org/arch/msg/trans/JDxQtJAX-5Vxns5yOmLtS2VRO9Q>
Cc: Katriel Cohn-Gordon <me@katriel.co.uk>, Eran Messeri <eranm@google.com>, "trans@ietf.org" <trans@ietf.org>
Subject: Re: [Trans] Long-term: scalable collective signing (of certs, log-heads, and/or SCTs)
X-BeenThere: trans@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Public Notary Transparency working group discussion list <trans.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/trans>, <mailto:trans-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/trans/>
List-Post: <mailto:trans@ietf.org>
List-Help: <mailto:trans-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/trans>, <mailto:trans-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 23 Oct 2015 18:59:07 -0000

Thanks for this, I was pretty far off from my assumptions!

On 22 October 2015 at 09:59, Bryan Ford <brynosaurus@gmail.com> wrote:
> No, at least in its current form there is technically particular threshold that needs to be decided on ahead of time, left unchanged, or even agreed on by everyone.  The leader/proposer (e.g., log server) produces a message, collects “partial signatures” from any subset of the M co-signers it deems to be online and available, and works with them to produce a collective signature that documents exactly which subset of the M potential co-signers was actually present and contributed to the signature.  By implication, it’s obvious from the collective signature how many of those co-signers were present, so if the leader (perhaps maliciously) tries to leave a bunch of honest participants out in one or more rounds, there’s lots of opportunity for anyone to notice and ask questions.
>
> In essence, the collective signing protocol as it stands produces something semantically equivalent in information content to up to M individual signatures, but merely “optimised” for a full rather than empty set of co-signers.  If all M signers are online and participating in a given signing round - as I would hope and expect to be the expected normal operating practice - then the collective signature is basically equivalent in size and verification cost to a single individual signature.  The size and verification cost of the collective signature then basically increases as more and more nodes “go missing”, basically because the collective signature needs to include (verifiable) metadata about the missing nodes allowing signature verifiers to “subtract out” those nodes’ components of the composite public key.  In the worst case, if the leader really wants to produce a collective signature with only 1 or 2 nodes actually participating, then the collective signature will get big. :)


Oh.  Really cool!  I think the larger size of signatures might be an
issue for SCTs, but like you mention, doing it for STHs seems quite
reasonable!


> No one needs to generate key pairs on behalf of everyone else: all participants generate their own key pairs independently and keep the private parts secret, just as in the M-individual-signatures case.  The main restriction is those keys all have to be generated in an agreed-upon cryptographic group: e.g., P-256, or P-something-else, or Ed25519 or Goldilocks.  Since elliptic curves used for signing are pretty standardised anyway (unlike the DSA practice of having new group parameters for each key pair), this doesn’t seem like a significant issue.


Agreed; nice!


> I’m assuming the members of M are reputable, relatively stable independent organisations who are able and committed to keep servers alive at least most of the time, so that it should be a fairly exceptional event (and a moment of public shame!) for such a witness/co-signing server to go AWOL even for one signing round.  Of course an organisation running a witness server could just suddenly go belly-up or decide to stop providing service without notice, but that will just mean that a “witness 15 was missing” metadata record will be present in each collective signature record signed with that group configuration until the next time the group configuration is updated.


I am less sure about that.  The more expectations placed on an
organization around uptime and reliability - the fewer organizations
you'll have participating.  I have to think a more successful model is
"Run this software for a month, get used to it, and then we'll add
you.  Keep it up as best you can, and if you have problems keeping it
up, we might remove you on our quarterly membership changes."


> I envision the group configuration being updated not too often, e.g., preferably like once a year or at most once every few months.  One obvious avenue for group configuration updates is simply to handle them the same way that updates to root CA certs, root log server certs, and other roots of trust are handled in web browsers: i.e., just align root-configuration updates with the software update cycle.
>
> Would a witness group configuration need to be “valid for 3 years” like root certificates?  That’s one possibility that might not be unreasonable, but collective signing gives us other interesting and potentially better alternatives.  For example, if a witness group’s composition changes every year or every quarter, then the last thing the leader might do in the prior group configuration is use it to collectively witness and sign a successorship record, stating what the next group configuration record is.  The successor group configuration can have not only added and/or removed members, but also all the remaining members can generate brand-new key pairs for each successive group configuration, and those participants can immediately scrub the private keys they were using in the prior configuration.  Clients who might be running months- or years-old web browser versions or whatnot can still “chain forward” by following multiple such successorship links from the last configuration they know and trust to the latest configuration.  This would thus not only ensure that old clients can transition to new roots of trust more seamlessly than they do now, but would also allow all the keys used in collective signing to have more like 1-year (or 3-month) lifespans rather than the currently typical 3-ish-year windows.

Chaining is good, requiring software updates doesn't seem very good.


>> Also, the slides mention "1-of-k" but I assume it's truly N-of-M and
>> not 1-of-M correct? Because we should assume at least 1 if not a few
>> orgs will have their key share compromised and we need to set N high
>> enough that the average security of the group of organizations is high
>> enough that compromising N orgs would be difficult.
>
> Hmmm, could you point out which slide you’re referring to?  Might be a typo.

Can't find it, must have gotten confused about your intro slide.