Skip to content

Commit e54ef93

Browse files
committed
Edited diagram and fixed markdown
1 parent 0203b9e commit e54ef93

2 files changed

Lines changed: 14 additions & 17 deletions

File tree

articles/dns/dnssec.md

Lines changed: 14 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,6 @@ The core DNSSEC extensions are specified in the following Request for Comments (
2626
* [RFC 4033](https://datatracker.ietf.org/doc/html/rfc4033): "DNS Security Introduction and Requirements"
2727
* [RFC 4034](https://datatracker.ietf.org/doc/html/rfc4034): "Resource Records for the DNS Security Extensions"
2828
* [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"
3029

3130
For a summary of DNSSEC RFCs, see [RFC9364](https://www.rfc-editor.org/rfc/rfc9364): DNS Security Extensions (DNSSEC).
3231

@@ -36,7 +35,7 @@ DNS zones are secured with DNSSEC using a process called zone signing. Signing a
3635

3736
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.
3837

39-
![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.":::
4039

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

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

5251
An example of how DNS hijacking works is shown in the following figure.
5352

54-
![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.":::
5554

5655
**Normal DNS resolution**:
5756
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.
6160

6261
**DNS hijacking**
6362
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.
6766

6867
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.
6968

7069
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.
7170

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.
7372

7473
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).
7574

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

8079
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:
8180

82-
![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.":::
8382

8483
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.
8584

8685
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.
8786

8887
### Trust anchors and DNSSEC validation
8988

90-
> [!NOTE]
89+
> [!NOTE]
9190
> 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.
9291
9392
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
135134
| DNSKEY | A DNSSEC resource record type that is used to store a public key. |
136135
| Delegation signer (DS) | A DNSSEC resource record type that is used to secure a delegation. |
137136
| 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. |
139139
| 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. |
140140
| 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. |
141141

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-
145142
### View DNSSEC-related resource records
146143

147144
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
262259
| 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. |
263260
| 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. |
264261
| 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. |
266263
| 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. |
267264
| Unsigned zone | Any DNS zone that has not been signed as defined by RFC 4035 [7] Section 2. |
268265
| 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)