idnits 2.17.00 (12 Aug 2021) /tmp/idnits8445/draft-ietf-dnsop-kskroll-sentinel-09.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 : ---------------------------------------------------------------------------- No issues found here. Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the IETF Trust and authors Copyright Line does not match the current year -- The document date (March 26, 2018) is 1517 days in the past. Is this intentional? Checking references for intended status: Proposed Standard ---------------------------------------------------------------------------- (See RFCs 3967 and 4897 for information about using normative references to lower-maturity documents in RFCs) No issues found here. Summary: 0 errors (**), 0 flaws (~~), 1 warning (==), 1 comment (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 DNSOP G. Huston 3 Internet-Draft J. Damas 4 Intended status: Standards Track APNIC 5 Expires: September 27, 2018 W. Kumari 6 Google 7 March 26, 2018 9 A Root Key Trust Anchor Sentinel for DNSSEC 10 draft-ietf-dnsop-kskroll-sentinel-09 12 Abstract 14 The DNS Security Extensions (DNSSEC) were developed to provide origin 15 authentication and integrity protection for DNS data by using digital 16 signatures. These digital signatures can be verified by building a 17 chain of trust starting from a trust anchor and proceeding down to a 18 particular node in the DNS. This document specifies a mechanism that 19 will allow an end user and third parties to determine the trusted key 20 state for the root key of the resolvers that handle that user's DNS 21 queries. Note that this method is only applicable for determing 22 which keys are in the trust store for the root key. 24 There is an example / toy implementation of this at http://www.ksk- 25 test.net . 27 [ This document is being collaborated on in Github at: 28 https://github.com/APNIC-Labs/draft-kskroll-sentinel. The most 29 recent version of the document, open issues, etc should all be 30 available here. The authors (gratefully) accept pull requests. Text 31 in square brackets will be removed before publication. ] 33 [ NOTE: This version uses the labels "root-key-sentinel-is-ta-", and 34 "root-key-sentinel-not-ta-".; older versions of this document used 35 "kskroll-sentinel-is-ta-", "kskroll-sentinel-not-ta-", and before that, "_is-ta-", "_not-ta-". 37 Also note that the format of the tag-index is now zero-filled 38 decimal. Apolgies to those who have began implmenting.] 40 Status of This Memo 42 This Internet-Draft is submitted in full conformance with the 43 provisions of BCP 78 and BCP 79. 45 Internet-Drafts are working documents of the Internet Engineering 46 Task Force (IETF). Note that other groups may also distribute 47 working documents as Internet-Drafts. The list of current Internet- 48 Drafts is at http://datatracker.ietf.org/drafts/current/. 50 Internet-Drafts are draft documents valid for a maximum of six months 51 and may be updated, replaced, or obsoleted by other documents at any 52 time. It is inappropriate to use Internet-Drafts as reference 53 material or to cite them other than as "work in progress." 55 This Internet-Draft will expire on September 27, 2018. 57 Copyright Notice 59 Copyright (c) 2018 IETF Trust and the persons identified as the 60 document authors. All rights reserved. 62 This document is subject to BCP 78 and the IETF Trust's Legal 63 Provisions Relating to IETF Documents 64 (http://trustee.ietf.org/license-info) in effect on the date of 65 publication of this document. Please review these documents 66 carefully, as they describe your rights and restrictions with respect 67 to this document. Code Components extracted from this document must 68 include Simplified BSD License text as described in Section 4.e of 69 the Trust Legal Provisions and are provided without warranty as 70 described in the Simplified BSD License. 72 Table of Contents 74 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 75 1.1. Terminology . . . . . . . . . . . . . . . . . . . . . . . 4 76 2. Protocol Walkthrough Example . . . . . . . . . . . . . . . . 4 77 3. Sentinel Mechanism in Resolvers . . . . . . . . . . . . . . . 7 78 3.1. Preconditions . . . . . . . . . . . . . . . . . . . . . . 7 79 3.2. Special processing . . . . . . . . . . . . . . . . . . . 8 80 4. Processing Sentinel Results . . . . . . . . . . . . . . . . . 8 81 5. Sentinel Test Result Considerations . . . . . . . . . . . . . 10 82 6. Security Considerations . . . . . . . . . . . . . . . . . . . 11 83 7. Privacy Considerations . . . . . . . . . . . . . . . . . . . 12 84 8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 12 85 9. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 12 86 10. Change Log . . . . . . . . . . . . . . . . . . . . . . . . . 12 87 11. References . . . . . . . . . . . . . . . . . . . . . . . . . 14 88 11.1. Normative References . . . . . . . . . . . . . . . . . . 15 89 11.2. Informative References . . . . . . . . . . . . . . . . . 15 90 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 15 92 1. Introduction 94 The DNS Security Extensions (DNSSEC) [RFC4033], [RFC4034] and 95 [RFC4035] were developed to provide origin authentication and 96 integrity protection for DNS data by using digital signatures. 97 DNSSEC uses Key Tags to efficiently match signatures to the keys from 98 which they are generated. The Key Tag is a 16-bit value computed 99 from the RDATA portion of a DNSKEY RR using a formula similar to a 100 ones-complement checksum. RRSIG RRs contain a Key Tag field whose 101 value is equal to the Key Tag of the DNSKEY RR that validates the 102 signature. 104 This document specifies how validating resolvers can respond to 105 certain queries in a manner that allows a querier to deduce whether a 106 particular key for the root has been loaded into that resolver's 107 trusted key store. In particular, this response mechanism can be 108 used to determine whether a certain root zone KSK is ready to be used 109 as a trusted key within the context of a key roll by this resolver. 111 There are two primary use cases for this mechanism: 113 o Users want to know whether the resolvers they use are ready for an 114 upcoming root KSK rollover 116 o Researchers want to perform Internet-wide studies about the 117 percentage of users who will be ready for an upcoming root KSK 118 rollover 120 The mechanism described in this document meets both of these use 121 cases. This new mechanism is OPTIONAL to implement and use, although 122 for reasons of supporting broad-based measurement techniques, it is 123 strongly preferred that configurations of DNSSEC-validating resolvers 124 enabled this mechanism by default, allowing for local configuration 125 directives to disable this mechanism if desired. 127 The sentinel test described in this document determines whether a 128 user's browser or operating system looking up the special names that 129 are used in this protocol would be able to validate using the root 130 KSK indicated by the special names. The protocol uses the DNS 131 SERVFAIL response code (RCODE 2) for this purpose because that is the 132 response code that is returned by resolvers when DNSSEC validation 133 fails. If a browser or operating system has multiple resolvers 134 configured, and those resolvers have different properties (for 135 example, one performs DNSSEC validation and one does not), the 136 sentinel mechanism might search among the different resolvers, or 137 might not, depending on how the browser or operating system is 138 configured. 140 Note that the sentinel mechanism described here measures a very 141 different (and likely more useful) metric than [RFC8145]. RFC 8145 142 relies on resolvers reporting the list of keys that they have to root 143 servers. That reflects on how many resolvers will be impacted by a 144 KSK roll, but not what the user impact of the KSK roll will be. 146 1.1. Terminology 148 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 149 "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this 150 document are to be interpreted as described in RFC 2119. 152 2. Protocol Walkthrough Example 154 [Ed note: This is currently towards the front of the document; we 155 will make it an appendix at publication time, but until then it is 156 worth having up front, as it makes the rest of the document much 157 easier to understand ] 159 This section provides a non-normative example of how the sentinel 160 mechanism could be used, and what each participant does. It is 161 provided in a conversational tone to be easier to follow. 163 Alice is in charge of the DNS root KSK (Key Signing Key), and would 164 like to roll / replace the key with a new one. She publishes the new 165 KSK, but would like to be able to predict / measure what the impact 166 will be before removing/revoking the old key. The current KSK has a 167 Key Tag of 11112, the new KSK has a Key Tag of 02323. Users want to 168 verify that their resolver will not break after Alice rolls the root 169 KSK key (that is, starts signing with just the KSK whose Key Tag is 170 02323). 172 Bob, Charlie, Dave, Ed are all users. They use the DNS recursive 173 resolvers supplied by their ISPs. They would like to confirm that 174 their ISPs have picked up the new KSK. Bob's ISP does not perform 175 validation. Charlie's ISP does validate, but the resolvers have not 176 yet been upgraded to support this mechanism. Dave and Ed's resolvers 177 have been upgraded to support this mechanism; Dave's resolver has the 178 new KSK, Ed's resolver hasn't managed to install the 02323 KSK in its 179 trust store yet. 181 Geoff is a researcher, and would like to both provide a means for 182 Bob, Charlie, Dave and Ed to be able to perform tests, and also would 183 like to be able to perform Internet-wide measurements of what the 184 impact will be (and report this back to Alice). 186 Geoff sets an authoritative DNS server for example.com, and also a 187 webserver (www.example.com). He adds three address records to 188 example.com: 190 invalid.example.com. IN AAAA 2001:db8::1 192 root-key-sentinel-is-ta-02323.example.com. IN AAAA 2001:db8::1 193 root-key-sentinel-not-ta-02323.example.com. IN AAAA 2001:db8::1 195 Note that the use of "example.com" names and the addresses here are 196 examples. In a real deployment, the domain names need to be under 197 control of the researcher, and the addresses must be real, reachable 198 addresses. 200 Geoff then DNSSEC signs the example.com zone, and intentionally makes 201 the invalid.example.com record invalid/bogus (for example, by editing 202 the signed zone and entering garbage for the signature). Geoff also 203 configures his webserver to listen on 2001:db8::1 and serve a 204 resource (for example, a 1x1 GIF, 1x1.gif) for all of these names. 205 The webserver also serves a webpage (www.example.com) which contains 206 links to these 3 resources (http://invalid.example.com/1x1.gif, 207 http://root-key-sentinel-is-ta-02323.example.com/1x1.gif, 208 http://root-key-sentinel-not-ta-02323.example.com/1x1.gif). 210 Geoff then asks Bob, Charlie, Dave and Ed to browse to 211 www.example.com. Using the methods described in this document, the 212 users can figure out what their fate will be when the 11112 KSK is 213 removed. 215 Bob is not using a validating resolver. This means that he will be 216 able to resolve invalid.example.com (and fetch the 1x1 GIF) - this 217 tells him that the KSK roll does not affect him, and so he will be 218 OK. 220 Charlie's resolvers are validating, but they have not been upgraded 221 to support the KSK sentinel mechanism. Charlie will not be able to 222 fetch the http://invalid.example.com/1x1.gif resource (the 223 invalid.example.com record is bogus, and none of his resolvers will 224 resolve it). He is able to fetch both of the other resources - from 225 this he knows (see the logic below) that he is using legacy, 226 validating resolvers. The KSK sentinel method cannot provided him 227 with a definitive answer to the question of what root trust anchors 228 this resolver is using. 230 Dave's resolvers implement the sentinel method, and have picked up 231 the new KSK. For the same reason as Charlie, he cannot fetch the 232 "invalid" resource. His resolver resolves the root-key-sentinel-is- 233 ta-02323.example.com name normally (it contacts the example.com 234 authoritative servers, etc); as it supports the sentinel mechanism, 235 just before Dave's recursive server send the reply to Dave's stub, it 236 performs the KSK Sentinel check (see below). The QNAME starts with 237 "root-key-sentinel-is-ta-", and the recursive resolver does indeed 238 have a key with the Key Tag of 02323 in its root trust store. This 239 means that that this part of the KSK Sentinel check passes (it is 240 true that Key Tag 02323 is in the trust anchor store), and the 241 recursive resolver replies normally (with the answer provided by the 242 authoritative server). Dave's recursive resolver then resolves the 243 root-key-sentinel-not-ta-02323.example.com name. Once again, it 244 performs the normal resolution process, but because it implements KSK 245 Sentinel (and the QNAME starts with "root-key-sentinel-not-ta-"), 246 just before sending the reply, it performs the KSK Sentinel check. 247 As it has 02323 in it's trust anchor store, the answer to "is this 248 *not* a trust anchor" is false, and so the recursive resolver does 249 not reply with the answer from the authoritative server - instead, it 250 replies with a SERVFAIL (note that replying with SERVFAIL instead of 251 the original answer is the only mechanism that KSK Sentinel uses). 252 This means that Dave cannot fetch "invalid", he can fetch "root-key- 253 sentinel-is-ta-02323", but he cannot fetch "root-key-sentinel-not-ta- 254 02323". From this, Dave knows that he is behind an upgraded, 255 validating resolver, which has successfully installed the new, 02323 256 KSK. 258 Just like Charlie and Dave, Ed cannot fetch the "invalid" record. 259 This tells him that his resolvers are validating. When his 260 (upgraded) resolver performs the KSK Sentinel check for "root-key- 261 sentinel-is-ta-02323", it does *not* have the (new, 02323) KSK in 262 it's trust anchor store. This means check fails, and Ed's recursive 263 resolver converts the (valid) answer into a SERVFAIL error response. 264 It performs the same check for root-key-sentinel-not-ta- 265 02323.example.com; as it does not have the 02323 KSK, it is true that 266 this is not a trust anchor for it, and so it replies normally. This 267 means that Ed cannot fetch the "invalid" resource, he also cannot 268 fetch the "root-key-sentinel-is-ta-02323" resource, but he can fetch 269 the "root-key-sentinel-not-ta-02323" resource. This tells Ed that 270 his resolvers have not installed the new KSK. 272 Geoff would like to do a large scale test and provide the information 273 back to Alice. He uses some mechanism such as causing users to go to 274 a web page to cause a large number of users to attempt to resolve the 275 three resources, and then analyzes the results of the tests to 276 determine what percentage of users will be affected by the KSK 277 rollover event. 279 The above description is a simplified example - it is not anticipated 280 that Bob, Charlie, Dave and Ed will actually look for the absence or 281 presence of web resources; instead, the webpage that they load would 282 likely contain JavaScript (or similar) which displays the result of 283 the tests, sends the results to Geoff, or both. This sentinel 284 mechanism does not rely on the web: it can equally be used by trying 285 to resolve the names (for example, using the common "dig" command) 286 and checking which result in a SERVFAIL. 288 3. Sentinel Mechanism in Resolvers 290 DNSSEC-Validating resolvers that implement this mechanism MUST 291 perform validation of responses in accordance with the DNSSEC 292 response validation specification [RFC4035]. 294 This sentinel mechanism makes use of two special labels: 296 o root-key-sentinel-is-ta- 298 o root-key-sentinel-not-ta- 300 Note that the is specified in the DNS label as unsigned 301 decimal integer (as described in [RFC4034], section 5.3), but zero- 302 padded to five digits (for example, a Key Tag 42 would be represented 303 in the label as 00042). 305 These labels trigger special processing in the resolver when 306 responses from authoritative servers are received. Labels containing 307 "root-key-sentinel-is-ta-" is used to answer the question 308 "Is this the Key Tag a trust anchor which the validating DNS resolver 309 is currently trusting?" Labels containing "root-key-sentinel-not-ta- 310 " is used to answer the question "Is this the Key Tag *not* 311 a trust anchor which the validating DNS resolver is currently 312 trusting?" 314 3.1. Preconditions 316 All of the following conditions must be met to trigger special 317 processing inside resolver code: 319 o The DNS response is DNSSEC validated, regardless of whether 320 DNSSSEC validation was requested, and result of validation is 321 "Secure" 323 o The QTYPE is either A or AAAA (Query Type value 1 or 28) 325 o The OPCODE is QUERY 327 o The leftmost label of the original QNAME (the name sent in the 328 Question Section in the orignal query) is either "root-key- 329 sentinel-is-ta-" or "root-key-sentinel-not-ta-" 331 If any one of the preconditions is not met, the resolver MUST NOT 332 alter the DNS response based on the mechanism in this document. 334 3.2. Special processing 336 Responses which fullfill all of the preconditions in Section 3.1 337 require special processing, depending on leftmost label in the QNAME. 339 First, the resolver determines if the numerical value of is 340 equal to any of the Key Tags of an active root zone KSK which is 341 currently trusted by the local resolver and is stored in its store of 342 trusted keys. An active key is one which could currently be used for 343 validation (that is, a key that is not in either the AddPend or 344 Revoked state as described in [RFC5011]). 346 Second, the resolver alters the response being sent to the original 347 query based on both the left-most label and the presence of a key 348 with given Key Tag in the trust anchor store. Two labels and two 349 possible states of the keytag generate four possible combinations 350 summarized in the table: 352 Label | Key Tag is trusted | Key Tag is not trusted 353 ------------------------------------------------------------------ 354 is-ta | return original answer | return SERVFAIL 355 not-ta | return SERVFAIL | return original answer 357 Instruction "return SERVFAIL" means that the resolver MUST set 358 RCODE=SERVFAIL (value 2) and MUST empty the ANSWER section of the DNS 359 response, ignoring all other documents which specify content of the 360 ANSWER section. 362 4. Processing Sentinel Results 364 This proposed test that uses the sentinel detection mechanism 365 described in this document is based on the use of three DNS names 366 that have three distinct DNS resolution behaviours. The test is 367 intended to allow a user or a third party to determine the state of 368 their DNS resolution system, and, in particular, whether or not they 369 are using one or more validating DNS resolvers that use a particular 370 trust anchor for the root zone. 372 The critical aspect of the DNS names used in this mechanism is that 373 they contain the specified label for either the positive and negative 374 test as the left-most label in the query name. 376 The sentinel detection process uses a test with three query names: 378 o A query name containing the left-most label "root-key-sentinel-is- 379 ta-". This corresponds to a a validly-signed RRset in 380 the zone, so that responses associated with queried names in this 381 zone can be authenticated by a DNSSEC-validating resolver. Any 382 validly-signed DNS zone can be used for this test. 384 o A query name containing the left-most label "root-key-sentinel- 385 not-ta-". This is also a validly-signed name. Any 386 validly-signed DNS zone can be used for this test. 388 o A query name that is signed with a DNSSEC signature that cannot be 389 validated (such as if the corresponding RRset is not signed with a 390 valid RRSIG record). 392 The responses received from queries to resolve each of these names 393 would allow us to infer a trust key state of the resolution 394 environment. The techniques describes in this document rely on 395 (DNSSEC validating) resolvers responding with SERVFAIL to valid 396 answers. Note that a slew of other issues can also cause SERVFAIL 397 responses, and so the sentinel processing may sometimes result in 398 incorrect conclusions. 400 To describe this process of classification, we can classify resolvers 401 into four distinct behavior types, for which we will use the labels: 402 "Vnew", "Vold", "Vleg", and "nonV". These labels correspond to 403 resolver behaviour types as follows: 405 Vnew: A DNSSEC-Validating resolver that is configured to implement 406 this mechanism has loaded the nominated key into its local trusted 407 key store will respond with an A or AAAA RRset response for "root- 408 key-sentinel-is-ta" queries, SERVFAIL for "root-key-sentinel-not- 409 ta" queries and SERVFAIL for the invalidly signed name queries. 411 Vold: A DNSSEC-Validating resolver that is configured to implement 412 this mechanism that has not loaded the nominated key into its 413 local trusted key store will respond with an SERVFAIL for "root- 414 key-sentinel-is-ta" queries, an A or AAAA RRset response for 415 "root-key-sentinel-not-ta" queries and SERVFAIL for the invalidly 416 signed name queries. 418 Vleg: A DNSSEC-Validating resolver that does not implement this 419 mechanism will respond with an A or AAAA RRset response for "root- 420 key-sentinel-is-ta", an A or AAAA RRset response for "root-key- 421 sentinel-not-ta" and SERVFAIL for the invalid name. 423 nonV: A non-DNSSEC-Validating resolver will respond with an A or 424 AAAA record response for "root-key-sentinel-is-ta", an A record 425 response for "root-key-sentinel-not-ta" and an A or AAAA RRset 426 response for the invalid name. 428 Given the clear delineation amongst these three cases, if a client 429 directs these three queries to a simple resolver, the variation in 430 response to the three queries should allow the client to determine 431 the category of the resolver, and if it supports this mechanism, 432 whether or not it has a particular key in its trust anchor store. 434 Query 435 +----------+-----------+------------+ 436 | is-ta | not-ta | invalid | 437 +-------+----------+-----------+------------+ 438 | Vnew | A | SERVFAIL | SERVFAIL | 439 | Vold | SERVFAIL | A | SERVFAIL | 440 Type | Vleg | A | A | SERVFAIL | 441 | nonV | A | A | A | 442 +-------+----------+-----------+------------+ 444 A "Vnew" type says that the nominated key is trusted by the resolver 445 and has been loaded into its local trusted key stash. A "Vold" type 446 says that the nominated key is not yet trusted by the resolver in its 447 own right. A "Vleg" type does not give any information about the 448 trust anchors, and a "nonV" type indicates that the resolver does not 449 perform DNSSEC validation. 451 5. Sentinel Test Result Considerations 453 The description in the previous section describes a simple situation 454 where the test queries were being passed to a single recursive 455 resolver that directly queried authoritative name servers, including 456 the root servers. 458 There is also the common case where the end client's browser or 459 operating system is configured to use multiple resolvers. In these 460 cases, a SERVFAIL response from one resolver may cause the end client 461 to repeat the query against one of the other configured resolvers. 462 If the client's browser or operating system does not try the 463 additional resolvers, the sentinel test will effectively only be for 464 the first resolver. 466 If any of the client's resolvers are non-validating resolvers, the 467 tests will result in the client reporting that it has a non- 468 validating DNS environment ("nonV"), which is effectively the case. 470 If all of the client resolvers are DNSSEC-validating resolvers, but 471 some do not support this trusted key mechanism, then the result will 472 be indeterminate with respect to trusted key status ("Vleg"). 473 Simlarly, if all the client's resolvers support this mechanism, but 474 some have loaded the key into the trusted key stash and some have 475 not, then the result is indeterminate ("Vleg"). 477 There is also the common case of a recursive resolver using a 478 forwarder. 480 If the resolver is non-validating, and it has a single forwarder 481 clause, then the resolver will presumably mirror the capabilities of 482 the forwarder target resolver. If this non-validating resolver it 483 has multiple forwarders, then the above considerations will apply. 485 If the validating resolver has a forwarding configuration, and uses 486 the CD bit on all forwarded queries, then this resolver is acting in 487 a manner that is identical to a standalone resolver. The same 488 consideration applies if any one of the forwarder targets is a non- 489 validating resolver. Similarly, if all the forwarder targets do not 490 apply this trusted key mechanism, the same considerations apply. 492 A more complex case is where all of the following conditions all 493 hold: 495 o Both the validating resolver and the forwarder target resolver 496 support this trusted key sentinel mechanism 498 o The local resolver's queries do not have the CD bit set 500 o The trusted key state differs between the forwarding resolver and 501 the forwarder target resolver 503 In such a case, either the outcome is indeterminate validating 504 ("Vleg"), or a case of mixed signals (SERVFAIL in all three 505 responses), which is similarly an indeterminate response with respect 506 to the trusted key state. 508 Please note that SERVFAIL might be cached according to [RFC2308] 509 section 7 for up to 5 minutes and a positive answer for up to its 510 TTL. 512 6. Security Considerations 514 This document describes a mechanism to allow users and third parties 515 to determine the trust state of root zone key signing keys in the DNS 516 resolution system that they use. 518 The mechanism does not require resolvers to set otherwise 519 unauthenticated responses to be marked as authenticated, and does not 520 alter the security properties of DNSSEC with respect to the 521 interpretation of the authenticity of responses that are so marked. 523 The mechanism does not require any further significant processing of 524 DNS responses, and queries of the form described in this document do 525 not impose any additional load that could be exploited in an attack 526 over the the normal DNSSEC validation processing load. 528 7. Privacy Considerations 530 The mechansim in this document enables third parties (with either 531 good or bad intentions) to learn something about the security 532 configuration of recursive name servers. That is, someone who can 533 cause an Internet user to make specific DNS queries (e.g. via web- 534 based advertisements or javascript in web pages), can then determine 535 which trust anchors are configured in the user's resolver. 537 8. IANA Considerations 539 [Note to IANA, to be removed prior to publication: there are no IANA 540 considerations stated in this version of the document.] 542 9. Acknowledgements 544 This document has borrowed extensively from [RFC8145] for the 545 introductory text, and the authors would like to acknowledge and 546 thank the authors of that document both for some text excerpts and 547 for the more general stimulation of thoughts about monitoring the 548 progress of a roll of the KSK of the root zone of the DNS. 550 The authors would like to thank Joe Abley, Mehmet Akcin, Mark 551 Andrews, Richard Barnes, Ray Bellis, Stephane Bortzmeyer, David 552 Conrad, Ralph Dolmans, John Dickinson, Steinar Haug, Bob Harold, Wes 553 Hardaker, Paul Hoffman, Matt Larson, Jinmei Tatuya, Edward Lewis, 554 George Michaelson, Benno Overeinder, Matthew Pounsett, Andreas 555 Schulze, Mukund Sivaraman, Petr Spacek, Andrew Sullivan, Paul Vixie, 556 Duane Wessels and Paul Wouters for their helpful feedback. 558 The authors would like to especially call out Paul Hoffman and Duane 559 Wessels for providing comments in the form of a pull request. Petr 560 Spacek implemented early versions of this technique into the Knot 561 resolver, identified a number of places where it wasn't clear, and 562 provided very helpful text to address this. 564 10. Change Log 566 RFC Editor: Please remove this section! 568 Note that this document is being worked on in GitHub - see Abstract. 569 The below is mainly large changes, and is not authoritative. 571 From -08 to -09: 573 o Incorporated Paul Hoffman's PR # 15 (Two issues from the 574 Hackathon) - https://github.com/APNIC-Labs/draft-kskroll-sentinel/ 575 pull/15 577 o Clarifies that the match is on the *original* QNAME. 579 From -08 to -07: 581 o Changed title from "A Sentinel for Detecting Trusted Keys in 582 DNSSEC" to "A Root Key Trust Anchor Sentinel for DNSSEC". 584 o Changed magic string from "kskroll-sentinel-" to "root-key- 585 sentinel-" -- this time for sure, Rocky! 587 From -07 to -06: 589 o Addressed GitHub PR #14: Clarifications regarding caching and 590 SERVFAIL responses 592 o Addressed GitHub PR #12, #13: Clarify situation with multiple 593 resolvers, Fix editorial nits. 595 From -05 to -06: 597 o Paul improved my merging of Petr's text to make it more readable. 598 Minor change, but this is just before the cut-off, so I wanted it 599 maximally readable. 601 From -04 to -05: 603 o Incorporated Duane's #10 605 o Integrated Petr Spacek's Issue - https://github.com/APNIC-Labs/ 606 draft-kskroll-sentinel/issues/9 (note that commit-log incorrectly 607 referred to Duane's PR as number 9, it is actually 10). 609 From -03 to -04: 611 o Addressed GitHub pull requests #4, #5, #6, #7 #8. 613 o Added Duane's privacy concerns 615 o Makes the use cases clearer 617 o Fixed some A/AAAA stuff 619 o Changed the example numbers 620 o Made it clear that names and addresses must be real 622 From -02 to -03: 624 o Integrated / published comments from Paul in GitHub PR #2 - 625 https://github.com/APNIC-Labs/draft-kskroll-sentinel/pull/2 627 o Made the keytag be decimal, not hex (thread / consensus in 628 https://mailarchive.ietf.org/arch/msg/dnsop/ 629 Kg7AtDhFRNw31He8n0_bMr9hBuE ) 631 From -01 to 02: 633 o Removed Address Record definition. 635 o Clarified that many things can cause SERVFAIL. 637 o Made examples FQDN. 639 o Fixed a number of typos. 641 o Had accidentally said that Charlie was using a non-validating 642 resolver in example. 644 o [ TODO(WK): Doc says keytags are hex, is this really what the WG 645 wants? ] 647 o And active key is one that can be used *now* (not e.g AddPend) 649 From -00 to 01: 651 o Added a conversational description of how the system is intended 652 to work. 654 o Clarification that this is for the root. 656 o Changed the label template from _is-ta- to kskroll- 657 sentinel-is-ta-. This is because BIND (at least) will 658 not allow records which start with an underscore to have address 659 records (CNAMEs, yes, A/AAAA no). Some browsers / operating 660 systems also will not fetch resources from names which start with 661 an underscore. 663 11. References 664 11.1. Normative References 666 [RFC2308] Andrews, M., "Negative Caching of DNS Queries (DNS 667 NCACHE)", RFC 2308, DOI 10.17487/RFC2308, March 1998, 668 . 670 [RFC4033] Arends, R., Austein, R., Larson, M., Massey, D., and S. 671 Rose, "DNS Security Introduction and Requirements", RFC 672 4033, DOI 10.17487/RFC4033, March 2005, . 675 [RFC4034] Arends, R., Austein, R., Larson, M., Massey, D., and S. 676 Rose, "Resource Records for the DNS Security Extensions", 677 RFC 4034, DOI 10.17487/RFC4034, March 2005, 678 . 680 [RFC4035] Arends, R., Austein, R., Larson, M., Massey, D., and S. 681 Rose, "Protocol Modifications for the DNS Security 682 Extensions", RFC 4035, DOI 10.17487/RFC4035, March 2005, 683 . 685 [RFC5011] StJohns, M., "Automated Updates of DNS Security (DNSSEC) 686 Trust Anchors", STD 74, RFC 5011, DOI 10.17487/RFC5011, 687 September 2007, . 689 11.2. Informative References 691 [RFC8145] Wessels, D., Kumari, W., and P. Hoffman, "Signaling Trust 692 Anchor Knowledge in DNS Security Extensions (DNSSEC)", RFC 693 8145, DOI 10.17487/RFC8145, April 2017, . 696 Authors' Addresses 698 Geoff Huston 700 Email: gih@apnic.net 701 URI: http://www.apnic.net 703 Joao Silva Damas 705 Email: joao@apnic.net 706 URI: http://www.apnic.net 707 Warren Kumari 709 Email: warren@kumari.net