You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: articles/dns/dnssec.md
+14-17Lines changed: 14 additions & 17 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -26,7 +26,6 @@ The core DNSSEC extensions are specified in the following Request for Comments (
26
26
*[RFC 4033](https://datatracker.ietf.org/doc/html/rfc4033): "DNS Security Introduction and Requirements"
27
27
*[RFC 4034](https://datatracker.ietf.org/doc/html/rfc4034): "Resource Records for the DNS Security Extensions"
28
28
*[RFC 4035](https://datatracker.ietf.org/doc/html/rfc4035): "Protocol Modifications for the DNS Security Extensions"
29
-
*[RFC 9824](https://datatracker.ietf.org/doc/html/rfc9824/): "Compact Denial of Existence in DNSSEC"
30
29
31
30
For a summary of DNSSEC RFCs, see [RFC9364](https://www.rfc-editor.org/rfc/rfc9364): DNS Security Extensions (DNSSEC).
32
31
@@ -36,7 +35,7 @@ DNS zones are secured with DNSSEC using a process called zone signing. Signing a
36
35
37
36
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.
38
37
39
-

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.":::
40
39
41
40
[DNSSEC validation](#dnssec-validation) of DNS responses occurs by using these digital signatures with an unbroken [chain of trust](#chain-of-trust).
42
41
@@ -51,25 +50,25 @@ DNSSEC validation of DNS responses can prevent common types of DNS hijacking att
51
50
52
51
An example of how DNS hijacking works is shown in the following figure.
53
52
54
-

53
+
:::image type="content" source="media/dnssec/dns-hijacking.png" alt-text="Screenshot of how DNS hijacking works.":::
55
54
56
55
**Normal DNS resolution**:
57
56
1. A client device sends a DNS query for **contoso.com** to a DNS server.
58
-
2. The DNS server responds with a DNS resource record for **contoso.com**.
59
-
3. The client device requests a response from **contoso.com**.
60
-
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.
61
60
62
61
**DNS hijacking**
63
62
1. A client device sends a DNS query for **contoso.com** to a hijacked DNS server.
64
-
2. The DNS server responds with an invalid (spoofed) DNS resource record for **contoso.com**.
65
-
3. The client device requests a response for **contoso.com** from malicious server.
66
-
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.
67
66
68
67
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.
69
68
70
69
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.
71
70
72
-
DNSSEC includes a VRF-based mechanism defined in [RFC 9824](https://www.rfc-editor.org/rfc/rfc9824.html), commonly referred to as **NSEC5**, 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. **NSEC5 mitigates this by using verifiable random functions (VRFs) to provide authenticated denial of existence without exposing the entire zone**.
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.
73
72
74
73
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).
75
74
@@ -79,15 +78,15 @@ If a DNS server is DNSSEC-aware, it can set the DNSSEC OK (DO) flag in a DNS que
79
78
80
79
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:
81
80
82
-

81
+
:::image type="content" source="media/dnssec/dnssec-validation.png" alt-text="Screenshot of how DNSSEC validation works.":::
83
82
84
83
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.
85
84
86
85
Windows 10 and Windows 11 client devices are [nonvalidating security-aware stub resolvers](#dnssec-terminology). These client devices don't perform validation, but can enforce DNSSEC validation using Group Policy. [The NRPT](/previous-versions/windows/it-pro/windows-server-2012-r2-and-2012/dn593632(v=ws.11)) can be used to create and enforce namespace based DNSSEC validation policy.
87
86
88
87
### Trust anchors and DNSSEC validation
89
88
90
-
> [!NOTE]
89
+
> [!NOTE]
91
90
> DNSSEC response validation is not performed by the default Azure-provided resolver. The information in this section is helpful if you are setting up your own recursive DNS servers for DNSSEC validation or troubleshooting validation issues.
92
91
93
92
Trust anchors operate based on the DNS namespace hierarchy. A recursive DNS server can have any number of trust anchors, or no trust anchors. Trust anchors can be added for a single child DNS zone, or any parent zone. If a recursive DNS server has a root (.) trust anchor, then it can perform DNSSEC validation on any DNS zone. For more information, see [Root Zone Operator Information](https://www.iana.org/dnssec).
@@ -135,13 +134,11 @@ The following table provides a short description of DNSSEC-related records. For
135
134
| DNSKEY | A DNSSEC resource record type that is used to store a public key. |
136
135
| Delegation signer (DS) | A DNSSEC resource record type that is used to secure a delegation. |
137
136
| Next secure (NSEC) | A DNSSEC resource record type that is used to prove nonexistence of a DNS name. |
138
-
| Next secure 5 (NSEC5) | DNSSEC resource record type defined in RFC 9824 that uses Verifiable Random Functions (VRFs) to provide authenticated denial of existence and prevent zone enumeration attacks. |
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. |
139
139
| 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. |
140
140
| 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. |
141
141
142
-
>[!NOTE]
143
-
>Azure DNSSEC implements NSEC5 [RFC 9824](https://datatracker.ietf.org/doc/html/rfc9824) for authenticated denial of existence. NSEC and NSEC3 are not used by Azure DNS because they allow zone enumeration or offline dictionary attacks.
144
-
145
142
### View DNSSEC-related resource records
146
143
147
144
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.
@@ -262,7 +259,7 @@ This list is provided to help understand some of the common terms used when disc
262
259
| 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. |
263
260
| 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. |
264
261
| 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. |
265
-
| 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. |
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. |
266
263
| 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. |
267
264
| Unsigned zone | Any DNS zone that has not been signed as defined by RFC 4035 [7] Section 2. |
268
265
| Zone signing | Zone signing is the process of creating and adding DNSSEC-related resource records to a zone, making it compatible with DNSSEC validation. |
0 commit comments