Skip to content

Commit 435826f

Browse files
Merge pull request #306634 from jonbeck7/patch-4
Update DNSSEC documentation with NSEC5 details
2 parents a8ed5ee + 349f316 commit 435826f

2 files changed

Lines changed: 16 additions & 15 deletions

File tree

articles/dns/dnssec.md

Lines changed: 16 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ DNS zones are secured with DNSSEC using a process called zone signing. Signing a
3535

3636
Resource Record Signatures (RRSIGs) and other cryptographic records are added to the zone when it's signed. The following figure shows DNS resource records in the zone contoso.com before and after zone signing.
3737

38-
![A diagram showing how RRSIG records are added to a zone when it's signed with DNSSEC.](media/dnssec/rrsig-records.png)
38+
:::image type="content" source="media/dnssec/rrsig-records.png" alt-text="Screenshot of how RRSIG records are added to a zone when it's signed with DNSSEC.":::
3939

4040
[DNSSEC validation](#dnssec-validation) of DNS responses occurs by using these digital signatures with an unbroken [chain of trust](#chain-of-trust).
4141

@@ -50,25 +50,25 @@ DNSSEC validation of DNS responses can prevent common types of DNS hijacking att
5050

5151
An example of how DNS hijacking works is shown in the following figure.
5252

53-
![A diagram showing how DNS hijacking works.](media/dnssec/dns-hijacking.png)
53+
:::image type="content" source="media/dnssec/dns-hijacking.png" alt-text="Screenshot of how DNS hijacking works.":::
5454

5555
**Normal DNS resolution**:
5656
1. A client device sends a DNS query for **contoso.com** to a DNS server.
57-
2. The DNS server responds with a DNS resource record for **contoso.com**.
58-
3. The client device requests a response from **contoso.com**.
59-
4. The contoso.com app or web server returns a response to the client.
57+
1. The DNS server responds with a DNS resource record for **contoso.com**.
58+
1. The client device requests a response from **contoso.com**.
59+
1. The contoso.com app or web server returns a response to the client.
6060

6161
**DNS hijacking**
6262
1. A client device sends a DNS query for **contoso.com** to a hijacked DNS server.
63-
2. The DNS server responds with an invalid (spoofed) DNS resource record for **contoso.com**.
64-
3. The client device requests a response for **contoso.com** from malicious server.
65-
4. The malicious server returns a spoofed response to the client.
63+
1. The DNS server responds with an invalid (spoofed) DNS resource record for **contoso.com**.
64+
1. The client device requests a response for **contoso.com** from malicious server.
65+
1. The malicious server returns a spoofed response to the client.
6666

6767
The type of DNS resource record that is spoofed depends on the type of DNS hijacking attack. An MX record might be spoofed to redirect client emails, or a spoofed A record might send clients to a malicious web server.
6868

6969
DNSSEC works to prevent DNS hijacking by performing validation on DNS responses. In the DNS hijacking scenario pictured here, the client device can reject non-validated DNS responses if the contoso.com domain is signed with DNSSEC. To reject non-validated DNS responses, the client device must enforce [DNSSEC validation](#dnssec-validation) for contoso.com.
7070

71-
DNSSEC also includes Next Secure 3 (NSEC3) to prevent zone enumeration. Zone enumeration, also known as zone walking, is an attack whereby the attacker establishes a list of all names in a zone, including child zones.
71+
DNSSEC includes a VRF-based mechanism defined in [RFC 9824](https://www.rfc-editor.org/rfc/rfc9824.html), to prevent zone enumeration. Zone enumeration, also known as zone walking, is an attack whereby an attacker attempts to build a list of all names in a zone, including child zones.
7272

7373
Before you sign a zone with DNSSEC, be sure to understand [how DNSSEC works](#how-dnssec-works). When you are ready to sign a zone, see [How to sign your Azure Public DNS zone with DNSSEC](dnssec-how-to.md).
7474

@@ -78,7 +78,7 @@ If a DNS server is DNSSEC-aware, it can set the DNSSEC OK (DO) flag in a DNS que
7878

7979
A recursive (non-authoritative) DNS server performs DNSSEC validation on RRSIG records using a [trust anchor](#trust-anchors-and-dnssec-validation) (DNSKEY). The server uses a DNSKEY to decrypt digital signatures in RRSIG records (and other DNSSEC-related records), and then computes and compares hash values. If hash values are the same, it provides a reply to the DNS client with the DNS data that it requested, such as a host address (A) record. See the following diagram:
8080

81-
![A diagram showing how DNSSEC validation works.](media/dnssec/dnssec-validation.png)
81+
:::image type="content" source="media/dnssec/dnssec-validation.png" alt-text="Screenshot of how DNSSEC validation works.":::
8282

8383
If hash values aren't the same, the recursive DNS server replies with a SERVFAIL message. In this way, DNSSEC-capable resolving (or forwarding) DNS servers with a valid trust anchor installed can protect against DNS hijacking in the path between the recursive server and the authoritative server. This protection doesn't require DNS client devices to be DNSSEC-aware or to enforce DNS response validation, provided the local (last hop) recursive DNS server is itself secure from hijacking.
8484

@@ -120,7 +120,7 @@ Recursive DNS servers (also called resolving or caching DNS servers) maintain a
120120

121121
The zone signing key (ZSK) in a DNSSEC-signed zone is periodically rolled over (replaced) automatically by Azure. It should not be necessary to replace your key signing key (KSK), but this option is available by contacting Microsoft support. Replacing the KSK requires that you also update your DS record in the parent zone.
122122

123-
## Zone signing Algorithm
123+
## Zone signing algorithm
124124

125125
Zones are DNSSEC signed using Elliptic Curve Digital Signature Algorithm (ECDSAP256SHA256).
126126

@@ -133,12 +133,13 @@ The following table provides a short description of DNSSEC-related records. For
133133
| Resource record signature (RRSIG) | A DNSSEC resource record type that is used to hold a signature, which covers a set of DNS records for a particular name and type. |
134134
| DNSKEY | A DNSSEC resource record type that is used to store a public key. |
135135
| Delegation signer (DS) | A DNSSEC resource record type that is used to secure a delegation. |
136-
| Next secure (NSEC) | A DNSSEC resource record type that is used to prove nonexistence of a DNS name. |
137-
| Next secure 3 (NSEC3) | The NSEC3 resource record that provides hashed, authenticated denial of existence for DNS resource record sets. |
138-
| Next secure 3 parameters (NSEC3PARAM) | Specifies parameters for NSEC3 records. |
136+
| Next secure (NSEC) | DNSSEC resource record type defined in RFC 9824 provides authenticated denial of existence and prevent zone enumeration attacks. |
139137
| Child delegation signer (CDS) | This record is optional. If present, the CDS record can be used by a child zone to specify the desired contents of the DS record in a parent zone. |
140138
| Child DNSKEY (CDNSKEY) | This record is optional. If the CDNSKEY record is present in a child zone, it can be used to generate a DS record from a DNSKEY record. |
141139

140+
>[!NOTE]
141+
>Azure DNSSEC implements [RFC 9824 (NSEC)](https://datatracker.ietf.org/doc/html/rfc9824) which is the newest iteration of for authenticated denial of existence. The older iterations of NSEC and NSEC3 are not used by Azure DNS because they allow zone enumeration or offline dictionary attacks.
142+
142143
### View DNSSEC-related resource records
143144

144145
DNSSEC-related records are not displayed in the Azure portal. To view DNSSEC-related records, use command line tools such as Resolve-DnsName or dig.exe. These tools are available using Cloud Shell, or locally if installed on your device. Be sure to set the DO flag in your query by using the `-dnssecok` option in Resolve-DnsName or the `+dnssec` option in dig.exe.
@@ -259,7 +260,7 @@ This list is provided to help understand some of the common terms used when disc
259260
| Nonvalidating security-aware stub resolver | A security-aware stub resolver that trusts one or more security-aware DNS servers to perform DNSSEC validation on its behalf. |
260261
| secure entry point (SEP) key | A subset of public keys within the DNSKEY RRSet. A SEP key is used either to generate a DS RR or is distributed to resolvers that use the key as a trust anchor. |
261262
| Security-aware DNS server | A DNS server that implements the DNS security extensions as defined in RFCs 4033 [5], 4034 [6], and 4035 [7]. In particular, a security-aware DNS server is an entity that receives DNS queries, sends DNS responses, supports the EDNS0 [3] message size extension and the DO bit, and supports the DNSSEC record types and message header bits. |
262-
| Signed zone | A zone whose records are signed as defined by RFC 4035 [7] Section 2. A signed zone can contain DNSKEY, NSEC, NSEC3, NSEC3PARAM, RRSIG, and DS resource records. These resource records enable DNS data to be validated by resolvers. |
263+
| Signed zone | A zone whose records are signed as defined by RFC 4035 [7] Section 2. A signed zone can contain DNSKEY, NSEC, RRSIG, and DS resource records. These resource records enable DNS data to be validated by resolvers. |
263264
| Trust anchor | A preconfigured public key that is associated with a particular zone. A trust anchor enables a DNS resolver to validate signed DNSSEC resource records for that zone and to build authentication chains to child zones. |
264265
| Unsigned zone | Any DNS zone that has not been signed as defined by RFC 4035 [7] Section 2. |
265266
| Zone signing | Zone signing is the process of creating and adding DNSSEC-related resource records to a zone, making it compatible with DNSSEC validation. |
-8.99 KB
Loading

0 commit comments

Comments
 (0)