< draft-ietf-dnsop-negative-trust-anchors-06.txt   draft-ietf-dnsop-negative-trust-anchors-07.txt >
Domain Name System Operations P. Ebersman Domain Name System Operations P. Ebersman
Internet-Draft Comcast Internet-Draft Comcast
Intended status: Informational C. Griffiths Intended status: Informational C. Griffiths
Expires: November 9, 2015 Expires: November 10, 2015
W. Kumari W. Kumari
Google Google
J. Livingood J. Livingood
Comcast Comcast
R. Weber R. Weber
Nominum Nominum
May 8, 2015 May 9, 2015
Definition and Use of DNSSEC Negative Trust Anchors Definition and Use of DNSSEC Negative Trust Anchors
draft-ietf-dnsop-negative-trust-anchors-06 draft-ietf-dnsop-negative-trust-anchors-07
Abstract Abstract
DNS Security Extensions (DNSSEC) is now entering widespread DNS Security Extensions (DNSSEC) is now entering widespread
deployment. However, domain signing tools and processes are not yet deployment. However, domain signing tools and processes are not yet
as mature and reliable as those for non-DNSSEC-related domain as mature and reliable as those for non-DNSSEC-related domain
administration tools and processes. Negative Trust Anchors administration tools and processes. Negative Trust Anchors
(described in this document) can be used to mitigate DNSSEC (described in this document) can be used to mitigate DNSSEC
validation failures. validation failures.
skipping to change at page 1, line 48 skipping to change at page 1, line 48
Internet-Drafts are working documents of the Internet Engineering Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet- working documents as Internet-Drafts. The list of current Internet-
Drafts is at http://datatracker.ietf.org/drafts/current/. Drafts is at http://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress." material or to cite them other than as "work in progress."
This Internet-Draft will expire on November 9, 2015. This Internet-Draft will expire on November 10, 2015.
Copyright Notice Copyright Notice
Copyright (c) 2015 IETF Trust and the persons identified as the Copyright (c) 2015 IETF Trust and the persons identified as the
document authors. All rights reserved. document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents Provisions Relating to IETF Documents
(http://trustee.ietf.org/license-info) in effect on the date of (http://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents publication of this document. Please review these documents
carefully, as they describe your rights and restrictions with respect carefully, as they describe your rights and restrictions with respect
to this document. Code Components extracted from this document must to this document. Code Components extracted from this document must
include Simplified BSD License text as described in Section 4.e of include Simplified BSD License text as described in Section 4.e of
the Trust Legal Provisions and are provided without warranty as the Trust Legal Provisions and are provided without warranty as
described in the Simplified BSD License. described in the Simplified BSD License.
Table of Contents Table of Contents
1. Introduction and motivation . . . . . . . . . . . . . . . . . 2 1. Introduction and motivation . . . . . . . . . . . . . . . . . 3
1.1. Definition of a Negative Trust Anchor . . . . . . . . . . 3 1.1. Definition of a Negative Trust Anchor . . . . . . . . . . 3
1.2. Domain Validation Failures . . . . . . . . . . . . . . . 4 1.2. Domain Validation Failures . . . . . . . . . . . . . . . 4
1.3. End User Reaction . . . . . . . . . . . . . . . . . . . . 4 1.3. End User Reaction . . . . . . . . . . . . . . . . . . . . 4
1.4. Switching to a Non-Validating Resolver is Not Recommended 5 1.4. Switching to a Non-Validating Resolver is Not Recommended 5
2. Use of a Negative Trust Anchor . . . . . . . . . . . . . . . 5 2. Use of a Negative Trust Anchor . . . . . . . . . . . . . . . 5
3. Managing Negative Trust Anchors . . . . . . . . . . . . . . . 7 3. Managing Negative Trust Anchors . . . . . . . . . . . . . . . 7
3.1. Alerting Users to NTA Use . . . . . . . . . . . . . . . . 7
4. Removal of a Negative Trust Anchor . . . . . . . . . . . . . 7 4. Removal of a Negative Trust Anchor . . . . . . . . . . . . . 7
5. Comparison to Other DNS Misconfigurations . . . . . . . . . . 8 5. Comparison to Other DNS Misconfigurations . . . . . . . . . . 8
6. Intentionally Broken Domains . . . . . . . . . . . . . . . . 8 6. Intentionally Broken Domains . . . . . . . . . . . . . . . . 8
7. Other Considerations . . . . . . . . . . . . . . . . . . . . 8 7. Discovering broken domains . . . . . . . . . . . . . . . . . 9
7.1. Security Considerations . . . . . . . . . . . . . . . . . 8 8. Other Considerations . . . . . . . . . . . . . . . . . . . . 11
7.2. Privacy Considerations . . . . . . . . . . . . . . . . . 9 8.1. Security Considerations . . . . . . . . . . . . . . . . . 11
7.3. IANA Considerations . . . . . . . . . . . . . . . . . . . 9 8.2. Privacy Considerations . . . . . . . . . . . . . . . . . 11
8. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 9 8.3. IANA Considerations . . . . . . . . . . . . . . . . . . . 11
9. References . . . . . . . . . . . . . . . . . . . . . . . . . 9 9. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 11
9.1. Normative References . . . . . . . . . . . . . . . . . . 9 10. References . . . . . . . . . . . . . . . . . . . . . . . . . 12
9.2. Informative References . . . . . . . . . . . . . . . . . 10 10.1. Normative References . . . . . . . . . . . . . . . . . . 12
Appendix A. Configuration Examples . . . . . . . . . . . . . . . 10 10.2. Informative References . . . . . . . . . . . . . . . . . 12
A.1. NLNet Labs Unbound . . . . . . . . . . . . . . . . . . . 10 Appendix A. Configuration Examples . . . . . . . . . . . . . . . 13
A.2. ISC BIND . . . . . . . . . . . . . . . . . . . . . . . . 11 A.1. NLNet Labs Unbound . . . . . . . . . . . . . . . . . . . 13
A.3. Nominum Vantio . . . . . . . . . . . . . . . . . . . . . 11 A.2. ISC BIND . . . . . . . . . . . . . . . . . . . . . . . . 13
Appendix B. Discovering broken domains . . . . . . . . . . . . . 11 A.3. Nominum Vantio . . . . . . . . . . . . . . . . . . . . . 13
Appendix C. Document Change Log . . . . . . . . . . . . . . . . 13 Appendix B. Document Change Log . . . . . . . . . . . . . . . . 14
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 15 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 16
1. Introduction and motivation 1. Introduction and motivation
This document defines a Negative Trust Anchor, which can be used This document defines a Negative Trust Anchor, which can be used
during the transition to ubiquitous DNSSEC deployment. Negative during the transition to ubiquitous DNSSEC deployment. Negative
Trust Anchors (NTAs) are configured locally on a validating DNS Trust Anchors (NTAs) are configured locally on a validating DNS
recursive resolver to shield end users from DNSSEC-related recursive resolver to shield end users from DNSSEC-related
authoritative name server operational errors. Negative Trust Anchors authoritative name server operational errors. Negative Trust Anchors
are intended to be temporary, and should not be distributed by IANA are intended to be temporary, and should not be distributed by IANA
or any other organization outside of the administrative boundary of or any other organization outside of the administrative boundary of
skipping to change at page 3, line 32 skipping to change at page 3, line 38
a failure on the part of the domain they wanted to reach. Without a failure on the part of the domain they wanted to reach. Without
the techniques in this document, this pressure may cause the resolver the techniques in this document, this pressure may cause the resolver
operator to disable (or simply not deploy) DNSSEC validation. Use of operator to disable (or simply not deploy) DNSSEC validation. Use of
a Negative Trust Anchor to temporarily disable DNSSEC validation for a Negative Trust Anchor to temporarily disable DNSSEC validation for
a specific misconfigured domain name immediately restores access for a specific misconfigured domain name immediately restores access for
end users. This allows the domain's administrators to fix their end users. This allows the domain's administrators to fix their
misconfiguration, while also allowing the organization using the misconfiguration, while also allowing the organization using the
Negative Trust Anchor to keep DNSSEC validation enabled and still Negative Trust Anchor to keep DNSSEC validation enabled and still
reach the misconfigured domain. reach the misconfigured domain.
It is worth noting the following text from RFC4033 [RFC4033] - "In It is worth noting the following text from [RFC4033] - "In the final
the final analysis, however, authenticating both DNS keys and data is analysis, however, authenticating both DNS keys and data is a matter
a matter of local policy, which may extend or even override the of local policy, which may extend or even override the protocol
protocol extensions defined in this document set." A responsibility extensions defined in this document set." A responsibility (one of
(one of many) of a caching server operator is to "protect the many) of a caching server operator is to "protect the integrity of
integrity of the cache." the cache."
1.1. Definition of a Negative Trust Anchor 1.1. Definition of a Negative Trust Anchor
Trust Anchors are defined in [RFC5914]. A trust anchor should be Trust Anchors are defined in [RFC5914]. A trust anchor should be
used by a validating caching resolver as a starting point for used by a validating caching resolver as a starting point for
building the authentication chain for a signed DNS response. By way building the authentication chain for a signed DNS response. By way
of analogy, negative trust anchors stop validation of the of analogy, negative trust anchors stop validation of the
authentication chain. Instead, the validator treats any upstream authentication chain. Instead, the validator treats any upstream
responses as if the zone is unsigned and does not set the AD bit in responses as if the zone is unsigned and does not set the AD bit in
responses it sends to clients. Note that this is a behavior, and not responses it sends to clients. Note that this is a behavior, and not
skipping to change at page 5, line 41 skipping to change at page 5, line 47
Technical personnel trained in the operation of DNS servers MUST Technical personnel trained in the operation of DNS servers MUST
confirm that a failure is due to misconfiguration, as a similar confirm that a failure is due to misconfiguration, as a similar
breakage could have occurred if an attacker gained access to a breakage could have occurred if an attacker gained access to a
domain's authoritative servers and modified those records or had the domain's authoritative servers and modified those records or had the
domain pointed to their own rogue authoritative servers. They should domain pointed to their own rogue authoritative servers. They should
also confirm that the domain is not intentionally broken, such as for also confirm that the domain is not intentionally broken, such as for
testing purposes as noted in Section 6. Finally, they should make a testing purposes as noted in Section 6. Finally, they should make a
reasonable attempt to contact the domain owner of the misconfigured reasonable attempt to contact the domain owner of the misconfigured
zone, preferably prior to implementing the Negative Trust Anchor. zone, preferably prior to implementing the Negative Trust Anchor.
Involving trained technical personnel is costly, but operational Involving trained technical personnel is costly, but operational
experience suggests that this is a very rare event such as around experience suggests that this is a very rare event, usually on the
once per quarter (or even less). order of once per quarter (or even less).
It is important to confirm that the comains is still under the
ownership / control of the legitimate owner of the domain - this is
to ensure that disabling validation for a specific domain does not
direct users to an address under an attackers control. Contacting
the domain owner allows the resolver operator to determine if the
issue is a DNSSEC misconfiguration or an attack.
In the case of a validation failure due to misconfiguration of a TLD In the case of a validation failure due to misconfiguration of a TLD
or popular domain name (such as a top 100 website), content or or popular domain name (such as a top 100 website), content or
services in the affected TLD or domain could be inaccessible for a services in the affected TLD or domain could be inaccessible for a
large number of users. In such cases, it may be appropriate to use a large number of users. In such cases, it may be appropriate to use a
Negative Trust Anchor as soon as the misconfiguration is confirmed. Negative Trust Anchor as soon as the misconfiguration is confirmed.
An example of a list of "top N" websites is the "Alexa Top 500 Sites
on the Web" [Alexa], another example would be to look through
historical query logs.
Once a domain has been confirmed to fail DNSSEC validation due to a Once a domain has been confirmed to fail DNSSEC validation due to a
DNSSEC-related misconfiguration, an ISP or other DNS recursive DNSSEC-related misconfiguration, an ISP or other DNS recursive
resolver operator may elect to use a Negative Trust Anchor for that resolver operator may elect to use a Negative Trust Anchor for that
domain or sub-domain. This instructs their DNS recursive resolver to domain or sub-domain. This instructs their DNS recursive resolver to
temporarily NOT perform DNSSEC validation at or in the misconfigured temporarily NOT perform DNSSEC validation at or in the misconfigured
domain. This immediately restores access to the domain for end users domain. This immediately restores access to the domain for end users
while the domain's administrator corrects the misconfiguration(s). while the domain's administrator corrects the misconfiguration(s).
It does not and should not involve turning off validation more It does not and should not involve turning off validation more
broadly. broadly.
skipping to change at page 6, line 34 skipping to change at page 7, line 5
zone1.example.com, and validation would still be performed on zone1.example.com, and validation would still be performed on
example.com, .com, and the root ("."). This Negative Trust Anchor example.com, .com, and the root ("."). This Negative Trust Anchor
also SHOULD NOT affect names in another branch of the tree (such as also SHOULD NOT affect names in another branch of the tree (such as
example.net). In another example, a Negative Trust Anchor for example.net). In another example, a Negative Trust Anchor for
example.com would affect only names within example.com, and example.com would affect only names within example.com, and
validation would still be performed on .com, and the root ("."). In validation would still be performed on .com, and the root ("."). In
this scenario, if there is a (probably manually configured) trust this scenario, if there is a (probably manually configured) trust
anchor for zone1.example.com, validation would be performed for anchor for zone1.example.com, validation would be performed for
zone1.example.com and subdomains of zone1.example.com. zone1.example.com and subdomains of zone1.example.com.
Root (.) <======
| ||
| ||<======>+----+----+ DNSSEC
| || |Recursive| Validation
TLD (com) <=====|| |Resolver |<============>
| +<------>+---------+
| | DNS NTA
| | (example.com)
SUB TLD (example.com) <------| <-------------->
| |
| |
| |
(zone1.example.com <-----|
Figure 1: Negative Trust Anchor Diagram
3. Managing Negative Trust Anchors 3. Managing Negative Trust Anchors
While Negative Trust Anchors have proven useful during the early While Negative Trust Anchors have proven useful during the early
stages of DNSSEC adoption, domain owners are ultimately responsible stages of DNSSEC adoption, domain owners are ultimately responsible
for managing and ensuring their DNS records are configured correctly. for managing and ensuring their DNS records are configured correctly.
Most current implementations of DNS validating resolvers currently Most current implementations of DNS validating resolvers currently
follow [RFC4033] on configuring a Trust Anchor using either a public follow [RFC4033] on configuring a Trust Anchor using either a public
key as in a DNSKEY RR or a hash of a public key as in a DS RR. A key as in a DNSKEY RR or a hash of a public key as in a DS RR.
Negative Trust Anchor should use domain name formatting that
signifies where in a delegation a validation process should be
stopped.
Different DNS validators may have different configuration names for a Different DNS validators may have different configuration names for a
Negative Trust Anchor. For examples see Appendix A. Negative Trust Anchor. For examples see Appendix A.
It is RECOMMENDED that implmentations warn operators (or treat as an
error) if they attempt to add an NTA for a domain that has a
configured positive trust anchor.
3.1. Alerting Users to NTA Use
End users of a DNS recursive resolver or other people may wonder why
a domain that fails DNSSEC validation resolves with a supposedly
validating resolver. As a result, implementors should consider
transparently disclosing those Negative Trust Anchors which are
currently in place or were in place in the past, such as on a website
[Disclosure-Example].
This is particularly important since there is currently no special
DNS query response code that could indicate to end users or
applications that a Negative Trust Anchor is in place. Such
disclosures should optimally include both the data and time that the
Negative Trust Anchor was put in place and when it was removed.
4. Removal of a Negative Trust Anchor 4. Removal of a Negative Trust Anchor
As explored in Section 7.1, using an NTA once the zone correctly As explored in Section 8.1, using an NTA once the zone correctly
validates can have security considerations. It is therefore validates can have security considerations. It is therefore
RECOMMENDED that NTA implementors SHOULD periodically attempt to RECOMMENDED that NTA implementors SHOULD periodically attempt to
validate the domain in question, for the period of time that the validate the domain in question, for the period of time that the
Negative Trust Anchor is in place, until such validation is again Negative Trust Anchor is in place, until such validation is again
successful. NTAs MUST expire automatically when their configured successful. NTAs MUST expire automatically when their configured
lifetime ends. The lifetime MUST NOT exceed a week. Before removing lifetime ends. The lifetime MUST NOT exceed a week. Before removing
the Negative Trust Anchor, all authoritative resolvers listed in the the Negative Trust Anchor, all authoritative resolvers listed in the
zone should be checked (due to anycast and load balancers it may not zone should be checked (due to anycast and load balancers it may not
be possible to check all instances). be possible to check all instances).
skipping to change at page 7, line 48 skipping to change at page 8, line 15
that it can validate (whether the response was an actual SOA answer that it can validate (whether the response was an actual SOA answer
or a NOERROR/NODATA with appropriate NSEC/NSEC3 records), the NTA is or a NOERROR/NODATA with appropriate NSEC/NSEC3 records), the NTA is
presumed no longer to be necessary and is removed. Implementations presumed no longer to be necessary and is removed. Implementations
SHOULD, by default, perform this operation. Note that under some SHOULD, by default, perform this operation. Note that under some
circumstances this is undesirable behavior (for example, if circumstances this is undesirable behavior (for example, if
www.example.com has a bad signature, but example.com/SOA is fine) and www.example.com has a bad signature, but example.com/SOA is fine) and
so implementations may wish to allow the operator to override this so implementations may wish to allow the operator to override this
spot-check / behavior. spot-check / behavior.
When removing the NTA, the implementation SHOULD remove all cached When removing the NTA, the implementation SHOULD remove all cached
entries below the NTA node. entries at and below the NTA node.
5. Comparison to Other DNS Misconfigurations 5. Comparison to Other DNS Misconfigurations
Domain administrators are ultimately responsible for managing and Domain administrators are ultimately responsible for managing and
ensuring their DNS records are configured correctly. ISPs or other ensuring their DNS records are configured correctly. ISPs or other
DNS recursive resolver operators cannot and should not correct DNS recursive resolver operators cannot and should not correct
misconfigured A, CNAME, MX, or other resource records of domains for misconfigured A, CNAME, MX, or other resource records of domains for
which they are not authoritative. Expecting non-authoritative which they are not authoritative. Expecting non-authoritative
entities to protect domain administrators from any misconfiguration entities to protect domain administrators from any misconfiguration
of resource records is therefore unrealistic and unreasonable, and in of resource records is therefore unrealistic and unreasonable, and in
the long-term is harmful to the delegated design of the DNS and could the long-term is harmful to the delegated design of the DNS and could
lead to extensive operational instability and/or variation. lead to extensive operational instability and/or variation.
With DNSSEC breakage, it is often possible to tell that there is a
misconfiguration by looking at the data and not needing to guess what
it should have been.
6. Intentionally Broken Domains 6. Intentionally Broken Domains
Some domains, such as dnssec-failed.org, have been intentionally Some domains, such as dnssec-failed.org, have been intentionally
broken for testing purposes broken for testing purposes
[Measuring-DNSSEC-Validation-of-Website-Visitors] [Netalyzr]. For [Measuring-DNSSEC-Validation-of-Website-Visitors] [Netalyzr]. For
example, dnssec-failed.org is a DNSSEC-signed domain that is broken. example, dnssec-failed.org is a DNSSEC-signed domain that is broken.
If an end user is querying a validating DNS recursive resolver, then If an end user is querying a validating DNS recursive resolver, then
this or other similarly intentionally broken domains should fail to this or other similarly intentionally broken domains should fail to
resolve and should result in a "Server Failure" error (RCODE 2, also resolve and should result in a "Server Failure" error (RCODE 2, also
known as 'SERVFAIL'). If such a domain resolved successfully, then known as 'SERVFAIL'). If such a domain resolved successfully, then
it is a sign that the DNS recursive resolver is not fully validating. it is a sign that the DNS recursive resolver is not fully validating.
Organizations that utilize Negative Trust Anchors should not add a Organizations that utilize Negative Trust Anchors should not add a
Negative Trust Anchor for any intentionally broken domain. Negative Trust Anchor for any intentionally broken domain. Such
additions are prevented by the requirement that the operator attempt
to contact the administrators for the zone that has broken DNSSEC.
Organizations operating an intentionally broken domain may wish to Organizations operating an intentionally broken domain may wish to
consider adding a TXT record for the domain to the effect of "This consider adding a TXT record for the domain to the effect of "This
domain is purposely DNSSEC broken for testing purposes". domain is purposely DNSSEC broken for testing purposes".
7. Other Considerations 7. Discovering broken domains
7.1. Security Considerations Discovering that a domain is DNSSEC broken as result of an operator
error instead of an attack is not trivial, and the examples here
should be vetted by an experienced professional before taking the
decision on implementing an negative trust anchor.
One of the key thing to look for when looking at a DNSSEC broken
domain is consistency and history. It therefore is good if you have
the ability to look at the server's DNS traffic over a long period of
time or have a database that stores DNS names associated answers
(this is often referred to as a "passive DNS database"). Another
invaluable tool is dnsviz (http://www.dnsivz.net) which also stores
DNSSEC related data historically. The drawback here is that you need
to have it test the domain before the incident occurs.
The first and easiest thing to check is if the failure of the domain
is consistent across different software implementations. If not, you
want to inform the vendor where it fails so that the vendor can look
more deeply into the issue.
The next thing is to figure out what the actual failure mode is.
There are several tools to do this, an incomplete list includes:
o DNSViz (http://dnsviz.net)
o Verisign DNSSEC debugger (http://dnssec-debugger.verisignlabs.com)
o iis.se DNS check (http://dnscheck.iis.se)
most of these tools are open source and can be installed locally.
However, using the tools over the Internet has the advantage of
providing visibility from a different point.
Once you figure out what the error is, you need to check if it shows
consistently around the world and from all authoritative servers.
Use DNS Tools (dig) or DNS looking glasses to verify this. An error
that is consistently the same is more likely to be operator caused
than an attack. Also if the output from the authoritative server is
consistently different from the resolvers output this hints to an
attack rather then an error, unless there is EDNS0 client subnet
(draft-ietf-dnsop-edns-client-subnet) applied to the domain.
A last check is to look at the actual DNS data. Is the result of the
query still the same or has it changed? While a lot of DNSSEC errors
occur on events that change DNSSEC data, the actual record someone
wants to go to often stays the same. If the data is the same, this
is an indication (not a guarantee) that the error is operator caused.
Keep in mind that with DNS being used to globally balance traffic the
data associated to a name might be different in different parts of
the Internet.
Here are some examples of common DNSSEC failures that have been seen
as operator signing errors on the Internet:
o RRSIG timing issue. Each signature has an inception time and
expiry time, between which it is valid. Letting this time expire
without creating a new signature is one of the most common DNSSEC
errors. To a lesser extent, this also occurs if signatures were
made active before the inception time. For all of these errors
your primary check is to check on the data. Signature expiration
is also about the only error we see on actual data (like
www.example.com). All other errors are more or less related to
dealing with the chain of trust established by DS records in the
parent zone and DNSKEYs in the child zones. These mostly occur
during key rollovers, but are not limited to that.
o DNSKEYs in child zone don't match the DS record in the parent
zone. There is a big variation of this that can happen at any
point in the key lifecycle. DNSViz is the best tools to show
problems in the chain. If you debug yourself use dig +multiline
so that you can see the key id of a DNSKEY. Common Variations of
this can be:
* DS pointing to a non existent key in the child zone. Questions
for consideration here include: Has there ever been a key (and,
if so, was it used)? Has there been a recent change in the
DNSKEY RRSet (indicating a key rollover)? Has the actual data
in the zone changed? Is the zone DNSSEC signed at all and has
it been in the past?
* DS pointing to an existent key, but no signatures are made with
the key. The checks above should be done, with the addition of
checking if another key in the DNSKEY RRSet is now used to sign
the records.
* Data in DS or DNSKEY doesn't match the other. This is more
common in initial setup when there was a copy and paste error.
Again checking history on data is the best you can do there.
All of the above is just a starting point for consideration when
deciding whether or not to deploy a trust anchor. It is not possible
to provide a simple checklist to run through to determine if a domain
is broken because of an attack or an operator error.
8. Other Considerations
8.1. Security Considerations
End to end DNSSEC validation will be disabled during the time that a End to end DNSSEC validation will be disabled during the time that a
Negative Trust Anchor is used. In addition, the Negative Trust Negative Trust Anchor is used. In addition, the Negative Trust
Anchor may be in place after the point in time when the DNS Anchor may be in place after the point in time when the DNS
misconfiguration that caused validation to break has been fixed. misconfiguration that caused validation to break has been fixed.
Thus, there may be a gap between when a domain has been re-secured Thus, there may be a gap between when a domain has been re-secured
and when a Negative Trust Anchor is removed. In addition, a Negative and when a Negative Trust Anchor is removed. In addition, a Negative
Trust Anchor may be put in place by DNS recursive resolver operators Trust Anchor may be put in place by DNS recursive resolver operators
without the knowledge of the authoritative domain administrator for a without the knowledge of the authoritative domain administrator for a
given domain name. However, attempts SHOULD be made to contact and given domain name. However, attempts SHOULD be made to contact and
inform the domain administrator prior to putting the NTA in place. inform the domain administrator prior to putting the NTA in place.
End users of a DNS recursive resolver or other people may wonder why One side effect of implementing an NTA is that it may break client
a domain that fails DNSSEC validation resolves with a supposedly applications that assume that a domain is signed and expect an AD bit
validating resolver. As a result, implementors should consider in the response. It is expected that many application that require
transparently disclosing those Negative Trust Anchors which are DNSSEC for a domain will perform their own validation, and so this
currently in place or were in place in the past, such as on a website should not be a major issue.
[Disclosure-Example]. This is particularly important since there is
currently no special DNS query response code that could indicate to
end users or applications that a Negative Trust Anchor is in place.
Such disclosures should optimally include both the data and time that
the Negative Trust Anchor was put in place and when it was removed.
7.2. Privacy Considerations 8.2. Privacy Considerations
There are no privacy considerations in this document. There are no privacy considerations in this document.
7.3. IANA Considerations 8.3. IANA Considerations
There are no IANA considerations in this document. There are no IANA considerations in this document.
8. Acknowledgements 9. Acknowledgements
Several people made contributions of text to this document and/or Several people made contributions of text to this document and/or
played an important role in the development and evolution of this played an important role in the development and evolution of this
document. This in some cases included performing a detailed review document. This in some cases included performing a detailed review
of this document and then providing feedback and constructive of this document and then providing feedback and constructive
criticism for future revisions, or engaging in a healthy debate over criticism for future revisions, or engaging in a healthy debate over
the subject of the document. All of this was helpful and therefore the subject of the document. All of this was helpful and therefore
the following individuals merit acknowledgement: Joe Abley,John the following individuals merit acknowledgement: Joe Abley,John
Barnitz, Tom Creighton, Marco Davids, Brian Dickson, Patrik Falstrom, Barnitz, Tom Creighton, Marco Davids, Brian Dickson, Patrik Falstrom,
Tony Finch, Chris Ganster, Olafur Gudmundsson, Peter Hagopian, Wes Tony Finch, Chris Ganster, Olafur Gudmundsson, Peter Hagopian, Wes
Hardaker, Paul Hoffman, Shane Kerr, Murray Kucherawy, Rick Lamb, Marc Hardaker, Paul Hoffman, Shane Kerr, Murray Kucherawy, Rick Lamb, Marc
Lampo, Ted Lemon, Antoin Verschuren, Paul Vixie, Patrik Wallstrom, Lampo, Scott Rose, Ted Lemon, Antoin Verschuren, Paul Vixie, Patrik
Nick Weaver Wallstrom, Nick Weaver
Edward Lewis, Evan Hunt, Andew Sullivan and Tatuya Jinmei provided Edward Lewis, Evan Hunt, Andew Sullivan and Tatuya Jinmei provided
especially large amounts of text and / or detailed review. especially large amounts of text and / or detailed review.
9. References 10. References
9.1. Normative References 10.1. Normative References
[RFC4033] Arends, R., Austein, R., Larson, M., Massey, D., and S. [RFC4033] Arends, R., Austein, R., Larson, M., Massey, D., and S.
Rose, "DNS Security Introduction and Requirements", RFC Rose, "DNS Security Introduction and Requirements", RFC
4033, March 2005. 4033, March 2005.
[RFC5914] Housley, R., Ashmore, S., and C. Wallace, "Trust Anchor [RFC5914] Housley, R., Ashmore, S., and C. Wallace, "Trust Anchor
Format", RFC 5914, June 2010. Format", RFC 5914, June 2010.
[RFC6781] Kolkman, O., Mekking, W., and R. Gieben, "DNSSEC [RFC6781] Kolkman, O., Mekking, W., and R. Gieben, "DNSSEC
Operational Practices, Version 2", RFC 6781, December Operational Practices, Version 2", RFC 6781, December
2012. 2012.
9.2. Informative References 10.2. Informative References
[Alexa] Alexa, an Amazon.com Company, "Alexa "The top 500 sites on
the web. "", , May 2015, <http://www.alexa.com/topsites>.
[Disclosure-Example] [Disclosure-Example]
Comcast, "faa.gov Failing DNSSEC Validation (Fixed)", Comcast, "faa.gov Failing DNSSEC Validation (Fixed)",
Comcast , February 2013, Comcast , February 2013,
<http://dns.comcast.net/index.php/entry/ <http://dns.comcast.net/index.php/entry/
faa-gov-failing-dnssec-validation-fixed>. faa-gov-failing-dnssec-validation-fixed>.
[Measuring-DNSSEC-Validation-of-Website-Visitors] [Measuring-DNSSEC-Validation-of-Website-Visitors]
Mens, J., "Is my Web site being used via a DNSSEC- Mens, J., "Is my Web site being used via a DNSSEC-
validator?", July 2012, <http://jpmens.net/2012/07/30/ validator?", July 2012, <http://jpmens.net/2012/07/30/
is-my-web-site-being-used-via-dnssec-validator/>. is-my-web-site-being-used-via-dnssec-validator/>.
[Netalyzr] [Netalyzr]
Weaver, N., Kreibich, C., Nechaev, B., and V. Paxson, Weaver, N., Kreibich, C., Nechaev, B., and V. Paxson,
"Implications of Netalyzr's DNS Measurements", Securing "Implications of Netalyzr's DNS Measurements", Securing
and Trusting Internet Names, SATIN 2011 SATIN 2011, April and Trusting Internet Names, SATIN 2011 SATIN 2011, April
2011, <http://conferences.npl.co.uk/satin/presentations/ 2011, <http://conferences.npl.co.uk/satin/presentations/
satin2011slides-Weaver.pdf>. satin2011slides-Weaver.pdf>.
[Unbound-Configuration] [Unound-Configuration]
Wijngaards, W., "Unbound: How to Turn Off DNSSEC", June Wijngaards, W., "Unbound: How to Turn Off DNSSEC", June
2010, <http://unbound.net/documentation/ 2010, <http://unbound.net/documentation/
howto_turnoff_dnssec.html>. howto_turnoff_dnssec.html>.
Appendix A. Configuration Examples Appendix A. Configuration Examples
The section contains example configurations to achieve Negative Trust The section contains example configurations to achieve Negative Trust
Anchor functionality for the zone foo.example.com. Anchor functionality for the zone foo.example.com.
Note: These are simply examples - nameserver operators are expected Note: These are simply examples - nameserver operators are expected
to test and understand the implications of these operations. Note to test and understand the implications of these operations. Note
also that some of available implementations may not implement all also that some of available implementations may not implement all
recommended functionality in this document. In that case it is recommended functionality in this document. In that case it is
advisable to request the developer or vendor of the implementation to advisable to request the developer or vendor of the implementation to
support the missing feature, rather than start using the incomplete support the missing feature, rather than start using the incomplete
implementation. implementation.
A.1. NLNet Labs Unbound A.1. NLNet Labs Unbound
Unbound lets us simply disable validation checking for a specific Unbound lets us simply disable validation checking for a specific
zone. See: <http://unbound.net/documentation/ zone.
howto_turnoff_dnssec.html>
For additional information see [Unound-Configuration]
server: server:
domain-insecure: "foo.example.com" domain-insecure: "foo.example.com"
A.2. ISC BIND A.2. ISC BIND
Use the "rndc" command: Use the "rndc" command:
nta -dump nta -dump
List all negative trust anchors. List all negative trust anchors.
nta [-lifetime duration] [-force] domain [view] nta [-lifetime duration] [-force] domain [view]
Set a negative trust anchor, disabling DNSSEC validation Set a negative trust anchor, disabling DNSSEC validation
for the given domain. for the given domain.
Using -lifetime specifies the duration of the NTA, up Using -lifetime specifies the duration of the NTA, up
to one week. The default is one hour. to one week. The default is one hour.
Using -force prevents the NTA from expiring before its Using -force prevents the NTA from expiring before its
full lifetime, even if the domain can validate sooner. full lifetime, even if the domain can validate sooner.
nta -remove domain [view] nta -remove domain [view]
Remove a negative trust anchor, re-enabling validation Remove a negative trust anchor, re-enabling validation
for the given domain. for the given domain.
A.3. Nominum Vantio A.3. Nominum Vantio
** **
*negative-trust-anchors* *negative-trust-anchors*
_Format_: name _Format_: name
_Command Channel_: view.update name=world negative-trust- _Command Channel_: view.update name=world negative-trust-
anchors=(foo.example.com) anchors=(foo.example.com)
_Command Channel_: resolver.update name=res1 negative-trust- _Command Channel_: resolver.update name=res1 negative-trust-
anchors=(foo.example.com) anchors=(foo.example.com)
*Description*: Disables DNSSEC validation for a domain, even if the *Description*: Disables DNSSEC validation for a domain, even if the
domain is under an existing security root. domain is under an existing security root.
Appendix B. Discovering broken domains Appendix B. Document Change Log
Discovering that a domain is DNSSEC broken as result of an operator
error instead of an attack is not trivial, and the examples here
should be vetted by an experienced professional before taking the
decision on implementing an negative trust anchor.
One of the key thing to look for when looking at a DNSSEC broken
domain is consistency and history. It therefore is good if you have
the ability to look at the server's DNS traffic over a long period of
time or have a database that stores DNS names associated answers
(this is often referred to as a "passive DNS database"). Another
invaluable tool is dnsviz (http://www.dnsivz.net) which also stores
DNSSEC related data historically. The drawback here is that you need
to have it test the domain before the incident occurs.
The first and easiest thing to check is if the failure of the domain
is consistent across different software implementations. If not, you
want to inform the vendor where it fails so that the vendor can look
more deeply into the issue.
The next thing is to figure out what the actual failure mode is.
There are several tools do this, an incomplete list includes:
o DNSViz (http://dnsviz.net)
o Verisign DNSSEC debugger (http://dnssec-debugger.verisignlabs.com)
o iis.se DNS check (http://dnscheck.iis.se)
most of these tools are open source and can be installed locally.
However, using the tools over the Internet has the advantage of
providing visibility from a different point.
Once you figure out what the error is, you need to check if it shows
consistently around the world and from all authoritative servers.
Use DNS Tools (dig) or DNS looking glasses to verify this. An error
that is consistently the same is more likely to be operator caused
than an attack. Also if the output from the authoritative server is
consistently different from the resolvers output this hints to an
attack rather then an error, unless there is EDNS0 client subnet
(draft-ietf-dnsop-edns-client-subnet) applied to the domain.
A last check is to look at the actual DNS data. Is the result of the
query still the same or has it changed? While a lot of DNSSEC errors
occur on events that change DNSSEC data, the actual record someone
wants to go to often stays the same. If the data is the same, this
is an indication (not a guarantee) that the error is operator caused.
Keep in mind that with DNS being used to globally balance traffic the
data associated to a name might be different in different parts of
the Internet.
Here are some examples of common DNSSEC failures that have been seen
as operator signing errors on the Internet:
o RRSIG timing issue. Each signature has an inception time and
expiry time, between which it is valid. Letting this time expire
without creating a new signature is one of the most common DNSSEC
errors. To a lesser extent, this also occurs if signatures were
made active before the inception time. For all of these errors
your primary check is to check on the data. Signature expiration
is also about the only error we see on actual data (like
www.example.com). All other errors are more or less related to
dealing with the chain of trust established by DS records in the
parent zone and DNSKEYs in the child zones. These mostly occur
during key rollovers, but are not limited to that.
o DNSKEYs in child zone don't match the DS record in the parent
zone. There is a big variation of this that can happen at any
point in the key lifecycle. DNSViz is the best tools to show
problems in the chain. If you debug yourself use dig +multiline
so that you can see the key id of a DNSKEY. Common Variations of
this can be:
o DS pointing to a non existent key in the child zone. Questions
for consideration here include: Has there ever been a key (and, if
so, was it used)? Has there been a recent change in the DNSKEY
RRSet (indicating a key rollover)? Has the actual data in the
zone changed? Is the zone DNSSEC signed at all and has it been in
the past?
o DS pointing to an existent key, but no signatures are made with [RFC Editor: This section is to be removed before publication]
the key. The checks above should be done, with the addition of
checking if another key in the DNSKEY RRSet is now used to sign
the records.
o Data in DS or DNSKEY doesn't match the other. This is more common -06 to 07
in initial setup when there was a copy and paste error. Again
checking history on data is the best you can do there.
All of the above is just a starting point for consideration when Addressed a large number of comments from Paul Hoffman, Scott Rose
deciding whether or not to deploy a trust anchor. It is not possible and some more from Jinmei.
to provide a simple checklist to run through to determine if a domain
is broken because of an attack or an operator error.
Appendix C. Document Change Log -05 to -06
[RFC Editor: This section is to be removed before publication] o A bunch of comments from Tony Finch.
-04 to -05 -04 to -05
o A large bunch of cleanups from Jinmei. Thanks! o A large bunch of cleanups from Jinmei. Thanks!
o Also clarified that if there is an NTA at foo.bar.baz.example, and o Also clarified that if there is an NTA at foo.bar.baz.example, and
a positive *trust anchor* at bar.baz.example, the most specific a positive *trust anchor* at bar.baz.example, the most specific
wins. I'm not very happy with this text, any additional text wins. I'm not very happy with this text, any additional text
gratefully accepted... gratefully accepted...
 End of changes. 37 change blocks. 
181 lines changed or deleted 205 lines changed or added

This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/