956 lines
31 KiB
Plaintext
956 lines
31 KiB
Plaintext
|
|
|
|
|
|
|
|
|
|
|
|
Network Working Group R. Arends
|
|
Request for Comments: 4956 Nominet
|
|
Category: Experimental M. Kosters
|
|
D. Blacka
|
|
VeriSign, Inc.
|
|
July 2007
|
|
|
|
|
|
DNS Security (DNSSEC) Opt-In
|
|
|
|
Status of This Memo
|
|
|
|
This memo defines an Experimental Protocol for the Internet
|
|
community. It does not specify an Internet standard of any kind.
|
|
Discussion and suggestions for improvement are requested.
|
|
Distribution of this memo is unlimited.
|
|
|
|
Copyright Notice
|
|
|
|
Copyright (C) The IETF Trust (2007).
|
|
|
|
Abstract
|
|
|
|
In the DNS security (DNSSEC) extensions, delegations to unsigned
|
|
subzones are cryptographically secured. Maintaining this
|
|
cryptography is not always practical or necessary. This document
|
|
describes an experimental "Opt-In" model that allows administrators
|
|
to omit this cryptography and manage the cost of adopting DNSSEC with
|
|
large zones.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Arends, et al. Experimental [Page 1]
|
|
|
|
RFC 4956 DNS Security (DNSSEC) Opt-In July 2007
|
|
|
|
|
|
Table of Contents
|
|
|
|
1. Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
|
|
2. Definitions and Terminology . . . . . . . . . . . . . . . . . 3
|
|
3. Experimental Status . . . . . . . . . . . . . . . . . . . . . 4
|
|
4. Protocol Additions . . . . . . . . . . . . . . . . . . . . . . 5
|
|
4.1. Server Considerations . . . . . . . . . . . . . . . . . . 6
|
|
4.1.1. Delegations Only . . . . . . . . . . . . . . . . . . . 6
|
|
4.1.2. Insecure Delegation Responses . . . . . . . . . . . . 6
|
|
4.1.3. Dynamic Update . . . . . . . . . . . . . . . . . . . . 6
|
|
4.2. Client Considerations . . . . . . . . . . . . . . . . . . 7
|
|
4.2.1. Delegations Only . . . . . . . . . . . . . . . . . . . 7
|
|
4.2.2. Validation Process Changes . . . . . . . . . . . . . . 7
|
|
4.2.3. NSEC Record Caching . . . . . . . . . . . . . . . . . 8
|
|
4.2.4. Use of the AD bit . . . . . . . . . . . . . . . . . . 8
|
|
5. Benefits . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
|
|
6. Example . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
|
|
7. Transition Issues . . . . . . . . . . . . . . . . . . . . . . 11
|
|
8. Security Considerations . . . . . . . . . . . . . . . . . . . 11
|
|
9. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 13
|
|
10. References . . . . . . . . . . . . . . . . . . . . . . . . . . 13
|
|
10.1. Normative References . . . . . . . . . . . . . . . . . . . 13
|
|
10.2. Informative References . . . . . . . . . . . . . . . . . . 13
|
|
Appendix A. Implementing Opt-In Using "Views" . . . . . . . . . . 15
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Arends, et al. Experimental [Page 2]
|
|
|
|
RFC 4956 DNS Security (DNSSEC) Opt-In July 2007
|
|
|
|
|
|
1. Overview
|
|
|
|
The cost to cryptographically secure delegations to unsigned zones is
|
|
high for large delegation-centric zones and zones where insecure
|
|
delegations will be updated rapidly. For these zones, the costs of
|
|
maintaining the NextSECure (NSEC) record chain may be extremely high
|
|
relative to the gain of cryptographically authenticating existence of
|
|
unsecured zones.
|
|
|
|
This document describes an experimental method of eliminating the
|
|
superfluous cryptography present in secure delegations to unsigned
|
|
zones. Using "Opt-In", a zone administrator can choose to remove
|
|
insecure delegations from the NSEC chain. This is accomplished by
|
|
extending the semantics of the NSEC record by using a redundant bit
|
|
in the type map.
|
|
|
|
2. Definitions and Terminology
|
|
|
|
Throughout this document, familiarity with the DNS system (RFC 1035
|
|
[1]), DNS security extensions ([4], [5], and [6], referred to in this
|
|
document as "standard DNSSEC"), and DNSSEC terminology (RFC 3090
|
|
[10]) is assumed.
|
|
|
|
The following abbreviations and terms are used in this document:
|
|
|
|
RR: is used to refer to a DNS resource record.
|
|
|
|
RRset: refers to a Resource Record Set, as defined by [8]. In this
|
|
document, the RRset is also defined to include the covering RRSIG
|
|
records, if any exist.
|
|
|
|
signed name: refers to a DNS name that has, at minimum, a (signed)
|
|
NSEC record.
|
|
|
|
unsigned name: refers to a DNS name that does not (at least) have an
|
|
NSEC record.
|
|
|
|
covering NSEC record/RRset: is the NSEC record used to prove
|
|
(non)existence of a particular name or RRset. This means that for
|
|
a RRset or name 'N', the covering NSEC record has the name 'N', or
|
|
has an owner name less than 'N' and "next" name greater than 'N'.
|
|
|
|
delegation: refers to an NS RRset with a name different from the
|
|
current zone apex (non-zone-apex), signifying a delegation to a
|
|
subzone.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Arends, et al. Experimental [Page 3]
|
|
|
|
RFC 4956 DNS Security (DNSSEC) Opt-In July 2007
|
|
|
|
|
|
secure delegation: refers to a signed name containing a delegation
|
|
(NS RRset), and a signed DS RRset, signifying a delegation to a
|
|
signed subzone.
|
|
|
|
insecure delegation: refers to a signed name containing a delegation
|
|
(NS RRset), but lacking a DS RRset, signifying a delegation to an
|
|
unsigned subzone.
|
|
|
|
Opt-In insecure delegation: refers to an unsigned name containing
|
|
only a delegation NS RRset. The covering NSEC record uses the
|
|
Opt-In methodology described in this document.
|
|
|
|
The key words "MUST, "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
|
|
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY, and "OPTIONAL" in this
|
|
document are to be interpreted as described in RFC 2119 [2].
|
|
|
|
3. Experimental Status
|
|
|
|
This document describes an EXPERIMENTAL extension to DNSSEC. It
|
|
interoperates with non-experimental DNSSEC using the technique
|
|
described in [7]. This experiment is identified with the following
|
|
private algorithms (using algorithm 253):
|
|
|
|
"3.optin.verisignlabs.com": is an alias for DNSSEC algorithm 3, DSA,
|
|
and
|
|
|
|
"5.optin.verisignlabs.com": is an alias for DNSSEC algorithm 5,
|
|
RSASHA1.
|
|
|
|
Servers wishing to sign and serve zones that utilize Opt-In MUST sign
|
|
the zone with only one or more of these private algorithms and MUST
|
|
NOT use any other algorithms.
|
|
|
|
Resolvers MUST NOT apply the Opt-In validation rules described in
|
|
this document unless a zone is signed using one or more of these
|
|
private algorithms.
|
|
|
|
This experimental protocol relaxes the restriction that validators
|
|
MUST ignore the setting of the NSEC bit in the type map as specified
|
|
in RFC 4035 [6] Section 5.4.
|
|
|
|
The remainder of this document assumes that the servers and resolvers
|
|
involved are aware of and are involved in this experiment.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Arends, et al. Experimental [Page 4]
|
|
|
|
RFC 4956 DNS Security (DNSSEC) Opt-In July 2007
|
|
|
|
|
|
4. Protocol Additions
|
|
|
|
In DNSSEC, delegation NS RRsets are not signed, but are instead
|
|
accompanied by an NSEC RRset of the same name and (possibly) a DS
|
|
record. The security status of the subzone is determined by the
|
|
presence or absence of the DS RRset, cryptographically proven by the
|
|
NSEC record. Opt-In expands this definition by allowing insecure
|
|
delegations to exist within an otherwise signed zone without the
|
|
corresponding NSEC record at the delegation's owner name. These
|
|
insecure delegations are proven insecure by using a covering NSEC
|
|
record.
|
|
|
|
Since this represents a change of the interpretation of NSEC records,
|
|
resolvers must be able to distinguish between RFC standard DNSSEC
|
|
NSEC records and Opt-In NSEC records. This is accomplished by
|
|
"tagging" the NSEC records that cover (or potentially cover) insecure
|
|
delegation nodes. This tag is indicated by the absence of the NSEC
|
|
bit in the type map. Since the NSEC bit in the type map merely
|
|
indicates the existence of the record itself, this bit is redundant
|
|
and safe for use as a tag.
|
|
|
|
An Opt-In tagged NSEC record does not assert the (non)existence of
|
|
the delegations that it covers (except for a delegation with the same
|
|
name). This allows for the addition or removal of these delegations
|
|
without recalculating or resigning records in the NSEC chain.
|
|
However, Opt-In tagged NSEC records do assert the (non)existence of
|
|
other RRsets.
|
|
|
|
An Opt-In NSEC record MAY have the same name as an insecure
|
|
delegation. In this case, the delegation is proven insecure by the
|
|
lack of a DS bit in the type map, and the signed NSEC record does
|
|
assert the existence of the delegation.
|
|
|
|
Zones using Opt-In MAY contain a mixture of Opt-In tagged NSEC
|
|
records and standard DNSSEC NSEC records. If an NSEC record is not
|
|
Opt-In, there MUST NOT be any insecure delegations (or any other
|
|
records) between it and the RRsets indicated by the 'next domain
|
|
name' in the NSEC RDATA. If it is Opt-In, there MUST only be
|
|
insecure delegations between it and the next node indicated by the
|
|
'next domain name' in the NSEC RDATA.
|
|
|
|
In summary,
|
|
|
|
o An Opt-In NSEC type is identified by a zero-valued (or not-
|
|
specified) NSEC bit in the type bit map of the NSEC record.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Arends, et al. Experimental [Page 5]
|
|
|
|
RFC 4956 DNS Security (DNSSEC) Opt-In July 2007
|
|
|
|
|
|
o A standard DNSSEC NSEC type is identified by a one-valued NSEC bit
|
|
in the type bit map of the NSEC record.
|
|
|
|
and
|
|
|
|
o An Opt-In NSEC record does not assert the non-existence of a name
|
|
between its owner name and "next" name, although it does assert
|
|
that any name in this span MUST be an insecure delegation.
|
|
|
|
o An Opt-In NSEC record does assert the (non)existence of RRsets
|
|
with the same owner name.
|
|
|
|
4.1. Server Considerations
|
|
|
|
Opt-In imposes some new requirements on authoritative DNS servers.
|
|
|
|
4.1.1. Delegations Only
|
|
|
|
This specification dictates that only insecure delegations may exist
|
|
between the owner and "next" names of an Opt-In tagged NSEC record.
|
|
Signing tools MUST NOT generate signed zones that violate this
|
|
restriction. Servers MUST refuse to load and/or serve zones that
|
|
violate this restriction. Servers also MUST reject AXFR or IXFR
|
|
responses that violate this restriction.
|
|
|
|
4.1.2. Insecure Delegation Responses
|
|
|
|
When returning an Opt-In insecure delegation, the server MUST return
|
|
the covering NSEC RRset in the Authority section.
|
|
|
|
In standard DNSSEC, NSEC records already must be returned along with
|
|
the insecure delegation. The primary difference that this proposal
|
|
introduces is that the Opt-In tagged NSEC record will have a
|
|
different owner name from the delegation RRset. This may require
|
|
implementations to search for the covering NSEC RRset.
|
|
|
|
4.1.3. Dynamic Update
|
|
|
|
Opt-In changes the semantics of Secure DNS Dynamic Update [9]. In
|
|
particular, it introduces the need for rules that describe when to
|
|
add or remove a delegation name from the NSEC chain. This document
|
|
does not attempt to define these rules. Until these rules are
|
|
defined, servers MUST NOT process DNS Dynamic Update requests against
|
|
zones that use Opt-In NSEC records. Servers SHOULD return responses
|
|
to update requests with RCODE=REFUSED.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Arends, et al. Experimental [Page 6]
|
|
|
|
RFC 4956 DNS Security (DNSSEC) Opt-In July 2007
|
|
|
|
|
|
4.2. Client Considerations
|
|
|
|
Opt-In imposes some new requirements on security-aware resolvers
|
|
(caching or otherwise).
|
|
|
|
4.2.1. Delegations Only
|
|
|
|
As stated in Section 4.1 above, this specification restricts the
|
|
namespace covered by Opt-In tagged NSEC records to insecure
|
|
delegations only. Clients are not expected to take any special
|
|
measures to enforce this restriction; instead, it forms an underlying
|
|
assumption that clients may rely on.
|
|
|
|
4.2.2. Validation Process Changes
|
|
|
|
This specification does not change the resolver's resolution
|
|
algorithm. However, it does change the DNSSEC validation process.
|
|
|
|
4.2.2.1. Referrals
|
|
|
|
Resolvers MUST be able to use Opt-In tagged NSEC records to
|
|
cryptographically prove the validity and security status (as
|
|
insecure) of a referral. Resolvers determine the security status of
|
|
the referred-to zone as follows:
|
|
|
|
o In standard DNSSEC, the security status is proven by the existence
|
|
or absence of a DS RRset at the same name as the delegation. The
|
|
existence of the DS RRset indicates that the referred-to zone is
|
|
signed. The absence of the DS RRset is proven using a verified
|
|
NSEC record of the same name that does not have the DS bit set in
|
|
the type map. This NSEC record MAY also be tagged as Opt-In.
|
|
|
|
o Using Opt-In, the security status is proven by the existence of a
|
|
DS record (for signed) or the presence of a verified Opt-In tagged
|
|
NSEC record that covers the delegation name. That is, the NSEC
|
|
record does not have the NSEC bit set in the type map, and the
|
|
delegation name falls between the NSEC's owner and "next" name.
|
|
|
|
Using Opt-In does not substantially change the nature of following
|
|
referrals within DNSSEC. At every delegation point, the resolver
|
|
will have cryptographic proof that the referred-to subzone is signed
|
|
or unsigned.
|
|
|
|
4.2.2.2. Queries for DS Resource Records
|
|
|
|
Since queries for DS records are directed to the parent side of a
|
|
zone cut (see [5], Section 5), negative responses to these queries
|
|
may be covered by an Opt-In flagged NSEC record.
|
|
|
|
|
|
|
|
Arends, et al. Experimental [Page 7]
|
|
|
|
RFC 4956 DNS Security (DNSSEC) Opt-In July 2007
|
|
|
|
|
|
Resolvers MUST be able to use Opt-In tagged NSEC records to
|
|
cryptographically prove the validity and security status of negative
|
|
responses to queries for DS records. In particular, a NOERROR/NODATA
|
|
(i.e., RCODE=3, but the answer section is empty) response to a DS
|
|
query may be proven by an Opt-In flagged covering NSEC record, rather
|
|
than an NSEC record matching the query name.
|
|
|
|
4.2.3. NSEC Record Caching
|
|
|
|
Caching resolvers MUST be able to retrieve the appropriate covering
|
|
Opt-In NSEC record when returning referrals that need them. This
|
|
requirement differs from standard DNSSEC in that the covering NSEC
|
|
will not have the same owner name as the delegation. Some
|
|
implementations may have to use new methods for finding these NSEC
|
|
records.
|
|
|
|
4.2.4. Use of the AD bit
|
|
|
|
The AD bit, as defined by [3] and [6], MUST NOT be set when:
|
|
|
|
o sending a Name Error (RCODE=3) response where the covering NSEC is
|
|
tagged as Opt-In.
|
|
|
|
o sending an Opt-In insecure delegation response, unless the
|
|
covering (Opt-In) NSEC record's owner name equals the delegation
|
|
name.
|
|
|
|
o sending a NOERROR/NODATA response when query type is DS and the
|
|
covering NSEC is tagged as Opt-In, unless NSEC record's owner name
|
|
matches the query name.
|
|
|
|
This rule is based on what the Opt-In NSEC record actually proves:
|
|
for names that exist between the Opt-In NSEC record's owner and
|
|
"next" names, the Opt-In NSEC record cannot prove the non-existence
|
|
or existence of the name. As such, not all data in the response has
|
|
been cryptographically verified, so the AD bit cannot be set.
|
|
|
|
5. Benefits
|
|
|
|
Using Opt-In allows administrators of large and/or changing
|
|
delegation-centric zones to minimize the overhead involved in
|
|
maintaining the security of the zone.
|
|
|
|
Opt-In accomplishes this by eliminating the need for NSEC records for
|
|
insecure delegations. This, in a zone with a large number of
|
|
delegations to unsigned subzones, can lead to substantial space
|
|
savings (both in memory and on disk). Additionally, Opt-In allows
|
|
for the addition or removal of insecure delegations without modifying
|
|
|
|
|
|
|
|
Arends, et al. Experimental [Page 8]
|
|
|
|
RFC 4956 DNS Security (DNSSEC) Opt-In July 2007
|
|
|
|
|
|
the NSEC record chain. Zones that are frequently updating insecure
|
|
delegations (e.g., Top-Level Domains (TLDs)) can avoid the
|
|
substantial overhead of modifying and resigning the affected NSEC
|
|
records.
|
|
|
|
6. Example
|
|
|
|
Consider the zone EXAMPLE shown below. This is a zone where all of
|
|
the NSEC records are tagged as Opt-In.
|
|
|
|
Example A: Fully Opt-In Zone.
|
|
|
|
EXAMPLE. SOA ...
|
|
EXAMPLE. RRSIG SOA ...
|
|
EXAMPLE. NS FIRST-SECURE.EXAMPLE.
|
|
EXAMPLE. RRSIG NS ...
|
|
EXAMPLE. DNSKEY ...
|
|
EXAMPLE. RRSIG DNSKEY ...
|
|
EXAMPLE. NSEC FIRST-SECURE.EXAMPLE. (
|
|
SOA NS RRSIG DNSKEY )
|
|
EXAMPLE. RRSIG NSEC ...
|
|
|
|
FIRST-SECURE.EXAMPLE. A ...
|
|
FIRST-SECURE.EXAMPLE. RRSIG A ...
|
|
FIRST-SECURE.EXAMPLE. NSEC NOT-SECURE-2.EXAMPLE. A RRSIG
|
|
FIRST-SECURE.EXAMPLE. RRSIG NSEC ...
|
|
|
|
NOT-SECURE.EXAMPLE. NS NS.NOT-SECURE.EXAMPLE.
|
|
NS.NOT-SECURE.EXAMPLE. A ...
|
|
|
|
NOT-SECURE-2.EXAMPLE. NS NS.NOT-SECURE.EXAMPLE.
|
|
NOT-SECURE-2.EXAMPLE NSEC SECOND-SECURE.EXAMPLE NS RRSIG
|
|
NOT-SECURE-2.EXAMPLE RRSIG NSEC ...
|
|
|
|
SECOND-SECURE.EXAMPLE. NS NS.ELSEWHERE.
|
|
SECOND-SECURE.EXAMPLE. DS ...
|
|
SECOND-SECURE.EXAMPLE. RRSIG DS ...
|
|
SECOND-SECURE.EXAMPLE. NSEC EXAMPLE. NS RRSIG DNSKEY
|
|
SECOND-SECURE.EXAMPLE. RRSIG NSEC ...
|
|
|
|
UNSIGNED.EXAMPLE. NS NS.UNSIGNED.EXAMPLE.
|
|
NS.UNSIGNED.EXAMPLE. A ...
|
|
|
|
|
|
Example A.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Arends, et al. Experimental [Page 9]
|
|
|
|
RFC 4956 DNS Security (DNSSEC) Opt-In July 2007
|
|
|
|
|
|
In this example, a query for a signed RRset (e.g., "FIRST-
|
|
SECURE.EXAMPLE A") or a secure delegation ("WWW.SECOND-SECURE.EXAMPLE
|
|
A") will result in a standard DNSSEC response.
|
|
|
|
A query for a nonexistent RRset will result in a response that
|
|
differs from standard DNSSEC by the following: the NSEC record will
|
|
be tagged as Opt-In, there may be no NSEC record proving the non-
|
|
existence of a matching wildcard record, and the AD bit will not be
|
|
set.
|
|
|
|
A query for an insecure delegation RRset (or a referral) will return
|
|
both the answer (in the Authority section) and the corresponding
|
|
Opt-In NSEC record to prove that it is not secure.
|
|
|
|
Example A.1: Response to query for WWW.UNSIGNED.EXAMPLE. A
|
|
|
|
|
|
RCODE=NOERROR, AD=0
|
|
|
|
Answer Section:
|
|
|
|
Authority Section:
|
|
UNSIGNED.EXAMPLE. NS NS.UNSIGNED.EXAMPLE
|
|
SECOND-SECURE.EXAMPLE. NSEC EXAMPLE. NS RRSIG DS
|
|
SECOND-SECURE.EXAMPLE. RRSIG NSEC ...
|
|
|
|
Additional Section:
|
|
NS.UNSIGNED.EXAMPLE. A ...
|
|
|
|
Example A.1
|
|
|
|
In the Example A.1 zone, the EXAMPLE. node MAY use either style of
|
|
NSEC record, because there are no insecure delegations that occur
|
|
between it and the next node, FIRST-SECURE.EXAMPLE. In other words,
|
|
Example A would still be a valid zone if the NSEC record for EXAMPLE.
|
|
was changed to the following RR:
|
|
|
|
EXAMPLE. NSEC FIRST-SECURE.EXAMPLE. (SOA NS
|
|
RRSIG DNSKEY NSEC )
|
|
|
|
However, the other NSEC records (FIRST-SECURE.EXAMPLE. and SECOND-
|
|
SECURE.EXAMPLE.) MUST be tagged as Opt-In because there are insecure
|
|
delegations in the range they define. (NOT-SECURE.EXAMPLE. and
|
|
UNSIGNED.EXAMPLE., respectively).
|
|
|
|
NOT-SECURE-2.EXAMPLE. is an example of an insecure delegation that is
|
|
part of the NSEC chain and also covered by an Opt-In tagged NSEC
|
|
record. Because NOT-SECURE-2.EXAMPLE. is a signed name, it cannot be
|
|
|
|
|
|
|
|
Arends, et al. Experimental [Page 10]
|
|
|
|
RFC 4956 DNS Security (DNSSEC) Opt-In July 2007
|
|
|
|
|
|
removed from the zone without modifying and resigning the prior NSEC
|
|
record. Delegations with names that fall between NOT-SECURE-
|
|
2.EXAMPLE. and SECOND-SECURE.EXAMPLE. may be added or removed without
|
|
resigning any NSEC records.
|
|
|
|
7. Transition Issues
|
|
|
|
Opt-In is not backwards compatible with standard DNSSEC and is
|
|
considered experimental. Standard DNSSEC-compliant implementations
|
|
would not recognize Opt-In tagged NSEC records as different from
|
|
standard NSEC records. Because of this, standard DNSSEC
|
|
implementations, if they were to validate Opt-In style responses,
|
|
would reject all Opt-In insecure delegations within a zone as
|
|
invalid. However, by only signing with private algorithms, standard
|
|
DNSSEC implementations will treat Opt-In responses as unsigned.
|
|
|
|
It should be noted that all elements in the resolution path between
|
|
(and including) the validator and the authoritative name server must
|
|
be aware of the Opt-In experiment and implement the Opt-In semantics
|
|
for successful validation to be possible. In particular, this
|
|
includes any caching middleboxes between the validator and
|
|
authoritative name server.
|
|
|
|
8. Security Considerations
|
|
|
|
Opt-In allows for unsigned names, in the form of delegations to
|
|
unsigned subzones, to exist within an otherwise signed zone. All
|
|
unsigned names are, by definition, insecure, and their validity or
|
|
existence cannot be cryptographically proven.
|
|
|
|
In general:
|
|
|
|
o Records with unsigned names (whether or not existing) suffer from
|
|
the same vulnerabilities as records in an unsigned zone. These
|
|
vulnerabilities are described in more detail in [12] (note in
|
|
particular Sections 2.3, "Name Games" and 2.6, "Authenticated
|
|
Denial").
|
|
|
|
o Records with signed names have the same security whether or not
|
|
Opt-In is used.
|
|
|
|
Note that with or without Opt-In, an insecure delegation may have its
|
|
contents undetectably altered by an attacker. Because of this, the
|
|
primary difference in security that Opt-In introduces is the loss of
|
|
the ability to prove the existence or nonexistence of an insecure
|
|
delegation within the span of an Opt-In NSEC record.
|
|
|
|
|
|
|
|
|
|
|
|
Arends, et al. Experimental [Page 11]
|
|
|
|
RFC 4956 DNS Security (DNSSEC) Opt-In July 2007
|
|
|
|
|
|
In particular, this means that a malicious entity may be able to
|
|
insert or delete records with unsigned names. These records are
|
|
normally NS records, but this also includes signed wildcard
|
|
expansions (while the wildcard record itself is signed, its expanded
|
|
name is an unsigned name), which can be undetectably removed or used
|
|
to replace an existing unsigned delegation.
|
|
|
|
For example, if a resolver received the following response from the
|
|
example zone above:
|
|
|
|
Example S.1: Response to query for WWW.DOES-NOT-EXIST.EXAMPLE. A
|
|
|
|
RCODE=NOERROR
|
|
|
|
Answer Section:
|
|
|
|
Authority Section:
|
|
DOES-NOT-EXIST.EXAMPLE. NS NS.FORGED.
|
|
EXAMPLE. NSEC FIRST-SECURE.EXAMPLE. SOA NS \
|
|
RRSIG DNSKEY
|
|
EXAMPLE. RRSIG NSEC ...
|
|
|
|
Additional Section:
|
|
|
|
|
|
Attacker has forged a name
|
|
|
|
The resolver would have no choice but to believe that the referral to
|
|
NS.FORGED. is valid. If a wildcard existed that would have been
|
|
expanded to cover "WWW.DOES-NOT-EXIST.EXAMPLE.", an attacker could
|
|
have undetectably removed it and replaced it with the forged
|
|
delegation.
|
|
|
|
Note that being able to add a delegation is functionally equivalent
|
|
to being able to add any record type: an attacker merely has to forge
|
|
a delegation to the nameserver under his/her control and place
|
|
whatever records are needed at the subzone apex.
|
|
|
|
While in particular cases, this issue may not present a significant
|
|
security problem, in general it should not be lightly dismissed.
|
|
Therefore, it is strongly RECOMMENDED that Opt-In be used sparingly.
|
|
In particular, zone signing tools SHOULD NOT default to Opt-In, and
|
|
MAY choose not to support Opt-In at all.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Arends, et al. Experimental [Page 12]
|
|
|
|
RFC 4956 DNS Security (DNSSEC) Opt-In July 2007
|
|
|
|
|
|
9. Acknowledgments
|
|
|
|
The contributions, suggestions, and remarks of the following persons
|
|
(in alphabetic order) to this document are acknowledged:
|
|
|
|
Mats Kolkman, Edward Lewis, Ted Lindgreen, Rip Loomis, Bill
|
|
Manning, Dan Massey, Scott Rose, Mike Schiraldi, Jakob Schlyter,
|
|
Brian Wellington.
|
|
|
|
10. References
|
|
|
|
10.1. Normative References
|
|
|
|
[1] Mockapetris, P., "Domain names - implementation and
|
|
specification", STD 13, RFC 1035, November 1987.
|
|
|
|
[2] Bradner, S., "Key words for use in RFCs to Indicate Requirement
|
|
Levels", BCP 14, RFC 2119, March 1997.
|
|
|
|
[3] Wellington, B. and O. Gudmundsson, "Redefinition of DNS
|
|
Authenticated Data (AD) bit", RFC 3655, November 2003.
|
|
|
|
[4] Arends, R., Austein, R., Larson, M., Massey, D., and S. Rose,
|
|
"DNS Security Introduction and Requirements", RFC 4033,
|
|
March 2005.
|
|
|
|
[5] Arends, R., Austein, R., Larson, M., Massey, D., and S. Rose,
|
|
"Resource Records for the DNS Security Extensions", RFC 4034,
|
|
March 2005.
|
|
|
|
[6] Arends, R., Austein, R., Larson, M., Massey, D., and S. Rose,
|
|
"Protocol Modifications for the DNS Security Extensions",
|
|
RFC 4035, March 2005.
|
|
|
|
[7] Blacka, D., "DNSSEC Experiments", RFC 4955, July 2007.
|
|
|
|
10.2. Informative References
|
|
|
|
[8] Elz, R. and R. Bush, "Clarifications to the DNS Specification",
|
|
RFC 2181, July 1997.
|
|
|
|
[9] Wellington, B., "Secure Domain Name System (DNS) Dynamic
|
|
Update", RFC 3007, November 2000.
|
|
|
|
[10] Lewis, E., "DNS Security Extension Clarification on Zone
|
|
Status", RFC 3090, March 2001.
|
|
|
|
|
|
|
|
|
|
|
|
Arends, et al. Experimental [Page 13]
|
|
|
|
RFC 4956 DNS Security (DNSSEC) Opt-In July 2007
|
|
|
|
|
|
[11] Conrad, D., "Indicating Resolver Support of DNSSEC", RFC 3225,
|
|
December 2001.
|
|
|
|
[12] Atkins, D. and R. Austein, "Threat Analysis of the Domain Name
|
|
System (DNS)", RFC 3833, August 2004.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Arends, et al. Experimental [Page 14]
|
|
|
|
RFC 4956 DNS Security (DNSSEC) Opt-In July 2007
|
|
|
|
|
|
Appendix A. Implementing Opt-In Using "Views"
|
|
|
|
In many cases, it may be convenient to implement an Opt-In zone by
|
|
combining two separately maintained "views" of a zone at request
|
|
time. In this context, "view" refers to a particular version of a
|
|
zone, not to any specific DNS implementation feature.
|
|
|
|
In this scenario, one view is the secure view, the other is the
|
|
insecure (or legacy) view. The secure view consists of an entirely
|
|
signed zone using Opt-In tagged NSEC records. The insecure view
|
|
contains no DNSSEC information. It is helpful, although not
|
|
necessary, for the secure view to be a subset (minus DNSSEC records)
|
|
of the insecure view.
|
|
|
|
In addition, the only RRsets that may solely exist in the insecure
|
|
view are non-zone-apex NS RRsets. That is, all non-NS RRsets (and
|
|
the zone apex NS RRset) MUST be signed and in the secure view.
|
|
|
|
These two views may be combined at request time to provide a virtual,
|
|
single Opt-In zone. The following algorithm is used when responding
|
|
to each query:
|
|
|
|
V_A is the secure view as described above.
|
|
|
|
V_B is the insecure view as described above.
|
|
|
|
R_A is a response generated from V_A, following standard DNSSEC.
|
|
|
|
R_B is a response generated from V_B, following DNS resolution as
|
|
per RFC 1035 [1].
|
|
|
|
R_C is the response generated by combining R_A with R_B, as
|
|
described below.
|
|
|
|
A query is DNSSEC-aware if it either has the DO bit [11] turned on
|
|
or is for a DNSSEC-specific record type.
|
|
|
|
1. If V_A is a subset of V_B and the query is not DNSSEC-aware,
|
|
generate and return R_B, otherwise
|
|
|
|
2. Generate R_A.
|
|
|
|
3. If R_A's RCODE != NXDOMAIN, return R_A, otherwise
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Arends, et al. Experimental [Page 15]
|
|
|
|
RFC 4956 DNS Security (DNSSEC) Opt-In July 2007
|
|
|
|
|
|
4. Generate R_B and combine it with R_A to form R_C:
|
|
|
|
For each section (ANSWER, AUTHORITY, ADDITIONAL), copy the
|
|
records from R_A into R_B, EXCEPT the AUTHORITY section SOA
|
|
record, if R_B's RCODE = NOERROR.
|
|
|
|
5. Return R_C.
|
|
|
|
Authors' Addresses
|
|
|
|
Roy Arends
|
|
Nominet
|
|
Sandford Gate
|
|
Sandy Lane West
|
|
Oxford OX4 6LB
|
|
UNITED KINGDOM
|
|
|
|
Phone: +44 1865 332211
|
|
EMail: roy@nominet.org.uk
|
|
|
|
|
|
Mark Kosters
|
|
VeriSign, Inc.
|
|
21355 Ridgetop Circle
|
|
Dulles, VA 20166
|
|
US
|
|
|
|
Phone: +1 703 948 3200
|
|
EMail: mkosters@verisign.com
|
|
URI: http://www.verisignlabs.com
|
|
|
|
|
|
David Blacka
|
|
VeriSign, Inc.
|
|
21355 Ridgetop Circle
|
|
Dulles, VA 20166
|
|
US
|
|
|
|
Phone: +1 703 948 3200
|
|
EMail: davidb@verisign.com
|
|
URI: http://www.verisignlabs.com
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Arends, et al. Experimental [Page 16]
|
|
|
|
RFC 4956 DNS Security (DNSSEC) Opt-In July 2007
|
|
|
|
|
|
Full Copyright Statement
|
|
|
|
Copyright (C) The IETF Trust (2007).
|
|
|
|
This document is subject to the rights, licenses and restrictions
|
|
contained in BCP 78, and except as set forth therein, the authors
|
|
retain all their rights.
|
|
|
|
This document and the information contained herein are provided on an
|
|
"AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS
|
|
OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY, THE IETF TRUST AND
|
|
THE INTERNET ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS
|
|
OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF
|
|
THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED
|
|
WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
|
|
|
|
Intellectual Property
|
|
|
|
The IETF takes no position regarding the validity or scope of any
|
|
Intellectual Property Rights or other rights that might be claimed to
|
|
pertain to the implementation or use of the technology described in
|
|
this document or the extent to which any license under such rights
|
|
might or might not be available; nor does it represent that it has
|
|
made any independent effort to identify any such rights. Information
|
|
on the procedures with respect to rights in RFC documents can be
|
|
found in BCP 78 and BCP 79.
|
|
|
|
Copies of IPR disclosures made to the IETF Secretariat and any
|
|
assurances of licenses to be made available, or the result of an
|
|
attempt made to obtain a general license or permission for the use of
|
|
such proprietary rights by implementers or users of this
|
|
specification can be obtained from the IETF on-line IPR repository at
|
|
http://www.ietf.org/ipr.
|
|
|
|
The IETF invites any interested party to bring to its attention any
|
|
copyrights, patents or patent applications, or other proprietary
|
|
rights that may cover technology that may be required to implement
|
|
this standard. Please address the information to the IETF at
|
|
ietf-ipr@ietf.org.
|
|
|
|
Acknowledgement
|
|
|
|
Funding for the RFC Editor function is currently provided by the
|
|
Internet Society.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Arends, et al. Experimental [Page 17]
|
|
|