idnits 2.17.1 draft-koch-dnsop-dnssec-operator-change-03.txt: Checking boilerplate required by RFC 5378 and the IETF Trust (see https://trustee.ietf.org/license-info): ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/1id-guidelines.txt: ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/checklist : ---------------------------------------------------------------------------- ** There is 1 instance of too long lines in the document, the longest one being 14 characters in excess of 72. Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the IETF Trust and authors Copyright Line does not match the current year == Line 126 has weird spacing: '...perator provi...' == Line 131 has weird spacing: '...perator is th...' == Line 134 has weird spacing: '...perator denot...' -- The document date (October 31, 2011) is 4554 days in the past. Is this intentional? Checking references for intended status: Informational ---------------------------------------------------------------------------- == Unused Reference: 'RFC1034' is defined on line 430, but no explicit reference was found in the text == Unused Reference: 'RFC1035' is defined on line 433, but no explicit reference was found in the text == Unused Reference: 'RFC4033' is defined on line 452, but no explicit reference was found in the text == Unused Reference: 'RFC4034' is defined on line 456, but no explicit reference was found in the text == Unused Reference: 'RFC5910' is defined on line 473, but no explicit reference was found in the text ** Obsolete normative reference: RFC 5735 (Obsoleted by RFC 6890) == Outdated reference: A later version (-13) exists of draft-ietf-dnsop-rfc4641bis-07 -- Obsolete informational reference (is this intentional?): RFC 4641 (Obsoleted by RFC 6781) Summary: 2 errors (**), 0 flaws (~~), 10 warnings (==), 2 comments (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 Network Working Group P. Koch 3 Internet-Draft M. Sanz 4 Intended status: Informational DENIC eG 5 Expires: May 3, 2012 October 31, 2011 7 Changing DNS Operators for DNSSEC signed Zones 8 draft-koch-dnsop-dnssec-operator-change-03 10 Abstract 12 Changing the DNS delegation for a DNS zone is quite involved if done 13 by the books, but most often handled pragmatically in today's 14 operational practice at the top level with registries and registrars. 15 This document describes a proposal for a delegation change procedure 16 that will maintain consistency and validation under DNSSEC. 18 Status of this Memo 20 This Internet-Draft is submitted in full conformance with the 21 provisions of BCP 78 and BCP 79. 23 Internet-Drafts are working documents of the Internet Engineering 24 Task Force (IETF). Note that other groups may also distribute 25 working documents as Internet-Drafts. The list of current Internet- 26 Drafts is at http://datatracker.ietf.org/drafts/current/. 28 Internet-Drafts are draft documents valid for a maximum of six months 29 and may be updated, replaced, or obsoleted by other documents at any 30 time. It is inappropriate to use Internet-Drafts as reference 31 material or to cite them other than as "work in progress." 33 This Internet-Draft will expire on May 3, 2012. 35 Copyright Notice 37 Copyright (c) 2011 IETF Trust and the persons identified as the 38 document authors. All rights reserved. 40 This document is subject to BCP 78 and the IETF Trust's Legal 41 Provisions Relating to IETF Documents 42 (http://trustee.ietf.org/license-info) in effect on the date of 43 publication of this document. Please review these documents 44 carefully, as they describe your rights and restrictions with respect 45 to this document. Code Components extracted from this document must 46 include Simplified BSD License text as described in Section 4.e of 47 the Trust Legal Provisions and are provided without warranty as 48 described in the Simplified BSD License. 50 Table of Contents 52 1. Introduction . . . . . . . . . . . . . . . . . . . . . 3 53 1.1. Purpose of this Document . . . . . . . . . . . . . . . 3 54 1.2. Terminology . . . . . . . . . . . . . . . . . . . . . 3 55 2. Requirements and Assumptions for Seamless Operator 56 Change . . . . . . . . . . . . . . . . . . . . . . . . 4 57 2.1. Requirements for Seamless Operator Change . . . . . . 4 58 2.2. Assumptions for Seamless Operator Change . . . . . . . 5 59 3. Executing the Change . . . . . . . . . . . . . . . . . 7 60 3.1. Changing DNS operator only . . . . . . . . . . . . . . 7 61 3.2. Changing DNS operator and registrar . . . . . . . . . 9 62 3.3. Losing operator not participating . . . . . . . . . . 9 63 4. Security Considerations . . . . . . . . . . . . . . . 10 64 5. IANA Considerations . . . . . . . . . . . . . . . . . 10 65 6. Acknowledgements . . . . . . . . . . . . . . . . . . . 10 66 7. References . . . . . . . . . . . . . . . . . . . . . . 10 67 7.1. Normative References . . . . . . . . . . . . . . . . . 10 68 7.2. Informative References . . . . . . . . . . . . . . . . 11 69 Appendix A. Document Revision History . . . . . . . . . . . . . . 11 70 A.1. Changes between -02 and -03 . . . . . . . . . . . . . 11 71 A.2. Changes between -01 and -02 . . . . . . . . . . . . . 12 72 A.3. Changes between -00 and -01 . . . . . . . . . . . . . 12 73 Authors' Addresses . . . . . . . . . . . . . . . . . . 12 75 1. Introduction 77 When the NS RRSet in a DNS delegation is to be changed from one to a 78 disjoint other, the conservative approach has been to add the new 79 servers as (stealth) secondary servers, then add them to the NS 80 RRSet, change the primary master (that is, change the AXFR/IXFR 81 source for all the secondary servers), remove the old name servers' 82 names from the NS RRSet and finally cease service on those former 83 name servers. This would involve two changes to the zone file for 84 the apex NS RRSet and in turn two interactions with the parent zone 85 (the registry) for the delegation NS RRSet. 87 Operational practice deviates from this in many cases, especially 88 where there is a combined role of the registrar as registrar, DNS 89 operator and web hoster. Often the new infrastructure is set up 90 independent of and in parallel to the old one and there is only one 91 delegation change. Resolvers will access either version of the DNS 92 zone and the inconsistency in DNS data and even at the application 93 layer will be tolerated as long as the end user gets to see any 94 result at all. 96 DNSSEC is less tolerant to this inconsistency, and the challenge is 97 that access to and validation of DNS data will involve multiple 98 steps. The resolver might access DNS data through one (say, the old) 99 name server infrastructure and DNS key material (the apex DNSKEY 100 RRSet) through the other. A hard switch would increase the 101 likelyhood of a validation failure, should the signature over some 102 RRSet not match any key in the DNSKEY RRSet. 104 1.1. Purpose of this Document 106 This document attempts to list requirements for a seamless change of 107 DNS operators in a registry/registrar environment. It then suggests 108 a procedure that should work in an automated environment even for 109 large numbers of DNS operator changes. It is meant as a supplement 110 or contribution to the updated version of [RFC4641], as currently 111 expressed in [I-D.ietf-dnsop-rfc4641bis], section 4.3.5. 113 1.2. Terminology 115 The change of DNS infrastructure involves multiple parties. We are 116 using the following terms throughout the document. 118 registrar The entity that can change entries in a DNS registry 119 database, usually, but not restricted to, by means of a realtime 120 provisioning protocol like EPP [RFC5730]. NB: the procedure 121 described in this document does not require a strict registry- 122 registrar-registrant separation. Where the registrant can 123 directly interact with the registry they are considered filling 124 the registrar role. 126 DNS operator provides the DNS infrastructure for a given DNS zone 127 (delegated domain). This party may or may not be identical to the 128 registrant or the registrar. The details of provisioning the DNS 129 data into the DNS zone are beyond the scope of this document. 131 losing DNS operator is the party that controls zone content and DNS 132 infrastructure at the beginning of a DNS operator change. 134 gaining DNS operator denotes the party that will control zone 135 content and DNS infrastructure after the successful DNS operator 136 change. 138 Domain names and IP addresses herein are for explanatory purposes 139 only and should not be expected to lead to useful information in real 140 life [RFC2606],[RFC5735]). 142 2. Requirements and Assumptions for Seamless Operator Change 144 Regardless of the the particular registry provisioning protocol 145 (e.g., EPP, [RFC5730], [RFC5731]) DNS registries usually provide for 146 a method to transfer a domain name between different registrars. 147 However, from this angle there is no separate role for the DNS 148 operator, the entity that is responsible for the DNS infrastructure 149 and/or the content of the DNS zone. This entity may be identical to 150 the registrar, the registrant, or neither. From the DNSSEC 151 perspective it is important to consider the entity controlling the 152 ZSK and KSK in any transfer that involves changing the NS RRSet to a 153 disjoint set (as opposed to simple additions to or removals from the 154 NS RRSet). 156 The change of a registrar is of limited effect from the DNSSEC 157 perspective. The discussion of the ability of the gaining registrar 158 to accept DNSSEC information within a domain object is beyond the 159 scope of this document. The focus is kept on the change of the DNS 160 operator. There are two cases: ideally, the losing operator will be 161 able to incorporate data generated by the gaining operator into their 162 version of the DNS zone. However, the proposed solution should also 163 be able to cover the case where this cooperation cannot be relied 164 upon. 166 2.1. Requirements for Seamless Operator Change 168 This is a preliminary list of requirements for the operator change: 170 no validation failures During the operator change, as in normal 171 operations, DNSSEC validation failures, resulting from unavailable 172 or outdated key or signature material, must be avoided. 174 validation failures worse than insecure Where there is the choice 175 between DNSSEC validation failures and an insecure state, the 176 latter is to be preferred, although its extent still ought to be 177 kept to a necessary minimum. 179 no private keys Private cryptographic keys will not be exchanged 180 between the losing and the gaining operator. Scenarios in which 181 this would be feasible would not pose the challenges addressed in 182 this document. 184 no use of foreign RRSIG information The process of signing a zone is 185 usually done in one of three ways: The zone is signed completely 186 as a file, then loaded into a name server, the signer is a "bump 187 in the wire" solution or the name server combines signing and 188 serving on the primary master. Adding foreign signatures into a 189 zone is not easily achieved in any of these setups, so it ought to 190 be avoided. It also helps contain the effect of changes to an 191 RRSet locally, as no signatures have to be generated remotely with 192 subsequent re-import. 194 little interaction To ease automation the number of interactions 195 between registry, registrar or registrars and operators should be 196 minimized. 198 little overhead for losing operator Whenever interaction or action 199 cannot be avoided, the losing operator should be involved as 200 little as possible to avoid overhead for the leaving customer. In 201 turn, this suggests the gaining operator should be in control of 202 the process. 204 2.2. Assumptions for Seamless Operator Change 206 This is a preliminary list of assumptions for the operator change: 208 no direct communication channel between operators We do not assume 209 the existence of a direct, confidential, authenticated 210 communication channel between the losing and the gaining operator. 211 On an abstract level, the registrant could be viewed as an 212 indirect channel, but involving the registrant is not necessarily 213 easily automated. 215 secure communication channel between operator, registrar, and 216 registry We do, though, assume the existence of a direct, 217 confidential, authenticated communication channel between an 218 operator and their registrar as well as between the registrar and 219 the registry. 221 incorporation of foreign DNSKEY RRs To achieve a symmetric 222 validation chain along the DS/KSK/ZSK of both the losing and the 223 gaining DNS operator it is assumed that either operator can, 224 technically, incorporate DNSKEY RRs into their apex DNSKEY RRSet. 225 This includes the ability to subsequently properly sign the DNSKEY 226 RRSet. 228 ability to store and retrieve DNSKEY RRs We assume that registrars 229 are able to store in and retrieve from the registry DNSKEY RRs or 230 equivalent information. This can be achieved by the registry 231 using DNSKEY RRs as key material (as opposed to or in addition to 232 DS RRs) or by the ability to insert DNSKEY data in free text or 233 remarks fields within or associated with the domain object. 235 no algorithm rollover Current reading is that an algorithm rollover 236 requires a full validation with all algorithms involved, whereas a 237 key rollover will work whenever data can be validated using either 238 key ([RFC4035], section 2.2). Therefore, it is assumed that both 239 operators utilize the same DNSSEC key algorithm during the 240 transfer. This does neither preclude the use of different key 241 sizes nor the change of key algorithms after the DNS operator 242 change. 244 ZSK/KSK separation This document assumes a key separation between 245 Zone Signing Key (ZSK) and Key Signing Key (KSK) as per [RFC4641]. 246 Where a zone maintainer decides to use only a single key 247 [I-D.ietf-dnsop-rfc4641bis] the process layout will remain the 248 same, details of differences to be explored in a future update of 249 this draft. 251 no ZSK/KSK rollover in progress Since no private keys will change 252 hands, the operator change implies a key rollover from the losing 253 to the gaining operator. A progressing rollover of the ZSK or KSK 254 at the losing DNS operator would add complexity due to more 255 possible validation paths. While both a rollover and a DNS 256 operator change can be combined, we will, for the sake of 257 simplicty, assume they will not. How to implement this business 258 constraint is beyond the scope of this document. Since the DNS 259 zone at the gaining DNS operator will be set up from scratch, it 260 is assumed there is no rollover in progress, either. 262 resolver does not indefinitely prolongate retention of cached data 263 Some resolvers are known to refresh the TTL of an NS RRSet of a 264 zone upon every authoritative response they receive that carries 265 this NS RRSet in the authority section. This is partly in the 266 spirit of [RFC2181] in that this source (the authoritative child) 267 is more credible than the NS RRSet in a referral, but independent 268 of DNSSEC this behaviour leads to an undesired side effect. These 269 'sticky' resolvers will never learn of a redelegation if that 270 happens by switching between two non-overlapping sets of name 271 servers, which is current practice in many environments. 272 Therefore the process for operator change does not have to take 273 this behaviour into account but may assume benign resolver 274 operation. 276 3. Executing the Change 278 The challenge to face is that during the DNS operator change 279 resolvers may see an NS RRSet pointing to either the losing or the 280 gaining operator's name servers. They may also have cached DNS data 281 and corresponding signatures from either source and this may in 282 particular mean that the apex DNSKEY RRSet and its signature or 283 signatures have a different origin than some other to-be-validated 284 RRSet. 286 To prevent validation failures, resolvers need, through careful 287 timing, be given the chance to acquire the necessary DNSKEY data that 288 allows them to validate signed DNS data from either source. 289 Therefore the DNSKEY RRSets originating from either infrastructure or 290 a limited time window need to have a non zero intersection set that 291 will be covered by both the old an the new trust anchor (or KSK). 293 Changing the DNS operator will be a three step process involving both 294 the gaining and the losing DNS operator. For the sake of simplicity, 295 the first case will not cover a registrar change. 297 3.1. Changing DNS operator only 299 At the beginning, there is a delegation to the losing operator's name 300 servers and a DS RR pointing to a KSK controlled by that losing 301 registrar in the parent zone. As a first step, the gaining operator 302 will obtain through the DNS the ZSK(!) from the losing operator's 303 version of the zone, validate it using the publicly available DNS 304 information, add it to its apex DNSKEY RRSet and re-sign that RRSet. 305 At this point, the new infrastructure will not yet be queried, but it 306 would provide a validation path through the new KSK for signatures 307 generated with the old ZSK. To achieve symmetry, the new ZSK needs 308 to be incorporated into the old apex DNSKEY RRSet. Since a (trusted, 309 validatable) path to that information is not available in the DNS, 310 yet and no direct communication path between the losing and the 311 gaining operator is assumed, the registry will act as a dropbox. 312 Again, for the sake of simplicity, we assume that the registry 313 accepts key material in the form DNSKEY rather than DS resource 314 records. 316 The first change to the registration data, to be initiated by the 317 gaining operator will add the new KSK and the new ZSK to the domain 318 object. This way, the parent zone can publish two (or three, taking 319 into account the ZSK) DS RRs, one for either KSK. At the same time, 320 the registry can make available the new ZSK to the losing operator. 321 No change is initiated yet to the parent zone NS RRSet. 323 Upon appearance of the gaining operator's ZSK in the registry 324 database the losing operator is supposed to copy this ZSK into its 325 version of the apex DNSKEY RRSet and to re-sign the DNSKEY RRSet with 326 the old KSK. 328 Once that has happened and the TTL value of the (previous, sans new 329 ZSK) DNSKEY RRSet has passed, all resolver caches will either have no 330 DNSKEY RRSet for this zone or they will have acquired one that has a 331 signature made by the old KSK over both the old and the new ZSK. The 332 second precondition for the next step is that no DS RRSets exist 333 without reference to the new KSK that was inserted in the previous, 334 first step. This will be the case after the new DS RRSet will have 335 been visible in the DNS and the TTL of the DS RRSet (actually, that 336 of the previous instance of that DS RRSet) will have expired. Both 337 expiration intervals may and likely will overlap, but may start at 338 different times and are otherwise independent. The termination of 339 the later of the two will determine the earliest point in time for 340 progress. 342 The gaining operator can now initiate the second step, changing the 343 NS RRSet in the parent to the new name server infrastructure. At the 344 same time, the ZSK can be removed from the domain object since the 345 registry has fulfilled its role as a ZSK dropbox. Note that a hard 346 delegation change rather than a multi-step phase-in is part of the 347 design to reflect today's operational practice. 349 After this second step, the parent zone will contain an NS RRSet 350 delegating to the gaining operator's name servers as well as two DS 351 records, one referring to the old KSK, the other referring to the new 352 KSK. Due to the two DS RRs, either DNSKEY RRSet can be validated. 353 Either path will provide validation for both the old and the new ZSK. 354 That enables RRSIG validation on all DNS data independent of its 355 origin at the losing or gaining operator's version of the zone. 357 The final third step can be started after all instances of DNSKEY 358 RRSets containing the old KSK have expired. This also requires that 359 no queries are directed to the name servers of the losing operator. 360 The latter can be assumed after the TTL of the (old) NS RRSet at the 361 parent has passed (no delegations to old infrastructure) and 362 subsequently the TTL of the NS RRSet at the losing operator's zone 363 has also passed (no refresh or overwrite of referral data by 364 authoritative data from the child zone). Since a DNSKEY RRSet might 365 have been sent as part of a DNS response just before this expiry, 366 this DNSKEY RRSet's (originating from the losing operator, containing 367 old KSK and new ZSK) TTL must pass, too. In total, counting from the 368 appearance of the new NS RRSet in the parent zone, the sum of the TTL 369 of the NS RRSet at the parent, the TTL of the NS RRSet at the child 370 (losing operator) and the TTL of the DNSKEY RR at the losing operator 371 determines the earliest point in time for proceeding with the next 372 step. 374 The third step will be removing the old KSK from the domain object as 375 part of the KSK rollover. The parent zone will then publish a single 376 DS RR pointing to the new KSK only. As soon as the new DS RRSet will 377 be the only one present in caches, the losing operator may cease to 378 serve the zone. The gaining operator, in turn, can remove the old 379 ZSK from its apex DNSKEY RRSet, not without re-signing this RRSet 380 afterwards. 382 3.2. Changing DNS operator and registrar 384 Should the DNS operator change involve a registrar change the 385 procedure described in the previous paragraph can be followed with 386 one minor change. The first step, adding the new KSK and the new 387 ZSK, will be combined with a transfer initiated by the gaining 388 registrar. 390 3.3. Losing operator not participating 392 The procedure described in the previous sections depends upon the 393 losing DNS operator's participation to incorporate the new ZSK into 394 their DNSKEY RRSet. Should the losing operator not participate, 395 reasons for this being beyond the scope of this document, the gaining 396 operator can notice this after waiting a reasonable amount of time 397 after executing the first step. 399 The only known working way to avoid validation failures in this case 400 is to declare the zone insecure by removing the DS RR from the parent 401 zone. [details TBD] 403 4. Security Considerations 405 Since the procedure described in this document is incompatible with a 406 DNSKEY algorithm rollover during the operator change, it may 407 encourage the use of the same algorithm across all operators 408 involved. This could essentially limit the algorithm agility from an 409 operational perspective. Concerted action might be advised should 410 that preferred algorithm no longer be appropriate. 412 Preferring insecure state over validation failure is a judgement that 413 should be revisited. 415 [This section needs more work] 417 5. IANA Considerations 419 This document does not request any IANA action. 421 6. Acknowledgements 423 The review and comments by James Galvin and Paul Wouters are much 424 appreciated. 426 7. References 428 7.1. Normative References 430 [RFC1034] Mockapetris, P., "Domain names - concepts and facilities", 431 STD 13, RFC 1034, November 1987. 433 [RFC1035] Mockapetris, P., "Domain names - implementation and 434 specification", STD 13, RFC 1035, November 1987. 436 [RFC2181] Elz, R. and R. Bush, "Clarifications to the DNS 437 Specification", RFC 2181, July 1997. 439 [RFC2606] Eastlake, D. and A. Panitz, "Reserved Top Level DNS 440 Names", BCP 32, RFC 2606, June 1999. 442 [RFC5735] Cotton, M. and L. Vegoda, "Special Use IPv4 Addresses", 443 BCP 153, RFC 5735, January 2010. 445 7.2. Informative References 447 [I-D.ietf-dnsop-rfc4641bis] 448 Kolkman, O., "DNSSEC Operational Practices, Version 2", 449 draft-ietf-dnsop-rfc4641bis-07 (work in progress), 450 July 2011. 452 [RFC4033] Arends, R., Austein, R., Larson, M., Massey, D., and S. 453 Rose, "DNS Security Introduction and Requirements", 454 RFC 4033, March 2005. 456 [RFC4034] Arends, R., Austein, R., Larson, M., Massey, D., and S. 457 Rose, "Resource Records for the DNS Security Extensions", 458 RFC 4034, March 2005. 460 [RFC4035] Arends, R., Austein, R., Larson, M., Massey, D., and S. 461 Rose, "Protocol Modifications for the DNS Security 462 Extensions", RFC 4035, March 2005. 464 [RFC4641] Kolkman, O. and R. Gieben, "DNSSEC Operational Practices", 465 RFC 4641, September 2006. 467 [RFC5730] Hollenbeck, S., "Extensible Provisioning Protocol (EPP)", 468 STD 69, RFC 5730, August 2009. 470 [RFC5731] Hollenbeck, S., "Extensible Provisioning Protocol (EPP) 471 Domain Name Mapping", STD 69, RFC 5731, August 2009. 473 [RFC5910] Gould, J. and S. Hollenbeck, "Domain Name System (DNS) 474 Security Extensions Mapping for the Extensible 475 Provisioning Protocol (EPP)", RFC 5910, May 2010. 477 Appendix A. Document Revision History 479 This section is to be removed should the draft be published. 480 $Id: draft-koch-dnsop-dnssec-operator-change.xml,v 1.6 2011/10/31 18:11:16 pk Exp $ 482 A.1. Changes between -02 and -03 484 Removed redundant requirement. 486 Reclassified 'sticky' resolver issue to assumption. 488 Explictly assume secure path between registrar and registry. 490 Clarified rollover in progress. 492 A.2. Changes between -01 and -02 494 Split requirements and assumptions. 496 Declared sticky resolvers a non-issue. 498 Increased level of detail of discussion of TTL expiration between 499 updates. 501 Added early security considerations. 503 A.3. Changes between -00 and -01 505 Expanded on the assumptions and requirements. 507 Added initial version of the process description. 509 Authors' Addresses 511 Peter Koch 512 DENIC eG 513 Kaiserstrasse 75-77 514 Frankfurt 60329 515 DE 517 Phone: +49 69 27235 0 518 Email: pk@DENIC.DE 520 Marcos Sanz 521 DENIC eG 522 Kaiserstrasse 75-77 523 Frankfurt 60329 524 DE 526 Phone: +49 69 27235 0 527 Email: sanz@DENIC.DE