ietf-corpus

rfc-3445

Limiting the Scope of the KEY Resource Record (RR)

D. Massey, S. Rose
date2002-12 streamIETF areaint wgdnsext statusPROPOSED STANDARD pages10 canonicalhttps://www.rfc-editor.org/rfc/rfc3445 doi10.17487/RFC3445 errataview
This document limits the Domain Name System (DNS) KEY Resource Record (RR) to only keys used by the Domain Name System Security Extensions (DNSSEC). The original KEY RR used sub-typing to store both DNSSEC keys and arbitrary application keys. Storing both DNSSEC and application keys with the same record type is a mistake. This document removes application keys from the KEY record by redefining the Protocol Octet field in the KEY RR Data. As a result of removing application keys, all but one of the flags in the KEY record become unnecessary and are redefined. Three existing application key sub-types are changed to reserved, but the format of the KEY record is not changed. This document updates RFC 2535. [STANDARDS-TRACK]

obsoleted by

updates

Extracted elements (18)

design-rationale §2.1

A compromise of an application key stored in the KEY RR could allow an attacker to forge DNS data from the affected zone and all sub-zones if resolvers do not carefully check the KEY sub-type. Separating application keys from DNSSEC keys eliminates this vulnerability entirely.

dns, security

design-rationale §2.1

Application keys are not part of the DNS chain of trust and are never configured as trusted keys in the DNS hierarchy, whereas DNSSEC zone keys must be exchanged with parent zones and authenticated via chain of trust. Mixing them forces resolvers to handle application keys as if they were DNS infrastructure, creating unnecessary complexity.

dns, security

design-rationale §2

Storing DNSSEC keys and application keys (Email, IPSEC, TLS) in the same KEY RR sub-type is a mistake because they differ in purpose, management, authentication rules, nameserver handling, resolver processing, and fault consequences. A resolver cannot request a specific sub-type directly and must retrieve the entire KEY RR set, and DNSSEC signatures apply to the entire set regardless of sub-type.

dns, security

interoperability-note §5

DNSSEC non-zone KEY RRs (SIG(0)/TKEY keys) are backwards compatible under this specification, but the distinction between host keys and user keys (flag bit 6) is permanently lost.

dns

interoperability-note §5

DNSSEC zone KEY RRs remain fully backwards compatible: a properly formatted RFC 2535 zone KEY would already have all flag bits except bit 7 set to 0 and the protocol octet set to 3, which is exactly what this document requires.

dns

interoperability-note §5

No backwards compatibility is provided for application keys (Email, IPSEC, TLS). Any such keys stored in KEY RRs are now deprecated, and the problems they caused (keys at the zone apex, large RR sets) motivated this change regardless.

dns

normative-requirement §3 MUST

All flag bits in the KEY RR except bit 7 (Zone bit) MUST be set to zero. Bit 7 indicates whether the key is a DNS Zone key.

dns

normative-requirement §4 REQUIRED

Assignment of any future KEY RR Flag values or Protocol Octet values requires a standards action.

dns, registry

normative-requirement §4 MUST NOT

KEY RRs with a protocol octet value other than 3 MUST NOT be used to authenticate DNS data, even if they appear in an accepted KEY RR set.

dns, security

normative-requirement §4 SHOULD

Name servers and resolvers SHOULD accept KEY RR sets that contain KEY RRs with a protocol octet value other than 3, to avoid invalidating associated SIG records or creating caching consistency problems with out-of-date zones.

dns

normative-requirement §4 MUST

The A/C bits (bits 0 and 1) in the KEY RR flags field are eliminated; they MUST be set to 0 and MUST be ignored by the receiver.

dns

normative-requirement §4 MUST NOT

The authoritative data for a zone MUST NOT include any KEY records with a protocol octet other than 3.

dns

normative-requirement §4 MUST

The extended flags bit (bit 3), the host/user bit (bit 6), and the signatory field (bits 12-15) are all eliminated; each MUST be set to 0 and MUST be ignored by the receiver.

dns

normative-requirement §3 MUST

The protocol field in the KEY RR MUST be set to 3 (DNSSEC). All other protocol octet values are now reserved.

dns

protocol-element §3

The KEY RR uses type 25 and is restricted to storing DNSSEC keys only. In the flags field, all bits except bit 7 (Zone bit) are reserved. Bit 7 set to 1 indicates a DNS Zone key; set to 0 indicates a non-zone DNSSEC key (e.g., SIG(0)/TKEY).

dns

registry §7

The IANA registry for DNS KEY RR Protocol Octet values is closed for new assignments. Values 1 (Email), 2 (IPSEC), 4 (TLS), and 255 (ANY) are re-assigned to RESERVED; value 3 (DNSSEC) remains unchanged; values 5-254 remain reserved. Future assignments require a standards action.

dns, registry

security-consideration §8

Prior to this document, a compromised application key stored in the KEY RR could be used as a false DNS zone key to generate false SIG records. Resolvers that did not carefully check the KEY sub-type would accept these false signatures and incorrectly authenticate DNS data. Restricting the KEY RR to DNSSEC use eliminates this vulnerability entirely.

dns, security

wire-format §3

The KEY RR RDATA consists of a 16-bit flags field, an 8-bit protocol octet, an 8-bit algorithm field, and a variable-length public key. The format is unchanged from RFC 2535; only the semantics of the flags and protocol fields are restricted.

dns