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
+16-15Lines changed: 16 additions & 15 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -35,7 +35,7 @@ DNS zones are secured with DNSSEC using a process called zone signing. Signing a
35
35
36
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.
37
37
38
-

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

53
+
:::image type="content" source="media/dnssec/dns-hijacking.png" alt-text="Screenshot of how DNS hijacking works.":::
54
54
55
55
**Normal DNS resolution**:
56
56
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.
60
60
61
61
**DNS hijacking**
62
62
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.
66
66
67
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.
68
68
69
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.
70
70
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.
72
72
73
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).
74
74
@@ -78,7 +78,7 @@ If a DNS server is DNSSEC-aware, it can set the DNSSEC OK (DO) flag in a DNS que
78
78
79
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:
80
80
81
-

81
+
:::image type="content" source="media/dnssec/dnssec-validation.png" alt-text="Screenshot of how DNSSEC validation works.":::
82
82
83
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.
84
84
@@ -120,7 +120,7 @@ Recursive DNS servers (also called resolving or caching DNS servers) maintain a
120
120
121
121
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.
122
122
123
-
## Zone signing Algorithm
123
+
## Zone signing algorithm
124
124
125
125
Zones are DNSSEC signed using Elliptic Curve Digital Signature Algorithm (ECDSAP256SHA256).
126
126
@@ -133,12 +133,13 @@ The following table provides a short description of DNSSEC-related records. For
133
133
| 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. |
134
134
| DNSKEY | A DNSSEC resource record type that is used to store a public key. |
135
135
| 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. |
139
137
| 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
138
| 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
139
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
+
142
143
### View DNSSEC-related resource records
143
144
144
145
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
259
260
| 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. |
260
261
| 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. |
261
262
| 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. |
263
264
| 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. |
264
265
| Unsigned zone | Any DNS zone that has not been signed as defined by RFC 4035 [7] Section 2. |
265
266
| 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