ietf-corpus

rfc-8145

Signaling Trust Anchor Knowledge in DNS Security Extensions (DNSSEC)

D. Wessels, W. Kumari, P. Hoffman
date2017-04 streamIETF areaops wgdnsop statusPROPOSED STANDARD pages13 canonicalhttps://www.rfc-editor.org/rfc/rfc8145 doi10.17487/RFC8145
The DNS Security Extensions (DNSSEC) were developed to provide origin authentication and integrity protection for DNS data by using digital signatures. These digital signatures can be verified by building a chain of trust starting from a trust anchor and proceeding down to a particular node in the DNS. This document specifies two different ways for validating resolvers to signal to a server which keys are referenced in their chain of trust. The data from such signaling allow zone administrators to monitor the progress of rollovers in a DNSSEC-signed zone.

updated by

Extracted elements (25)

design-rationale §1.1

QNAME-based Key Tag queries are recommended only for trust anchors (not all DNSKEY queries) because each Key Tag query is a separate DNS transaction, whereas the EDNS option is piggybacked on an existing DNSKEY query at no extra query cost.

dns

design-rationale §1.1

The QNAME-based Key Tag query approach was chosen over a pure EDNS(0) option approach because EDNS(0) is hop-by-hop and unknown option codes are not forwarded by default, middleboxes may block queries with unknown EDNS(0) options, and recursive resolvers would need to maintain state for stub client Key Tags across queries.

dns

interoperability-note §5.3.1

Aggressive NSEC/NSEC3 negative caching can suppress Key Tag queries when responses are NXDOMAIN. Zone operators should consider adding explicit NULL records for expected Key Tag QNAMEs (e.g., '_ta-1111', '_ta-2222', '_ta-1111-2222') to prevent aggressive negative caching from reducing signaling fidelity during rollovers.

dns, security

normative-requirement §4.2 MUST NOT

A DNS client MUST NOT include Key Tag values for keys that were not learned via a trust anchor or DS records.

dns, security

normative-requirement §4.2 MUST NOT

A DNS client MUST NOT include the edns-key-tag option in non-DNSKEY queries.

dns, security

normative-requirement §4.2 SHOULD

A DNS client SHOULD include the edns-key-tag option when issuing a DNSKEY query for a zone corresponding to a trust anchor, and SHOULD also set the DNSSEC OK (DO) bit in the OPT RR.

dns, security

normative-requirement §5.2 MUST NOT

A non-validating DNS resolver MUST NOT originate Key Tag queries, and a validating resolver SHOULD NOT originate Key Tag queries when issuing DNSKEY queries for non-trust anchor zones.

dns

normative-requirement §4.3 MUST NOT

A responder (authoritative name server) MUST NOT include the edns-key-tag option in any DNS response.

dns

normative-requirement §5.2 SHOULD

A validating DNS resolver SHOULD originate a Key Tag query whenever it also originates a DNSKEY query for a trust anchor zone; the trigger for a DNSKEY query is simultaneously the trigger for the Key Tag query.

dns, security

normative-requirement §5.3 MUST

An authoritative name server MUST generate an appropriate response to a Key Tag query; the response code is determined by whether the data is in the zone file or covered by wildcards, with no special built-in logic required.

dns

normative-requirement §5.1 MUST

Hexadecimal Key Tag values in the Key Tag query QNAME MUST be zero-padded to four hexadecimal digits, and when multiple Key Tags are present they MUST be sorted from smallest to largest.

dns

normative-requirement §4.2 MUST

If a client receives edns-key-tag option values in a DNS response, it MUST ignore those values; the option is only meaningful in queries.

dns

normative-requirement §4.2.2.2 SHOULD

Non-validating recursive resolvers SHOULD copy the edns-key-tag option seen in received queries when forwarding, as it represents the wishes of the validating downstream resolver that issued the original query.

dns

normative-requirement §4.2.1.2 MUST NOT

Non-validating stub resolvers MUST NOT include the edns-key-tag option in any query.

dns, security

normative-requirement §4.2.2.1 MUST NOT

Validating recursive resolvers MUST NOT set the edns-key-tag option in the final response returned to the stub client.

dns, security

normative-requirement §4.2.2.1 SHOULD

When a validating recursive resolver receives a query with an edns-key-tag option whose Key Tag list differs from its own, it SHOULD forward both lists using separate instances of the edns-key-tag option code in the OPT RR.

dns, security

normative-requirement §7 SHOULD

Zone operators relying on the edns-key-tag mechanism SHOULD take care to ensure new keys have unique Key Tag values, since DNSSEC does not require unique Key Tags and collisions can occur during rollovers.

dns, security

privacy-consideration §8 RECOMMENDED

Implementations MAY be administratively configured to transmit Key Tags only for certain zones. Since the primary motivation is root zone key rollover measurement, implementations SHOULD at least include edns-key-tag for root zone DNSKEY queries.

dns, privacy

privacy-consideration §8

Key Tag values can serve as a fingerprint to identify particular validating DNS clients, especially if the resolver is configured with trust anchors for zones beyond the root. Resolvers MAY transmit Key Tags only for a subset of queries (e.g., every 25th) or with a certain probability (e.g., 5%) to mitigate this.

dns, privacy

protocol-element §5.1

A Key Tag query is a standard DNS query of type NULL and class IN. The QNAME begins with '_ta-' followed by a sorted, hyphen-separated list of zero-padded four-digit hexadecimal Key Tag values, appended with the trust anchor zone name (e.g., '_ta-4444.' for root zone Key Tag 17476 decimal).

dns, security

protocol-element §1

The two signaling mechanisms defined are both OPTIONAL: (1) an edns-key-tag EDNS(0) option sent with DNSKEY queries, and (2) periodic Key Tag queries (type NULL, class IN) sent to the authoritative server for the trust anchor zone. Each independently conveys the Key Tags of trust anchors used by the resolver.

dns, security

registry §6

IANA assigned EDNS0 option code 14 to 'edns-key-tag' (Status: Optional) in the 'DNS EDNS0 Option Codes (OPT)' registry.

dns, registry

security-consideration §7

An eavesdropper or malicious server could infer the DNSSEC validator in use by observing the Key Tag list, potentially identifying resolvers using old or broken keys or those with known vulnerabilities that could be exploited.

dns, security, privacy

security-consideration §7

Key Tag values in signaling queries might be fabricated by DNS clients with malicious intent; an attacker with sufficient resources could flood queries containing only old Key Tag values to delay completion of a key rollover.

dns, security

wire-format §4.1

The edns-key-tag EDNS(0) option encodes a 16-bit OPTION-CODE (value 14), a 16-bit OPTION-LENGTH equal to 2 times the number of Key Tag values, and one or more 16-bit KEY-TAG fields listing the Key Tags of trust anchors or KSKs used for validation.

dns, security, registry