561 lines
20 KiB
Plaintext
561 lines
20 KiB
Plaintext
|
||
|
||
Network Working Group M. StJohns
|
||
Internet-Draft Nominum, Inc.
|
||
Expires: December 12, 2003 June 13, 2003
|
||
|
||
|
||
Using DNSSEC-secured NOTIFY to Trigger Parent Zone Updating
|
||
draft-stjohns-secure-notify-00
|
||
|
||
Status of this Memo
|
||
|
||
This document is an Internet-Draft and is in full conformance with
|
||
all provisions of Section 10 of RFC2026.
|
||
|
||
Internet-Drafts are working documents of the Internet Engineering
|
||
Task Force (IETF), its areas, and its working groups. Note that other
|
||
groups may also distribute working documents as Internet-Drafts.
|
||
|
||
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."
|
||
|
||
The list of current Internet-Drafts can be accessed at http://
|
||
www.ietf.org/ietf/1id-abstracts.txt.
|
||
|
||
The list of Internet-Draft Shadow Directories can be accessed at
|
||
http://www.ietf.org/shadow.html.
|
||
|
||
This Internet-Draft will expire on December 12, 2003.
|
||
|
||
Copyright Notice
|
||
|
||
Copyright (C) The Internet Society (2003). All Rights Reserved.
|
||
|
||
Abstract
|
||
|
||
This document describes an extension or revision to the DNS NOTIFY
|
||
mechanism which would allow a child zone to securely notify a parent
|
||
zone of the need to update records that appear in the parent zone,
|
||
but are related to records in the child zone. At this time, the two
|
||
resource record types are the NS or Name Server record, and the DS or
|
||
Delegation Signer record.
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
StJohns Expires December 12, 2003 [Page 1]
|
||
|
||
Internet-Draft secured-notify June 2003
|
||
|
||
|
||
Table of Contents
|
||
|
||
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3
|
||
2. General Mechanism . . . . . . . . . . . . . . . . . . . . . 4
|
||
2.1 Update Methods . . . . . . . . . . . . . . . . . . . . . . . 5
|
||
2.1.1 Automatic Update . . . . . . . . . . . . . . . . . . . . . . 5
|
||
2.1.2 Manual Update . . . . . . . . . . . . . . . . . . . . . . . 5
|
||
2.1.3 Parent Pull . . . . . . . . . . . . . . . . . . . . . . . . 5
|
||
2.2 Update of Parent DS Records . . . . . . . . . . . . . . . . 6
|
||
2.3 Update of Parent NS Records . . . . . . . . . . . . . . . . 6
|
||
2.4 Uncommitted Updates . . . . . . . . . . . . . . . . . . . . 6
|
||
3. Parent Zone Secondary Server Update . . . . . . . . . . . . 6
|
||
4. Security Considerations . . . . . . . . . . . . . . . . . . 7
|
||
Author's Address . . . . . . . . . . . . . . . . . . . . . . 8
|
||
Normative References . . . . . . . . . . . . . . . . . . . . 7
|
||
A. Discussion: NOTIFY vs UPDATE & Push vs Pull . . . . . . . . 8
|
||
Intellectual Property and Copyright Statements . . . . . . . 9
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
StJohns Expires December 12, 2003 [Page 2]
|
||
|
||
Internet-Draft secured-notify June 2003
|
||
|
||
|
||
1. Introduction
|
||
|
||
Author's note: "SEP" will be changed to whatever the final version of
|
||
[SEPFLAG] ends up making it.
|
||
|
||
Author's note: There may be too many options at places in this
|
||
document. Prior to any submission for advancement to standard, the
|
||
intent is reduce each set of choices down to either a single
|
||
preferred approach, or a preferred choice plus one alternate.
|
||
|
||
The orignal DNS NOTIFY RFC [RFC1996] specified a mechanism for a
|
||
master server of a zone to tell its secondary servers that a zone had
|
||
changed. The secondary server could then initiate a transfer from
|
||
the master server to update its copy of that zone. RFC1996 only
|
||
specified a notify of a change of an SOA record, and only a
|
||
notification between primary and secondary servers.
|
||
|
||
The original DNS Security (DNSSEC) RFC [RFC2535] specified various
|
||
mechanisms for securing (i.e. authenticating) the data within the
|
||
DNS. It also included mechanisms for signing transactions. [DSREC]
|
||
specifies a change to RFC2535 which removes the glue KEY record from
|
||
a parent domain, and replaces it with the Delegation Signer or DS
|
||
record which points at a KEY record held by a child zone. The DS
|
||
record is only present in the parent zone at a delegation point.
|
||
|
||
This document specifies a mechanism for a child zone to notify a
|
||
parent zone (more specifically, the master server of a parent zone)
|
||
of changes in the child zone which might affect glue information held
|
||
in the parent. The transaction signature mechanisms specified in
|
||
RFC2535 and modified in RFC2931 [RFC2931] are used to provide
|
||
authentication of the notification. A notify is triggered by a
|
||
change to records in the child zone which have or should have related
|
||
records in the parent. At this time, these are either the KSK KEY
|
||
records (a subset of the KEY RRSet)which are represented in the
|
||
parent by DS records, or records in the child's apex NS RRSet. Once
|
||
notified, the parent MAY update its glue information.
|
||
|
||
Note that while both parent and child zones may have RRSets of SIG
|
||
and NXT with the same name, the content of those records in the
|
||
parent zone is directly related to the content of the parent zone,
|
||
and not to the child zone and vice versa.
|
||
|
||
Glue "A" records could be updated using this mechanism, but may be
|
||
problematic as not all "A" records covering the glue "NS" records
|
||
will always reside within the child zone. Specifically, not all names
|
||
contained in NS records for a zone will be names within the zone. In
|
||
fact, best practice requires that a zone be served by at least one
|
||
server that can be referenced by a name not within that zone.
|
||
|
||
|
||
|
||
StJohns Expires December 12, 2003 [Page 3]
|
||
|
||
Internet-Draft secured-notify June 2003
|
||
|
||
|
||
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 [RFC2119].
|
||
|
||
2. General Mechanism
|
||
|
||
When the primary server of the child zone detects a change in either
|
||
its set of secure-entry-point (SEP) KEY records or in its set of NS
|
||
records, it MAY (configuration dependent) send a NOTIFY to the
|
||
primary (or other designated server) of its parent zone. The NOTIFY
|
||
includes the complete set of records which make up the changed RRSet.
|
||
If more than one type of RRSet has changed, seperate NOTIFYs should
|
||
be sent for each change, and per RFC1996, no more than one NOTIFY
|
||
should be outstanding at any time.
|
||
|
||
The NOTIFY is protected using a transaction signature SIG(0)RR
|
||
[RFC2931]. The private key used to form the signature MUST be one of
|
||
the ones currently used to sign the KEY RRSet in the child zone (e.g.
|
||
there MUST be a SIG(KEY) record pointing at that key). If the SEP
|
||
KEY record associated with this private key is not otherwise included
|
||
in the NOTIFY message, it SHOULD be included in the additional
|
||
information section of the NOTIFY message. If the KEY record is not
|
||
included, there will be a delay in completing the NOTIFY transaction
|
||
while the receiving parent server retrieves the KEY record from the
|
||
child.
|
||
|
||
If the SIG(0)is missing the server MUST return an error code of ??.
|
||
|
||
The receiving server first checks to see if it holds a DS record that
|
||
maps to the KEY associated with the SIG(0) on the NOTIFY. If the DS
|
||
exists AND is signed, the signature over the NOTIFY is validated
|
||
against the KEY record. If the DS does not exist, the server MUST
|
||
return an error code of ??
|
||
|
||
If the signature verifies, the NOTIFY message should be considered
|
||
authentic, and the server then sends the NOTIFY response. If the
|
||
signature does not verify, the server MUST return an error code of ??
|
||
|
||
The sending server should continue to retry until it gets some
|
||
response from the parent zone server, or until too many retries. See
|
||
RFC1996 for details on general retransmission and retry procedures
|
||
for NOTIFY. [Author's note: This may not be sufficient guidance to
|
||
cover the case where the parent has to retrieve the KEY record from
|
||
the child.]
|
||
|
||
If the policy at the receiving server permits, the data included in
|
||
the NOTIFY and secured under the signature MUST be considered
|
||
authentic, and MUST be used as the source data to update the records
|
||
|
||
|
||
|
||
StJohns Expires December 12, 2003 [Page 4]
|
||
|
||
Internet-Draft secured-notify June 2003
|
||
|
||
|
||
held by the parent zone. If policy does not permit acceptance of the
|
||
data in the NOTIFY, or if data is missing (e.g. if the TC bit is
|
||
set), the parent server MUST query the child zone to retrieve any
|
||
missing data (e.g. KEY records, NS records, applicable SIG records).
|
||
The retrieved data MUST be secured (e.g. the SIG records must verify,
|
||
and the KEY used to sign the SIG MUST have a signed DS present in the
|
||
parent zone.)
|
||
|
||
At this point, the parent server has enough information to update the
|
||
records it holds. How it does it is a matter of policy.
|
||
|
||
2.1 Update Methods
|
||
|
||
Author's note - I personally prefer Automatic or Manual - I think
|
||
Parent Pull is the wrong model here.
|
||
|
||
2.1.1 Automatic Update
|
||
|
||
In the "Automatic Update" model, the parent server has immediate
|
||
access to the private keys needed to sign the new records. Once the
|
||
NOTIFY is verified, and the contents of the new records are checked
|
||
or generated, the parent zone signs the new records and publishes
|
||
them.
|
||
|
||
2.1.2 Manual Update
|
||
|
||
In the "Manual Update" model, private keys are either off-line, or
|
||
require human action to sign the zone, or policy requires someone to
|
||
check the data before its added to the zone (e.g. for child NS
|
||
records). When an update becomes available (e.g. when the parent
|
||
server verifies and accepts the NOTIFY), the server MUST notify an
|
||
administrator by email or other appropriate method of the pending
|
||
action. It must repeat that notification at a configurable interval
|
||
(e.g. once a day) until the adminstrator takes action to approve or
|
||
reject the change.
|
||
|
||
Once the changes are approved and signed, the new records are
|
||
published to the DNS.
|
||
|
||
2.1.3 Parent Pull
|
||
|
||
In the "Parent Pull" model, the child to parent NOTIFY acts like the
|
||
master to secondary NOTIFY works currently. E.g. the parent takes the
|
||
NOTIFY as a request to gather data to update its zone. The parent,
|
||
on its own schedule, retrieves the NS or KEY records from the child
|
||
and compares them to what it current has. If there are differences,
|
||
the parent copies or generates replacement records (i.e. the DS
|
||
records which map to the child KEY records), signs them, and
|
||
|
||
|
||
|
||
StJohns Expires December 12, 2003 [Page 5]
|
||
|
||
Internet-Draft secured-notify June 2003
|
||
|
||
|
||
publishes them. As above, this can proceed either manually or
|
||
automatically.
|
||
|
||
2.2 Update of Parent DS Records
|
||
|
||
The DS records held in the parent zone are derived from the KEY
|
||
records originated by the child. They are also protected under a key
|
||
held by the parent zone. Upon receipt of the NOTIFY indicating a
|
||
child KEY change, and after any other queries required (e.g. to
|
||
retrieve copies of the KEY or NS records from the child), the parent
|
||
forms a new DS RRSet consisting only of DS's which point to the
|
||
current set of child SEP KEY records. This new DS RRSet, after it is
|
||
signed, replaces the current DS RRSet held by the parent server in
|
||
its entirety.
|
||
|
||
2.3 Update of Parent NS Records
|
||
|
||
Since the parent zone's copies of the NS records for the child zone
|
||
are not signed, it is a simple matter of policy as to whether the
|
||
update of the NS records requires human intervention, or can be done
|
||
automatically upon receipt of the NOTIFY. This should be a
|
||
configurable item, and the action should default to automatic.
|
||
|
||
The parent zone MUST verify the names pointed to by the NS are
|
||
resolvable, that at least one name points to a server not named in
|
||
the child zone, and that it has glue A records for any server named
|
||
in the child zone. [Q: Does this make sense, or is it better to just
|
||
trust the child?] If these conditions are not satisfied, the parent
|
||
server MUST NOT install the new records, and MUST log the problem.
|
||
It must also return an error code of ??
|
||
|
||
The set of glue NS records held by the parent which point to the
|
||
child MUST be replaced in their entirety by the new set of NS records
|
||
provided either in the notify, or by retrieval by the parent server
|
||
from the child.
|
||
|
||
2.4 Uncommitted Updates
|
||
|
||
If a parent zone has a uncommitted update of child information (e.g.
|
||
because policy requires manual intervention to approve the update),
|
||
it MUST discard that update upon validated receipt of a new NOTIFY
|
||
covering the information to be updated. I.e., if the new NOTIFY
|
||
covers NS records, discard any previous uncommitted updates to the NS
|
||
RRSet.
|
||
|
||
3. Parent Zone Secondary Server Update
|
||
|
||
Once the adminstrator of the parent zone has accepted the changes
|
||
|
||
|
||
|
||
StJohns Expires December 12, 2003 [Page 6]
|
||
|
||
Internet-Draft secured-notify June 2003
|
||
|
||
|
||
(either automatically, or by specific action), the parent zone
|
||
records on the primary server MUST be updated, and, if policy allows,
|
||
the primary SHOULD do a DNS NOTIFY to the secondary servers
|
||
indicating the change to the NS or DS records.
|
||
|
||
4. Security Considerations
|
||
|
||
The security of this mechanism is directly related to the protection
|
||
afforded the private keys of the parent and child zones. Compromise
|
||
of the child zone keys can result in incorrect information being
|
||
added to both the parent and child zones. It could also result in
|
||
additional denial of service threats to the parent servers in that
|
||
the servers could be tied up validating and processing bogus (but
|
||
authenticated) update requests for the compromised child zone.
|
||
|
||
Normative References
|
||
|
||
[DSREC] Gudmundsson, O., "Delegation Signer Resource Record", ID
|
||
draft-ietf-dnsext-delegation-signer-14.txt, May 2003,
|
||
<http://www.ietf.org/internet-drafts/
|
||
draft-ietf-dnsext-delegation-signer-14.txt>.
|
||
|
||
[RFC1996] Vixie, P., "A Mechanism for Prompt Notification of Zone
|
||
Changes (DNS NOTIFY)", RFC 1996, August 1996.
|
||
|
||
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
|
||
Requirement Levels", BCP 14, RFC 2119, March 1997.
|
||
|
||
[RFC2535] Eastlake, D., "Domain Name System Security Extensions",
|
||
RFC 2535, March 1999.
|
||
|
||
[RFC2931] Eastlake, D., "DNS Request and Transaction Signatures (
|
||
SIG(0)s)", RFC 2931, September 2000.
|
||
|
||
[SEPFLAG] Kolkman, O., "KEY RR Secure Entry Point (SEP) Flag", ID
|
||
draft-ietf-dnsext-keyrr-key-signing-flag-07.txt, January
|
||
2003, <http://www.ietf.org/internet-drafts/
|
||
draft-ietf-dnsext-keyrr-key-signing-flag-07.txt>.
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
StJohns Expires December 12, 2003 [Page 7]
|
||
|
||
Internet-Draft secured-notify June 2003
|
||
|
||
|
||
Author's Address
|
||
|
||
Michael StJohns
|
||
Nominum, Inc.
|
||
2385 Bay Road
|
||
Redwood City, CA 94063
|
||
USA
|
||
|
||
Phone: +1-301-528-4729
|
||
EMail: Mike.StJohns@nominum.com
|
||
URI: www.nominum.com
|
||
|
||
Appendix A. Discussion: NOTIFY vs UPDATE & Push vs Pull
|
||
|
||
During the pre-publication phase, the author solicited comments on
|
||
this draft. One email made two suggestions. The first was to use
|
||
UPDATE instead of NOTIFY, the second was if NOTIFY was used then to
|
||
use the notify/pull model for update rather than the mode proposed
|
||
here of pushing the data as part of the NOTIFY.
|
||
|
||
On the subject of NOTIFY vs UPDATE, neither has exactly the model
|
||
described here, but NOTIFY comes closer. UPDATE has semantics that
|
||
says "please update your copy of something that I own with this
|
||
information that I've provided." NOTIFY's semantics are "something's
|
||
changed that you may care about." What we really want is
|
||
"something's changed that I own, that may affect something that you
|
||
own and here's the data that's changed." NOTIFY is probably the
|
||
closest to this meaning.
|
||
|
||
On the subject of push vs pull, either of these two models would
|
||
work, and the pull model (ala the original NOTIFY RFC) should be the
|
||
fall back if data isn't provided as part of the secured NOTIFY. If
|
||
the data is provided and secured (i.e. signed) in the NOTIFY, the
|
||
parent shouldn't actually have to retrieve data from the child zone
|
||
(unless the NOTIFY is truncated). If the NOTIFY isn't signed, then
|
||
the pull model is the only one that will work, but then there's no
|
||
point in actually writing this document. In general, the author
|
||
would like to minimize the work factor for the parent and keeping
|
||
track of which child zones need to be polled could be expensive,
|
||
especially in very large parent zones. Placing the burden on the
|
||
child to push data to the parent seems a better choice.
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
StJohns Expires December 12, 2003 [Page 8]
|
||
|
||
Internet-Draft secured-notify June 2003
|
||
|
||
|
||
Intellectual Property Statement
|
||
|
||
The IETF takes no position regarding the validity or scope of any
|
||
intellectual property or other rights that might be claimed to
|
||
pertain to the implementation or use of the technology described in
|
||
this document or the extent to which any license under such rights
|
||
might or might not be available; neither does it represent that it
|
||
has made any effort to identify any such rights. Information on the
|
||
IETF's procedures with respect to rights in standards-track and
|
||
standards-related documentation can be found in BCP-11. Copies of
|
||
claims of rights made available for publication and any assurances of
|
||
licenses to be made available, or the result of an attempt made to
|
||
obtain a general license or permission for the use of such
|
||
proprietary rights by implementors or users of this specification can
|
||
be obtained from the IETF Secretariat.
|
||
|
||
The IETF invites any interested party to bring to its attention any
|
||
copyrights, patents or patent applications, or other proprietary
|
||
rights which may cover technology that may be required to practice
|
||
this standard. Please address the information to the IETF Executive
|
||
Director.
|
||
|
||
The IETF has been notified of intellectual property rights claimed in
|
||
regard to some or all of the specification contained in this
|
||
document. For more information consult the online list of claimed
|
||
rights.
|
||
|
||
|
||
Full Copyright Statement
|
||
|
||
Copyright (C) The Internet Society (2003). All Rights Reserved.
|
||
|
||
This document and translations of it may be copied and furnished to
|
||
others, and derivative works that comment on or otherwise explain it
|
||
or assist in its implementation may be prepared, copied, published
|
||
and distributed, in whole or in part, without restriction of any
|
||
kind, provided that the above copyright notice and this paragraph are
|
||
included on all such copies and derivative works. However, this
|
||
document itself may not be modified in any way, such as by removing
|
||
the copyright notice or references to the Internet Society or other
|
||
Internet organizations, except as needed for the purpose of
|
||
developing Internet standards in which case the procedures for
|
||
copyrights defined in the Internet Standards process must be
|
||
followed, or as required to translate it into languages other than
|
||
English.
|
||
|
||
The limited permissions granted above are perpetual and will not be
|
||
revoked by the Internet Society or its successors or assignees.
|
||
|
||
|
||
|
||
StJohns Expires December 12, 2003 [Page 9]
|
||
|
||
Internet-Draft secured-notify June 2003
|
||
|
||
|
||
This document and the information contained herein is provided on an
|
||
"AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING
|
||
TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING
|
||
BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION
|
||
HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF
|
||
MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
|
||
|
||
|
||
Acknowledgement
|
||
|
||
Funding for the RFC Editor function is currently provided by the
|
||
Internet Society.
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
StJohns Expires December 12, 2003 [Page 10]
|
||
|