~andreserl/ubuntu/lucid/bind9/bind9-apport-533601

« back to all changes in this revision

Viewing changes to contrib/zkt/doc/rfc4641.txt

  • Committer: Bazaar Package Importer
  • Author(s): LaMont Jones
  • Date: 2010-03-01 20:51:23 UTC
  • mfrom: (1.6.4 upstream) (10.1.5 experimental)
  • Revision ID: james.westby@ubuntu.com-20100301205123-kslpwaipx72vq1o1
Tags: 1:9.7.0.dfsg-1~build1
upload of -1 to lucid, LP#530107

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
 
 
2
 
 
3
 
 
4
 
 
5
 
 
6
 
 
7
Network Working Group                                         O. Kolkman
 
8
Request for Comments: 4641                                     R. Gieben
 
9
Obsoletes: 2541                                               NLnet Labs
 
10
Category: Informational                                   September 2006
 
11
 
 
12
 
 
13
                      DNSSEC Operational Practices
 
14
 
 
15
Status of This Memo
 
16
 
 
17
   This memo provides information for the Internet community.  It does
 
18
   not specify an Internet standard of any kind.  Distribution of this
 
19
   memo is unlimited.
 
20
 
 
21
Copyright Notice
 
22
 
 
23
   Copyright (C) The Internet Society (2006).
 
24
 
 
25
Abstract
 
26
 
 
27
   This document describes a set of practices for operating the DNS with
 
28
   security extensions (DNSSEC).  The target audience is zone
 
29
   administrators deploying DNSSEC.
 
30
 
 
31
   The document discusses operational aspects of using keys and
 
32
   signatures in the DNS.  It discusses issues of key generation, key
 
33
   storage, signature generation, key rollover, and related policies.
 
34
 
 
35
   This document obsoletes RFC 2541, as it covers more operational
 
36
   ground and gives more up-to-date requirements with respect to key
 
37
   sizes and the new DNSSEC specification.
 
38
 
 
39
 
 
40
 
 
41
 
 
42
 
 
43
 
 
44
 
 
45
 
 
46
 
 
47
 
 
48
 
 
49
 
 
50
 
 
51
 
 
52
 
 
53
 
 
54
 
 
55
 
 
56
 
 
57
 
 
58
Kolkman & Gieben             Informational                      [Page 1]
 
59
 
 
60
RFC 4641              DNSSEC Operational Practices        September 2006
 
61
 
 
62
 
 
63
Table of Contents
 
64
 
 
65
   1. Introduction ....................................................3
 
66
      1.1. The Use of the Term 'key' ..................................4
 
67
      1.2. Time Definitions ...........................................4
 
68
   2. Keeping the Chain of Trust Intact ...............................5
 
69
   3. Keys Generation and Storage .....................................6
 
70
      3.1. Zone and Key Signing Keys ..................................6
 
71
           3.1.1. Motivations for the KSK and ZSK Separation ..........6
 
72
           3.1.2. KSKs for High-Level Zones ...........................7
 
73
      3.2. Key Generation .............................................8
 
74
      3.3. Key Effectivity Period .....................................8
 
75
      3.4. Key Algorithm ..............................................9
 
76
      3.5. Key Sizes ..................................................9
 
77
      3.6. Private Key Storage .......................................11
 
78
   4. Signature Generation, Key Rollover, and Related Policies .......12
 
79
      4.1. Time in DNSSEC ............................................12
 
80
           4.1.1. Time Considerations ................................12
 
81
      4.2. Key Rollovers .............................................14
 
82
           4.2.1. Zone Signing Key Rollovers .........................14
 
83
                  4.2.1.1. Pre-Publish Key Rollover ..................15
 
84
                  4.2.1.2. Double Signature Zone Signing Key
 
85
                           Rollover ..................................17
 
86
                  4.2.1.3. Pros and Cons of the Schemes ..............18
 
87
           4.2.2. Key Signing Key Rollovers ..........................18
 
88
           4.2.3. Difference Between ZSK and KSK Rollovers ...........20
 
89
           4.2.4. Automated Key Rollovers ............................21
 
90
      4.3. Planning for Emergency Key Rollover .......................21
 
91
           4.3.1. KSK Compromise .....................................22
 
92
                  4.3.1.1. Keeping the Chain of Trust Intact .........22
 
93
                  4.3.1.2. Breaking the Chain of Trust ...............23
 
94
           4.3.2. ZSK Compromise .....................................23
 
95
           4.3.3. Compromises of Keys Anchored in Resolvers ..........24
 
96
      4.4. Parental Policies .........................................24
 
97
           4.4.1. Initial Key Exchanges and Parental Policies
 
98
                  Considerations .....................................24
 
99
           4.4.2. Storing Keys or Hashes? ............................25
 
100
           4.4.3. Security Lameness ..................................25
 
101
           4.4.4. DS Signature Validity Period .......................26
 
102
   5. Security Considerations ........................................26
 
103
   6. Acknowledgments ................................................26
 
104
   7. References .....................................................27
 
105
      7.1. Normative References ......................................27
 
106
      7.2. Informative References ....................................28
 
107
   Appendix A. Terminology ...........................................30
 
108
   Appendix B. Zone Signing Key Rollover How-To ......................31
 
109
   Appendix C. Typographic Conventions ...............................32
 
110
 
 
111
 
 
112
 
 
113
 
 
114
Kolkman & Gieben             Informational                      [Page 2]
 
115
 
 
116
RFC 4641              DNSSEC Operational Practices        September 2006
 
117
 
 
118
 
 
119
1.  Introduction
 
120
 
 
121
   This document describes how to run a DNS Security (DNSSEC)-enabled
 
122
   environment.  It is intended for operators who have knowledge of the
 
123
   DNS (see RFC 1034 [1] and RFC 1035 [2]) and want to deploy DNSSEC.
 
124
   See RFC 4033 [4] for an introduction to DNSSEC, RFC 4034 [5] for the
 
125
   newly introduced Resource Records (RRs), and RFC 4035 [6] for the
 
126
   protocol changes.
 
127
 
 
128
   During workshops and early operational deployment tests, operators
 
129
   and system administrators have gained experience about operating the
 
130
   DNS with security extensions (DNSSEC).  This document translates
 
131
   these experiences into a set of practices for zone administrators.
 
132
   At the time of writing, there exists very little experience with
 
133
   DNSSEC in production environments; this document should therefore
 
134
   explicitly not be seen as representing 'Best Current Practices'.
 
135
 
 
136
   The procedures herein are focused on the maintenance of signed zones
 
137
   (i.e., signing and publishing zones on authoritative servers).  It is
 
138
   intended that maintenance of zones such as re-signing or key
 
139
   rollovers be transparent to any verifying clients on the Internet.
 
140
 
 
141
   The structure of this document is as follows.  In Section 2, we
 
142
   discuss the importance of keeping the "chain of trust" intact.
 
143
   Aspects of key generation and storage of private keys are discussed
 
144
   in Section 3; the focus in this section is mainly on the private part
 
145
   of the key(s).  Section 4 describes considerations concerning the
 
146
   public part of the keys.  Since these public keys appear in the DNS
 
147
   one has to take into account all kinds of timing issues, which are
 
148
   discussed in Section 4.1.  Section 4.2 and Section 4.3 deal with the
 
149
   rollover, or supercession, of keys.  Finally, Section 4.4 discusses
 
150
   considerations on how parents deal with their children's public keys
 
151
   in order to maintain chains of trust.
 
152
 
 
153
   The typographic conventions used in this document are explained in
 
154
   Appendix C.
 
155
 
 
156
   Since this is a document with operational suggestions and there are
 
157
   no protocol specifications, the RFC 2119 [7] language does not apply.
 
158
 
 
159
   This document obsoletes RFC 2541 [12] to reflect the evolution of the
 
160
   underlying DNSSEC protocol since then.  Changes in the choice of
 
161
   cryptographic algorithms, DNS record types and type names, and the
 
162
   parent-child key and signature exchange demanded a major rewrite and
 
163
   additional information and explanation.
 
164
 
 
165
 
 
166
 
 
167
 
 
168
 
 
169
 
 
170
Kolkman & Gieben             Informational                      [Page 3]
 
171
 
 
172
RFC 4641              DNSSEC Operational Practices        September 2006
 
173
 
 
174
 
 
175
1.1.  The Use of the Term 'key'
 
176
 
 
177
   It is assumed that the reader is familiar with the concept of
 
178
   asymmetric keys on which DNSSEC is based (public key cryptography
 
179
   [17]).  Therefore, this document will use the term 'key' rather
 
180
   loosely.  Where it is written that 'a key is used to sign data' it is
 
181
   assumed that the reader understands that it is the private part of
 
182
   the key pair that is used for signing.  It is also assumed that the
 
183
   reader understands that the public part of the key pair is published
 
184
   in the DNSKEY Resource Record and that it is the public part that is
 
185
   used in key exchanges.
 
186
 
 
187
1.2.  Time Definitions
 
188
 
 
189
   In this document, we will be using a number of time-related terms.
 
190
   The following definitions apply:
 
191
 
 
192
   o  "Signature validity period" The period that a signature is valid.
 
193
      It starts at the time specified in the signature inception field
 
194
      of the RRSIG RR and ends at the time specified in the expiration
 
195
      field of the RRSIG RR.
 
196
 
 
197
   o  "Signature publication period" Time after which a signature (made
 
198
      with a specific key) is replaced with a new signature (made with
 
199
      the same key).  This replacement takes place by publishing the
 
200
      relevant RRSIG in the master zone file.  After one stops
 
201
      publishing an RRSIG in a zone, it may take a while before the
 
202
      RRSIG has expired from caches and has actually been removed from
 
203
      the DNS.
 
204
 
 
205
   o  "Key effectivity period" The period during which a key pair is
 
206
      expected to be effective.  This period is defined as the time
 
207
      between the first inception time stamp and the last expiration
 
208
      date of any signature made with this key, regardless of any
 
209
      discontinuity in the use of the key.  The key effectivity period
 
210
      can span multiple signature validity periods.
 
211
 
 
212
   o  "Maximum/Minimum Zone Time to Live (TTL)" The maximum or minimum
 
213
      value of the TTLs from the complete set of RRs in a zone.  Note
 
214
      that the minimum TTL is not the same as the MINIMUM field in the
 
215
      SOA RR.  See [11] for more information.
 
216
 
 
217
 
 
218
 
 
219
 
 
220
 
 
221
 
 
222
 
 
223
 
 
224
 
 
225
 
 
226
Kolkman & Gieben             Informational                      [Page 4]
 
227
 
 
228
RFC 4641              DNSSEC Operational Practices        September 2006
 
229
 
 
230
 
 
231
2.  Keeping the Chain of Trust Intact
 
232
 
 
233
   Maintaining a valid chain of trust is important because broken chains
 
234
   of trust will result in data being marked as Bogus (as defined in [4]
 
235
   Section 5), which may cause entire (sub)domains to become invisible
 
236
   to verifying clients.  The administrators of secured zones have to
 
237
   realize that their zone is, to verifying clients, part of a chain of
 
238
   trust.
 
239
 
 
240
   As mentioned in the introduction, the procedures herein are intended
 
241
   to ensure that maintenance of zones, such as re-signing or key
 
242
   rollovers, will be transparent to the verifying clients on the
 
243
   Internet.
 
244
 
 
245
   Administrators of secured zones will have to keep in mind that data
 
246
   published on an authoritative primary server will not be immediately
 
247
   seen by verifying clients; it may take some time for the data to be
 
248
   transferred to other secondary authoritative nameservers and clients
 
249
   may be fetching data from caching non-authoritative servers.  In this
 
250
   light, note that the time for a zone transfer from master to slave is
 
251
   negligible when using NOTIFY [9] and incremental transfer (IXFR) [8].
 
252
   It increases when full zone transfers (AXFR) are used in combination
 
253
   with NOTIFY.  It increases even more if you rely on full zone
 
254
   transfers based on only the SOA timing parameters for refresh.
 
255
 
 
256
   For the verifying clients, it is important that data from secured
 
257
   zones can be used to build chains of trust regardless of whether the
 
258
   data came directly from an authoritative server, a caching
 
259
   nameserver, or some middle box.  Only by carefully using the
 
260
   available timing parameters can a zone administrator ensure that the
 
261
   data necessary for verification can be obtained.
 
262
 
 
263
   The responsibility for maintaining the chain of trust is shared by
 
264
   administrators of secured zones in the chain of trust.  This is most
 
265
   obvious in the case of a 'key compromise' when a trade-off between
 
266
   maintaining a valid chain of trust and replacing the compromised keys
 
267
   as soon as possible must be made.  Then zone administrators will have
 
268
   to make a trade-off, between keeping the chain of trust intact --
 
269
   thereby allowing for attacks with the compromised key -- or
 
270
   deliberately breaking the chain of trust and making secured
 
271
   subdomains invisible to security-aware resolvers.  Also see Section
 
272
   4.3.
 
273
 
 
274
 
 
275
 
 
276
 
 
277
 
 
278
 
 
279
 
 
280
 
 
281
 
 
282
Kolkman & Gieben             Informational                      [Page 5]
 
283
 
 
284
RFC 4641              DNSSEC Operational Practices        September 2006
 
285
 
 
286
 
 
287
3.  Keys Generation and Storage
 
288
 
 
289
   This section describes a number of considerations with respect to the
 
290
   security of keys.  It deals with the generation, effectivity period,
 
291
   size, and storage of private keys.
 
292
 
 
293
3.1.  Zone and Key Signing Keys
 
294
 
 
295
   The DNSSEC validation protocol does not distinguish between different
 
296
   types of DNSKEYs.  All DNSKEYs can be used during the validation.  In
 
297
   practice, operators use Key Signing and Zone Signing Keys and use the
 
298
   so-called Secure Entry Point (SEP) [3] flag to distinguish between
 
299
   them during operations.  The dynamics and considerations are
 
300
   discussed below.
 
301
 
 
302
   To make zone re-signing and key rollover procedures easier to
 
303
   implement, it is possible to use one or more keys as Key Signing Keys
 
304
   (KSKs).  These keys will only sign the apex DNSKEY RRSet in a zone.
 
305
   Other keys can be used to sign all the RRSets in a zone and are
 
306
   referred to as Zone Signing Keys (ZSKs).  In this document, we assume
 
307
   that KSKs are the subset of keys that are used for key exchanges with
 
308
   the parent and potentially for configuration as trusted anchors --
 
309
   the SEP keys.  In this document, we assume a one-to-one mapping
 
310
   between KSK and SEP keys and we assume the SEP flag to be set on all
 
311
   KSKs.
 
312
 
 
313
3.1.1.  Motivations for the KSK and ZSK Separation
 
314
 
 
315
   Differentiating between the KSK and ZSK functions has several
 
316
   advantages:
 
317
 
 
318
   o  No parent/child interaction is required when ZSKs are updated.
 
319
 
 
320
   o  The KSK can be made stronger (i.e., using more bits in the key
 
321
      material).  This has little operational impact since it is only
 
322
      used to sign a small fraction of the zone data.  Also, the KSK is
 
323
      only used to verify the zone's key set, not for other RRSets in
 
324
      the zone.
 
325
 
 
326
   o  As the KSK is only used to sign a key set, which is most probably
 
327
      updated less frequently than other data in the zone, it can be
 
328
      stored separately from and in a safer location than the ZSK.
 
329
 
 
330
   o  A KSK can have a longer key effectivity period.
 
331
 
 
332
   For almost any method of key management and zone signing, the KSK is
 
333
   used less frequently than the ZSK.  Once a key set is signed with the
 
334
   KSK, all the keys in the key set can be used as ZSKs.  If a ZSK is
 
335
 
 
336
 
 
337
 
 
338
Kolkman & Gieben             Informational                      [Page 6]
 
339
 
 
340
RFC 4641              DNSSEC Operational Practices        September 2006
 
341
 
 
342
 
 
343
   compromised, it can be simply dropped from the key set.  The new key
 
344
   set is then re-signed with the KSK.
 
345
 
 
346
   Given the assumption that for KSKs the SEP flag is set, the KSK can
 
347
   be distinguished from a ZSK by examining the flag field in the DNSKEY
 
348
   RR.  If the flag field is an odd number it is a KSK.  If it is an
 
349
   even number it is a ZSK.
 
350
 
 
351
   The Zone Signing Key can be used to sign all the data in a zone on a
 
352
   regular basis.  When a Zone Signing Key is to be rolled, no
 
353
   interaction with the parent is needed.  This allows for signature
 
354
   validity periods on the order of days.
 
355
 
 
356
   The Key Signing Key is only to be used to sign the DNSKEY RRs in a
 
357
   zone.  If a Key Signing Key is to be rolled over, there will be
 
358
   interactions with parties other than the zone administrator.  These
 
359
   can include the registry of the parent zone or administrators of
 
360
   verifying resolvers that have the particular key configured as secure
 
361
   entry points.  Hence, the key effectivity period of these keys can
 
362
   and should be made much longer.  Although, given a long enough key,
 
363
   the key effectivity period can be on the order of years, we suggest
 
364
   planning for a key effectivity on the order of a few months so that a
 
365
   key rollover remains an operational routine.
 
366
 
 
367
3.1.2.  KSKs for High-Level Zones
 
368
 
 
369
   Higher-level zones are generally more sensitive than lower-level
 
370
   zones.  Anyone controlling or breaking the security of a zone thereby
 
371
   obtains authority over all of its subdomains (except in the case of
 
372
   resolvers that have locally configured the public key of a subdomain,
 
373
   in which case this, and only this, subdomain wouldn't be affected by
 
374
   the compromise of the parent zone).  Therefore, extra care should be
 
375
   taken with high-level zones, and strong keys should be used.
 
376
 
 
377
   The root zone is the most critical of all zones.  Someone controlling
 
378
   or compromising the security of the root zone would control the
 
379
   entire DNS namespace of all resolvers using that root zone (except in
 
380
   the case of resolvers that have locally configured the public key of
 
381
   a subdomain).  Therefore, the utmost care must be taken in the
 
382
   securing of the root zone.  The strongest and most carefully handled
 
383
   keys should be used.  The root zone private key should always be kept
 
384
   off-line.
 
385
 
 
386
   Many resolvers will start at a root server for their access to and
 
387
   authentication of DNS data.  Securely updating the trust anchors in
 
388
   an enormous population of resolvers around the world will be
 
389
   extremely difficult.
 
390
 
 
391
 
 
392
 
 
393
 
 
394
Kolkman & Gieben             Informational                      [Page 7]
 
395
 
 
396
RFC 4641              DNSSEC Operational Practices        September 2006
 
397
 
 
398
 
 
399
3.2.  Key Generation
 
400
 
 
401
   Careful generation of all keys is a sometimes overlooked but
 
402
   absolutely essential element in any cryptographically secure system.
 
403
   The strongest algorithms used with the longest keys are still of no
 
404
   use if an adversary can guess enough to lower the size of the likely
 
405
   key space so that it can be exhaustively searched.  Technical
 
406
   suggestions for the generation of random keys will be found in RFC
 
407
   4086 [14].  One should carefully assess if the random number
 
408
   generator used during key generation adheres to these suggestions.
 
409
 
 
410
   Keys with a long effectivity period are particularly sensitive as
 
411
   they will represent a more valuable target and be subject to attack
 
412
   for a longer time than short-period keys.  It is strongly recommended
 
413
   that long-term key generation occur off-line in a manner isolated
 
414
   from the network via an air gap or, at a minimum, high-level secure
 
415
   hardware.
 
416
 
 
417
3.3.  Key Effectivity Period
 
418
 
 
419
   For various reasons, keys in DNSSEC need to be changed once in a
 
420
   while.  The longer a key is in use, the greater the probability that
 
421
   it will have been compromised through carelessness, accident,
 
422
   espionage, or cryptanalysis.  Furthermore, when key rollovers are too
 
423
   rare an event, they will not become part of the operational habit and
 
424
   there is risk that nobody on-site will remember the procedure for
 
425
   rollover when the need is there.
 
426
 
 
427
   From a purely operational perspective, a reasonable key effectivity
 
428
   period for Key Signing Keys is 13 months, with the intent to replace
 
429
   them after 12 months.  An intended key effectivity period of a month
 
430
   is reasonable for Zone Signing Keys.
 
431
 
 
432
   For key sizes that match these effectivity periods, see Section 3.5.
 
433
 
 
434
   As argued in Section 3.1.2, securely updating trust anchors will be
 
435
   extremely difficult.  On the other hand, the "operational habit"
 
436
   argument does also apply to trust anchor reconfiguration.  If a short
 
437
   key effectivity period is used and the trust anchor configuration has
 
438
   to be revisited on a regular basis, the odds that the configuration
 
439
   tends to be forgotten is smaller.  The trade-off is against a system
 
440
   that is so dynamic that administrators of the validating clients will
 
441
   not be able to follow the modifications.
 
442
 
 
443
   Key effectivity periods can be made very short, as in a few minutes.
 
444
   But when replacing keys one has to take the considerations from
 
445
   Section 4.1 and Section 4.2 into account.
 
446
 
 
447
 
 
448
 
 
449
 
 
450
Kolkman & Gieben             Informational                      [Page 8]
 
451
 
 
452
RFC 4641              DNSSEC Operational Practices        September 2006
 
453
 
 
454
 
 
455
3.4.  Key Algorithm
 
456
 
 
457
   There are currently three different types of algorithms that can be
 
458
   used in DNSSEC: RSA, DSA, and elliptic curve cryptography.  The
 
459
   latter is fairly new and has yet to be standardized for usage in
 
460
   DNSSEC.
 
461
 
 
462
   RSA has been developed in an open and transparent manner.  As the
 
463
   patent on RSA expired in 2000, its use is now also free.
 
464
 
 
465
   DSA has been developed by the National Institute of Standards and
 
466
   Technology (NIST).  The creation of signatures takes roughly the same
 
467
   time as with RSA, but is 10 to 40 times as slow for verification
 
468
   [17].
 
469
 
 
470
   We suggest the use of RSA/SHA-1 as the preferred algorithm for the
 
471
   key.  The current known attacks on RSA can be defeated by making your
 
472
   key longer.  As the MD5 hashing algorithm is showing cracks, we
 
473
   recommend the usage of SHA-1.
 
474
 
 
475
   At the time of publication, it is known that the SHA-1 hash has
 
476
   cryptanalysis issues.  There is work in progress on addressing these
 
477
   issues.  We recommend the use of public key algorithms based on
 
478
   hashes stronger than SHA-1 (e.g., SHA-256), as soon as these
 
479
   algorithms are available in protocol specifications (see [19] and
 
480
   [20]) and implementations.
 
481
 
 
482
3.5.  Key Sizes
 
483
 
 
484
   When choosing key sizes, zone administrators will need to take into
 
485
   account how long a key will be used, how much data will be signed
 
486
   during the key publication period (see Section 8.10 of [17]), and,
 
487
   optionally, how large the key size of the parent is.  As the chain of
 
488
   trust really is "a chain", there is not much sense in making one of
 
489
   the keys in the chain several times larger then the others.  As
 
490
   always, it's the weakest link that defines the strength of the entire
 
491
   chain.  Also see Section 3.1.1 for a discussion of how keys serving
 
492
   different roles (ZSK vs. KSK) may need different key sizes.
 
493
 
 
494
   Generating a key of the correct size is a difficult problem; RFC 3766
 
495
   [13] tries to deal with that problem.  The first part of the
 
496
   selection procedure in Section 1 of the RFC states:
 
497
 
 
498
      1. Determine the attack resistance necessary to satisfy the
 
499
         security requirements of the application.  Do this by
 
500
         estimating the minimum number of computer operations that the
 
501
         attacker will be forced to do in order to compromise the
 
502
 
 
503
 
 
504
 
 
505
 
 
506
Kolkman & Gieben             Informational                      [Page 9]
 
507
 
 
508
RFC 4641              DNSSEC Operational Practices        September 2006
 
509
 
 
510
 
 
511
         security of the system and then take the logarithm base two of
 
512
         that number.  Call that logarithm value "n".
 
513
 
 
514
         A 1996 report recommended 90 bits as a good all-around choice
 
515
         for system security.  The 90 bit number should be increased by
 
516
         about 2/3 bit/year, or about 96 bits in 2005.
 
517
 
 
518
   [13] goes on to explain how this number "n" can be used to calculate
 
519
   the key sizes in public key cryptography.  This culminated in the
 
520
   table given below (slightly modified for our purpose):
 
521
 
 
522
      +-------------+-----------+--------------+
 
523
      | System      |           |              |
 
524
      | requirement | Symmetric | RSA or DSA   |
 
525
      | for attack  | key size  | modulus size |
 
526
      | resistance  | (bits)    | (bits)       |
 
527
      | (bits)      |           |              |
 
528
      +-------------+-----------+--------------+
 
529
      |     70      |     70    |      947     |
 
530
      |     80      |     80    |     1228     |
 
531
      |     90      |     90    |     1553     |
 
532
      |    100      |    100    |     1926     |
 
533
      |    150      |    150    |     4575     |
 
534
      |    200      |    200    |     8719     |
 
535
      |    250      |    250    |    14596     |
 
536
      +-------------+-----------+--------------+
 
537
 
 
538
   The key sizes given are rather large.  This is because these keys are
 
539
   resilient against a trillionaire attacker.  Assuming this rich
 
540
   attacker will not attack your key and that the key is rolled over
 
541
   once a year, we come to the following recommendations about KSK
 
542
   sizes: 1024 bits for low-value domains, 1300 bits for medium-value
 
543
   domains, and 2048 bits for high-value domains.
 
544
 
 
545
   Whether a domain is of low, medium, or high value depends solely on
 
546
   the views of the zone owner.  One could, for instance, view leaf
 
547
   nodes in the DNS as of low value, and top-level domains (TLDs) or the
 
548
   root zone of high value.  The suggested key sizes should be safe for
 
549
   the next 5 years.
 
550
 
 
551
   As ZSKs can be rolled over more easily (and thus more often), the key
 
552
   sizes can be made smaller.  But as said in the introduction of this
 
553
   paragraph, making the ZSKs' key sizes too small (in relation to the
 
554
   KSKs' sizes) doesn't make much sense.  Try to limit the difference in
 
555
   size to about 100 bits.
 
556
 
 
557
 
 
558
 
 
559
 
 
560
 
 
561
 
 
562
Kolkman & Gieben             Informational                     [Page 10]
 
563
 
 
564
RFC 4641              DNSSEC Operational Practices        September 2006
 
565
 
 
566
 
 
567
   Note that nobody can see into the future and that these key sizes are
 
568
   only provided here as a guide.  Further information can be found in
 
569
   [16] and Section 7.5 of [17].  It should be noted though that [16] is
 
570
   already considered overly optimistic about what key sizes are
 
571
   considered safe.
 
572
 
 
573
   One final note concerning key sizes.  Larger keys will increase the
 
574
   sizes of the RRSIG and DNSKEY records and will therefore increase the
 
575
   chance of DNS UDP packet overflow.  Also, the time it takes to
 
576
   validate and create RRSIGs increases with larger keys, so don't
 
577
   needlessly double your key sizes.
 
578
 
 
579
3.6.  Private Key Storage
 
580
 
 
581
   It is recommended that, where possible, zone private keys and the
 
582
   zone file master copy that is to be signed be kept and used in off-
 
583
   line, non-network-connected, physically secure machines only.
 
584
   Periodically, an application can be run to add authentication to a
 
585
   zone by adding RRSIG and NSEC RRs.  Then the augmented file can be
 
586
   transferred.
 
587
 
 
588
   When relying on dynamic update to manage a signed zone [10], be aware
 
589
   that at least one private key of the zone will have to reside on the
 
590
   master server.  This key is only as secure as the amount of exposure
 
591
   the server receives to unknown clients and the security of the host.
 
592
   Although not mandatory, one could administer the DNS in the following
 
593
   way.  The master that processes the dynamic updates is unavailable
 
594
   from generic hosts on the Internet, it is not listed in the NS RR
 
595
   set, although its name appears in the SOA RRs MNAME field.  The
 
596
   nameservers in the NS RRSet are able to receive zone updates through
 
597
   NOTIFY, IXFR, AXFR, or an out-of-band distribution mechanism.  This
 
598
   approach is known as the "hidden master" setup.
 
599
 
 
600
   The ideal situation is to have a one-way information flow to the
 
601
   network to avoid the possibility of tampering from the network.
 
602
   Keeping the zone master file on-line on the network and simply
 
603
   cycling it through an off-line signer does not do this.  The on-line
 
604
   version could still be tampered with if the host it resides on is
 
605
   compromised.  For maximum security, the master copy of the zone file
 
606
   should be off-net and should not be updated based on an unsecured
 
607
   network mediated communication.
 
608
 
 
609
   In general, keeping a zone file off-line will not be practical and
 
610
   the machines on which zone files are maintained will be connected to
 
611
   a network.  Operators are advised to take security measures to shield
 
612
   unauthorized access to the master copy.
 
613
 
 
614
 
 
615
 
 
616
 
 
617
 
 
618
Kolkman & Gieben             Informational                     [Page 11]
 
619
 
 
620
RFC 4641              DNSSEC Operational Practices        September 2006
 
621
 
 
622
 
 
623
   For dynamically updated secured zones [10], both the master copy and
 
624
   the private key that is used to update signatures on updated RRs will
 
625
   need to be on-line.
 
626
 
 
627
4.  Signature Generation, Key Rollover, and Related Policies
 
628
 
 
629
4.1.  Time in DNSSEC
 
630
 
 
631
   Without DNSSEC, all times in the DNS are relative.  The SOA fields
 
632
   REFRESH, RETRY, and EXPIRATION are timers used to determine the time
 
633
   elapsed after a slave server synchronized with a master server.  The
 
634
   Time to Live (TTL) value and the SOA RR minimum TTL parameter [11]
 
635
   are used to determine how long a forwarder should cache data after it
 
636
   has been fetched from an authoritative server.  By using a signature
 
637
   validity period, DNSSEC introduces the notion of an absolute time in
 
638
   the DNS.  Signatures in DNSSEC have an expiration date after which
 
639
   the signature is marked as invalid and the signed data is to be
 
640
   considered Bogus.
 
641
 
 
642
4.1.1.  Time Considerations
 
643
 
 
644
   Because of the expiration of signatures, one should consider the
 
645
   following:
 
646
 
 
647
   o  We suggest the Maximum Zone TTL of your zone data to be a fraction
 
648
      of your signature validity period.
 
649
 
 
650
         If the TTL would be of similar order as the signature validity
 
651
         period, then all RRSets fetched during the validity period
 
652
         would be cached until the signature expiration time.  Section
 
653
         7.1 of [4] suggests that "the resolver may use the time
 
654
         remaining before expiration of the signature validity period of
 
655
         a signed RRSet as an upper bound for the TTL".  As a result,
 
656
         query load on authoritative servers would peak at signature
 
657
         expiration time, as this is also the time at which records
 
658
         simultaneously expire from caches.
 
659
 
 
660
         To avoid query load peaks, we suggest the TTL on all the RRs in
 
661
         your zone to be at least a few times smaller than your
 
662
         signature validity period.
 
663
 
 
664
   o  We suggest the signature publication period to end at least one
 
665
      Maximum Zone TTL duration before the end of the signature validity
 
666
      period.
 
667
 
 
668
 
 
669
 
 
670
 
 
671
 
 
672
 
 
673
 
 
674
Kolkman & Gieben             Informational                     [Page 12]
 
675
 
 
676
RFC 4641              DNSSEC Operational Practices        September 2006
 
677
 
 
678
 
 
679
         Re-signing a zone shortly before the end of the signature
 
680
         validity period may cause simultaneous expiration of data from
 
681
         caches.  This in turn may lead to peaks in the load on
 
682
         authoritative servers.
 
683
 
 
684
   o  We suggest the Minimum Zone TTL to be long enough to both fetch
 
685
      and verify all the RRs in the trust chain.  In workshop
 
686
      environments, it has been demonstrated [18] that a low TTL (under
 
687
      5 to 10 minutes) caused disruptions because of the following two
 
688
      problems:
 
689
 
 
690
         1.  During validation, some data may expire before the
 
691
             validation is complete.  The validator should be able to
 
692
             keep all data until it is completed.  This applies to all
 
693
             RRs needed to complete the chain of trust: DSes, DNSKEYs,
 
694
             RRSIGs, and the final answers, i.e., the RRSet that is
 
695
             returned for the initial query.
 
696
 
 
697
         2.  Frequent verification causes load on recursive nameservers.
 
698
             Data at delegation points, DSes, DNSKEYs, and RRSIGs
 
699
             benefit from caching.  The TTL on those should be
 
700
             relatively long.
 
701
 
 
702
   o  Slave servers will need to be able to fetch newly signed zones
 
703
      well before the RRSIGs in the zone served by the slave server pass
 
704
      their signature expiration time.
 
705
 
 
706
         When a slave server is out of sync with its master and data in
 
707
         a zone is signed by expired signatures, it may be better for
 
708
         the slave server not to give out any answer.
 
709
 
 
710
         Normally, a slave server that is not able to contact a master
 
711
         server for an extended period will expire a zone.  When that
 
712
         happens, the server will respond differently to queries for
 
713
         that zone.  Some servers issue SERVFAIL, whereas others turn
 
714
         off the 'AA' bit in the answers.  The time of expiration is set
 
715
         in the SOA record and is relative to the last successful
 
716
         refresh between the master and the slave servers.  There exists
 
717
         no coupling between the signature expiration of RRSIGs in the
 
718
         zone and the expire parameter in the SOA.
 
719
 
 
720
         If the server serves a DNSSEC zone, then it may well happen
 
721
         that the signatures expire well before the SOA expiration timer
 
722
         counts down to zero.  It is not possible to completely prevent
 
723
         this from happening by tweaking the SOA parameters.  However,
 
724
         the effects can be minimized where the SOA expiration time is
 
725
         equal to or shorter than the signature validity period.  The
 
726
         consequence of an authoritative server not being able to update
 
727
 
 
728
 
 
729
 
 
730
Kolkman & Gieben             Informational                     [Page 13]
 
731
 
 
732
RFC 4641              DNSSEC Operational Practices        September 2006
 
733
 
 
734
 
 
735
         a zone, whilst that zone includes expired signatures, is that
 
736
         non-secure resolvers will continue to be able to resolve data
 
737
         served by the particular slave servers while security-aware
 
738
         resolvers will experience problems because of answers being
 
739
         marked as Bogus.
 
740
 
 
741
         We suggest the SOA expiration timer being approximately one
 
742
         third or one fourth of the signature validity period.  It will
 
743
         allow problems with transfers from the master server to be
 
744
         noticed before the actual signature times out.  We also suggest
 
745
         that operators of nameservers that supply secondary services
 
746
         develop 'watch dogs' to spot upcoming signature expirations in
 
747
         zones they slave, and take appropriate action.
 
748
 
 
749
         When determining the value for the expiration parameter one has
 
750
         to take the following into account: What are the chances that
 
751
         all my secondaries expire the zone? How quickly can I reach an
 
752
         administrator of secondary servers to load a valid zone?  These
 
753
         questions are not DNSSEC specific but may influence the choice
 
754
         of your signature validity intervals.
 
755
 
 
756
4.2.  Key Rollovers
 
757
 
 
758
   A DNSSEC key cannot be used forever (see Section 3.3).  So key
 
759
   rollovers -- or supercessions, as they are sometimes called -- are a
 
760
   fact of life when using DNSSEC.  Zone administrators who are in the
 
761
   process of rolling their keys have to take into account that data
 
762
   published in previous versions of their zone still lives in caches.
 
763
   When deploying DNSSEC, this becomes an important consideration;
 
764
   ignoring data that may be in caches may lead to loss of service for
 
765
   clients.
 
766
 
 
767
   The most pressing example of this occurs when zone material signed
 
768
   with an old key is being validated by a resolver that does not have
 
769
   the old zone key cached.  If the old key is no longer present in the
 
770
   current zone, this validation fails, marking the data "Bogus".
 
771
   Alternatively, an attempt could be made to validate data that is
 
772
   signed with a new key against an old key that lives in a local cache,
 
773
   also resulting in data being marked "Bogus".
 
774
 
 
775
4.2.1.  Zone Signing Key Rollovers
 
776
 
 
777
   For "Zone Signing Key rollovers", there are two ways to make sure
 
778
   that during the rollover data still cached can be verified with the
 
779
   new key sets or newly generated signatures can be verified with the
 
780
   keys still in caches.  One schema, described in Section 4.2.1.2, uses
 
781
 
 
782
 
 
783
 
 
784
 
 
785
 
 
786
Kolkman & Gieben             Informational                     [Page 14]
 
787
 
 
788
RFC 4641              DNSSEC Operational Practices        September 2006
 
789
 
 
790
 
 
791
   double signatures; the other uses key pre-publication (Section
 
792
   4.2.1.1).  The pros, cons, and recommendations are described in
 
793
   Section 4.2.1.3.
 
794
 
 
795
4.2.1.1.  Pre-Publish Key Rollover
 
796
 
 
797
   This section shows how to perform a ZSK rollover without the need to
 
798
   sign all the data in a zone twice -- the "pre-publish key rollover".
 
799
   This method has advantages in the case of a key compromise.  If the
 
800
   old key is compromised, the new key has already been distributed in
 
801
   the DNS.  The zone administrator is then able to quickly switch to
 
802
   the new key and remove the compromised key from the zone.  Another
 
803
   major advantage is that the zone size does not double, as is the case
 
804
   with the double signature ZSK rollover.  A small "how-to" for this
 
805
   kind of rollover can be found in Appendix B.
 
806
 
 
807
   Pre-publish key rollover involves four stages as follows:
 
808
 
 
809
      ----------------------------------------------------------------
 
810
      initial         new DNSKEY       new RRSIGs      DNSKEY removal
 
811
      ----------------------------------------------------------------
 
812
      SOA0            SOA1             SOA2            SOA3
 
813
      RRSIG10(SOA0)   RRSIG10(SOA1)    RRSIG11(SOA2)   RRSIG11(SOA3)
 
814
 
 
815
      DNSKEY1         DNSKEY1          DNSKEY1         DNSKEY1
 
816
      DNSKEY10        DNSKEY10         DNSKEY10        DNSKEY11
 
817
      DNSKEY11         DNSKEY11
 
818
      RRSIG1 (DNSKEY) RRSIG1 (DNSKEY)  RRSIG1(DNSKEY)  RRSIG1 (DNSKEY)
 
819
      RRSIG10(DNSKEY) RRSIG10(DNSKEY)  RRSIG11(DNSKEY) RRSIG11(DNSKEY)
 
820
      ----------------------------------------------------------------
 
821
 
 
822
                         Pre-Publish Key Rollover
 
823
 
 
824
   initial: Initial version of the zone: DNSKEY 1 is the Key Signing
 
825
      Key.  DNSKEY 10 is used to sign all the data of the zone, the Zone
 
826
      Signing Key.
 
827
 
 
828
   new DNSKEY: DNSKEY 11 is introduced into the key set.  Note that no
 
829
      signatures are generated with this key yet, but this does not
 
830
      secure against brute force attacks on the public key.  The minimum
 
831
      duration of this pre-roll phase is the time it takes for the data
 
832
      to propagate to the authoritative servers plus TTL value of the
 
833
      key set.
 
834
 
 
835
   new RRSIGs: At the "new RRSIGs" stage (SOA serial 2), DNSKEY 11 is
 
836
      used to sign the data in the zone exclusively (i.e., all the
 
837
      signatures from DNSKEY 10 are removed from the zone).  DNSKEY 10
 
838
      remains published in the key set.  This way data that was loaded
 
839
 
 
840
 
 
841
 
 
842
Kolkman & Gieben             Informational                     [Page 15]
 
843
 
 
844
RFC 4641              DNSSEC Operational Practices        September 2006
 
845
 
 
846
 
 
847
      into caches from version 1 of the zone can still be verified with
 
848
      key sets fetched from version 2 of the zone.  The minimum time
 
849
      that the key set including DNSKEY 10 is to be published is the
 
850
      time that it takes for zone data from the previous version of the
 
851
      zone to expire from old caches, i.e., the time it takes for this
 
852
      zone to propagate to all authoritative servers plus the Maximum
 
853
      Zone TTL value of any of the data in the previous version of the
 
854
      zone.
 
855
 
 
856
   DNSKEY removal: DNSKEY 10 is removed from the zone.  The key set, now
 
857
      only containing DNSKEY 1 and DNSKEY 11, is re-signed with the
 
858
      DNSKEY 1.
 
859
 
 
860
   The above scheme can be simplified by always publishing the "future"
 
861
   key immediately after the rollover.  The scheme would look as follows
 
862
   (we show two rollovers); the future key is introduced in "new DNSKEY"
 
863
   as DNSKEY 12 and again a newer one, numbered 13, in "new DNSKEY
 
864
   (II)":
 
865
 
 
866
      ----------------------------------------------------------------
 
867
      initial             new RRSIGs          new DNSKEY
 
868
      ----------------------------------------------------------------
 
869
      SOA0                SOA1                SOA2
 
870
      RRSIG10(SOA0)       RRSIG11(SOA1)       RRSIG11(SOA2)
 
871
 
 
872
      DNSKEY1             DNSKEY1             DNSKEY1
 
873
      DNSKEY10            DNSKEY10            DNSKEY11
 
874
      DNSKEY11            DNSKEY11            DNSKEY12
 
875
      RRSIG1(DNSKEY)      RRSIG1 (DNSKEY)     RRSIG1(DNSKEY)
 
876
      RRSIG10(DNSKEY)     RRSIG11(DNSKEY)     RRSIG11(DNSKEY)
 
877
      ----------------------------------------------------------------
 
878
 
 
879
      ----------------------------------------------------------------
 
880
      new RRSIGs (II)     new DNSKEY (II)
 
881
      ----------------------------------------------------------------
 
882
      SOA3                SOA4
 
883
      RRSIG12(SOA3)       RRSIG12(SOA4)
 
884
 
 
885
      DNSKEY1             DNSKEY1
 
886
      DNSKEY11            DNSKEY12
 
887
      DNSKEY12            DNSKEY13
 
888
      RRSIG1(DNSKEY)      RRSIG1(DNSKEY)
 
889
      RRSIG12(DNSKEY)     RRSIG12(DNSKEY)
 
890
      ----------------------------------------------------------------
 
891
 
 
892
              Pre-Publish Key Rollover, Showing Two Rollovers
 
893
 
 
894
 
 
895
 
 
896
 
 
897
 
 
898
Kolkman & Gieben             Informational                     [Page 16]
 
899
 
 
900
RFC 4641              DNSSEC Operational Practices        September 2006
 
901
 
 
902
 
 
903
   Note that the key introduced in the "new DNSKEY" phase is not used
 
904
   for production yet; the private key can thus be stored in a
 
905
   physically secure manner and does not need to be 'fetched' every time
 
906
   a zone needs to be signed.
 
907
 
 
908
4.2.1.2.  Double Signature Zone Signing Key Rollover
 
909
 
 
910
   This section shows how to perform a ZSK key rollover using the double
 
911
   zone data signature scheme, aptly named "double signature rollover".
 
912
 
 
913
   During the "new DNSKEY" stage the new version of the zone file will
 
914
   need to propagate to all authoritative servers and the data that
 
915
   exists in (distant) caches will need to expire, requiring at least
 
916
   the Maximum Zone TTL.
 
917
 
 
918
   Double signature ZSK rollover involves three stages as follows:
 
919
 
 
920
      ----------------------------------------------------------------
 
921
      initial             new DNSKEY         DNSKEY removal
 
922
      ----------------------------------------------------------------
 
923
      SOA0                SOA1               SOA2
 
924
      RRSIG10(SOA0)       RRSIG10(SOA1)      RRSIG11(SOA2)
 
925
      RRSIG11(SOA1)
 
926
 
 
927
      DNSKEY1             DNSKEY1            DNSKEY1
 
928
      DNSKEY10            DNSKEY10           DNSKEY11
 
929
      DNSKEY11
 
930
      RRSIG1(DNSKEY)      RRSIG1(DNSKEY)     RRSIG1(DNSKEY)
 
931
      RRSIG10(DNSKEY)     RRSIG10(DNSKEY)    RRSIG11(DNSKEY)
 
932
      RRSIG11(DNSKEY)
 
933
      ----------------------------------------------------------------
 
934
 
 
935
                Double Signature Zone Signing Key Rollover
 
936
 
 
937
   initial: Initial Version of the zone: DNSKEY 1 is the Key Signing
 
938
      Key.  DNSKEY 10 is used to sign all the data of the zone, the Zone
 
939
      Signing Key.
 
940
 
 
941
   new DNSKEY: At the "New DNSKEY" stage (SOA serial 1) DNSKEY 11 is
 
942
      introduced into the key set and all the data in the zone is signed
 
943
      with DNSKEY 10 and DNSKEY 11.  The rollover period will need to
 
944
      continue until all data from version 0 of the zone has expired
 
945
      from remote caches.  This will take at least the Maximum Zone TTL
 
946
      of version 0 of the zone.
 
947
 
 
948
   DNSKEY removal: DNSKEY 10 is removed from the zone.  All the
 
949
      signatures from DNSKEY 10 are removed from the zone.  The key set,
 
950
      now only containing DNSKEY 11, is re-signed with DNSKEY 1.
 
951
 
 
952
 
 
953
 
 
954
Kolkman & Gieben             Informational                     [Page 17]
 
955
 
 
956
RFC 4641              DNSSEC Operational Practices        September 2006
 
957
 
 
958
 
 
959
   At every instance, RRSIGs from the previous version of the zone can
 
960
   be verified with the DNSKEY RRSet from the current version and the
 
961
   other way around.  The data from the current version can be verified
 
962
   with the data from the previous version of the zone.  The duration of
 
963
   the "new DNSKEY" phase and the period between rollovers should be at
 
964
   least the Maximum Zone TTL.
 
965
 
 
966
   Making sure that the "new DNSKEY" phase lasts until the signature
 
967
   expiration time of the data in initial version of the zone is
 
968
   recommended.  This way all caches are cleared of the old signatures.
 
969
   However, this duration could be considerably longer than the Maximum
 
970
   Zone TTL, making the rollover a lengthy procedure.
 
971
 
 
972
   Note that in this example we assumed that the zone was not modified
 
973
   during the rollover.  New data can be introduced in the zone as long
 
974
   as it is signed with both keys.
 
975
 
 
976
4.2.1.3.  Pros and Cons of the Schemes
 
977
 
 
978
   Pre-publish key rollover: This rollover does not involve signing the
 
979
      zone data twice.  Instead, before the actual rollover, the new key
 
980
      is published in the key set and thus is available for
 
981
      cryptanalysis attacks.  A small disadvantage is that this process
 
982
      requires four steps.  Also the pre-publish scheme involves more
 
983
      parental work when used for KSK rollovers as explained in Section
 
984
      4.2.3.
 
985
 
 
986
   Double signature ZSK rollover: The drawback of this signing scheme is
 
987
      that during the rollover the number of signatures in your zone
 
988
      doubles; this may be prohibitive if you have very big zones.  An
 
989
      advantage is that it only requires three steps.
 
990
 
 
991
4.2.2.  Key Signing Key Rollovers
 
992
 
 
993
   For the rollover of a Key Signing Key, the same considerations as for
 
994
   the rollover of a Zone Signing Key apply.  However, we can use a
 
995
   double signature scheme to guarantee that old data (only the apex key
 
996
   set) in caches can be verified with a new key set and vice versa.
 
997
   Since only the key set is signed with a KSK, zone size considerations
 
998
   do not apply.
 
999
 
 
1000
 
 
1001
 
 
1002
 
 
1003
 
 
1004
 
 
1005
 
 
1006
 
 
1007
 
 
1008
 
 
1009
 
 
1010
Kolkman & Gieben             Informational                     [Page 18]
 
1011
 
 
1012
RFC 4641              DNSSEC Operational Practices        September 2006
 
1013
 
 
1014
 
 
1015
   --------------------------------------------------------------------
 
1016
       initial        new DNSKEY        DS change       DNSKEY removal
 
1017
   --------------------------------------------------------------------
 
1018
     Parent:
 
1019
       SOA0           -------->         SOA1            -------->
 
1020
       RRSIGpar(SOA0) -------->         RRSIGpar(SOA1)  -------->
 
1021
       DS1            -------->         DS2             -------->
 
1022
       RRSIGpar(DS)   -------->         RRSIGpar(DS)    -------->
 
1023
 
 
1024
 
 
1025
     Child:
 
1026
       SOA0            SOA1             -------->       SOA2
 
1027
       RRSIG10(SOA0)   RRSIG10(SOA1)    -------->       RRSIG10(SOA2)
 
1028
                                        -------->
 
1029
       DNSKEY1         DNSKEY1          -------->       DNSKEY2
 
1030
                       DNSKEY2          -------->
 
1031
       DNSKEY10        DNSKEY10         -------->       DNSKEY10
 
1032
       RRSIG1 (DNSKEY) RRSIG1 (DNSKEY)  -------->       RRSIG2 (DNSKEY)
 
1033
                       RRSIG2 (DNSKEY)  -------->
 
1034
       RRSIG10(DNSKEY) RRSIG10(DNSKEY)  -------->       RRSIG10(DNSKEY)
 
1035
   --------------------------------------------------------------------
 
1036
 
 
1037
   Stages of Deployment for a Double Signature Key Signing Key Rollover
 
1038
 
 
1039
   initial: Initial version of the zone.  The parental DS points to
 
1040
      DNSKEY1.  Before the rollover starts, the child will have to
 
1041
      verify what the TTL is of the DS RR that points to DNSKEY1 -- it
 
1042
      is needed during the rollover and we refer to the value as TTL_DS.
 
1043
 
 
1044
   new DNSKEY: During the "new DNSKEY" phase, the zone administrator
 
1045
      generates a second KSK, DNSKEY2.  The key is provided to the
 
1046
      parent, and the child will have to wait until a new DS RR has been
 
1047
      generated that points to DNSKEY2.  After that DS RR has been
 
1048
      published on all servers authoritative for the parent's zone, the
 
1049
      zone administrator has to wait at least TTL_DS to make sure that
 
1050
      the old DS RR has expired from caches.
 
1051
 
 
1052
   DS change: The parent replaces DS1 with DS2.
 
1053
 
 
1054
   DNSKEY removal: DNSKEY1 has been removed.
 
1055
 
 
1056
   The scenario above puts the responsibility for maintaining a valid
 
1057
   chain of trust with the child.  It also is based on the premise that
 
1058
   the parent only has one DS RR (per algorithm) per zone.  An
 
1059
   alternative mechanism has been considered.  Using an established
 
1060
   trust relation, the interaction can be performed in-band, and the
 
1061
   removal of the keys by the child can possibly be signaled by the
 
1062
   parent.  In this mechanism, there are periods where there are two DS
 
1063
 
 
1064
 
 
1065
 
 
1066
Kolkman & Gieben             Informational                     [Page 19]
 
1067
 
 
1068
RFC 4641              DNSSEC Operational Practices        September 2006
 
1069
 
 
1070
 
 
1071
   RRs at the parent.  Since at the moment of writing the protocol for
 
1072
   this interaction has not been developed, further discussion is out of
 
1073
   scope for this document.
 
1074
 
 
1075
4.2.3.  Difference Between ZSK and KSK Rollovers
 
1076
 
 
1077
   Note that KSK rollovers and ZSK rollovers are different in the sense
 
1078
   that a KSK rollover requires interaction with the parent (and
 
1079
   possibly replacing of trust anchors) and the ensuing delay while
 
1080
   waiting for it.
 
1081
 
 
1082
   A zone key rollover can be handled in two different ways: pre-publish
 
1083
   (Section 4.2.1.1) and double signature (Section 4.2.1.2).
 
1084
 
 
1085
   As the KSK is used to validate the key set and because the KSK is not
 
1086
   changed during a ZSK rollover, a cache is able to validate the new
 
1087
   key set of the zone.  The pre-publish method would also work for a
 
1088
   KSK rollover.  The records that are to be pre-published are the
 
1089
   parental DS RRs.  The pre-publish method has some drawbacks for KSKs.
 
1090
   We first describe the rollover scheme and then indicate these
 
1091
   drawbacks.
 
1092
 
 
1093
   --------------------------------------------------------------------
 
1094
     initial         new DS           new DNSKEY      DS/DNSKEY removal
 
1095
   --------------------------------------------------------------------
 
1096
   Parent:
 
1097
     SOA0            SOA1             -------->       SOA2
 
1098
     RRSIGpar(SOA0)  RRSIGpar(SOA1)   -------->       RRSIGpar(SOA2)
 
1099
     DS1             DS1              -------->       DS2
 
1100
                     DS2              -------->
 
1101
     RRSIGpar(DS)    RRSIGpar(DS)     -------->       RRSIGpar(DS)
 
1102
 
 
1103
 
 
1104
   Child:
 
1105
     SOA0            -------->        SOA1            SOA1
 
1106
     RRSIG10(SOA0)   -------->        RRSIG10(SOA1)   RRSIG10(SOA1)
 
1107
                     -------->
 
1108
     DNSKEY1         -------->        DNSKEY2         DNSKEY2
 
1109
                     -------->
 
1110
     DNSKEY10        -------->        DNSKEY10        DNSKEY10
 
1111
     RRSIG1 (DNSKEY) -------->        RRSIG2(DNSKEY)  RRSIG2 (DNSKEY)
 
1112
     RRSIG10(DNSKEY) -------->        RRSIG10(DNSKEY) RRSIG10(DNSKEY)
 
1113
   --------------------------------------------------------------------
 
1114
 
 
1115
      Stages of Deployment for a Pre-Publish Key Signing Key Rollover
 
1116
 
 
1117
 
 
1118
 
 
1119
 
 
1120
 
 
1121
 
 
1122
Kolkman & Gieben             Informational                     [Page 20]
 
1123
 
 
1124
RFC 4641              DNSSEC Operational Practices        September 2006
 
1125
 
 
1126
 
 
1127
   When the child zone wants to roll, it notifies the parent during the
 
1128
   "new DS" phase and submits the new key (or the corresponding DS) to
 
1129
   the parent.  The parent publishes DS1 and DS2, pointing to DNSKEY1
 
1130
   and DNSKEY2, respectively.  During the rollover ("new DNSKEY" phase),
 
1131
   which can take place as soon as the new DS set propagated through the
 
1132
   DNS, the child replaces DNSKEY1 with DNSKEY2.  Immediately after that
 
1133
   ("DS/DNSKEY removal" phase), it can notify the parent that the old DS
 
1134
   record can be deleted.
 
1135
 
 
1136
   The drawbacks of this scheme are that during the "new DS" phase the
 
1137
   parent cannot verify the match between the DS2 RR and DNSKEY2 using
 
1138
   the DNS -- as DNSKEY2 is not yet published.  Besides, we introduce a
 
1139
   "security lame" key (see Section 4.4.3).  Finally, the child-parent
 
1140
   interaction consists of two steps.  The "double signature" method
 
1141
   only needs one interaction.
 
1142
 
 
1143
4.2.4.  Automated Key Rollovers
 
1144
 
 
1145
   As keys must be renewed periodically, there is some motivation to
 
1146
   automate the rollover process.  Consider the following:
 
1147
 
 
1148
   o  ZSK rollovers are easy to automate as only the child zone is
 
1149
      involved.
 
1150
 
 
1151
   o  A KSK rollover needs interaction between parent and child.  Data
 
1152
      exchange is needed to provide the new keys to the parent;
 
1153
      consequently, this data must be authenticated and integrity must
 
1154
      be guaranteed in order to avoid attacks on the rollover.
 
1155
 
 
1156
4.3.  Planning for Emergency Key Rollover
 
1157
 
 
1158
   This section deals with preparation for a possible key compromise.
 
1159
   Our advice is to have a documented procedure ready for when a key
 
1160
   compromise is suspected or confirmed.
 
1161
 
 
1162
   When the private material of one of your keys is compromised it can
 
1163
   be used for as long as a valid trust chain exists.  A trust chain
 
1164
   remains intact for
 
1165
 
 
1166
   o  as long as a signature over the compromised key in the trust chain
 
1167
      is valid,
 
1168
 
 
1169
   o  as long as a parental DS RR (and signature) points to the
 
1170
      compromised key,
 
1171
 
 
1172
   o  as long as the key is anchored in a resolver and is used as a
 
1173
      starting point for validation (this is generally the hardest to
 
1174
      update).
 
1175
 
 
1176
 
 
1177
 
 
1178
Kolkman & Gieben             Informational                     [Page 21]
 
1179
 
 
1180
RFC 4641              DNSSEC Operational Practices        September 2006
 
1181
 
 
1182
 
 
1183
   While a trust chain to your compromised key exists, your namespace is
 
1184
   vulnerable to abuse by anyone who has obtained illegitimate
 
1185
   possession of the key.  Zone operators have to make a trade-off if
 
1186
   the abuse of the compromised key is worse than having data in caches
 
1187
   that cannot be validated.  If the zone operator chooses to break the
 
1188
   trust chain to the compromised key, data in caches signed with this
 
1189
   key cannot be validated.  However, if the zone administrator chooses
 
1190
   to take the path of a regular rollover, the malicious key holder can
 
1191
   spoof data so that it appears to be valid.
 
1192
 
 
1193
4.3.1.  KSK Compromise
 
1194
 
 
1195
   A zone containing a DNSKEY RRSet with a compromised KSK is vulnerable
 
1196
   as long as the compromised KSK is configured as trust anchor or a
 
1197
   parental DS points to it.
 
1198
 
 
1199
   A compromised KSK can be used to sign the key set of an attacker's
 
1200
   zone.  That zone could be used to poison the DNS.
 
1201
 
 
1202
   Therefore, when the KSK has been compromised, the trust anchor or the
 
1203
   parental DS should be replaced as soon as possible.  It is local
 
1204
   policy whether to break the trust chain during the emergency
 
1205
   rollover.  The trust chain would be broken when the compromised KSK
 
1206
   is removed from the child's zone while the parent still has a DS
 
1207
   pointing to the compromised KSK (the assumption is that there is only
 
1208
   one DS at the parent.  If there are multiple DSes this does not apply
 
1209
   -- however the chain of trust of this particular key is broken).
 
1210
 
 
1211
   Note that an attacker's zone still uses the compromised KSK and the
 
1212
   presence of a parental DS would cause the data in this zone to appear
 
1213
   as valid.  Removing the compromised key would cause the attacker's
 
1214
   zone to appear as valid and the child's zone as Bogus.  Therefore, we
 
1215
   advise not to remove the KSK before the parent has a DS to a new KSK
 
1216
   in place.
 
1217
 
 
1218
4.3.1.1.  Keeping the Chain of Trust Intact
 
1219
 
 
1220
   If we follow this advice, the timing of the replacement of the KSK is
 
1221
   somewhat critical.  The goal is to remove the compromised KSK as soon
 
1222
   as the new DS RR is available at the parent.  And also make sure that
 
1223
   the signature made with a new KSK over the key set with the
 
1224
   compromised KSK in it expires just after the new DS appears at the
 
1225
   parent, thus removing the old cruft in one swoop.
 
1226
 
 
1227
   The procedure is as follows:
 
1228
 
 
1229
   1.  Introduce a new KSK into the key set, keep the compromised KSK in
 
1230
       the key set.
 
1231
 
 
1232
 
 
1233
 
 
1234
Kolkman & Gieben             Informational                     [Page 22]
 
1235
 
 
1236
RFC 4641              DNSSEC Operational Practices        September 2006
 
1237
 
 
1238
 
 
1239
   2.  Sign the key set, with a short validity period.  The validity
 
1240
       period should expire shortly after the DS is expected to appear
 
1241
       in the parent and the old DSes have expired from caches.
 
1242
 
 
1243
   3.  Upload the DS for this new key to the parent.
 
1244
 
 
1245
   4.  Follow the procedure of the regular KSK rollover: Wait for the DS
 
1246
       to appear in the authoritative servers and then wait as long as
 
1247
       the TTL of the old DS RRs.  If necessary re-sign the DNSKEY RRSet
 
1248
       and modify/extend the expiration time.
 
1249
 
 
1250
   5.  Remove the compromised DNSKEY RR from the zone and re-sign the
 
1251
       key set using your "normal" validity interval.
 
1252
 
 
1253
   An additional danger of a key compromise is that the compromised key
 
1254
   could be used to facilitate a legitimate DNSKEY/DS rollover and/or
 
1255
   nameserver changes at the parent.  When that happens, the domain may
 
1256
   be in dispute.  An authenticated out-of-band and secure notify
 
1257
   mechanism to contact a parent is needed in this case.
 
1258
 
 
1259
   Note that this is only a problem when the DNSKEY and or DS records
 
1260
   are used for authentication at the parent.
 
1261
 
 
1262
4.3.1.2.  Breaking the Chain of Trust
 
1263
 
 
1264
   There are two methods to break the chain of trust.  The first method
 
1265
   causes the child zone to appear 'Bogus' to validating resolvers.  The
 
1266
   other causes the child zone to appear 'insecure'.  These are
 
1267
   described below.
 
1268
 
 
1269
   In the method that causes the child zone to appear 'Bogus' to
 
1270
   validating resolvers, the child zone replaces the current KSK with a
 
1271
   new one and re-signs the key set.  Next it sends the DS of the new
 
1272
   key to the parent.  Only after the parent has placed the new DS in
 
1273
   the zone is the child's chain of trust repaired.
 
1274
 
 
1275
   An alternative method of breaking the chain of trust is by removing
 
1276
   the DS RRs from the parent zone altogether.  As a result, the child
 
1277
   zone would become insecure.
 
1278
 
 
1279
4.3.2.  ZSK Compromise
 
1280
 
 
1281
   Primarily because there is no parental interaction required when a
 
1282
   ZSK is compromised, the situation is less severe than with a KSK
 
1283
   compromise.  The zone must still be re-signed with a new ZSK as soon
 
1284
   as possible.  As this is a local operation and requires no
 
1285
   communication between the parent and child, this can be achieved
 
1286
   fairly quickly.  However, one has to take into account that just as
 
1287
 
 
1288
 
 
1289
 
 
1290
Kolkman & Gieben             Informational                     [Page 23]
 
1291
 
 
1292
RFC 4641              DNSSEC Operational Practices        September 2006
 
1293
 
 
1294
 
 
1295
   with a normal rollover the immediate disappearance of the old
 
1296
   compromised key may lead to verification problems.  Also note that as
 
1297
   long as the RRSIG over the compromised ZSK is not expired the zone
 
1298
   may be still at risk.
 
1299
 
 
1300
4.3.3.  Compromises of Keys Anchored in Resolvers
 
1301
 
 
1302
   A key can also be pre-configured in resolvers.  For instance, if
 
1303
   DNSSEC is successfully deployed the root key may be pre-configured in
 
1304
   most security aware resolvers.
 
1305
 
 
1306
   If trust-anchor keys are compromised, the resolvers using these keys
 
1307
   should be notified of this fact.  Zone administrators may consider
 
1308
   setting up a mailing list to communicate the fact that a SEP key is
 
1309
   about to be rolled over.  This communication will of course need to
 
1310
   be authenticated, e.g., by using digital signatures.
 
1311
 
 
1312
   End-users faced with the task of updating an anchored key should
 
1313
   always validate the new key.  New keys should be authenticated out-
 
1314
   of-band, for example, through the use of an announcement website that
 
1315
   is secured using secure sockets (TLS) [21].
 
1316
 
 
1317
4.4.  Parental Policies
 
1318
 
 
1319
4.4.1.  Initial Key Exchanges and Parental Policies Considerations
 
1320
 
 
1321
   The initial key exchange is always subject to the policies set by the
 
1322
   parent.  When designing a key exchange policy one should take into
 
1323
   account that the authentication and authorization mechanisms used
 
1324
   during a key exchange should be as strong as the authentication and
 
1325
   authorization mechanisms used for the exchange of delegation
 
1326
   information between parent and child.  That is, there is no implicit
 
1327
   need in DNSSEC to make the authentication process stronger than it
 
1328
   was in DNS.
 
1329
 
 
1330
   Using the DNS itself as the source for the actual DNSKEY material,
 
1331
   with an out-of-band check on the validity of the DNSKEY, has the
 
1332
   benefit that it reduces the chances of user error.  A DNSKEY query
 
1333
   tool can make use of the SEP bit [3] to select the proper key from a
 
1334
   DNSSEC key set, thereby reducing the chance that the wrong DNSKEY is
 
1335
   sent.  It can validate the self-signature over a key; thereby
 
1336
   verifying the ownership of the private key material.  Fetching the
 
1337
   DNSKEY from the DNS ensures that the chain of trust remains intact
 
1338
   once the parent publishes the DS RR indicating the child is secure.
 
1339
 
 
1340
   Note: the out-of-band verification is still needed when the key
 
1341
   material is fetched via the DNS.  The parent can never be sure
 
1342
   whether or not the DNSKEY RRs have been spoofed.
 
1343
 
 
1344
 
 
1345
 
 
1346
Kolkman & Gieben             Informational                     [Page 24]
 
1347
 
 
1348
RFC 4641              DNSSEC Operational Practices        September 2006
 
1349
 
 
1350
 
 
1351
4.4.2.  Storing Keys or Hashes?
 
1352
 
 
1353
   When designing a registry system one should consider which of the
 
1354
   DNSKEYs and/or the corresponding DSes to store.  Since a child zone
 
1355
   might wish to have a DS published using a message digest algorithm
 
1356
   not yet understood by the registry, the registry can't count on being
 
1357
   able to generate the DS record from a raw DNSKEY.  Thus, we recommend
 
1358
   that registry systems at least support storing DS records.
 
1359
 
 
1360
   It may also be useful to store DNSKEYs, since having them may help
 
1361
   during troubleshooting and, as long as the child's chosen message
 
1362
   digest is supported, the overhead of generating DS records from them
 
1363
   is minimal.  Having an out-of-band mechanism, such as a registry
 
1364
   directory (e.g., Whois), to find out which keys are used to generate
 
1365
   DS Resource Records for specific owners and/or zones may also help
 
1366
   with troubleshooting.
 
1367
 
 
1368
   The storage considerations also relate to the design of the customer
 
1369
   interface and the method by which data is transferred between
 
1370
   registrant and registry; Will the child zone administrator be able to
 
1371
   upload DS RRs with unknown hash algorithms or does the interface only
 
1372
   allow DNSKEYs?  In the registry-registrar model, one can use the
 
1373
   DNSSEC extensions to the Extensible Provisioning Protocol (EPP) [15],
 
1374
   which allows transfer of DS RRs and optionally DNSKEY RRs.
 
1375
 
 
1376
4.4.3.  Security Lameness
 
1377
 
 
1378
   Security lameness is defined as what happens when a parent has a DS
 
1379
   RR pointing to a non-existing DNSKEY RR.  When this happens, the
 
1380
   child's zone may be marked "Bogus" by verifying DNS clients.
 
1381
 
 
1382
   As part of a comprehensive delegation check, the parent could, at key
 
1383
   exchange time, verify that the child's key is actually configured in
 
1384
   the DNS.  However, if a parent does not understand the hashing
 
1385
   algorithm used by child, the parental checks are limited to only
 
1386
   comparing the key id.
 
1387
 
 
1388
   Child zones should be very careful in removing DNSKEY material,
 
1389
   specifically SEP keys, for which a DS RR exists.
 
1390
 
 
1391
   Once a zone is "security lame", a fix (e.g., removing a DS RR) will
 
1392
   take time to propagate through the DNS.
 
1393
 
 
1394
 
 
1395
 
 
1396
 
 
1397
 
 
1398
 
 
1399
 
 
1400
 
 
1401
 
 
1402
Kolkman & Gieben             Informational                     [Page 25]
 
1403
 
 
1404
RFC 4641              DNSSEC Operational Practices        September 2006
 
1405
 
 
1406
 
 
1407
4.4.4.  DS Signature Validity Period
 
1408
 
 
1409
   Since the DS can be replayed as long as it has a valid signature, a
 
1410
   short signature validity period over the DS minimizes the time a
 
1411
   child is vulnerable in the case of a compromise of the child's
 
1412
   KSK(s).  A signature validity period that is too short introduces the
 
1413
   possibility that a zone is marked "Bogus" in case of a configuration
 
1414
   error in the signer.  There may not be enough time to fix the
 
1415
   problems before signatures expire.  Something as mundane as operator
 
1416
   unavailability during weekends shows the need for DS signature
 
1417
   validity periods longer than 2 days.  We recommend an absolute
 
1418
   minimum for a DS signature validity period of a few days.
 
1419
 
 
1420
   The maximum signature validity period of the DS record depends on how
 
1421
   long child zones are willing to be vulnerable after a key compromise.
 
1422
   On the other hand, shortening the DS signature validity interval
 
1423
   increases the operational risk for the parent.  Therefore, the parent
 
1424
   may have policy to use a signature validity interval that is
 
1425
   considerably longer than the child would hope for.
 
1426
 
 
1427
   A compromise between the operational constraints of the parent and
 
1428
   minimizing damage for the child may result in a DS signature validity
 
1429
   period somewhere between a week and months.
 
1430
 
 
1431
   In addition to the signature validity period, which sets a lower
 
1432
   bound on the number of times the zone owner will need to sign the
 
1433
   zone data and which sets an upper bound to the time a child is
 
1434
   vulnerable after key compromise, there is the TTL value on the DS
 
1435
   RRs.  Shortening the TTL means that the authoritative servers will
 
1436
   see more queries.  But on the other hand, a short TTL lowers the
 
1437
   persistence of DS RRSets in caches thereby increasing the speed with
 
1438
   which updated DS RRSets propagate through the DNS.
 
1439
 
 
1440
5.  Security Considerations
 
1441
 
 
1442
   DNSSEC adds data integrity to the DNS.  This document tries to assess
 
1443
   the operational considerations to maintain a stable and secure DNSSEC
 
1444
   service.  Not taking into account the 'data propagation' properties
 
1445
   in the DNS will cause validation failures and may make secured zones
 
1446
   unavailable to security-aware resolvers.
 
1447
 
 
1448
6.  Acknowledgments
 
1449
 
 
1450
   Most of the ideas in this document were the result of collective
 
1451
   efforts during workshops, discussions, and tryouts.
 
1452
 
 
1453
   At the risk of forgetting individuals who were the original
 
1454
   contributors of the ideas, we would like to acknowledge people who
 
1455
 
 
1456
 
 
1457
 
 
1458
Kolkman & Gieben             Informational                     [Page 26]
 
1459
 
 
1460
RFC 4641              DNSSEC Operational Practices        September 2006
 
1461
 
 
1462
 
 
1463
   were actively involved in the compilation of this document.  In
 
1464
   random order: Rip Loomis, Olafur Gudmundsson, Wesley Griffin, Michael
 
1465
   Richardson, Scott Rose, Rick van Rein, Tim McGinnis, Gilles Guette
 
1466
   Olivier Courtay, Sam Weiler, Jelte Jansen, Niall O'Reilly, Holger
 
1467
   Zuleger, Ed Lewis, Hilarie Orman, Marcos Sanz, and Peter Koch.
 
1468
 
 
1469
   Some material in this document has been copied from RFC 2541 [12].
 
1470
 
 
1471
   Mike StJohns designed the key exchange between parent and child
 
1472
   mentioned in the last paragraph of Section 4.2.2
 
1473
 
 
1474
   Section 4.2.4 was supplied by G. Guette and O. Courtay.
 
1475
 
 
1476
   Emma Bretherick, Adrian Bedford, and Lindy Foster corrected many of
 
1477
   the spelling and style issues.
 
1478
 
 
1479
   Kolkman and Gieben take the blame for introducing all miscakes (sic).
 
1480
 
 
1481
   While working on this document, Kolkman was employed by the RIPE NCC
 
1482
   and Gieben was employed by NLnet Labs.
 
1483
 
 
1484
7.  References
 
1485
 
 
1486
7.1.  Normative References
 
1487
 
 
1488
   [1]   Mockapetris, P., "Domain names - concepts and facilities", STD
 
1489
         13, RFC 1034, November 1987.
 
1490
 
 
1491
   [2]   Mockapetris, P., "Domain names - implementation and
 
1492
         specification", STD 13, RFC 1035, November 1987.
 
1493
 
 
1494
   [3]   Kolkman, O., Schlyter, J., and E. Lewis, "Domain Name System
 
1495
         KEY (DNSKEY) Resource Record (RR) Secure Entry Point (SEP)
 
1496
         Flag", RFC 3757, May 2004.
 
1497
 
 
1498
   [4]   Arends, R., Austein, R., Larson, M., Massey, D., and S. Rose,
 
1499
         "DNS Security Introduction and Requirements", RFC 4033, March
 
1500
         2005.
 
1501
 
 
1502
   [5]   Arends, R., Austein, R., Larson, M., Massey, D., and S. Rose,
 
1503
         "Resource Records for the DNS Security Extensions", RFC 4034,
 
1504
         March 2005.
 
1505
 
 
1506
   [6]   Arends, R., Austein, R., Larson, M., Massey, D., and S. Rose,
 
1507
         "Protocol Modifications for the DNS Security Extensions", RFC
 
1508
         4035, March 2005.
 
1509
 
 
1510
 
 
1511
 
 
1512
 
 
1513
 
 
1514
Kolkman & Gieben             Informational                     [Page 27]
 
1515
 
 
1516
RFC 4641              DNSSEC Operational Practices        September 2006
 
1517
 
 
1518
 
 
1519
7.2.  Informative References
 
1520
 
 
1521
   [7]   Bradner, S., "Key words for use in RFCs to Indicate Requirement
 
1522
         Levels", BCP 14, RFC 2119, March 1997.
 
1523
 
 
1524
   [8]   Ohta, M., "Incremental Zone Transfer in DNS", RFC 1995, August
 
1525
         1996.
 
1526
 
 
1527
   [9]   Vixie, P., "A Mechanism for Prompt Notification of Zone Changes
 
1528
         (DNS NOTIFY)", RFC 1996, August 1996.
 
1529
 
 
1530
   [10]  Wellington, B., "Secure Domain Name System (DNS) Dynamic
 
1531
         Update", RFC 3007, November 2000.
 
1532
 
 
1533
   [11]  Andrews, M., "Negative Caching of DNS Queries (DNS NCACHE)",
 
1534
         RFC 2308, March 1998.
 
1535
 
 
1536
   [12]  Eastlake, D., "DNS Security Operational Considerations", RFC
 
1537
         2541, March 1999.
 
1538
 
 
1539
   [13]  Orman, H. and P. Hoffman, "Determining Strengths For Public
 
1540
         Keys Used For Exchanging Symmetric Keys", BCP 86, RFC 3766,
 
1541
         April 2004.
 
1542
 
 
1543
   [14]  Eastlake, D., Schiller, J., and S. Crocker, "Randomness
 
1544
         Requirements for Security", BCP 106, RFC 4086, June 2005.
 
1545
 
 
1546
   [15]  Hollenbeck, S., "Domain Name System (DNS) Security Extensions
 
1547
         Mapping for the Extensible Provisioning Protocol (EPP)", RFC
 
1548
         4310, December 2005.
 
1549
 
 
1550
   [16]  Lenstra, A. and E. Verheul, "Selecting Cryptographic Key
 
1551
         Sizes", The Journal of Cryptology 14 (255-293), 2001.
 
1552
 
 
1553
   [17]  Schneier, B., "Applied Cryptography: Protocols, Algorithms, and
 
1554
         Source Code in C", ISBN (hardcover) 0-471-12845-7, ISBN
 
1555
         (paperback) 0-471-59756-2, Published by John Wiley & Sons Inc.,
 
1556
         1996.
 
1557
 
 
1558
   [18]  Rose, S., "NIST DNSSEC workshop notes", June 2001.
 
1559
 
 
1560
   [19]  Jansen, J., "Use of RSA/SHA-256 DNSKEY and RRSIG Resource
 
1561
         Records in DNSSEC", Work in Progress, January 2006.
 
1562
 
 
1563
   [20]  Hardaker, W., "Use of SHA-256 in DNSSEC Delegation Signer (DS)
 
1564
         Resource Records (RRs)", RFC 4509, May 2006.
 
1565
 
 
1566
 
 
1567
 
 
1568
 
 
1569
 
 
1570
Kolkman & Gieben             Informational                     [Page 28]
 
1571
 
 
1572
RFC 4641              DNSSEC Operational Practices        September 2006
 
1573
 
 
1574
 
 
1575
   [21]  Blake-Wilson, S., Nystrom, M., Hopwood, D., Mikkelsen, J., and
 
1576
         T. Wright, "Transport Layer Security (TLS) Extensions", RFC
 
1577
         4366, April 2006.
 
1578
 
 
1579
 
 
1580
 
 
1581
 
 
1582
 
 
1583
 
 
1584
 
 
1585
 
 
1586
 
 
1587
 
 
1588
 
 
1589
 
 
1590
 
 
1591
 
 
1592
 
 
1593
 
 
1594
 
 
1595
 
 
1596
 
 
1597
 
 
1598
 
 
1599
 
 
1600
 
 
1601
 
 
1602
 
 
1603
 
 
1604
 
 
1605
 
 
1606
 
 
1607
 
 
1608
 
 
1609
 
 
1610
 
 
1611
 
 
1612
 
 
1613
 
 
1614
 
 
1615
 
 
1616
 
 
1617
 
 
1618
 
 
1619
 
 
1620
 
 
1621
 
 
1622
 
 
1623
 
 
1624
 
 
1625
 
 
1626
Kolkman & Gieben             Informational                     [Page 29]
 
1627
 
 
1628
RFC 4641              DNSSEC Operational Practices        September 2006
 
1629
 
 
1630
 
 
1631
Appendix A.  Terminology
 
1632
 
 
1633
   In this document, there is some jargon used that is defined in other
 
1634
   documents.  In most cases, we have not copied the text from the
 
1635
   documents defining the terms but have given a more elaborate
 
1636
   explanation of the meaning.  Note that these explanations should not
 
1637
   be seen as authoritative.
 
1638
 
 
1639
   Anchored key: A DNSKEY configured in resolvers around the globe.
 
1640
      This key is hard to update, hence the term anchored.
 
1641
 
 
1642
   Bogus: Also see Section 5 of [4].  An RRSet in DNSSEC is marked
 
1643
      "Bogus" when a signature of an RRSet does not validate against a
 
1644
      DNSKEY.
 
1645
 
 
1646
   Key Signing Key or KSK: A Key Signing Key (KSK) is a key that is used
 
1647
      exclusively for signing the apex key set.  The fact that a key is
 
1648
      a KSK is only relevant to the signing tool.
 
1649
 
 
1650
   Key size: The term 'key size' can be substituted by 'modulus size'
 
1651
      throughout the document.  It is mathematically more correct to use
 
1652
      modulus size, but as this is a document directed at operators we
 
1653
      feel more at ease with the term key size.
 
1654
 
 
1655
   Private and public keys: DNSSEC secures the DNS through the use of
 
1656
      public key cryptography.  Public key cryptography is based on the
 
1657
      existence of two (mathematically related) keys, a public key and a
 
1658
      private key.  The public keys are published in the DNS by use of
 
1659
      the DNSKEY Resource Record (DNSKEY RR).  Private keys should
 
1660
      remain private.
 
1661
 
 
1662
   Key rollover: A key rollover (also called key supercession in some
 
1663
      environments) is the act of replacing one key pair with another at
 
1664
      the end of a key effectivity period.
 
1665
 
 
1666
   Secure Entry Point (SEP) key: A KSK that has a parental DS record
 
1667
      pointing to it or is configured as a trust anchor.  Although not
 
1668
      required by the protocol, we recommend that the SEP flag [3] is
 
1669
      set on these keys.
 
1670
 
 
1671
   Self-signature: This only applies to signatures over DNSKEYs; a
 
1672
      signature made with DNSKEY x, over DNSKEY x is called a self-
 
1673
      signature.  Note: without further information, self-signatures
 
1674
      convey no trust.  They are useful to check the authenticity of the
 
1675
      DNSKEY, i.e., they can be used as a hash.
 
1676
 
 
1677
 
 
1678
 
 
1679
 
 
1680
 
 
1681
 
 
1682
Kolkman & Gieben             Informational                     [Page 30]
 
1683
 
 
1684
RFC 4641              DNSSEC Operational Practices        September 2006
 
1685
 
 
1686
 
 
1687
   Singing the zone file: The term used for the event where an
 
1688
      administrator joyfully signs its zone file while producing melodic
 
1689
      sound patterns.
 
1690
 
 
1691
   Signer: The system that has access to the private key material and
 
1692
      signs the Resource Record sets in a zone.  A signer may be
 
1693
      configured to sign only parts of the zone, e.g., only those RRSets
 
1694
      for which existing signatures are about to expire.
 
1695
 
 
1696
   Zone Signing Key (ZSK): A key that is used for signing all data in a
 
1697
      zone.  The fact that a key is a ZSK is only relevant to the
 
1698
      signing tool.
 
1699
 
 
1700
   Zone administrator: The 'role' that is responsible for signing a zone
 
1701
      and publishing it on the primary authoritative server.
 
1702
 
 
1703
Appendix B.  Zone Signing Key Rollover How-To
 
1704
 
 
1705
   Using the pre-published signature scheme and the most conservative
 
1706
   method to assure oneself that data does not live in caches, here
 
1707
   follows the "how-to".
 
1708
 
 
1709
   Step 0: The preparation: Create two keys and publish both in your key
 
1710
      set.  Mark one of the keys "active" and the other "published".
 
1711
      Use the "active" key for signing your zone data.  Store the
 
1712
      private part of the "published" key, preferably off-line.  The
 
1713
      protocol does not provide for attributes to mark a key as active
 
1714
      or published.  This is something you have to do on your own,
 
1715
      through the use of a notebook or key management tool.
 
1716
 
 
1717
   Step 1: Determine expiration: At the beginning of the rollover make a
 
1718
      note of the highest expiration time of signatures in your zone
 
1719
      file created with the current key marked as active.  Wait until
 
1720
      the expiration time marked in Step 1 has passed.
 
1721
 
 
1722
   Step 2: Then start using the key that was marked "published" to sign
 
1723
      your data (i.e., mark it "active").  Stop using the key that was
 
1724
      marked "active"; mark it "rolled".
 
1725
 
 
1726
   Step 3: It is safe to engage in a new rollover (Step 1) after at
 
1727
      least one signature validity period.
 
1728
 
 
1729
 
 
1730
 
 
1731
 
 
1732
 
 
1733
 
 
1734
 
 
1735
 
 
1736
 
 
1737
 
 
1738
Kolkman & Gieben             Informational                     [Page 31]
 
1739
 
 
1740
RFC 4641              DNSSEC Operational Practices        September 2006
 
1741
 
 
1742
 
 
1743
Appendix C.  Typographic Conventions
 
1744
 
 
1745
   The following typographic conventions are used in this document:
 
1746
 
 
1747
   Key notation: A key is denoted by DNSKEYx, where x is a number or an
 
1748
   identifier, x could be thought of as the key id.
 
1749
 
 
1750
   RRSet notations: RRs are only denoted by the type.  All other
 
1751
   information -- owner, class, rdata, and TTL--is left out.  Thus:
 
1752
   "example.com 3600 IN A 192.0.2.1" is reduced to "A".  RRSets are a
 
1753
   list of RRs.  A example of this would be "A1, A2", specifying the
 
1754
   RRSet containing two "A" records.  This could again be abbreviated to
 
1755
   just "A".
 
1756
 
 
1757
   Signature notation: Signatures are denoted as RRSIGx(RRSet), which
 
1758
   means that RRSet is signed with DNSKEYx.
 
1759
 
 
1760
   Zone representation: Using the above notation we have simplified the
 
1761
   representation of a signed zone by leaving out all unnecessary
 
1762
   details such as the names and by representing all data by "SOAx"
 
1763
 
 
1764
   SOA representation: SOAs are represented as SOAx, where x is the
 
1765
   serial number.
 
1766
 
 
1767
   Using this notation the following signed zone:
 
1768
 
 
1769
   example.net.      86400  IN SOA  ns.example.net. bert.example.net. (
 
1770
                            2006022100   ; serial
 
1771
                            86400        ; refresh (  24 hours)
 
1772
                            7200         ; retry   (   2 hours)
 
1773
                            3600000      ; expire  (1000 hours)
 
1774
                            28800 )      ; minimum (   8 hours)
 
1775
                     86400  RRSIG   SOA 5 2 86400 20130522213204 (
 
1776
                                  20130422213204 14 example.net.
 
1777
                                  cmL62SI6iAX46xGNQAdQ... )
 
1778
                     86400  NS      a.iana-servers.net.
 
1779
                     86400  NS      b.iana-servers.net.
 
1780
                     86400  RRSIG   NS 5 2 86400 20130507213204 (
 
1781
                                  20130407213204 14 example.net.
 
1782
                                  SO5epiJei19AjXoUpFnQ ... )
 
1783
                     86400  DNSKEY  256 3 5 (
 
1784
                                  EtRB9MP5/AvOuVO0I8XDxy0... ) ; id = 14
 
1785
                     86400  DNSKEY  257 3 5 (
 
1786
                                  gsPW/Yy19GzYIY+Gnr8HABU... ) ; id = 15
 
1787
                     86400  RRSIG   DNSKEY 5 2 86400 20130522213204 (
 
1788
                                  20130422213204 14 example.net.
 
1789
                                  J4zCe8QX4tXVGjV4e1r9... )
 
1790
 
 
1791
 
 
1792
 
 
1793
 
 
1794
Kolkman & Gieben             Informational                     [Page 32]
 
1795
 
 
1796
RFC 4641              DNSSEC Operational Practices        September 2006
 
1797
 
 
1798
 
 
1799
                     86400  RRSIG   DNSKEY 5 2 86400 20130522213204 (
 
1800
                                  20130422213204 15 example.net.
 
1801
                                  keVDCOpsSeDReyV6O... )
 
1802
                     86400  RRSIG   NSEC 5 2 86400 20130507213204 (
 
1803
                                  20130407213204 14 example.net.
 
1804
                                  obj3HEp1GjnmhRjX... )
 
1805
   a.example.net.    86400  IN TXT  "A label"
 
1806
                     86400  RRSIG   TXT 5 3 86400 20130507213204 (
 
1807
                                  20130407213204 14 example.net.
 
1808
                                  IkDMlRdYLmXH7QJnuF3v... )
 
1809
                     86400  NSEC    b.example.com. TXT RRSIG NSEC
 
1810
                     86400  RRSIG   NSEC 5 3 86400 20130507213204 (
 
1811
                                  20130407213204 14 example.net.
 
1812
                                  bZMjoZ3bHjnEz0nIsPMM... )
 
1813
                     ...
 
1814
 
 
1815
   is reduced to the following representation:
 
1816
 
 
1817
       SOA2006022100
 
1818
       RRSIG14(SOA2006022100)
 
1819
       DNSKEY14
 
1820
       DNSKEY15
 
1821
 
 
1822
       RRSIG14(KEY)
 
1823
       RRSIG15(KEY)
 
1824
 
 
1825
   The rest of the zone data has the same signature as the SOA record,
 
1826
   i.e., an RRSIG created with DNSKEY 14.
 
1827
 
 
1828
 
 
1829
 
 
1830
 
 
1831
 
 
1832
 
 
1833
 
 
1834
 
 
1835
 
 
1836
 
 
1837
 
 
1838
 
 
1839
 
 
1840
 
 
1841
 
 
1842
 
 
1843
 
 
1844
 
 
1845
 
 
1846
 
 
1847
 
 
1848
 
 
1849
 
 
1850
Kolkman & Gieben             Informational                     [Page 33]
 
1851
 
 
1852
RFC 4641              DNSSEC Operational Practices        September 2006
 
1853
 
 
1854
 
 
1855
Authors' Addresses
 
1856
 
 
1857
   Olaf M. Kolkman
 
1858
   NLnet Labs
 
1859
   Kruislaan 419
 
1860
   Amsterdam  1098 VA
 
1861
   The Netherlands
 
1862
 
 
1863
   EMail: olaf@nlnetlabs.nl
 
1864
   URI:   http://www.nlnetlabs.nl
 
1865
 
 
1866
 
 
1867
   R. (Miek) Gieben
 
1868
 
 
1869
   EMail: miek@miek.nl
 
1870
 
 
1871
 
 
1872
 
 
1873
 
 
1874
 
 
1875
 
 
1876
 
 
1877
 
 
1878
 
 
1879
 
 
1880
 
 
1881
 
 
1882
 
 
1883
 
 
1884
 
 
1885
 
 
1886
 
 
1887
 
 
1888
 
 
1889
 
 
1890
 
 
1891
 
 
1892
 
 
1893
 
 
1894
 
 
1895
 
 
1896
 
 
1897
 
 
1898
 
 
1899
 
 
1900
 
 
1901
 
 
1902
 
 
1903
 
 
1904
 
 
1905
 
 
1906
Kolkman & Gieben             Informational                     [Page 34]
 
1907
 
 
1908
RFC 4641              DNSSEC Operational Practices        September 2006
 
1909
 
 
1910
 
 
1911
Full Copyright Statement
 
1912
 
 
1913
   Copyright (C) The Internet Society (2006).
 
1914
 
 
1915
   This document is subject to the rights, licenses and restrictions
 
1916
   contained in BCP 78, and except as set forth therein, the authors
 
1917
   retain all their rights.
 
1918
 
 
1919
   This document and the information contained herein are provided on an
 
1920
   "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS
 
1921
   OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE INTERNET
 
1922
   ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED,
 
1923
   INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE
 
1924
   INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED
 
1925
   WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
 
1926
 
 
1927
Intellectual Property
 
1928
 
 
1929
   The IETF takes no position regarding the validity or scope of any
 
1930
   Intellectual Property Rights or other rights that might be claimed to
 
1931
   pertain to the implementation or use of the technology described in
 
1932
   this document or the extent to which any license under such rights
 
1933
   might or might not be available; nor does it represent that it has
 
1934
   made any independent effort to identify any such rights.  Information
 
1935
   on the procedures with respect to rights in RFC documents can be
 
1936
   found in BCP 78 and BCP 79.
 
1937
 
 
1938
   Copies of IPR disclosures made to the IETF Secretariat and any
 
1939
   assurances of licenses to be made available, or the result of an
 
1940
   attempt made to obtain a general license or permission for the use of
 
1941
   such proprietary rights by implementers or users of this
 
1942
   specification can be obtained from the IETF on-line IPR repository at
 
1943
   http://www.ietf.org/ipr.
 
1944
 
 
1945
   The IETF invites any interested party to bring to its attention any
 
1946
   copyrights, patents or patent applications, or other proprietary
 
1947
   rights that may cover technology that may be required to implement
 
1948
   this standard.  Please address the information to the IETF at
 
1949
   ietf-ipr@ietf.org.
 
1950
 
 
1951
Acknowledgement
 
1952
 
 
1953
   Funding for the RFC Editor function is provided by the IETF
 
1954
   Administrative Support Activity (IASA).
 
1955
 
 
1956
 
 
1957
 
 
1958
 
 
1959
 
 
1960
 
 
1961
 
 
1962
Kolkman & Gieben             Informational                     [Page 35]
 
1963