mirror of
https://gitlab.isc.org/isc-projects/bind9
synced 2025-09-01 15:05:23 +00:00
7830: The EDNS(0) Padding Option
This commit is contained in:
@@ -84,6 +84,7 @@ or Best Current Practice (BCP) documents. The list is non exhaustive.
|
|||||||
RFC7043
|
RFC7043
|
||||||
RFC7314
|
RFC7314
|
||||||
RFC7477
|
RFC7477
|
||||||
|
RFC7830 [16]
|
||||||
|
|
||||||
The following DNS related RFC have been obsoleted
|
The following DNS related RFC have been obsoleted
|
||||||
|
|
||||||
@@ -153,3 +154,6 @@ CD=0 and then send CD=1 iff SERVFAIL is returned in case the recurive
|
|||||||
server has a bad clock and/or bad trust anchor. Alternatively one
|
server has a bad clock and/or bad trust anchor. Alternatively one
|
||||||
can send CD=1 then CD=0 on validation failure in case the recursive
|
can send CD=1 then CD=0 on validation failure in case the recursive
|
||||||
server is under attack or there is stale / bogus authoritative data.
|
server is under attack or there is stale / bogus authoritative data.
|
||||||
|
|
||||||
|
[16] Named doesn't currently encrypt DNS requests so the PAD option
|
||||||
|
is accepted but not returned in responses.
|
||||||
|
@@ -163,3 +163,4 @@
|
|||||||
7534: AS112 Nameserver Operations
|
7534: AS112 Nameserver Operations
|
||||||
7477: Child-to-Parent Synchronization in DNS
|
7477: Child-to-Parent Synchronization in DNS
|
||||||
7535: AS112 Redirection Using DNAME
|
7535: AS112 Redirection Using DNAME
|
||||||
|
7830: The EDNS(0) Padding Option
|
||||||
|
283
doc/rfc/rfc7830.txt
Normal file
283
doc/rfc/rfc7830.txt
Normal file
@@ -0,0 +1,283 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Internet Engineering Task Force (IETF) A. Mayrhofer
|
||||||
|
Request for Comments: 7830 nic.at GmbH
|
||||||
|
Category: Standards Track May 2016
|
||||||
|
ISSN: 2070-1721
|
||||||
|
|
||||||
|
|
||||||
|
The EDNS(0) Padding Option
|
||||||
|
|
||||||
|
Abstract
|
||||||
|
|
||||||
|
This document specifies the EDNS(0) "Padding" option, which allows
|
||||||
|
DNS clients and servers to pad request and response messages by a
|
||||||
|
variable number of octets.
|
||||||
|
|
||||||
|
Status of This Memo
|
||||||
|
|
||||||
|
This is an Internet Standards Track document.
|
||||||
|
|
||||||
|
This document is a product of the Internet Engineering Task Force
|
||||||
|
(IETF). It represents the consensus of the IETF community. It has
|
||||||
|
received public review and has been approved for publication by the
|
||||||
|
Internet Engineering Steering Group (IESG). Further information on
|
||||||
|
Internet Standards is available in Section 2 of RFC 5741.
|
||||||
|
|
||||||
|
Information about the current status of this document, any errata,
|
||||||
|
and how to provide feedback on it may be obtained at
|
||||||
|
http://www.rfc-editor.org/info/rfc7830.
|
||||||
|
|
||||||
|
Copyright Notice
|
||||||
|
|
||||||
|
Copyright (c) 2016 IETF Trust and the persons identified as the
|
||||||
|
document authors. All rights reserved.
|
||||||
|
|
||||||
|
This document is subject to BCP 78 and the IETF Trust's Legal
|
||||||
|
Provisions Relating to IETF Documents
|
||||||
|
(http://trustee.ietf.org/license-info) in effect on the date of
|
||||||
|
publication of this document. Please review these documents
|
||||||
|
carefully, as they describe your rights and restrictions with respect
|
||||||
|
to this document. Code Components extracted from this document must
|
||||||
|
include Simplified BSD License text as described in Section 4.e of
|
||||||
|
the Trust Legal Provisions and are provided without warranty as
|
||||||
|
described in the Simplified BSD License.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Mayrhofer Standards Track [Page 1]
|
||||||
|
|
||||||
|
RFC 7830 EDNS(0) Padding May 2016
|
||||||
|
|
||||||
|
|
||||||
|
Table of Contents
|
||||||
|
|
||||||
|
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2
|
||||||
|
2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 2
|
||||||
|
3. The "Padding" Option . . . . . . . . . . . . . . . . . . . . 3
|
||||||
|
4. Usage Considerations . . . . . . . . . . . . . . . . . . . . 3
|
||||||
|
5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 4
|
||||||
|
6. Security Considerations . . . . . . . . . . . . . . . . . . . 4
|
||||||
|
7. References . . . . . . . . . . . . . . . . . . . . . . . . . 4
|
||||||
|
7.1. Normative References . . . . . . . . . . . . . . . . . . 4
|
||||||
|
7.2. Informative References . . . . . . . . . . . . . . . . . 5
|
||||||
|
Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . . 5
|
||||||
|
Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 5
|
||||||
|
|
||||||
|
1. Introduction
|
||||||
|
|
||||||
|
The Domain Name System (DNS) [RFC1035] was specified to transport DNS
|
||||||
|
messages in cleartext form. Since this can expose significant
|
||||||
|
amounts of information about the Internet activities of an end user,
|
||||||
|
the IETF has undertaken work to provide confidentiality to DNS
|
||||||
|
transactions (see the DPRIVE working group). Encrypting the DNS
|
||||||
|
transport is considered one of the options to improve the situation.
|
||||||
|
|
||||||
|
However, even if both DNS query and response messages were encrypted,
|
||||||
|
metadata could still be used to correlate such messages with well-
|
||||||
|
known unencrypted messages, hence jeopardizing some of the
|
||||||
|
confidentiality gained by encryption. One such property is the
|
||||||
|
message size.
|
||||||
|
|
||||||
|
This document specifies the Extensions Mechanisms for DNS (EDNS(0))
|
||||||
|
"Padding" option, which allows DNS clients and servers to
|
||||||
|
artificially increase the size of a DNS message by a variable number
|
||||||
|
of bytes, hampering size-based correlation of the encrypted message.
|
||||||
|
|
||||||
|
2. Terminology
|
||||||
|
|
||||||
|
The terms "Requestor" and "Responder" are to be interpreted as
|
||||||
|
specified in [RFC6891].
|
||||||
|
|
||||||
|
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
|
||||||
|
"SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and
|
||||||
|
"OPTIONAL" in this document are to be interpreted as described in
|
||||||
|
[RFC2119].
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Mayrhofer Standards Track [Page 2]
|
||||||
|
|
||||||
|
RFC 7830 EDNS(0) Padding May 2016
|
||||||
|
|
||||||
|
|
||||||
|
3. The "Padding" Option
|
||||||
|
|
||||||
|
The EDNS(0) [RFC6891] specifies a mechanism to include new options in
|
||||||
|
DNS packets, contained in the RDATA of the OPT meta-RR. This
|
||||||
|
document specifies the "Padding" option in order to allow clients and
|
||||||
|
servers to pad DNS packets by a variable number of bytes. The
|
||||||
|
"Padding" option MUST occur at most, once per OPT meta-RR (and hence,
|
||||||
|
at most once per message).
|
||||||
|
|
||||||
|
The figure below specifies the structure of the option in the RDATA
|
||||||
|
of the OPT RR:
|
||||||
|
|
||||||
|
0 8 16
|
||||||
|
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
|
||||||
|
| OPTION-CODE |
|
||||||
|
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
|
||||||
|
| OPTION-LENGTH |
|
||||||
|
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
|
||||||
|
| (PADDING) ... (PADDING) ... /
|
||||||
|
+- - - - - - - - - - - - - - - -
|
||||||
|
|
||||||
|
Figure 1
|
||||||
|
|
||||||
|
The OPTION-CODE for the "Padding" option is 12.
|
||||||
|
|
||||||
|
The OPTION-LENGTH for the "Padding" option is the size (in octets) of
|
||||||
|
the PADDING. The minimum number of PADDING octets is 0.
|
||||||
|
|
||||||
|
The PADDING octets SHOULD be set to 0x00. Other values MAY be used,
|
||||||
|
for example, in cases where there is a concern that the padded
|
||||||
|
message could be subject to compression before encryption. PADDING
|
||||||
|
octets of any value MUST be accepted in the messages received.
|
||||||
|
|
||||||
|
4. Usage Considerations
|
||||||
|
|
||||||
|
This document does not specify the actual amount of padding to be
|
||||||
|
used, since this depends on the situation in which the option is
|
||||||
|
used. However, padded DNS messages MUST NOT exceed the number of
|
||||||
|
octets specified in the Requestor's Payload Size field encoded in the
|
||||||
|
RR Class Field (see Sections 6.2.3 and 6.2.4 of [RFC6891]).
|
||||||
|
|
||||||
|
Responders MUST pad DNS responses when the respective DNS query
|
||||||
|
included the "Padding" option, unless doing so would violate the
|
||||||
|
maximum UDP payload size.
|
||||||
|
|
||||||
|
Responders MAY pad DNS responses when the respective DNS query
|
||||||
|
indicated EDNS(0) support of the Requestor and the "Padding" option
|
||||||
|
was not included.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Mayrhofer Standards Track [Page 3]
|
||||||
|
|
||||||
|
RFC 7830 EDNS(0) Padding May 2016
|
||||||
|
|
||||||
|
|
||||||
|
Responders MUST NOT pad DNS responses when the respective DNS query
|
||||||
|
did not indicate EDNS(0) support.
|
||||||
|
|
||||||
|
5. IANA Considerations
|
||||||
|
|
||||||
|
IANA has assigned Option Code 12 for "Padding" in the "DNS EDNS0
|
||||||
|
Option Codes (OPT)" registry.
|
||||||
|
|
||||||
|
IANA has updated the respective registration record by changing the
|
||||||
|
Reference field to RFC 7830 and the Status field to "Standard".
|
||||||
|
|
||||||
|
6. Security Considerations
|
||||||
|
|
||||||
|
Padding DNS packets obviously increases their size, and will
|
||||||
|
therefore lead to increased traffic.
|
||||||
|
|
||||||
|
The use of the EDNS(0) padding only provides a benefit when DNS
|
||||||
|
packets are not transported in cleartext. Further, it is possible
|
||||||
|
that EDNS(0) padding may make DNS amplification attacks easier.
|
||||||
|
Therefore, implementations MUST NOT use this option if the DNS
|
||||||
|
transport is not encrypted.
|
||||||
|
|
||||||
|
Padding length might be affected by lower-level compression.
|
||||||
|
Therefore (as described in Section 3.3 of [RFC7525]), implementations
|
||||||
|
and deployments SHOULD disable compression at the Transport Layer
|
||||||
|
Security (TLS) level.
|
||||||
|
|
||||||
|
The payload of the "Padding" option could (like many other fields in
|
||||||
|
the DNS protocol) be used as a covert channel.
|
||||||
|
|
||||||
|
7. References
|
||||||
|
|
||||||
|
7.1. Normative References
|
||||||
|
|
||||||
|
[RFC1035] Mockapetris, P., "Domain names - implementation and
|
||||||
|
specification", STD 13, RFC 1035, DOI 10.17487/RFC1035,
|
||||||
|
November 1987, <http://www.rfc-editor.org/info/rfc1035>.
|
||||||
|
|
||||||
|
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
|
||||||
|
Requirement Levels", BCP 14, RFC 2119,
|
||||||
|
DOI 10.17487/RFC2119, March 1997,
|
||||||
|
<http://www.rfc-editor.org/info/rfc2119>.
|
||||||
|
|
||||||
|
[RFC6891] Damas, J., Graff, M., and P. Vixie, "Extension Mechanisms
|
||||||
|
for DNS (EDNS(0))", STD 75, RFC 6891,
|
||||||
|
DOI 10.17487/RFC6891, April 2013,
|
||||||
|
<http://www.rfc-editor.org/info/rfc6891>.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Mayrhofer Standards Track [Page 4]
|
||||||
|
|
||||||
|
RFC 7830 EDNS(0) Padding May 2016
|
||||||
|
|
||||||
|
|
||||||
|
7.2. Informative References
|
||||||
|
|
||||||
|
[RFC7525] Sheffer, Y., Holz, R., and P. Saint-Andre,
|
||||||
|
"Recommendations for Secure Use of Transport Layer
|
||||||
|
Security (TLS) and Datagram Transport Layer Security
|
||||||
|
(DTLS)", BCP 195, RFC 7525, DOI 10.17487/RFC7525, May
|
||||||
|
2015, <http://www.rfc-editor.org/info/rfc7525>.
|
||||||
|
|
||||||
|
Acknowledgements
|
||||||
|
|
||||||
|
This document was inspired by a discussion with Daniel Kahn Gillmor
|
||||||
|
during IETF 93, as an alternative to the proposed padding on the TLS
|
||||||
|
layer. Allison Mankin, Andreas Gustafsson, Christian Huitema, Jinmei
|
||||||
|
Tatuya, and Shane Kerr suggested text for this document.
|
||||||
|
|
||||||
|
Author's Address
|
||||||
|
|
||||||
|
Alexander Mayrhofer
|
||||||
|
nic.at GmbH
|
||||||
|
Karlsplatz 1/2/9
|
||||||
|
Vienna 1010
|
||||||
|
Austria
|
||||||
|
|
||||||
|
Email: alex.mayrhofer.ietf@gmail.com
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Mayrhofer Standards Track [Page 5]
|
||||||
|
|
Reference in New Issue
Block a user