f6096b958c8b58c4709860d7c4dcdde5deeacb7aEvan Hunt
f6096b958c8b58c4709860d7c4dcdde5deeacb7aEvan Hunt
f6096b958c8b58c4709860d7c4dcdde5deeacb7aEvan Hunt
f6096b958c8b58c4709860d7c4dcdde5deeacb7aEvan HuntDomain Name System Operations W. Mekking
f6096b958c8b58c4709860d7c4dcdde5deeacb7aEvan HuntInternet-Draft NLnet Labs
f6096b958c8b58c4709860d7c4dcdde5deeacb7aEvan HuntIntended status: Standards Track December 21, 2010
f6096b958c8b58c4709860d7c4dcdde5deeacb7aEvan HuntExpires: June 24, 2011
f6096b958c8b58c4709860d7c4dcdde5deeacb7aEvan Hunt
f6096b958c8b58c4709860d7c4dcdde5deeacb7aEvan Hunt
Automated (DNSSEC) Child Parent Synchronization using DNS UPDATE
draft-mekking-dnsop-auto-cpsync-01
Abstract
This document proposes a way to synchronise existing trust anchors
automatically between a child zone and its parent. The protocol can
be used for other Resource Records that are required to delegate from
a parent to a child such as NS and glue records. The synchronization
allows for a third party to be involved, thus the protocol is
suitable for both cases, whether you have to communicate to the
registry or to the registrar.
Requirements Language
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 RFC 2119 [RFC2119].
Status of This Memo
This Internet-Draft is submitted in full conformance with the
provisions of BCP 78 and BCP 79.
Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet-
Drafts is at http://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress."
This Internet-Draft will expire on June 24, 2011.
Copyright Notice
Copyright (c) 2010 IETF Trust and the persons identified as the
document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal
Mekking Expires June 24, 2011 [Page 1]
Internet-Draft Child Parent Synchronization December 2010
Provisions Relating to IETF Documents
(http://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents
carefully, as they describe your rights and restrictions with respect
to this document. Code Components extracted from this document must
include Simplified BSD License text as described in Section 4.e of
the Trust Legal Provisions and are provided without warranty as
described in the Simplified BSD License.
1. Introduction
This memo defines a way to synchronise existing trust anchors
automatically between a child zone and its parent. The protocol can
be used for other Resource Records that are required to delegate from
a parent to a child such as NS and glue records. The synchronization
allows for a third party to be involved, thus the protocol is
suitable for both cases, whether you have to communicate to the
registry or to the registrar.
To create a DNSSEC RFC 4035 [RFC4035] chain of trust, child zones
must submit their DNSKEYs, or hashes of their DNSKEYs, to their
parent zone. The parent zone publishes the hashes of the DNSKEYs in
the form of a DS record. The DNSKEY RRset at the child may change
over time. In order to keep the chain of trust intact, the DS
records at the parent zone also needs to be updated. The rolling of
the keys with the SEP bit on is one of the few tasks in DNSSEC that
yet has to be fully automated.
The DNS UPDATE mechanism RFC 2136 [RFC2136] can be used to push zone
changes to the parent.
To bootstrap the communication channel, information must be exchanged
in order to detect service location and granting update privileges.
A new or existing child zone is in need of a communication channel
with the parent. This can be a direct channel or a channel through a
third party:
If the parent allows for direct communication channel with child
zones, the parent can share the required data to set up the
channel to the child zone. Once the child has the required
credentials, it can use the direct communication channel with the
parent to request zone changes related to its delegation.
If a third party is involved, the third party acts on behalf of
the parent. In this case, the third party will give out the
required credentials to set up the communication channel.
Allowing for a third party in the communication channel ensures
Mekking Expires June 24, 2011 [Page 2]
Internet-Draft Child Parent Synchronization December 2010
flexibility of the service location.
Please note that the document only describes the front end of the
synchronization service. The first reason for that is that it is not
necessary to write down how the DNS UPDATE is processed after it is
accepted. It is merely a goal to provide a way for the child zone to
automatically update the records at the zone cut. The second reason
is that flexibility is needed in order to fit the protocol into the
multifarious policies that exist among the great number of
registrars.
Thus, it is not required that the DNS UPDATE immediately updates the
name server. Thus, it would still be possible to monitor the
incoming updates with the tools of your choice. It is not a
replacement of your RR provisioning system. The records in the DNS
UPDATE can be converted into any kind of format.
2. Service Discovery
The service location is handed out during bootstrap. If this
information is missing or incorrect, the normal guidelines for
sending DNS UPDATE messages SHOULD be followed.
3. Access and Update Control
The DNS UPDATE normally is used for granting update permissions to a
machine that is within the boundary of the same organization. This
document proposes to grant child zones the same permissions.
However, it MUST NOT be possible that a child zone updates
information in the parent zone that falls outside the administrative
domain of the corresponding delegation. For example, it MUST NOT be
possible for a child zone to update the data that the parent is
authoritative for, or update a delegation that is pointed to a
different child zone. It MUST only be able to update records that
match one of the following:
Or: The owner name is equal the child zone name and RRtype is
delegation specific. Currently those are records with RRtype NS
or DS.
Or: The owner name exists in the right side of the NS RRset
belonging to the child zone and RRtype is is glue specific.
Currently those are records with RRtype A or AAAA.
We can make a distinction here between narrow and wide glue records.
Narrow glue records are said to be glue specific records with an
owner name that is a subdomain of the child zone. Wide glue records
are glue specific records with an owner name that is outside of the
Mekking Expires June 24, 2011 [Page 3]
Internet-Draft Child Parent Synchronization December 2010
delegated child domain.
These updates MAY be refused if it conflicts with the local policy.
This list may be expanded, if there is need for more delegation
related zone content.
In case of adding or deleting delegation specific records, the DNSSEC
related RRs in the parent zone might need to be updated.
4. Update Mechanism
4.1. Update Request
Updating the NS RRset or corresponding glue at the parent, an update
can be sent at any time. Updating the DS RRset is part of key
rollover, as described in RFC 4641 [RFC4641]. When performing a key
rollover that involves updating the RRset at the parent, the child
introduces a new DNSKEY in its zone that represents the security
entry point for determining the chain of trust. After a while, it
will revoke and/or remove the previous security entry point. The
timings when to update the DS RRset at the parent are described in
draft-dnsop-morris-dnssec-key-timing [keytiming]. When updating the
DS RRset at the parent automatically, these timing specifications
SHOULD be followed. To determine the propagation delays described in
this document, the child should poll the parent zone for a short
time, until the DS is visible at all parent name servers.
[Author's note] To discuss: A child zone might be unable to reach all
parent name servers.
The child notifies the parent of the requested changes by sending a
DNS UPDATE message. If it receives a NOERROR reply in return, the
update is acknowledged by the parent zone. Otherwise, the child MAY
retry transmitting the update. In order to prevent duplicate
updates, it SHOULD follow the guidelines described in RFC 2136
[RFC2136].
4.2. Processing the Update
An incoming DNS UPDATE message is processed as follows:
Step 1: Check the TSIG/SIG0 credentials. In case of TSIG, the
parent should follow the TSIG processing described in section 3.2
of RFC 2845. In case of SIG0, the parent should follow the SIG0
processing described in section 3.2 of RFC 2931.
Mekking Expires June 24, 2011 [Page 4]
Internet-Draft Child Parent Synchronization December 2010
Step 2: Verify that the updates matches the update policy for child
zones.
Step 3: If verified, send back DNS UPDATE OK. Otherwise, send back
DNS UPDATE REFUSED.
Step 4: If verified, apply changes. How that is done is a matter of
policy.
5. Examples
5.1. Example BIND9 Configuration
This is how a parent zone can configure a policy to enable a child
zone synchronize delegation specific records. The first rule of the
update policy grants children to update their DS and NS records in
the parent zone, in this case example.com. The second rule of the
update policy grants children to update the corresponding glue
records.
key cs.example.com. {
algorithm HMAC-MD5;
secret "secretforcs";
}
key math.example.com. {
algorithm HMAC-MD5;
secret "secretformath";
}
...
zone "example.com" {
type master;
file "example.com";
update-policy { grant *.example.com. self *.example.com. DS NS; };
update-policy { grant *.example.com. selfsub *.example.com. A AAAA;
};
};
6. Security Considerations
Automating the synchronization of (DNSSEC) records between the parent
and child creates a new communication channel. It is up to the
policy of the parent, or the third party acting on behalf of the
parent, who is allowed such privileges. A policy would usually
include a form of access control. It is recommended that it involves
transaction authentication, for example TSIG [RFC2845] or SIG0
Mekking Expires June 24, 2011 [Page 5]
Internet-Draft Child Parent Synchronization December 2010
[RFC2931].
In the jungle of the DNS, many stakeholders exist. The registrant of
a zone might not be the one that maintains the zone. That can
possibly mean that many stakeholders need to possess the security
credentials in order to use this synchronization channel. However,
this problem exist with any kind of transaction authentication.
The disadvantage of adding a new communication channel is that you
create a new attack window onto your DNS and DNSSEC records. When
using this synchronization method for your DNSSEC records, a
cryptographically equally strong, or stronger private key SHOULD be
used, compared to the strength of your DNSSEC keys.
The advantage is that if somehow your DNSSEC keys are compromised,
you can still use this channel to perform an emergency key rollover.
7. IANA Considerations
None.
8. Acknowledgments
Mark Andrews, Rickard Bellgrim, Wolfgang Nagele, Wouter Wijngaards.
9. Changelog
01:
- Make it clear that the solution is flexible and it can fit into
many and diverse environments of registrars.
- Short section about service discovery.
- Add text about narrow glue records.
- Add text about transaction authentication concerns with respect
to many stakeholders involved.
00:
- Initial document
10. References
Mekking Expires June 24, 2011 [Page 6]
Internet-Draft Child Parent Synchronization December 2010
10.1. Informative References
[RFC2136] Vixie, P., Thomson, S., Rekhter, Y., and J. Bound,
"Dynamic Updates in the Domain Name System (DNS
UPDATE)", RFC 2136, April 1997.
[RFC4641] Kolkman, O. and R. Gieben, "DNSSEC Operational
Practices", RFC 4641, September 2006.
[keytiming] Morris, S., Ihren, J., and J. Dickinson, "DNSSEC Key
Timing Considerations", March 2010.
10.2. Normative References
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, March 1997.
[RFC2845] Vixie, P., Gudmundsson, O., Eastlake, D., and B.
Wellington, "Secret Key Transaction Authentication for
DNS (TSIG)", RFC 2845, May 2000.
[RFC2931] Eastlake, D., "DNS Request and Transaction Signatures (
SIG(0)s)", RFC 2931, September 2000.
[RFC4035] Arends, R., Austein, R., Larson, M., Massey, D., and S.
Rose, "Protocol Modifications for the DNS Security
Extensions", RFC 4035, March 2005.
Author's Address
Matthijs Mekking
NLnet Labs
Science Park 140
Amsterdam 1098 XG
The Netherlands
EMail: matthijs@nlnetlabs.nl
Mekking Expires June 24, 2011 [Page 7]