draft-ietf-dnsop-dns-zone-digest-11.txt | draft-ietf-dnsop-dns-zone-digest-12.txt | |||
---|---|---|---|---|
Internet Engineering Task Force D. Wessels | Internet Engineering Task Force D. Wessels | |||
Internet-Draft P. Barber | Internet-Draft P. Barber | |||
Intended status: Standards Track Verisign | Intended status: Standards Track Verisign | |||
Expires: March 29, 2021 M. Weinberg | Expires: April 2, 2021 M. Weinberg | |||
Amazon | Amazon | |||
W. Kumari | W. Kumari | |||
W. Hardaker | W. Hardaker | |||
USC/ISI | USC/ISI | |||
September 25, 2020 | September 29, 2020 | |||
Message Digest for DNS Zones | Message Digest for DNS Zones | |||
draft-ietf-dnsop-dns-zone-digest-11 | draft-ietf-dnsop-dns-zone-digest-12 | |||
Abstract | Abstract | |||
This document describes a protocol and new DNS Resource Record that | This document describes a protocol and new DNS Resource Record that | |||
provides a cryptographic message digest over DNS zone data. The | provides a cryptographic message digest over DNS zone data. The | |||
ZONEMD Resource Record conveys the digest data in the zone itself. | ZONEMD Resource Record conveys the digest data in the zone itself. | |||
When a zone publisher includes a ZONEMD record, recipients can verify | When a zone publisher includes a ZONEMD record, recipients can verify | |||
the zone contents for accuracy and completeness. This provides | the zone contents for accuracy and completeness. This provides | |||
assurance that received zone data matches published data, regardless | assurance that received zone data matches published data, regardless | |||
of how the zone data has been transmitted and received. | of how the zone data has been transmitted and received. | |||
skipping to change at page 2, line 7 ¶ | skipping to change at page 2, line 7 ¶ | |||
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 https://datatracker.ietf.org/drafts/current/. | Drafts is at https://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 March 29, 2021. | This Internet-Draft will expire on April 2, 2021. | |||
Copyright Notice | Copyright Notice | |||
Copyright (c) 2020 IETF Trust and the persons identified as the | Copyright (c) 2020 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 | |||
(https://trustee.ietf.org/license-info) in effect on the date of | (https://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 | |||
skipping to change at page 3, line 11 ¶ | skipping to change at page 3, line 11 ¶ | |||
3.3. Scheme-Specific Processing . . . . . . . . . . . . . . . 11 | 3.3. Scheme-Specific Processing . . . . . . . . . . . . . . . 11 | |||
3.3.1. The SIMPLE Scheme . . . . . . . . . . . . . . . . . . 11 | 3.3.1. The SIMPLE Scheme . . . . . . . . . . . . . . . . . . 11 | |||
3.3.1.1. SIMPLE Scheme Inclusion/Exclusion Rules . . . . . 11 | 3.3.1.1. SIMPLE Scheme Inclusion/Exclusion Rules . . . . . 11 | |||
3.3.1.2. SIMPLE Scheme Digest Calculation . . . . . . . . 12 | 3.3.1.2. SIMPLE Scheme Digest Calculation . . . . . . . . 12 | |||
3.4. Update ZONEMD RR . . . . . . . . . . . . . . . . . . . . 12 | 3.4. Update ZONEMD RR . . . . . . . . . . . . . . . . . . . . 12 | |||
4. Verifying Zone Digest . . . . . . . . . . . . . . . . . . . . 12 | 4. Verifying Zone Digest . . . . . . . . . . . . . . . . . . . . 12 | |||
5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 14 | 5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 14 | |||
5.1. ZONEMD RRtype . . . . . . . . . . . . . . . . . . . . . . 14 | 5.1. ZONEMD RRtype . . . . . . . . . . . . . . . . . . . . . . 14 | |||
5.2. ZONEMD Scheme . . . . . . . . . . . . . . . . . . . . . . 14 | 5.2. ZONEMD Scheme . . . . . . . . . . . . . . . . . . . . . . 14 | |||
5.3. ZONEMD Hash Algorithm . . . . . . . . . . . . . . . . . . 15 | 5.3. ZONEMD Hash Algorithm . . . . . . . . . . . . . . . . . . 15 | |||
6. Security Considerations . . . . . . . . . . . . . . . . . . . 16 | 6. Security Considerations . . . . . . . . . . . . . . . . . . . 15 | |||
6.1. Attacks Against the Zone Digest . . . . . . . . . . . . . 16 | 6.1. Attacks Against the Zone Digest . . . . . . . . . . . . . 16 | |||
6.2. DNSSESC Timing Considerations . . . . . . . . . . . . . . 16 | 6.2. DNSSESC Timing Considerations . . . . . . . . . . . . . . 16 | |||
6.3. Attacks Utilizing ZONEMD Queries . . . . . . . . . . . . 16 | 6.3. Attacks Utilizing ZONEMD Queries . . . . . . . . . . . . 16 | |||
6.4. Resilience and Fragility . . . . . . . . . . . . . . . . 17 | 6.4. Resilience and Fragility . . . . . . . . . . . . . . . . 17 | |||
7. Performance Considerations . . . . . . . . . . . . . . . . . 17 | 7. Performance Considerations . . . . . . . . . . . . . . . . . 17 | |||
7.1. SIMPLE SHA384 . . . . . . . . . . . . . . . . . . . . . . 17 | 7.1. SIMPLE SHA384 . . . . . . . . . . . . . . . . . . . . . . 17 | |||
8. Privacy Considerations . . . . . . . . . . . . . . . . . . . 18 | 8. Privacy Considerations . . . . . . . . . . . . . . . . . . . 18 | |||
9. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 18 | 9. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 18 | |||
10. Change Log . . . . . . . . . . . . . . . . . . . . . . . . . 18 | 10. Change Log . . . . . . . . . . . . . . . . . . . . . . . . . 18 | |||
11. References . . . . . . . . . . . . . . . . . . . . . . . . . 24 | 11. References . . . . . . . . . . . . . . . . . . . . . . . . . 25 | |||
11.1. Normative References . . . . . . . . . . . . . . . . . . 24 | 11.1. Normative References . . . . . . . . . . . . . . . . . . 25 | |||
11.2. Informative References . . . . . . . . . . . . . . . . . 25 | 11.2. Informative References . . . . . . . . . . . . . . . . . 25 | |||
Appendix A. Example Zones With Digests . . . . . . . . . . . . . 27 | Appendix A. Example Zones With Digests . . . . . . . . . . . . . 28 | |||
A.1. Simple EXAMPLE Zone . . . . . . . . . . . . . . . . . . . 27 | A.1. Simple EXAMPLE Zone . . . . . . . . . . . . . . . . . . . 28 | |||
A.2. Complex EXAMPLE Zone . . . . . . . . . . . . . . . . . . 28 | A.2. Complex EXAMPLE Zone . . . . . . . . . . . . . . . . . . 28 | |||
A.3. EXAMPLE Zone with multiple digests . . . . . . . . . . . 29 | A.3. EXAMPLE Zone with multiple digests . . . . . . . . . . . 29 | |||
A.4. The URI.ARPA Zone . . . . . . . . . . . . . . . . . . . . 29 | A.4. The URI.ARPA Zone . . . . . . . . . . . . . . . . . . . . 30 | |||
A.5. The ROOT-SERVERS.NET Zone . . . . . . . . . . . . . . . . 32 | A.5. The ROOT-SERVERS.NET Zone . . . . . . . . . . . . . . . . 33 | |||
Appendix B. Implementation Status . . . . . . . . . . . . . . . 34 | Appendix B. Implementation Status . . . . . . . . . . . . . . . 35 | |||
B.1. Authors' Implementation . . . . . . . . . . . . . . . . . 34 | B.1. Authors' Implementation . . . . . . . . . . . . . . . . . 35 | |||
B.2. Shane Kerr's Implementation . . . . . . . . . . . . . . . 34 | B.2. Shane Kerr's Implementation . . . . . . . . . . . . . . . 35 | |||
B.3. NIC Chile Labs Implementation . . . . . . . . . . . . . . 35 | B.3. NIC Chile Labs Implementation . . . . . . . . . . . . . . 36 | |||
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 35 | Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 36 | |||
1. Introduction | 1. Introduction | |||
In the DNS, a zone is the collection of authoritative resource | In the DNS, a zone is the collection of authoritative resource | |||
records (RRs) sharing a common origin ([RFC8499]). Zones are often | records (RRs) sharing a common origin ([RFC8499]). Zones are often | |||
stored as files in the so-called master file format [RFC1034]. Zones | stored as files in the so-called master file format [RFC1034]. Zones | |||
are generally distributed among name servers using the AXFR (zone | are generally distributed among name servers using the AXFR (zone | |||
transfer [RFC5936]), and IXFR (incremental zone transfer [RFC1995]) | transfer [RFC5936]), and IXFR (incremental zone transfer [RFC1995]) | |||
protocols. They can also be distributed outside of the DNS, with any | protocols. They can also be distributed outside of the DNS, with any | |||
file transfer protocol such as FTP, HTTP, and rsync, or even as email | file transfer protocol such as FTP, HTTP, and rsync, or even as email | |||
skipping to change at page 8, line 10 ¶ | skipping to change at page 8, line 10 ¶ | |||
This section describes the ZONEMD Resource Record, including its | This section describes the ZONEMD Resource Record, including its | |||
fields, wire format, and presentation format. The Type value for the | fields, wire format, and presentation format. The Type value for the | |||
ZONEMD RR is 63. The ZONEMD RR is class independent. The RDATA of | ZONEMD RR is 63. The ZONEMD RR is class independent. The RDATA of | |||
the resource record consists of four fields: Serial, Scheme, Hash | the resource record consists of four fields: Serial, Scheme, Hash | |||
Algorithm, and Digest. | Algorithm, and Digest. | |||
A zone MAY contain multiple ZONEMD RRs to support algorithm agility | A zone MAY contain multiple ZONEMD RRs to support algorithm agility | |||
[RFC7696] and rollovers. When multiple ZONEMD RRs are present, each | [RFC7696] and rollovers. When multiple ZONEMD RRs are present, each | |||
must specify a unique Scheme and Hash Algorithm tuple. It is | must specify a unique Scheme and Hash Algorithm tuple. It is | |||
recommended that a zone include only one ZONEMD RR, unless the zone | RECOMMENDED that a zone include only one ZONEMD RR, unless the zone | |||
publisher is in the process of transitioning to a new Scheme or Hash | publisher is in the process of transitioning to a new Scheme or Hash | |||
Algorithm. | Algorithm. | |||
2.1. Non-apex ZONEMD Records | 2.1. Non-apex ZONEMD Records | |||
This document specifies ZONEMD RRs located at the zone apex. Non- | This document specifies ZONEMD RRs located at the zone apex. Non- | |||
apex ZONEMD RRs are not forbidden, but have no meaning in this | apex ZONEMD RRs are not forbidden, but have no meaning in this | |||
specification. Non-apex ZONEMD RRs MUST NOT be used for | specification. Non-apex ZONEMD RRs MUST NOT be used for | |||
verification. | verification. | |||
skipping to change at page 9, line 5 ¶ | skipping to change at page 8, line 50 ¶ | |||
/ / | / / | |||
/ / | / / | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
2.2.1. The Serial Field | 2.2.1. The Serial Field | |||
The Serial field is a 32-bit unsigned integer in network byte order. | The Serial field is a 32-bit unsigned integer in network byte order. | |||
It is the serial number from the zone's SOA record ([RFC1035] section | It is the serial number from the zone's SOA record ([RFC1035] section | |||
3.3.13) for which the zone digest was generated. | 3.3.13) for which the zone digest was generated. | |||
It is included here in order to make DNS response messages of type | It is included here to clearly bind the ZONEMD RR to a particular | |||
ZONEMD meaningful. Without the serial number, a stand-alone ZONEMD | version of the zone's content. Without the serial number, a stand- | |||
digest has no association to any particular instance of a zone. | alone ZONEMD digest has no obvious association to any particular | |||
instance of a zone. | ||||
2.2.2. The Scheme Field | 2.2.2. The Scheme Field | |||
The Scheme field is an 8-bit unsigned integer that identifies the | The Scheme field is an 8-bit unsigned integer that identifies the | |||
methods by which data is collated and presented as input to the | methods by which data is collated and presented as input to the | |||
hashing function. | hashing function. | |||
Herein, SIMPLE, with value 1, is the only standardized Scheme defined | Herein, SIMPLE, with value 1, is the only standardized Scheme defined | |||
for ZONEMD records and it MUST be implemented. The Scheme registry | for ZONEMD records and it MUST be implemented. The Scheme registry | |||
is further described in Section 5. | is further described in Section 5. | |||
skipping to change at page 11, line 12 ¶ | skipping to change at page 11, line 12 ¶ | |||
algorithm rollover, each MUST specify a unique Scheme and Hash | algorithm rollover, each MUST specify a unique Scheme and Hash | |||
Algorithm tuple. | Algorithm tuple. | |||
It is RECOMMENDED that the TTL of the ZONEMD record match the TTL of | It is RECOMMENDED that the TTL of the ZONEMD record match the TTL of | |||
the SOA. However, the TTL of the ZONEMD record may be safely ignored | the SOA. However, the TTL of the ZONEMD record may be safely ignored | |||
during verification in all cases. | during verification in all cases. | |||
In the placeholder record, the Serial field is set to the current SOA | In the placeholder record, the Serial field is set to the current SOA | |||
Serial. The Scheme field is set to the value for the chosen | Serial. The Scheme field is set to the value for the chosen | |||
collation scheme. The Hash Algorithm field is set to the value for | collation scheme. The Hash Algorithm field is set to the value for | |||
the chosen hash algorithm. Since ZONEMD records are excluded from | the chosen hash algorithm. Since apex ZONEMD records are excluded | |||
digest calculation, the value of the Digest field does not matter at | from digest calculation, the value of the Digest field does not | |||
this point in the process. | matter at this point in the process. | |||
3.2. Optionally Sign the Zone | 3.2. Optionally Sign the Zone | |||
Following addition of placeholder records, the zone may be signed | Following addition of placeholder records, the zone may be signed | |||
with DNSSEC. When the digest calculation is complete, and the ZONEMD | with DNSSEC. When the digest calculation is complete, and the ZONEMD | |||
record is updated, the signature(s) for the ZONEMD RRSet MUST be | record is updated, the signature(s) for the ZONEMD RRSet MUST be | |||
recalculated and updated as well. Therefore, the signer is not | recalculated and updated as well. Therefore, the signer is not | |||
required to calculate a signature over the placeholder record at this | required to calculate a signature over the placeholder record at this | |||
step in the process, but it is harmless to do so. | step in the process, but it is harmless to do so. | |||
skipping to change at page 12, line 9 ¶ | skipping to change at page 12, line 9 ¶ | |||
exclusion rules apply: | exclusion rules apply: | |||
o All records in the zone, including glue records, MUST be included. | o All records in the zone, including glue records, MUST be included. | |||
o Occluded data ([RFC5936] Section 3.5) MUST be included. | o Occluded data ([RFC5936] Section 3.5) MUST be included. | |||
o If there are duplicate RRs with equal owner, class, type, and | o If there are duplicate RRs with equal owner, class, type, and | |||
RDATA, only one instance is included ([RFC4034] Section 6.3), and | RDATA, only one instance is included ([RFC4034] Section 6.3), and | |||
the duplicates MUST be omitted. | the duplicates MUST be omitted. | |||
o The placeholder ZONEMD RR(s) MUST NOT be included. | o The placeholder apex ZONEMD RR(s) MUST NOT be included. | |||
o If the zone is signed, DNSSEC RRs MUST be included, except: | o If the zone is signed, DNSSEC RRs MUST be included, except: | |||
o The RRSIG covering ZONEMD MUST NOT be included because the RRSIG | o The RRSIG covering the apex ZONEMD RRSet MUST NOT be included | |||
will be updated after all digests have been calculated. | because the RRSIG will be updated after all digests have been | |||
calculated. | ||||
3.3.1.2. SIMPLE Scheme Digest Calculation | 3.3.1.2. SIMPLE Scheme Digest Calculation | |||
A zone digest using the SIMPLE scheme is calculated by concatenating | A zone digest using the SIMPLE scheme is calculated by concatenating | |||
all RRs in the zone, in the format and order described in | all RRs in the zone, in the format and order described in | |||
Section 3.3.1 subject to the inclusion/exclusion rules described in | Section 3.3.1 subject to the inclusion/exclusion rules described in | |||
Section 3.3.1.1, and then applying the chosen hash algorithm: | Section 3.3.1.1, and then applying the chosen hash algorithm: | |||
digest = hash( RR(1) | RR(2) | RR(3) | ... ) | digest = hash( RR(1) | RR(2) | RR(3) | ... ) | |||
skipping to change at page 14, line 4 ¶ | skipping to change at page 14, line 4 ¶ | |||
does not support the given hash algorithm, verification MUST | does not support the given hash algorithm, verification MUST | |||
NOT be considered successful with this ZONEMD RR and it | NOT be considered successful with this ZONEMD RR and it | |||
SHOULD report that the RR's digest could not be verified due | SHOULD report that the RR's digest could not be verified due | |||
to an unsupported algorithm. | to an unsupported algorithm. | |||
D. The Digest field size MUST be checked. If the size of the | D. The Digest field size MUST be checked. If the size of the | |||
given Digest field is smaller than 12 octets, or if the size | given Digest field is smaller than 12 octets, or if the size | |||
is not equal to the size expected for the corresponding Hash | is not equal to the size expected for the corresponding Hash | |||
Algorithm, verification MUST NOT be considered successful | Algorithm, verification MUST NOT be considered successful | |||
with this ZONEMD RR and the verifier SHOULD report that the | with this ZONEMD RR and the verifier SHOULD report that the | |||
RR's digest could not be verified to to an incorrect digest | RR's digest could not be verified due to an incorrect digest | |||
length. | length. | |||
E. The zone digest is computed over the zone data as described | E. The zone digest is computed over the zone data as described | |||
in Section 3.3, using the Scheme and Hash Algorithm for the | in Section 3.3, using the Scheme and Hash Algorithm for the | |||
current ZONEMD RR. | current ZONEMD RR. | |||
F. The computed digest is compared to the received digest. If | F. The computed digest is compared to the received digest. If | |||
the two digest values match, verification is considered | the two digest values match, verification is considered | |||
successful. Otherwise, verification MUST NOT be considered | successful. Otherwise, verification MUST NOT be considered | |||
successful for this ZONEMD RR. | successful for this ZONEMD RR. | |||
skipping to change at page 15, line 47 ¶ | skipping to change at page 15, line 47 ¶ | |||
| 2 | SHA-512 | SHA512 | SHOULD | [this | | | 2 | SHA-512 | SHA512 | SHOULD | [this | | |||
| | | | | document] | | | | | | | document] | | |||
| 3-239 | Unassigned | | | | | | 3-239 | Unassigned | | | | | |||
| 240-254 | Private Use | N/A | N/A | [his | | | 240-254 | Private Use | N/A | N/A | [his | | |||
| | | | | document] | | | | | | | document] | | |||
| 255 | Reserved | | | | | | 255 | Reserved | | | | | |||
+---------+-------------+----------+-------------------+------------+ | +---------+-------------+----------+-------------------+------------+ | |||
Table 2: ZONEMD Hash Algorithm Registry | Table 2: ZONEMD Hash Algorithm Registry | |||
The IANA policy for assigning new values to the ZONEMD Hash Algorithm | ||||
registry shall be Specification Required. | ||||
6. Security Considerations | 6. Security Considerations | |||
6.1. Attacks Against the Zone Digest | 6.1. Attacks Against the Zone Digest | |||
The zone digest allows the recipient of a zone to verify its | The zone digest allows the recipient of a zone to verify its | |||
integrity. In conjunction with DNSSEC, the recipient can | integrity. In conjunction with DNSSEC, the recipient can | |||
authenticate that it is as published by the zone originator. | authenticate that it is as published by the zone originator. | |||
An attacker, whose goal is to modify zone content before it is used | An attacker, whose goal is to modify zone content before it is used | |||
by the victim, may consider a number of different approaches. | by the victim, may consider a number of different approaches. | |||
The attacker might perform a downgrade attack to an unsigned zone. | The attacker might perform a downgrade attack to an unsigned zone. | |||
skipping to change at page 16, line 37 ¶ | skipping to change at page 16, line 34 ¶ | |||
DNSSEC validation. | DNSSEC validation. | |||
6.2. DNSSESC Timing Considerations | 6.2. DNSSESC Timing Considerations | |||
As with all DNSSEC signatures, the ability to perform signature | As with all DNSSEC signatures, the ability to perform signature | |||
validation of a ZONEMD record is limited in time. If the DS | validation of a ZONEMD record is limited in time. If the DS | |||
record(s) or trust anchors for the zone to be verified are no longer | record(s) or trust anchors for the zone to be verified are no longer | |||
available, the recipient cannot validate the ZONEMD RRSet. This | available, the recipient cannot validate the ZONEMD RRSet. This | |||
could happen even if the ZONEMD signature is still current (not | could happen even if the ZONEMD signature is still current (not | |||
expired), since the zone's DS record(s) may have been withdrawn | expired), since the zone's DS record(s) may have been withdrawn | |||
following a KSK rollover. | following a Key Signing Key (KSK) rollover. | |||
For zones where it may be important to validate a ZONEMD RRSet | For zones where it may be important to validate a ZONEMD RRSet | |||
through its entire signature validity period, the zone operator | through its entire signature validity period, the zone operator | |||
should ensure that KSK rollover timing takes this into consideration. | should ensure that KSK rollover timing takes this into consideration. | |||
6.3. Attacks Utilizing ZONEMD Queries | 6.3. Attacks Utilizing ZONEMD Queries | |||
Nothing in this specification prevents clients from making, and | Nothing in this specification prevents clients from making, and | |||
servers from responding to, ZONEMD queries. Servers SHOULD NOT | servers from responding to, ZONEMD queries. Servers SHOULD NOT | |||
calculate zone digests dynamically (for each query) as this can be | calculate zone digests dynamically (for each query) as this can be | |||
used as a CPU resource exhaustion attack. | used as a CPU resource exhaustion attack. | |||
ZONEMD responses could be used in a distributed denial-of-service | ZONEMD responses could be used in a distributed denial-of-service | |||
amplification attack. The ZONEMD RR is moderately sized, much like | amplification attack. The ZONEMD RR is moderately sized, much like | |||
the DS RR. A single ZONEMD RR contributes approximately 40 to 65 | the DS RR. A single ZONEMD RR contributes approximately 65 to 95 | |||
octets to a DNS response, for digest types defined herein. Other RR | octets to a DNS response, for digest types defined herein. Other RR | |||
types, such as DNSKEY, can result in larger amplification effects. | types, such as DNSKEY, can result in larger amplification effects. | |||
6.4. Resilience and Fragility | 6.4. Resilience and Fragility | |||
ZONEMD is used to detect incomplete or corrupted zone data prior to | ZONEMD is used to detect incomplete or corrupted zone data prior to | |||
its use, thereby increasing resilience by not using corrupt data, but | its use, thereby increasing resilience by not using corrupt data, but | |||
also introduces some denial-of-service fragility by making good data | also introduces some denial-of-service fragility by making good data | |||
in a zone unavailable if some other data is missing or corrupt. | in a zone unavailable if some other data is missing or corrupt. | |||
Publishers and consumers of zones containing ZONEMD records should be | Publishers and consumers of zones containing ZONEMD records should be | |||
aware of these tradeoffs. While the intention is to secure the zone | aware of these tradeoffs. While the intention is to secure the zone | |||
data, misconfigurations or implementation bugs are generally | data, misconfigurations or implementation bugs are generally | |||
indistinguishable from intentional tampering, and could lead to | indistinguishable from intentional tampering, and could lead to | |||
service failures when verification is performed automatically. | service failures when verification is performed automatically. | |||
Zone publishers may want to deploy ZONEMD gradually, perhaps by | Zone publishers may want to deploy ZONEMD gradually, perhaps by | |||
utilizing one of the private use hash algorithms listed in | utilizing one of the private use hash algorithm code points listed in | |||
Section 5.3. Similarly, recipients may want to initially configure | Section 5.3. Similarly, recipients may want to initially configure | |||
verification failures only as a warning, and later as an error after | verification failures only as a warning, and later as an error after | |||
gaining experience and confidence with the feature. | gaining experience and confidence with the feature. | |||
7. Performance Considerations | 7. Performance Considerations | |||
This section is provided to make zone publishers aware of the | This section is provided to make zone publishers aware of the | |||
performance requirements and implications of including ZONEMD RRs in | performance requirements and implications of including ZONEMD RRs in | |||
a zone. | a zone. | |||
skipping to change at page 24, line 40 ¶ | skipping to change at page 24, line 40 ¶ | |||
o Fixed people's names in the acknowledgments section (blush) | o Fixed people's names in the acknowledgments section (blush) | |||
o Say "has not been modified between origination and retrieval." | o Say "has not been modified between origination and retrieval." | |||
o Say that ZONEMD TTL doesn't matter during verification. | o Say that ZONEMD TTL doesn't matter during verification. | |||
o Further clarification that the SHA-384 and SHA-512 hashes are not | o Further clarification that the SHA-384 and SHA-512 hashes are not | |||
truncated. Future algs might be truncated, but never below 96 | truncated. Future algs might be truncated, but never below 96 | |||
bits. | bits. | |||
From -11 to -12: | ||||
o SECDIR review: make "recommended" all caps. | ||||
o SECDIR review: tweak explanation of why ZONEMD RR has copy of SOA | ||||
serial. | ||||
o SECDIR review: be even more clear about apex ZONEMD RRs vs non- | ||||
apex. | ||||
o SECDIR review: Forgot to delete sentence about IANA policy for | ||||
adding new hash algorithms. | ||||
o SECDIR review: Spell out Key Signing Key first time. | ||||
o SECDIR review: say "private use hash algorithm code points." | ||||
o SECDIR review: Update estimates of ZONEMD RR size. | ||||
11. References | 11. References | |||
11.1. Normative References | 11.1. Normative References | |||
[RFC1034] Mockapetris, P., "Domain names - concepts and facilities", | [RFC1034] Mockapetris, P., "Domain names - concepts and facilities", | |||
STD 13, RFC 1034, DOI 10.17487/RFC1034, November 1987, | STD 13, RFC 1034, DOI 10.17487/RFC1034, November 1987, | |||
<https://www.rfc-editor.org/info/rfc1034>. | <https://www.rfc-editor.org/info/rfc1034>. | |||
[RFC1035] Mockapetris, P., "Domain names - implementation and | [RFC1035] Mockapetris, P., "Domain names - implementation and | |||
specification", STD 13, RFC 1035, DOI 10.17487/RFC1035, | specification", STD 13, RFC 1035, DOI 10.17487/RFC1035, | |||
End of changes. 20 change blocks. | ||||
34 lines changed or deleted | 51 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/ |