<div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div class="gmail_default" style="font-family:verdana,sans-serif"><br></div><br><div class="gmail_quote"><div dir="ltr">On Thu, Sep 6, 2018 at 2:15 PM Steve Crocker <<a href="mailto:steve@shinkuro.com">steve@shinkuro.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr">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.<div><br></div><div>In parallel, there is work on open source hardware crypto that can easily be extended to include this functionality.</div><div><br></div></div></blockquote><div><br></div><div><div class="gmail_default" style="font-family:verdana,sans-serif">Yup. Two of my concerns are:</div></div><div class="gmail_default" style="font-family:verdana,sans-serif"><br></div><div class="gmail_default" style="font-family:verdana,sans-serif">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 <a href="https://github.com/iana-org/dnssec-keytools">https://github.com/iana-org/dnssec-keytools</a> 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. </div><div class="gmail_default" style="font-family:verdana,sans-serif"><br></div><div class="gmail_default" style="font-family:verdana,sans-serif">2: Based upon things like <a href="https://ianix.com/pub/dnssec-outages.html">https://ianix.com/pub/dnssec-outages.html</a>, 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. </div><div class="gmail_default" style="font-family:verdana,sans-serif"></div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div></div><div>There are some important governance and process details alluded to but not fleshed out in the paper.. Happy to discuss with anyone interested.</div></div></blockquote><div><br></div><div><div class="gmail_default" style="font-family:verdana,sans-serif">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.</div><div class="gmail_default" style="font-family:verdana,sans-serif"><br></div><div class="gmail_default" style="font-family:verdana,sans-serif">This is a summary of a document from back in ~2015 (before the PTI transition, and so the terminology / focus is historic):</div><div class="gmail_default" style="font-family:verdana,sans-serif">------------------------</div><div class="gmail_default"><div class="gmail_default"><font face="verdana, sans-serif">*Sunlight is the best disinfectant.*</font></div><div class="gmail_default"><font face="verdana, sans-serif"><br></font></div><div class="gmail_default"><font face="verdana, sans-serif">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.</font></div><div class="gmail_default"><font face="verdana, sans-serif"><br></font></div><div class="gmail_default"><font face="verdana, sans-serif">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.</font></div><div class="gmail_default"><font face="verdana, sans-serif"><br></font></div><div class="gmail_default"><font face="verdana, sans-serif">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).</font></div><div class="gmail_default"><font face="verdana, sans-serif"><br></font></div><div class="gmail_default"><font face="verdana, sans-serif">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.</font></div><div class="gmail_default"><font face="verdana, sans-serif"><br></font></div><div class="gmail_default"><font face="verdana, sans-serif">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.</font></div><div class="gmail_default"><br></div><div class="gmail_default"><font face="verdana, sans-serif">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.</font></div></div><div class="gmail_default" style="font-family:verdana,sans-serif">-----------------------</div><div class="gmail_default" style="font-family:verdana,sans-serif"><br></div><div class="gmail_default" style="font-family:verdana,sans-serif"><br></div><div class="gmail_default" style="font-family:verdana,sans-serif">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.</div><div class="gmail_default" style="font-family:verdana,sans-serif"><br></div><div class="gmail_default" style="font-family:verdana,sans-serif">W</div><br></div><div><br></div><div><br></div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div><br></div><div>Steve</div><div><br></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Sep 6, 2018 at 1:34 PM, Hugo Salgado-Hernández <span dir="ltr"><<a href="mailto:hsalgado@nic.cl" target="_blank">hsalgado@nic.cl</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Hi Mukund.<br>
I talked about this to Davey in Montreal. There's an implementation<br>
in github[1] and presentations in OARC[2] and ICANN[3].<br>
<br>
I'm not sure if its being used right now in a live zone, but certainly<br>
in labs and testing. There's been some interests with academic<br>
institutions, but don't think they're ready yet.<br>
<br>
We've been trying to focus this technology as a "poor-man" HSM, as<br>
having similar security features without buying an expensive HW.<br>
But I think the root and similar high-value zones will benefit for<br>
having an split of the private key AND the fact of not needing a<br>
"root key ceremony" to sign, because you can sign remotely with<br>
each piece of the private key, and transmit the "signature pieces"<br>
to a central place.<br>
<br>
Hugo<br>
<br>
[1] <a href="https://github.com/niclabs/docker/tree/master/tchsm" rel="noreferrer" target="_blank">https://github.com/niclabs/docker/tree/master/tchsm</a><br>
[2] <<a href="https://indico.dns-oarc.net/getFile.py/access?contribId=22&sessionId=3&resId=1&materialId=slides&confId=20" rel="noreferrer" target="_blank">https://indico.dns-oarc.net/getFile.py/access?contribId=22&sessionId=3&resId=1&materialId=slides&confId=20</a>><br>
[3] <<a href="http://buenosaires48.icann.org/en/schedule/wed-dnssec/presentation-dnssec-cryptographic-20nov13-en" rel="noreferrer" target="_blank">http://buenosaires48.icann.org/en/schedule/wed-dnssec/presentation-dnssec-cryptographic-20nov13-en</a>><br>
<div class="gmail-m_-3134315105729319905HOEnZb"><div class="gmail-m_-3134315105729319905h5"> <br>
<br>
On 21:42 06/09, Mukund Sivaraman wrote:<br>
> During a coversation about the Yeti project, Davey Song brought up an<br>
> idea about using threshold signatures within DNSSEC. While he talked<br>
> about it primarily for the root zone within the context of having<br>
> multiple signers for it, I'm curious to know what operators think about<br>
> the concept for other zones, and if there's any interest in having a<br>
> working implementation.<br>
> <br>
> DNSKEY RRs contain public keys. Corresponding secret keys are managed by<br>
> signing entities in various ways:<br>
> <br>
> * It may be for a low-risk zone and a human may leave the key on the<br>
> nameserver itself<br>
> <br>
> * The key may be held by some number of trustworthy staff offline and<br>
> when signing is required, one of them signs the zone and returns the<br>
> signed zone<br>
> <br>
> * It may be managed by an automated system under the control of one or<br>
> more people<br>
> <br>
> * It may be held in a locked computer system which may be accessed when<br>
> multiple trustworthy "keepers" are present<br>
> <br>
> * There may be schemes like this:<br>
> <a href="https://www.icann.org/news/blog/the-problem-with-the-seven-keys" rel="noreferrer" target="_blank">https://www.icann.org/news/blog/the-problem-with-the-seven-keys</a><br>
> <br>
> In many of these cases, it may be possible for one rogue person to sign<br>
> records against the wish of the rest of the trustworthy group appointed<br>
> by a zone owner. Even though it's unlikely, it's possible to do so<br>
> because the control over secret key material may be available to one<br>
> person, even if it is wrapped in multiple layers.<br>
> <br>
> The concept of threshold crypto is that there is a public DNSKEY, for<br>
> which the secret key is not available in a single form where it can be<br>
> reconstructed. Instead, N members of a group have some key material each<br>
> respectively, and any M (< N) members of the group may work together to<br>
> prepare RRSIGs by using their respective key materials individually, and<br>
> collaborating to generate the signatures.<br>
> <br>
> It may be possible for such a scheme to be compatible with existing<br>
> DNSSEC algorithms. Is there any operator interest in this?<br>
> <br>
> Mukund<br>
> <br>
> _______________________________________________<br>
> DNSOP mailing list<br>
> <a href="mailto:DNSOP@ietf.org" target="_blank">DNSOP@ietf.org</a><br>
> <a href="https://www.ietf.org/mailman/listinfo/dnsop" rel="noreferrer" target="_blank">https://www.ietf.org/mailman/listinfo/dnsop</a><br>
> <br>
</div></div><br>_______________________________________________<br>
DNSOP mailing list<br>
<a href="mailto:DNSOP@ietf.org" target="_blank">DNSOP@ietf.org</a><br>
<a href="https://www.ietf.org/mailman/listinfo/dnsop" rel="noreferrer" target="_blank">https://www.ietf.org/mailman/listinfo/dnsop</a><br>
<br></blockquote></div><br></div>
_______________________________________________<br>
DNSOP mailing list<br>
<a href="mailto:DNSOP@ietf.org" target="_blank">DNSOP@ietf.org</a><br>
<a href="https://www.ietf.org/mailman/listinfo/dnsop" rel="noreferrer" target="_blank">https://www.ietf.org/mailman/listinfo/dnsop</a><br>
</blockquote></div><br clear="all"><div><br></div>-- <br><div dir="ltr" class="gmail_signature">I don't think the execution is relevant when it was obviously a bad idea in the first place.<br>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.<br> ---maf</div></div></div></div></div>