7 Network Working Group B. Wellington
8 Request for Comments: 3007 Nominum
9 Updates: 2535, 2136 November 2000
11 Category: Standards Track
14 Secure Domain Name System (DNS) Dynamic Update
18 This document specifies an Internet standards track protocol for the
19 Internet community, and requests discussion and suggestions for
20 improvements. Please refer to the current edition of the "Internet
21 Official Protocol Standards" (STD 1) for the standardization state
22 and status of this protocol. Distribution of this memo is unlimited.
26 Copyright (C) The Internet Society (2000). All Rights Reserved.
30 This document proposes a method for performing secure Domain Name
31 System (DNS) dynamic updates. The method described here is intended
32 to be flexible and useful while requiring as few changes to the
33 protocol as possible. The authentication of the dynamic update
34 message is separate from later DNSSEC validation of the data. Secure
35 communication based on authenticated requests and transactions is
36 used to provide authorization.
38 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
39 "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
40 document are to be interpreted as described in RFC 2119 [RFC2119].
44 This document defines a means to secure dynamic updates of the Domain
45 Name System (DNS), allowing only authorized sources to make changes
46 to a zone's contents. The existing unsecured dynamic update
47 operations form the basis for this work.
49 Familiarity with the DNS system [RFC1034, RFC1035] and dynamic update
50 [RFC2136] is helpful and is assumed by this document. In addition,
51 knowledge of DNS security extensions [RFC2535], SIG(0) transaction
52 security [RFC2535, RFC2931], and TSIG transaction security [RFC2845]
58 Wellington Standards Track [Page 1]
60 RFC 3007 Secure Dynamic Update November 2000
63 This document updates portions of RFC 2535, in particular section
64 3.1.2, and RFC 2136. This document obsoletes RFC 2137, an alternate
65 proposal for secure dynamic update, due to implementation experience.
67 1.1 - Overview of DNS Dynamic Update
69 DNS dynamic update defines a new DNS opcode and a new interpretation
70 of the DNS message if that opcode is used. An update can specify
71 insertions or deletions of data, along with prerequisites necessary
72 for the updates to occur. All tests and changes for a DNS update
73 request are restricted to a single zone, and are performed at the
74 primary server for the zone. The primary server for a dynamic zone
75 must increment the zone SOA serial number when an update occurs or
76 before the next retrieval of the SOA.
78 1.2 - Overview of DNS Transaction Security
80 Exchanges of DNS messages which include TSIG [RFC2845] or SIG(0)
81 [RFC2535, RFC2931] records allow two DNS entities to authenticate DNS
82 requests and responses sent between them. A TSIG MAC (message
83 authentication code) is derived from a shared secret, and a SIG(0) is
84 generated from a private key whose public counterpart is stored in
85 DNS. In both cases, a record containing the message signature/MAC is
86 included as the final resource record in a DNS message. Keyed
87 hashes, used in TSIG, are inexpensive to calculate and verify.
88 Public key encryption, as used in SIG(0), is more scalable as the
89 public keys are stored in DNS.
91 1.3 - Comparison of data authentication and message authentication
93 Message based authentication, using TSIG or SIG(0), provides
94 protection for the entire message with a single signing and single
95 verification which, in the case of TSIG, is a relatively inexpensive
96 MAC creation and check. For update requests, this signature can
97 establish, based on policy or key negotiation, the authority to make
100 DNSSEC SIG records can be used to protect the integrity of individual
101 RRs or RRsets in a DNS message with the authority of the zone owner.
102 However, this cannot sufficiently protect the dynamic update request.
104 Using SIG records to secure RRsets in an update request is
105 incompatible with the design of update, as described below, and would
106 in any case require multiple expensive public key signatures and
114 Wellington Standards Track [Page 2]
116 RFC 3007 Secure Dynamic Update November 2000
119 SIG records do not cover the message header, which includes record
120 counts. Therefore, it is possible to maliciously insert or remove
121 RRsets in an update request without causing a verification failure.
123 If SIG records were used to protect the prerequisite section, it
124 would be impossible to determine whether the SIGs themselves were a
125 prerequisite or simply used for validation.
127 In the update section of an update request, signing requests to add
128 an RRset is straightforward, and this signature could be permanently
129 used to protect the data, as specified in [RFC2535]. However, if an
130 RRset is deleted, there is no data for a SIG to cover.
132 1.4 - Data and message signatures
134 As specified in [RFC3008], the DNSSEC validation process performed by
135 a resolver MUST NOT process any non-zone keys unless local policy
136 dictates otherwise. When performing secure dynamic update, all zone
137 data modified in a signed zone MUST be signed by a relevant zone key.
138 This completely disassociates authentication of an update request
139 from authentication of the data itself.
141 The primary usefulness of host and user keys, with respect to DNSSEC,
142 is to authenticate messages, including dynamic updates. Thus, host
143 and user keys MAY be used to generate SIG(0) records to authenticate
144 updates and MAY be used in the TKEY [RFC2930] process to generate
145 TSIG shared secrets. In both cases, no SIG records generated by
146 non-zone keys will be used in a DNSSEC validation process unless
147 local policy dictates.
149 Authentication of data, once it is present in DNS, only involves
150 DNSSEC zone keys and signatures generated by them.
152 1.5 - Signatory strength
154 [RFC2535, section 3.1.2] defines the signatory field of a key as the
155 final 4 bits of the flags field, but does not define its value. This
156 proposal leaves this field undefined. Updating [RFC2535], this field
157 SHOULD be set to 0 in KEY records, and MUST be ignored.
161 TSIG or SIG(0) records MUST be included in all secure dynamic update
162 messages. This allows the server to verifiably determine the
163 originator of a message. If the message contains authentication in
164 the form of a SIG(0), the identity of the sender (that is, the
165 principal) is the owner of the KEY RR that generated the SIG(0). If
166 the message contains a TSIG generated by a statically configured
170 Wellington Standards Track [Page 3]
172 RFC 3007 Secure Dynamic Update November 2000
175 shared secret, the principal is the same as or derived from the
176 shared secret name. If the message contains a TSIG generated by a
177 dynamically configured shared secret, the principal is the same as
178 the one that authenticated the TKEY process; if the TKEY process was
179 unauthenticated, no information is known about the principal, and the
180 associated TSIG shared secret MUST NOT be used for secure dynamic
183 SIG(0) signatures SHOULD NOT be generated by zone keys, since
184 transactions are initiated by a host or user, not a zone.
186 DNSSEC SIG records (other than SIG(0)) MAY be included in an update
187 message, but MUST NOT be used to authenticate the update request.
189 If an update fails because it is signed with an unauthorized key, the
190 server MUST indicate failure by returning a message with RCODE
191 REFUSED. Other TSIG, SIG(0), or dynamic update errors are returned
192 as specified in the appropriate protocol description.
196 All policy is configured by the zone administrator and enforced by
197 the zone's primary name server. Policy dictates the authorized
198 actions that an authenticated principal can take. Policy checks are
199 based on the principal and the desired action, where the principal is
200 derived from the message signing key and applied to dynamic update
201 messages signed with that key.
203 The server's policy defines criteria which determine if the key used
204 to sign the update is permitted to perform the requested updates. By
205 default, a principal MUST NOT be permitted to make any changes to
206 zone data; any permissions MUST be enabled though configuration.
208 The policy is fully implemented in the primary zone server's
209 configuration for several reasons. This removes limitations imposed
210 by encoding policy into a fixed number of bits (such as the KEY RR's
211 signatory field). Policy is only relevant in the server applying it,
212 so there is no reason to expose it. Finally, a change in policy or a
213 new type of policy should not affect the DNS protocol or data format,
214 and should not cause interoperability failures.
216 3.1 - Standard policies
218 Implementations SHOULD allow access control policies to use the
219 principal as an authorization token, and MAY also allow policies to
220 grant permission to a signed message regardless of principal.
226 Wellington Standards Track [Page 4]
228 RFC 3007 Secure Dynamic Update November 2000
231 A common practice would be to restrict the permissions of a principal
232 by domain name. That is, a principal could be permitted to add,
233 delete, or modify entries corresponding to one or more domain names.
234 Implementations SHOULD allow per-name access control, and SHOULD
235 provide a concise representation of the principal's own name, its
236 subdomains, and all names in the zone.
238 Additionally, a server SHOULD allow restricting updates by RR type,
239 so that a principal could add, delete, or modify specific record
240 types at certain names. Implementations SHOULD allow per-type access
241 control, and SHOULD provide concise representations of all types and
242 all "user" types, where a user type is defined as one that does not
243 affect the operation of DNS itself.
247 User types include all data types except SOA, NS, SIG, and NXT. SOA
248 and NS records SHOULD NOT be modified by normal users, since these
249 types create or modify delegation points. The addition of SIG
250 records can lead to attacks resulting in additional workload for
251 resolvers, and the deletion of SIG records could lead to extra work
252 for the server if the zone SIG was deleted. Note that these records
253 are not forbidden, but not recommended for normal users.
255 NXT records MUST NOT be created, modified, or deleted by dynamic
256 update, as their update may cause instability in the protocol. This
257 is an update to RFC 2136.
259 Issues concerning updates of KEY records are discussed in the
260 Security Considerations section.
262 3.2 - Additional policies
264 Users are free to implement any policies. Policies may be as
265 specific or general as desired, and as complex as desired. They may
266 depend on the principal or any other characteristics of the signed
269 4 - Interaction with DNSSEC
271 Although this protocol does not change the way updates to secure
272 zones are processed, there are a number of issues that should be
282 Wellington Standards Track [Page 5]
284 RFC 3007 Secure Dynamic Update November 2000
289 An authorized update request MAY include SIG records with each RRset.
290 Since SIG records (except SIG(0) records) MUST NOT be used for
291 authentication of the update message, they are not required.
293 If a principal is authorized to update SIG records and there are SIG
294 records in the update, the SIG records are added without
295 verification. The server MAY examine SIG records and drop SIGs with
296 a temporal validity period in the past.
300 If a principal is authorized to update SIG records and the update
301 specifies the deletion of SIG records, the server MAY choose to
302 override the authority and refuse the update. For example, the
303 server may allow all SIG records not generated by a zone key to be
306 4.3 - Non-explicit updates to SIGs
308 If the updated zone is secured, the RRset affected by an update
309 operation MUST, at the completion of the update, be signed in
310 accordance with the zone's signing policy. This will usually require
311 one or more SIG records to be generated by one or more zone keys
312 whose private components MUST be online [RFC3008].
314 When the contents of an RRset are updated, the server MAY delete all
315 associated SIG records, since they will no longer be valid.
317 4.4 - Effects on the zone
319 If any changes are made, the server MUST, if necessary, generate a
320 new SOA record and new NXT records, and sign these with the
321 appropriate zone keys. Changes to NXT records by secure dynamic
322 update are explicitly forbidden. SOA updates are allowed, since the
323 maintenance of SOA parameters is outside of the scope of the DNS
326 5 - Security Considerations
328 This document requires that a zone key and possibly other
329 cryptographic secret material be held in an on-line, network-
330 connected host, most likely a name server. This material is at the
331 mercy of host security to remain a secret. Exposing this secret puts
332 DNS data at risk of masquerade attacks. The data at risk is that in
333 both zones served by the machine and delegated from this machine.
338 Wellington Standards Track [Page 6]
340 RFC 3007 Secure Dynamic Update November 2000
343 Allowing updates of KEY records may lead to undesirable results,
344 since a principal may be allowed to insert a public key without
345 holding the private key, and possibly masquerade as the key owner.
349 The author would like to thank the following people for review and
350 informative comments (in alphabetical order):
362 [RFC1034] Mockapetris, P., "Domain Names - Concepts and Facilities",
363 STD 13, RFC 1034, November 1987.
365 [RFC1035] Mockapetris, P., "Domain Names - Implementation and
366 Specification", STD 13, RFC 1035, November 1987.
368 [RFC2136] Vixie (Ed.), P., Thomson, S., Rekhter, Y. and J. Bound,
369 "Dynamic Updates in the Domain Name System", RFC 2136,
372 [RFC2137] Eastlake, D., "Secure Domain Name System Dynamic Update",
373 RFC 2137, April 1997.
375 [RFC2535] Eastlake, G., "Domain Name System Security Extensions",
376 RFC 2535, March 1999.
378 [RFC2845] Vixie, P., Gudmundsson, O., Eastlake, D. and B.
379 Wellington, "Secret Key Transaction Signatures for DNS
380 (TSIG)", RFC 2845, May 2000.
382 [RFC2930] Eastlake, D., "Secret Key Establishment for DNS (TKEY
383 RR)", RFC 2930, September 2000.
385 [RFC2931] Eastlake, D., "DNS Request and Transaction Signatures
386 (SIG(0)s)", RFC 2931, September 2000.
388 [RFC3008] Wellington, B., "Domain Name System Security (DNSSEC)
389 Signing Authority", RFC 3008, November 2000.
394 Wellington Standards Track [Page 7]
396 RFC 3007 Secure Dynamic Update November 2000
404 Redwood City, CA 94063
406 Phone: +1 650 381 6022
407 EMail: Brian.Wellington@nominum.com
450 Wellington Standards Track [Page 8]
452 RFC 3007 Secure Dynamic Update November 2000
455 9. Full Copyright Statement
457 Copyright (C) The Internet Society (2000). All Rights Reserved.
459 This document and translations of it may be copied and furnished to
460 others, and derivative works that comment on or otherwise explain it
461 or assist in its implementation may be prepared, copied, published
462 and distributed, in whole or in part, without restriction of any
463 kind, provided that the above copyright notice and this paragraph are
464 included on all such copies and derivative works. However, this
465 document itself may not be modified in any way, such as by removing
466 the copyright notice or references to the Internet Society or other
467 Internet organizations, except as needed for the purpose of
468 developing Internet standards in which case the procedures for
469 copyrights defined in the Internet Standards process must be
470 followed, or as required to translate it into languages other than
473 The limited permissions granted above are perpetual and will not be
474 revoked by the Internet Society or its successors or assigns.
476 This document and the information contained herein is provided on an
477 "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING
478 TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING
479 BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION
480 HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF
481 MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
485 Funding for the RFC Editor function is currently provided by the
506 Wellington Standards Track [Page 9]