]> CyberLeo.Net >> Repos - FreeBSD/releng/7.2.git/blob - contrib/bind9/doc/rfc/rfc3007.txt
Create releng/7.2 from stable/7 in preparation for 7.2-RELEASE.
[FreeBSD/releng/7.2.git] / contrib / bind9 / doc / rfc / rfc3007.txt
1
2
3
4
5
6
7 Network Working Group                                      B. Wellington
8 Request for Comments: 3007                                       Nominum
9 Updates: 2535, 2136                                        November 2000
10 Obsoletes: 2137
11 Category: Standards Track
12
13
14              Secure Domain Name System (DNS) Dynamic Update
15
16 Status of this Memo
17
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.
23
24 Copyright Notice
25
26    Copyright (C) The Internet Society (2000).  All Rights Reserved.
27
28 Abstract
29
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.
37
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].
41
42 1 - Introduction
43
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.
48
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]
53    is recommended.
54
55
56
57
58 Wellington                  Standards Track                     [Page 1]
59 \f
60 RFC 3007                 Secure Dynamic Update             November 2000
61
62
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.
66
67 1.1 - Overview of DNS Dynamic Update
68
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.
77
78 1.2 - Overview of DNS Transaction Security
79
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.
90
91 1.3 - Comparison of data authentication and message authentication
92
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
98    the request.
99
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.
103
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
107    verifications.
108
109
110
111
112
113
114 Wellington                  Standards Track                     [Page 2]
115 \f
116 RFC 3007                 Secure Dynamic Update             November 2000
117
118
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.
122
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.
126
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.
131
132 1.4 - Data and message signatures
133
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.
140
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.
148
149    Authentication of data, once it is present in DNS, only involves
150    DNSSEC zone keys and signatures generated by them.
151
152 1.5 - Signatory strength
153
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.
158
159 2 - Authentication
160
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
167
168
169
170 Wellington                  Standards Track                     [Page 3]
171 \f
172 RFC 3007                 Secure Dynamic Update             November 2000
173
174
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
181    update.
182
183    SIG(0) signatures SHOULD NOT be generated by zone keys, since
184    transactions are initiated by a host or user, not a zone.
185
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.
188
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.
193
194 3 - Policy
195
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.
202
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.
207
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.
215
216 3.1 - Standard policies
217
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.
221
222
223
224
225
226 Wellington                  Standards Track                     [Page 4]
227 \f
228 RFC 3007                 Secure Dynamic Update             November 2000
229
230
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.
237
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.
244
245 3.1.1 - User types
246
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.
254
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.
258
259    Issues concerning updates of KEY records are discussed in the
260    Security Considerations section.
261
262 3.2 - Additional policies
263
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
267    message.
268
269 4 - Interaction with DNSSEC
270
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
273    clarified.
274
275
276
277
278
279
280
281
282 Wellington                  Standards Track                     [Page 5]
283 \f
284 RFC 3007                 Secure Dynamic Update             November 2000
285
286
287 4.1 - Adding SIGs
288
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.
292
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.
297
298 4.2 - Deleting SIGs
299
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
304    deleted.
305
306 4.3 - Non-explicit updates to SIGs
307
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].
313
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.
316
317 4.4 - Effects on the zone
318
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
324    protocol.
325
326 5 - Security Considerations
327
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.
334
335
336
337
338 Wellington                  Standards Track                     [Page 6]
339 \f
340 RFC 3007                 Secure Dynamic Update             November 2000
341
342
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.
346
347 6 - Acknowledgements
348
349    The author would like to thank the following people for review and
350    informative comments (in alphabetical order):
351
352    Harald Alvestrand
353    Donald Eastlake
354    Olafur Gudmundsson
355    Andreas Gustafsson
356    Bob Halley
357    Stuart Kwan
358    Ed Lewis
359
360 7 - References
361
362    [RFC1034]  Mockapetris, P., "Domain Names - Concepts and Facilities",
363               STD 13, RFC 1034, November 1987.
364
365    [RFC1035]  Mockapetris, P., "Domain Names - Implementation and
366               Specification", STD 13, RFC 1035, November 1987.
367
368    [RFC2136]  Vixie (Ed.), P., Thomson, S., Rekhter, Y. and J. Bound,
369               "Dynamic Updates in the Domain Name System", RFC 2136,
370               April 1997.
371
372    [RFC2137]  Eastlake, D., "Secure Domain Name System Dynamic Update",
373               RFC 2137, April 1997.
374
375    [RFC2535]  Eastlake, G., "Domain Name System Security Extensions",
376               RFC 2535, March 1999.
377
378    [RFC2845]  Vixie, P., Gudmundsson, O., Eastlake, D. and B.
379               Wellington, "Secret Key Transaction Signatures for DNS
380               (TSIG)", RFC 2845, May 2000.
381
382    [RFC2930]  Eastlake, D., "Secret Key Establishment for DNS (TKEY
383               RR)", RFC 2930, September 2000.
384
385    [RFC2931]  Eastlake, D., "DNS Request and Transaction Signatures
386               (SIG(0)s)", RFC 2931, September 2000.
387
388    [RFC3008]  Wellington, B., "Domain Name System Security (DNSSEC)
389               Signing Authority", RFC 3008, November 2000.
390
391
392
393
394 Wellington                  Standards Track                     [Page 7]
395 \f
396 RFC 3007                 Secure Dynamic Update             November 2000
397
398
399 8 - Author's Address
400
401    Brian Wellington
402    Nominum, Inc.
403    950 Charter Street
404    Redwood City, CA 94063
405
406    Phone: +1 650 381 6022
407    EMail: Brian.Wellington@nominum.com
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450 Wellington                  Standards Track                     [Page 8]
451 \f
452 RFC 3007                 Secure Dynamic Update             November 2000
453
454
455 9.  Full Copyright Statement
456
457    Copyright (C) The Internet Society (2000).  All Rights Reserved.
458
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
471    English.
472
473    The limited permissions granted above are perpetual and will not be
474    revoked by the Internet Society or its successors or assigns.
475
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.
482
483 Acknowledgement
484
485    Funding for the RFC Editor function is currently provided by the
486    Internet Society.
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506 Wellington                  Standards Track                     [Page 9]
507 \f