ietf-corpus

rfc-3110

RSA/SHA-1 SIGs and RSA KEYs in the Domain Name System (DNS)

D. Eastlake 3rd
date2001-05 streamIETF areaint wgdnsext statusPROPOSED STANDARD pages7 canonicalhttps://www.rfc-editor.org/rfc/rfc3110 doi10.17487/RFC3110 errataview
This document describes how to produce RSA/SHA1 SIG resource records (RRs) in Section 3 and, so as to completely replace RFC 2537, describes how to produce RSA KEY RRs in Section 2. [STANDARDS-TRACK]

obsoletes

updated by

Extracted elements (15)

design-rationale §4

A public exponent of 3 minimizes signature verification effort, making it acceptable for DNSSEC authentication-only use. However, 65537 (F4) is recommended for keys that may also be used for confidentiality, since exponent-3 keys are vulnerable to Chinese Remainder Theorem attacks when the same data is encrypted under three such keys.

dns, crypto, security

design-rationale §1

MD5 was replaced by SHA1 because continued cryptographic research revealed hints of weakness in MD5. SHA1 produces a larger hash and is generally acknowledged to be stronger, making it appropriate for high-value DNS zones such as root and top-level domains.

dns, crypto, security

design-rationale §4

RSA signature verification is an order of magnitude faster than DSA when a small public exponent is used, making RSA preferable for DNS data authentication where verifiers significantly outnumber signers.

dns, crypto

design-rationale §3

The SHA1 prefix (ASN.1 BER algorithm designator) is included in the signature structure to make it easier to use standard cryptographic libraries that expect PKCS1-formatted input.

dns, crypto

interoperability-note §1

RFC 3110 completely obsoletes RFC 2537. The algorithm number for RSA KEY RRs is changed from the RFC 2537 value to algorithm number 5, which is also used for RSA/SHA1 SIG RRs. Implementations must use the new algorithm number.

dns, crypto

normative-requirement §2 MUST

For interoperability, the exponent and modulus are each limited to 4096 bits in length. Leading zero octets are prohibited in the exponent and modulus.

dns, crypto

normative-requirement §1 MUST

Implementation of the RSA algorithm in DNS with SHA1 is MANDATORY for DNSSEC. The generation of RSA/MD5 SIG RRs as described in RFC 2537 is NOT RECOMMENDED.

dns, crypto, security

normative-requirement §2 MUST

KEY RRs for use with RSA/SHA1 DNS signatures MUST use algorithm number 5 rather than the algorithm number specified in the obsoleted RFC 2537.

dns, crypto

normative-requirement §3 MUST

The FF octet in the RSA/SHA1 signature padding MUST be repeated the maximum number of times such that the value being exponentiated is one octet shorter than the value of n.

dns, crypto

normative-requirement §3 MUST

The size of n MUST be not less than 512 bits and not more than 4096 bits. n and e SHOULD be chosen such that the public exponent is small.

dns, crypto

protocol-element §2

RSA public keys are stored in the DNS as KEY RRs using algorithm number 5. RSA/SHA1 signatures are stored using SIG RRs also with algorithm number 5, aligning the key and signature algorithm numbers.

dns, crypto, registry

registry §5

DNSSEC algorithm number 5 is allocated for RSA/SHA1 SIG RRs and RSA KEY RRs, replacing the previously used algorithm number from RFC 2537.

dns, registry, crypto

security-consideration §6

Keys retrieved from the DNS should not be trusted unless (1) securely obtained from a secure resolver or independently verified by the user and (2) the secure resolver and obtainment conform to security policies acceptable to the user. Evaluating key strength is essential and dependent on local policy.

dns, security, crypto

wire-format §2

RSA public KEY RR RDATA contains three fields: exponent length (1 or 3 octets), exponent (variable), and modulus (remaining space). The exponent length is one octet if 1–255, or a zero octet followed by a two-octet unsigned length if longer than 255 bytes.

dns, crypto

wire-format §3

The RSA/SHA1 SIG RR signature is computed as: hash = SHA1(data); signature = (01 | FF* | 00 | prefix | hash) ** e (mod n), where prefix is the ASN.1 BER SHA1 algorithm designator hex 30 21 30 09 06 05 2B 0E 03 02 1A 05 00 04 14.

dns, crypto