<?xml version="1.0" encoding="US-ASCII"?>

<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [
<!ENTITY RFC1034 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.1034.xml">
<!ENTITY RFC2119 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.2119.xml">
<!ENTITY RFC3851 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.3851.xml">
<!ENTITY RFC4033 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.4033.xml">
<!ENTITY RFC4034 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.4034.xml">
<!ENTITY RFC4035 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.4035.xml">
<!ENTITY RFC4880 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.4880.xml">
]>

<!-- $Id: draft-faltstrom-root-trust-anchor-validation-xx.xml 7021 2009-04-08 07:34:05Z jakob $ --> 

<?xml-stylesheet type='text/xsl' href='rfc2629.xslt' ?>
<?rfc strict="yes" ?>
<?rfc compact="yes"?>
<?rfc toc="yes"?>
<?rfc symrefs="yes"?>
<?rfc sortrefs="yes"?>

<rfc category="info"
	 docName="draft-faltstrom-root-trust-anchor-validation-00"
	 ipr="trust200902">

	<front>
		<title abbrev="Root trust anchor validation">Validation of the root trust anchor for the DNS</title>

		<author initials="P." surname="Faltstrom" fullname="Patrik Faltstrom">
			 <organization>Cisco</organization>
			 <address>
				<postal>
				 <street>Ledasa</street>
				 <city>Lovestad</city>
				 <code>SE-273 71</code>
				 <country>Sweden</country>
				</postal>
				<email>paf@cisco.com</email>
			 </address>
			</author>

		<author initials="J." surname="Schlyter" fullname="Jakob Schlyter">
			 <organization>Kirei AB</organization>
			 <address>
				<postal>
				 <street>P.O. Box 53204</street>
				 <city>Goteborg</city>
				 <code>SE-400 16</code>
				 <country>Sweden</country>
				</postal>
				<email>jakob@kirei.se</email>
			 </address>
			</author>

		<date day="8" month="April" year="2009" />

		<keyword>DNS</keyword>
		<keyword>RFC</keyword>
		<keyword>I-D</keyword>
		<keyword>Internet-Draft</keyword>

		<abstract>
			<t>
				This document describes practical requirements and needs for
				automatic validation of the root trust anchor for the DNS.
				It also proposes a mechanism using PGP and/or S/MIME that
				can be used to fulfil the requirements.
			</t>
		</abstract>
	</front>

	<middle>
		<section anchor="intro" title="Introduction">
			<t>
				In deployment of <xref target="RFC4033">DNSSEC</xref>, the root zone
				will have one or more Key Signing Keys (KSK) each having a private
				and public part. The public part is to be used for verification of
				the trust chain and because of	that distributed to and trusted by
				every resolver that want to verify DNSSEC signed responses.
			</t>
			<t>
				As the distribution of the public part of the KSK is made using
				electronic communication mechanisms, and replaced frequently, it is
				important that the distribution made in a way so that the integrity
				of the KSK can be verified. The simplest way to manage this is to sign
				the public part of the KSK, and have the digital signature of the KSK,
				and therefore the public part of the key that signs the KSK, be what
				is trusted by the resolver.
			</t>
			<t>
				To be able to handle changes in the KSK in an automated fashion, while
				at the same time allow external organisations to audit the KSK
				management, and give the ability for parties that is to trust the KSK
				to automatically do so, it is proposed to have a recommended way of
				managing this distribution of the public part of the KSK.
			</t>
			<t>
				The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL
				NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL"
				in this document are to be interpreted as described in <xref
				target="RFC2119">RFC 2119</xref>.
			</t>
		</section>

		<section title="Terminology">
			<t>
				<list style="hanging">
					<t hangText="KSK">Key Signing Key</t>
					<t hangText="ZSK">Zone Signing Key</t>
					<t hangText="TAR">Trust Anchor Repository</t>
					<t hangText="TAR Signee">An entity signing the TAR</t>
					<t hangText="TAR Consumer">An entity using the contents
						of the TAR as DNSSEC trust anchors, possibly based on
						the signatures created by the TAR signees.</t>
				</list>
			</t>
		</section>

		<section title="Proposed Architecture">
			<t>
				It is proposed that the public key signing keys (KSKs) for the root
				zone are distributed in the form of a trust anchor repository (TAR)
				signed by multiple parties.
			</t>
			<t>
				To be able to put trust in the KSKs, and therefore in the root zone
				signing process, the TAR signees should be able to audit the root
				signing policies and procedures.
			</t>
			<t>
				The signing mechanisms should be such that the TAR can be signed by
				more than one entity. It should be possible to for each signee to
				sign the TAR separately form other signees.
			</t>
			<t>
				After the entities have signed the TAR, it is to be distributed. In
				some cases by the entities that sign it, in other cases by third
				parties. It is up to the TAR distributor to bundle the TAR with the
				signatures made by the TAR signees. A TAR distributor might choose to
				not include all signatures in the distribution.
			</t>
			<t>
				Someone that receive such a signed TAR can verify the signatures and
				that way ensure two things - that the contents of the TAR has not
				changed during transmission and that the current process used for
				managing the keys that forms the TAR is trusted by the TAR signee.
			</t>
			<t>
				It is suggested that the lifetime of the signatures on the TAR is
				potentially shorter than the administrative lifetime of the TAR
				contents (e.g. keys and fingerprints). This enables the ability for
				the signee to do the audit of the root signing policies and procedures
				repeatedly over time.
			</t>
			<t>
				If the consumer of the TAR cannot validate enough signatures,
				it is recommended that the contents of the TAR should not be used to
				configure the	validating DNSSEC resolver.
			</t>
		</section>
				
		<section title="Trust Anchor Repository Signatures">
			<t>
				The signees may sign the TAR using a detached signature created
				using either <xref target="RFC4880">OpenPGP</xref> or
				<xref target="RFC3851">S/MIME</xref>.
			</t>
		</section>		

		<section title="IANA Considerations">
			<t>
				This document does not require any IANA actions.
			</t>
		</section>

		<section title="Security Considerations">
			<t>
				DNSSEC adds data origin authentication and data integrity to the DNS.
				Because of this, DNSSEC is almost certainly necessary for any
				application mechanism that stores authorization data in the DNS.
			</t>
			<t>
			  If the signature(s) on the TAR does not validate, the content of the TAR
				is not to be used for configuration of the DNSSEC verifying resolver. This
				might lead to the resolver ignoring all DNSSEC signed data that can not be
				verified using a trust chain to some other trust anchor, and because of this
				it might lead to it not returning any responses to queries that reaches it.
				A signature on the TAR that is not renewed might because of this lead to
				DNS resolution not work (from the client perspective). Local policy in the
				resolver is to be carefully tuned to take care of these situations.
			</t>
			<t>
			  The mechanisms described in this document does not introduce any new
				security implications than what traditionally is the case for
				detached signatures for PGP and/or S/MIME.
			</t>
		</section>

		<section title="Acknowledgements">
			<t>
				The authors gratefully acknowledges, in no particular order, the
				contributions of the following persons:
				<list>
					<t>Patrik Wallstrom</t>
				</list>
			</t>
		</section>
	</middle>

	<back>
		<references title="Normative References">
			&RFC2119;
			&RFC1034;
			&RFC3851;
			&RFC4033;
			&RFC4880;
	  </references>

	  <references title="Informative References">
			&RFC4034;
			&RFC4035;
	  </references>
	</back>
</rfc>
