ietf-corpus

rfc-8624

Algorithm Implementation Requirements and Usage Guidance for DNSSEC

P. Wouters, O. Sury
date2019-06 streamIETF areaops wgdnsop statusPROPOSED STANDARD pages11 canonicalhttps://www.rfc-editor.org/rfc/rfc8624 doi10.17487/RFC8624
The DNSSEC protocol makes use of various cryptographic algorithms in order to provide authentication of DNS data and proof of nonexistence. To ensure interoperability between DNS resolvers and DNS authoritative servers, it is necessary to specify a set of algorithm implementation requirements and usage guidelines to ensure that there is at least one algorithm that all implementations support. This document defines the current algorithm implementation requirements and usage guidance for DNSSEC. This document obsoletes RFC 6944.

obsoleted by

obsoletes

updated by

Extracted elements (26)

design-rationale §1.2

Algorithm deprecation is performed gradually through incremental updates rather than abrupt removal. An algorithm is expected to be downgraded from MUST to NOT RECOMMENDED or MAY (not MUST NOT) unless there are strong security reasons, allowing implementations time to adapt while maintaining interoperability.

dns, crypto, security

design-rationale §3.1

ED25519 is expected to become the future RECOMMENDED default DNSKEY algorithm. EdDSA's key advantages are: no unique random number required per signature, no padding/truncation issues unlike ECDSA, and greater resilience to side-channel attacks and implementation errors.

dns, crypto

design-rationale §3.1

RSASHA512 is NOT RECOMMENDED for signing despite having no significant cryptographic advantage over RSASHA256, because broader deployment would only make deprecation of older algorithms harder. Users wanting stronger algorithms should switch to elliptic curve cryptography.

dns, crypto

design-rationale §1.2

Since using an unknown DNSKEY algorithm causes a zone to be treated as insecure (equivalent to unsigned), algorithms downgraded to NOT RECOMMENDED or lower should not be used by authoritative nameservers and DNSSEC signers for new DNSKEYs, allowing deprecated algorithms to gradually disappear.

dns, security

design-rationale §1.2

The document uses the terms RECOMMENDED and NOT RECOMMENDED (rather than SHOULD and SHOULD NOT per RFC 2119) because these terms more clearly express intent to implementers, even though RFC 2119 treats them as equivalent.

dns, process

interoperability-note §3.1

It is RECOMMENDED to use the deterministic digital signature generation procedure (RFC 6979) when implementing ECDSAP256SHA256 and ECDSAP384SHA384, to avoid private key exposure from weak random number generation.

dns, crypto, security

interoperability-note §1.2

Recursive nameservers are encouraged to retain support for all algorithms not marked as MUST NOT, to maintain interoperability with zones still using older but not yet prohibited algorithms.

dns, security

normative-requirement §3.1 MUST NOT

DSA (algorithm 3) and DSA-NSEC3-SHA1 (algorithm 6) MUST NOT be used for DNSSEC signing or validation. These algorithms are not widely deployed and are vulnerable to private key compromise when using a weak or compromised random number generator.

dns, crypto, security

normative-requirement §5 MUST

During a DS algorithm rollover, administrators MUST complete the DS algorithm upgrade before starting a rollover process for a new KSK; upgrading an algorithm simultaneously with a KSK rollover will cause DNSSEC validation failures.

dns, security

normative-requirement §3.1 MUST NOT

ECC-GOST (algorithm 12) MUST NOT be used for DNSSEC signing; it MAY be supported for validation. It has been superseded by GOST R 34.10-2012, which has not been standardized for DNSSEC.

dns, crypto, security

normative-requirement §3.1 MUST

ECDSAP256SHA256 (algorithm 13) MUST be supported for both DNSSEC signing and validation. It is widely deployed and provides more cryptographic strength with shorter signatures than RSA-based algorithms.

dns, crypto, security

normative-requirement §3.2 RECOMMENDED

ECDSAP256SHA256 is the RECOMMENDED DNSKEY algorithm for new DNSSEC deployments, and users of RSA-based algorithms SHOULD upgrade to ECDSAP256SHA256.

dns, crypto

normative-requirement §3.1 RECOMMENDED

ECDSAP384SHA384 (algorithm 14) MAY be used for DNSSEC signing and is RECOMMENDED for validation. It offers 192-bit security strength versus 128-bit for ECDSAP256SHA256.

dns, crypto, security

normative-requirement §3.1 RECOMMENDED

ED25519 (algorithm 15) is RECOMMENDED for both DNSSEC signing and validation. EdDSA does not require a unique random number per signature, avoids padding/truncation issues, and is more resilient to side-channel attacks.

dns, crypto, security

normative-requirement §3.1 RECOMMENDED

ED448 (algorithm 16) MAY be used for DNSSEC signing and is RECOMMENDED for validation. It shares the advantages of ED25519 via the EdDSA algorithm.

dns, crypto, security

normative-requirement §3.3 MUST NOT

For DS and CDS records, SHA-1 (digest type 1) MUST NOT be used to generate new DS and CDS records, but validators MUST implement SHA-1 validation due to its wide deployment.

dns, crypto, security

normative-requirement §3.1 MUST NOT

RSAMD5 (algorithm 1) MUST NOT be used for DNSSEC signing and MUST NOT be used for DNSSEC validation. There is an industry-wide trend to deprecate MD5 usage.

dns, crypto, security

normative-requirement §3.1 MUST

RSASHA1 (algorithm 5) and RSASHA1-NSEC3-SHA1 (algorithm 7) are NOT RECOMMENDED for DNSSEC signing but MUST be supported for DNSSEC validation to maintain interoperability with widely deployed zones.

dns, crypto, security

normative-requirement §3.1 MUST

RSASHA256 (algorithm 8) MUST be supported for both DNSSEC signing and DNSSEC validation. It is widely used and considered strong.

dns, crypto, security

normative-requirement §3.1 MUST

RSASHA512 (algorithm 10) is NOT RECOMMENDED for DNSSEC signing but MUST be implemented for DNSSEC validation to ensure interoperability. There is no significant cryptographic strength difference between RSASHA512 and RSASHA256.

dns, crypto, security

normative-requirement §3.3 MUST

SHA-256 (DS digest type 2) MUST be supported for both DS/CDS delegation and validation. It is widely used, considered strong, and is the RECOMMENDED DS and CDS algorithm.

dns, crypto, security

normative-requirement §3.3 MUST NOT

The NULL DS type (digest type 0, CDS only) MUST NOT be used for delegation or validation except as a special signal for DS removal at the parent as defined in RFC 8078.

dns, security

protocol-element §3.1

DNSKEY algorithms covered by this document include RSAMD5 (1), DSA (3), RSASHA1 (5), DSA-NSEC3-SHA1 (6), RSASHA1-NSEC3-SHA1 (7), RSASHA256 (8), RSASHA512 (10), ECC-GOST (12), ECDSAP256SHA256 (13), ECDSAP384SHA384 (14), ED25519 (15), and ED448 (16), each with distinct signing and validation requirement levels.

dns, crypto, registry

protocol-element §3.3

DS and CDS digest algorithms covered include NULL (0, CDS only), SHA-1 (1), SHA-256 (2), GOST R 34.11-94 (3), and SHA-384 (4), with separate recommendation levels for delegation use and validation.

dns, crypto, registry

security-consideration §4

Retiring an algorithm too quickly would cause zones signed with that algorithm to be downgraded to the equivalent of unsigned zones. Therefore, algorithm deprecation must be done very slowly and only after careful consideration and measurement of deployment levels.

dns, security, crypto

security-consideration §4

The algorithms identified as MUST or RECOMMENDED are not known to be cryptographically broken at publication time, but new revisions of this document are expected periodically to reflect evolving best practices as cryptographic research advances.

dns, security, crypto