idnits 2.17.00 (12 Aug 2021) /tmp/idnits37898/draft-schwartz-dnsop-dnssec-strict-mode-00.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 (22 February 2021) is 446 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 B. Schwartz 3 Internet-Draft Google LLC 4 Intended status: Standards Track 22 February 2021 5 Expires: 26 August 2021 7 DNSSEC Strict Mode 8 draft-schwartz-dnsop-dnssec-strict-mode-00 10 Abstract 12 Currently, the DNSSEC security of a zone is limited by the strength 13 of its weakest signature algorithm. DNSSEC Strict Mode makes zones 14 as secure as their strongest algorithm instead. 16 Discussion Venues 18 This note is to be removed before publishing as an RFC. 20 Discussion of this document takes place on the mailing list 21 (dnsop@ietf.org), which is archived at 22 https://mailarchive.ietf.org/arch/browse/dnsop/. 24 Source for this draft and an issue tracker can be found at 25 https://github.com/bemasc/dnssec-strict-mode. 27 Status of This Memo 29 This Internet-Draft is submitted in full conformance with the 30 provisions of BCP 78 and BCP 79. 32 Internet-Drafts are working documents of the Internet Engineering 33 Task Force (IETF). Note that other groups may also distribute 34 working documents as Internet-Drafts. The list of current Internet- 35 Drafts is at https://datatracker.ietf.org/drafts/current/. 37 Internet-Drafts are draft documents valid for a maximum of six months 38 and may be updated, replaced, or obsoleted by other documents at any 39 time. It is inappropriate to use Internet-Drafts as reference 40 material or to cite them other than as "work in progress." 42 This Internet-Draft will expire on 26 August 2021. 44 Copyright Notice 46 Copyright (c) 2021 IETF Trust and the persons identified as the 47 document authors. All rights reserved. 49 This document is subject to BCP 78 and the IETF Trust's Legal 50 Provisions Relating to IETF Documents (https://trustee.ietf.org/ 51 license-info) in effect on the date of publication of this document. 52 Please review these documents carefully, as they describe your rights 53 and restrictions with respect to this document. Code Components 54 extracted from this document must include Simplified BSD License text 55 as described in Section 4.e of the Trust Legal Provisions and are 56 provided without warranty as described in the Simplified BSD License. 58 Table of Contents 60 1. Conventions and Definitions . . . . . . . . . . . . . . . . . 2 61 2. Background . . . . . . . . . . . . . . . . . . . . . . . . . 2 62 2.1. DNSSEC validation behavior . . . . . . . . . . . . . . . 2 63 2.2. Algorithm trust levels . . . . . . . . . . . . . . . . . 3 64 3. The DNSSEC Strict Mode flag . . . . . . . . . . . . . . . . . 4 65 4. Operational Considerations . . . . . . . . . . . . . . . . . 4 66 5. Security Considerations . . . . . . . . . . . . . . . . . . . 5 67 6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 5 68 7. References . . . . . . . . . . . . . . . . . . . . . . . . . 5 69 7.1. Normative References . . . . . . . . . . . . . . . . . . 5 70 7.2. Informative References . . . . . . . . . . . . . . . . . 5 71 Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . . 6 72 Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 6 74 1. Conventions and Definitions 76 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 77 "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and 78 "OPTIONAL" in this document are to be interpreted as described in BCP 79 14 [RFC2119] [RFC8174] when, and only when, they appear in all 80 capitals, as shown here. 82 2. Background 84 2.1. DNSSEC validation behavior 86 According to [RFC6840] Section 5.4, when validators (i.e. resolvers) 87 are checking DNSSEC signatures: 89 a resolver SHOULD accept any valid RRSIG as sufficient, and only 90 determine that an RRset is Bogus if all RRSIGs fail validation. 92 [RFC6840] Section 5.11 clarifies further: 94 Validators SHOULD accept any single valid path. They SHOULD NOT 95 insist that all algorithms signaled in the DS RRset work, and they 96 MUST NOT insist that all algorithms signaled in the DNSKEY RRset 97 work. A validator MAY have a configuration option to perform a 98 signature completeness test to support troubleshooting. 100 Thus, validators are required to walk through the set of RRSIGs, 101 checking each one that they are able until they find one that matches 102 or run out. 104 Some implementations do offer an option to enforce signature 105 completeness, e.g. Unbound's "harden-algo-downgrade" option 106 [Unbound], but most validating resolvers appear to follow the 107 standards guidance on this point. Validators' tolerance for invalid 108 paths is important due to transient inconsistencies during certain 109 kinds of zone maintenance (e.g. Pre-Publish Key Rollover, [RFC6781] 110 Section 4.1.1.1). 112 2.2. Algorithm trust levels 114 From the viewpoint of any single party, each DNSSEC Algorithm (i.e. 115 signature algorithm) can be assigned some level of perceived strength 116 or confidence. The party might be a zone owner, considering which 117 algorithms to use, or a validator, consider which algorithms to 118 implement. Either way, the party can safely include algorithms in 119 which they have maximal confidence (i.e. viewed as secure), and 120 safely exclude algorithms in which they have no confidence (i.e. 121 viewed as worthless). 123 Under the current DNSSEC validation behavior, a zone is only as 124 secure as the weakest algorithm implemented by both the signer and 125 the validator. If there is at least one algorithm that all parties 126 agree offers maximum strength, this is not a problem. Otherwise, we 127 have a dilemma. Each party is faced with two options: 129 * Use/implement only their most preferred algorithms, at the cost of 130 achieving no security with counterparties who distrust those 131 algorithms. 133 * Use/implement a wide range of algorithms, at the cost of weaker 134 security for counterparties who also implement a wide range of 135 algorithms. 137 In practice, zone owners typically select a small number of 138 algorithms, and validators typically support a wide range. This 139 arrangement often works well, but can fail for a variety of reasons: 141 * When a new, stronger algorithm is introduced but is not yet widely 142 implemented, zone owners must continue to sign with older, weaker 143 algorithms, typically for many years, until nearly all validators 144 are updated. 146 * National crypto standards are often highly trusted by some 147 parties, and viewed with suspicion by others. 149 * Quantum computing has the potential to further confuse the 150 landscape of signature algorithm confidence. Under the present 151 standards, parties might be required to trust a novel postquantum 152 algorithm of uncertain strength or remain vulnerable to quantum 153 attack. 155 This specification resolves these dilemmas by providing zones with 156 the security level of their strongest selected algorithm, instead of 157 the weakest. 159 3. The DNSSEC Strict Mode flag 161 The DNSSEC Strict Mode flag appears in bit $N of the DNSKEY flags 162 field. If this flag is set, all records in the zone MUST be signed 163 correctly under this key's specified Algorithm. A validator that 164 receives a Strict Mode DNSKEY with a supported Algorithm SHOULD 165 reject as Bogus any RRSet that lacks a valid RRSIG with this 166 Algorithm. If there are multiple Strict Mode keys for the zone, 167 validators SHOULD validate signatures under each of their Algorithms. 169 4. Operational Considerations 171 Once a zone is signed, enabling Strict Mode can be done using any 172 ordinary key rollover procedure ([RFC6781] Section 4.1), to a new 173 DNSKEY that contains the Strict Mode flag. When signing a zone for 174 the first time, or adding a new Algorithm, care must be taken to 175 fully sign the zone before enabling Strict Mode. 177 By making it safe to use a wider range of DNSSEC Algorithms, this 178 specification could encourage larger RRSIG RRSets, and hence larger 179 responses. 181 When a zone has multiple Strict Mode keys, validators will check them 182 all, likely increasing CPU usage. 184 5. Security Considerations 186 This specification enables the safe use of signature algorithms with 187 intermediate or indeterminate security. It does not protect against 188 weak Digest Types in DS records (especially "second preimage" 189 attacks). 191 A zone that adds signatures under a less secure algorithm, relying on 192 a strong Strict Mode algorithm for security, will weaken security for 193 validators that have not implemented support for Strict Mode. Zone 194 owners should use caution when relying on Strict Mode until Strict 195 Mode is widely supported in validators. 197 6. IANA Considerations 199 IANA is instructed to add this allocation to the DNSKEY RR Flags 200 registry: 202 +========+=============+=================+ 203 | Number | Description | Reference | 204 +========+=============+=================+ 205 | $N | STRICT | (This document) | 206 +--------+-------------+-----------------+ 208 Table 1 210 7. References 212 7.1. Normative References 214 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 215 Requirement Levels", BCP 14, RFC 2119, 216 DOI 10.17487/RFC2119, March 1997, 217 . 219 [RFC6840] Weiler, S., Ed. and D. Blacka, Ed., "Clarifications and 220 Implementation Notes for DNS Security (DNSSEC)", RFC 6840, 221 DOI 10.17487/RFC6840, February 2013, 222 . 224 [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC 225 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, 226 May 2017, . 228 7.2. Informative References 230 [RFC6781] Kolkman, O., Mekking, W., and R. Gieben, "DNSSEC 231 Operational Practices, Version 2", RFC 6781, 232 DOI 10.17487/RFC6781, December 2012, 233 . 235 [Unbound] "unbound.conf", n.d., 236 . 239 Acknowledgments 241 TODO acknowledge. 243 Author's Address 245 Benjamin M. Schwartz 246 Google LLC 248 Email: bemasc@google.com