Re: [DNSOP] DNSSEC threshold signatures idea

Warren Kumari <warren@kumari.net> Fri, 07 September 2018 18:38 UTC

Return-Path: <warren@kumari.net>
X-Original-To: dnsop@ietfa.amsl.com
Delivered-To: dnsop@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 61CBC1252B7 for <dnsop@ietfa.amsl.com>; Fri, 7 Sep 2018 11:38:21 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.91
X-Spam-Level:
X-Spam-Status: No, score=-1.91 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_NONE=-0.0001, SPF_PASS=-0.001, T_DKIMWL_WL_MED=-0.01] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=kumari-net.20150623.gappssmtp.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 O_k0QpuJ9-92 for <dnsop@ietfa.amsl.com>; Fri, 7 Sep 2018 11:38:18 -0700 (PDT)
Received: from mail-wm0-x22f.google.com (mail-wm0-x22f.google.com [IPv6:2a00:1450:400c:c09::22f]) (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 023CF12008A for <dnsop@ietf.org>; Fri, 7 Sep 2018 11:38:17 -0700 (PDT)
Received: by mail-wm0-x22f.google.com with SMTP id n11-v6so15483280wmc.2 for <dnsop@ietf.org>; Fri, 07 Sep 2018 11:38:17 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kumari-net.20150623.gappssmtp.com; s=20150623; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=AefnMav1D+3aPcT5UU16YZBSnxXfTDaWfO+oGPSBUUM=; b=1rZ3+3THJTde+yVMHCxOlIwuNKE0cKTSbp0kSfwwaWqx475elFVJXhpL7x3inPZm/g FPFZ95ODAopBNdP8j+v549OjYVNOaPb7sbp/hq8NapRHzjLmnEbyeimZ/u0oaNC6Zy0X i2c9slLktTDkAxvtywy4TBUi9OCyxma3l6tWBzhyRzKP7AsV5Ev+mAFVHYxKUX3QjEej kIVeOTRhn2K/xurigHLYPkbBPfMKODAoAUQYrHHjh5KHk2zrJZwqi96EB/3kgjKEN8Nr aB6ZjZE97OEWEhw0nKMGx4X3lGWjADrVbQ/7CAFqocrS6HjRtd44TUdeZPuZCYPopQs2 v5YA==
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=AefnMav1D+3aPcT5UU16YZBSnxXfTDaWfO+oGPSBUUM=; b=S+uV69vngOm3BQN+PMie6VYj438sp0qw7InTMywNzQxln7g3Zjp1+sS6fs2K3k2WmO pyHc6ERu3OQNPa7XgMlAmCEacvtCJoDDTSXP7rvfLpxflqWNV+q9nIEI65sx8XEIEnXs dcsivdXkkiNSuUAcNSSwmAuad6JgmJKKucVHB/YN54XW/XRHE/TPASjUuZXHpU5QTsa2 2hwl1eIeR2htCPWCyRZv3SATigEpHl8vORVFTXRys0dkPhIDrA7AojOOkMmd0Ozhw1rO sNAhP+kjW4rZMF4J8VD1+qn5E1lNprTCWwq5C/vdD2FfDs2Ur/KQIumE1Y6iOH/IO7iT oSyA==
X-Gm-Message-State: APzg51DyMtio2XA4BWqYIdyrwr2YA2YH6idq6vKIfzVe4XZwfKGUL70T 146WF2w2epZLUDqzf7FnM9wyghG+vbXflIAa4HwWpA==
X-Google-Smtp-Source: ANB0VdZS5h+1nG/nrXlzMUewF13yQK6wHYjVVAQkjGvSsC9nDFmQtkd77T1fHusabctrXBvfu8mlF0Tbl5B+bhS8FCk=
X-Received: by 2002:a1c:87c9:: with SMTP id j192-v6mr5676381wmd.71.1536345496048; Fri, 07 Sep 2018 11:38:16 -0700 (PDT)
MIME-Version: 1.0
References: <20180906161252.GA2840@jurassic> <20180906173412.og736bryaeqbwjds@nic.cl> <CABf5zvKPhX_t8oHJmsLEB3SxrAptyec9NVXx0sxfievc19wW1w@mail.gmail.com>
In-Reply-To: <CABf5zvKPhX_t8oHJmsLEB3SxrAptyec9NVXx0sxfievc19wW1w@mail.gmail.com>
From: Warren Kumari <warren@kumari.net>
Date: Fri, 07 Sep 2018 14:37:39 -0400
Message-ID: <CAHw9_iKkO4GamFBSoVMxdhRmGGR2maxoc0=DPoGp+Tgr3idMtg@mail.gmail.com>
To: Steve Crocker <steve@shinkuro.com>
Cc: hsalgado@nic.cl, dnsop <dnsop@ietf.org>, dns-operations <dns-operations@dns-oarc.net>, muks@mukund.org
Content-Type: multipart/alternative; boundary="0000000000008b734505754c4f9c"
Archived-At: <https://mailarchive.ietf.org/arch/msg/dnsop/cIjVvR6q70kQ7-JN1EIHloW6VOA>
Subject: Re: [DNSOP] DNSSEC threshold signatures idea
X-BeenThere: dnsop@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: IETF DNSOP WG mailing list <dnsop.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/dnsop>, <mailto:dnsop-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/dnsop/>
List-Post: <mailto:dnsop@ietf.org>
List-Help: <mailto:dnsop-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/dnsop>, <mailto:dnsop-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 07 Sep 2018 18:38:22 -0000

On Thu, Sep 6, 2018 at 2:15 PM Steve Crocker <steve@shinkuro.com> wrote:

> I've been thinking about a version of this problem for several years.
> Attached are a short paper and presentation on the topic of a tamperproof
> root zone update system.  The ideas are also applicable to other levels in
> the DNS tree.
>
> In parallel, there is work on open source hardware crypto that can easily
> be extended to include this functionality.
>
>
Yup. Two of my concerns are:

1: the HSM has to have a bunch more complexity / content awareness than is
usual - most HSMs simply take a blob and sign it / store keys. This will
require the HSM to have much more understanding of the content, and
understand who the "owner" of each RR is, NSEC / NSEC3 , etc. This logic
all needs to live inside the security envelope, not in the system driving
it. Any "interesting" new resource record types will require updating of
the secure logic. This will be largely a one-off bit of code, and will
require careful code review of the initial, and any new code (and based
upon the amount of review of https://github.com/iana-org/dnssec-keytools
I'm not sure the community has the time / desire). Any scewup by the HSM
makes 1: that TLD or 2: the entire zone unavailable.

2: Based upon things like https://ianix.com/pub/dnssec-outages.html, it is
clear that even TLD operators sometimes manage to shoot themselves in the
foot. Yes, the majority of these are expirations, but it is clear that
people will mess this up. The root KSK is well protected, with people being
really careful, but even that has some risk - multiply that by the number
of TLDs (or opted in TLDs) and the risks multiply. This means that you
really really need a fast, reliable way to regain access in the event of an
Oops... and now you have what looks awfully like a backdoor.


> There are some important governance and process details alluded to but not
> fleshed out in the paper..  Happy to discuss with anyone interested.
>

Thank you, happy to discuss further, but the above concerns are why I think
(at least at the beginning) why something similar to Certificate
Transparency but for the root zone is much safer - yes, it provides
deterrence through transparency instead of inviolate crypro protection -
but this same reason prevents a minor mistake turning into a major outage.

This is a summary of a document from back in ~2015 (before the PTI
transition, and so the terminology / focus is historic):
------------------------
*Sunlight is the best disinfectant.*

Currently, the entity that generates the root zone has full control over
the contents. While this is not a new issue or concern, it is being brought
to the public eye because of the IANA transition. To ensure that that
entity doesn’t abuse the power/privilege, or make incorrect or unauthorized
changes, we propose the following.

Transparency and accountability are both fundamental to the safe and
successful management of IANA, regardless of under whose management IANA
sits. To that end, we propose a publicly verifiable, published audit trail
for any and all changes to the root zone. No invisible/unaudited changes
will be able to be made to the root zone by any party. The entity
generating the root zone has full control over what ends up in the file; in
order to ensure that there are no abuses of this power, any and all changes
to the root zone would require a full audit trail.

To implement this technically, each TLD operator will cryptographically
sign and publicly publish any requested updates to their entries in the
root zone. No changes will be made to the root zone without accompanying
signatures. The entity generating the root zone will validate all
signatures before making the changes. Because all of this will be public,
auditors will be able to see from whom the request originated, how it was
validated, and when it was implemented. This is a general case/solution;
emergency backup procedures will also be in place as needed (i.e., if a
country loses its signing key).

So, if the ‘example’ TLD wanted to update its nameservers, it would
generate a change request (format to be discussed later) and digitally sign
the request. It would then publicly publish this change request. The IANA
Functions Operator would then validate the change request for technical
accuracy, and publically sign the change request to confirm that it is
technically correct. The root zone maintainer will validate that the change
request is correctly signed by both the requester and the IANA functions
operator, and will then make that change in the root zone.

Note that this solution does not prevent malfeasance by the IANA functions
operator, or the root zone maintainer; but as all changes are published
with cryptographic signatures, auditors can validate this.

There will also need to be solutions in place to deal with loss of keys by
the TLD operator, and the IANA. The TLD operator can roll to a new key by
signing it with their old one, which invalidates the old key.
-----------------------


Somewhere I still have the full document, a proposed encoding, a modified
Certificate Transparency log which will accept arbitrary text blobs (and an
extension to allow templates in certificates), client software, etc.

W





>
> Steve
>
>
> On Thu, Sep 6, 2018 at 1:34 PM, Hugo Salgado-Hernández <hsalgado@nic.cl>
> wrote:
>
>> Hi Mukund.
>> I talked about this to Davey in Montreal. There's an implementation
>> in github[1] and presentations in OARC[2] and ICANN[3].
>>
>> I'm not sure if its being used right now in a live zone, but certainly
>> in labs and testing. There's been some interests with academic
>> institutions, but don't think they're ready yet.
>>
>> We've been trying to focus this technology as a "poor-man" HSM, as
>> having similar security features without buying an expensive HW.
>> But I think the root and similar high-value zones will benefit for
>> having an split of the private key AND the fact of not needing a
>> "root key ceremony" to sign, because you can sign remotely with
>> each piece of the private key, and transmit the "signature pieces"
>> to a central place.
>>
>> Hugo
>>
>> [1] https://github.com/niclabs/docker/tree/master/tchsm
>> [2] <
>> https://indico.dns-oarc.net/getFile.py/access?contribId=22&sessionId=3&resId=1&materialId=slides&confId=20
>> >
>> [3] <
>> http://buenosaires48.icann.org/en/schedule/wed-dnssec/presentation-dnssec-cryptographic-20nov13-en
>> >
>>
>>
>> On 21:42 06/09, Mukund Sivaraman wrote:
>> > During a coversation about the Yeti project, Davey Song brought up an
>> > idea about using threshold signatures within DNSSEC. While he talked
>> > about it primarily for the root zone within the context of having
>> > multiple signers for it, I'm curious to know what operators think about
>> > the concept for other zones, and if there's any interest in having a
>> > working implementation.
>> >
>> > DNSKEY RRs contain public keys. Corresponding secret keys are managed by
>> > signing entities in various ways:
>> >
>> > * It may be for a low-risk zone and a human may leave the key on the
>> >   nameserver itself
>> >
>> > * The key may be held by some number of trustworthy staff offline and
>> >   when signing is required, one of them signs the zone and returns the
>> >   signed zone
>> >
>> > * It may be managed by an automated system under the control of one or
>> >   more people
>> >
>> > * It may be held in a locked computer system which may be accessed when
>> >   multiple trustworthy "keepers" are present
>> >
>> > * There may be schemes like this:
>> >   https://www.icann.org/news/blog/the-problem-with-the-seven-keys
>> >
>> > In many of these cases, it may be possible for one rogue person to sign
>> > records against the wish of the rest of the trustworthy group appointed
>> > by a zone owner. Even though it's unlikely, it's possible to do so
>> > because the control over secret key material may be available to one
>> > person, even if it is wrapped in multiple layers.
>> >
>> > The concept of threshold crypto is that there is a public DNSKEY, for
>> > which the secret key is not available in a single form where it can be
>> > reconstructed. Instead, N members of a group have some key material each
>> > respectively, and any M (< N) members of the group may work together to
>> > prepare RRSIGs by using their respective key materials individually, and
>> > collaborating to generate the signatures.
>> >
>> > It may be possible for such a scheme to be compatible with existing
>> > DNSSEC algorithms. Is there any operator interest in this?
>> >
>> >               Mukund
>> >
>> > _______________________________________________
>> > DNSOP mailing list
>> > DNSOP@ietf.org
>> > https://www.ietf.org/mailman/listinfo/dnsop
>> >
>>
>> _______________________________________________
>> DNSOP mailing list
>> DNSOP@ietf.org
>> https://www.ietf.org/mailman/listinfo/dnsop
>>
>>
> _______________________________________________
> DNSOP mailing list
> DNSOP@ietf.org
> https://www.ietf.org/mailman/listinfo/dnsop
>


-- 
I don't think the execution is relevant when it was obviously a bad idea in
the first place.
This is like putting rabid weasels in your pants, and later expressing
regret at having chosen those particular rabid weasels and that pair of
pants.
   ---maf