draft-ietf-dprive-edns0-padding-01.txt | draft-ietf-dprive-edns0-padding-02.txt | |||
---|---|---|---|---|
Network Working Group A. Mayrhofer | Network Working Group A. Mayrhofer | |||
Internet-Draft nic.at GmbH | Internet-Draft nic.at GmbH | |||
Intended status: Standards Track November 24, 2015 | Intended status: Standards Track January 25, 2016 | |||
Expires: May 27, 2016 | Expires: July 28, 2016 | |||
The EDNS(0) Padding Option | The EDNS(0) Padding Option | |||
draft-ietf-dprive-edns0-padding-01 | draft-ietf-dprive-edns0-padding-02 | |||
Abstract | Abstract | |||
This document specifies the EDNS(0) 'Padding' option, which allows | This document specifies the EDNS(0) 'Padding' option, which allows | |||
DNS clients and servers to pad request and response messages by a | DNS clients and servers to pad request and response messages by a | |||
variable number of octets. | variable number of octets. | |||
Status of This Memo | Status of This Memo | |||
This Internet-Draft is submitted in full conformance with the | This Internet-Draft is submitted in full conformance with the | |||
skipping to change at page 1, line 32 | skipping to change at page 1, line 32 | |||
Internet-Drafts are working documents of the Internet Engineering | Internet-Drafts are working documents of the Internet Engineering | |||
Task Force (IETF). Note that other groups may also distribute | Task Force (IETF). Note that other groups may also distribute | |||
working documents as Internet-Drafts. The list of current Internet- | working documents as Internet-Drafts. The list of current Internet- | |||
Drafts is at http://datatracker.ietf.org/drafts/current/. | Drafts is at http://datatracker.ietf.org/drafts/current/. | |||
Internet-Drafts are draft documents valid for a maximum of six months | Internet-Drafts are draft documents valid for a maximum of six months | |||
and may be updated, replaced, or obsoleted by other documents at any | and may be updated, replaced, or obsoleted by other documents at any | |||
time. It is inappropriate to use Internet-Drafts as reference | time. It is inappropriate to use Internet-Drafts as reference | |||
material or to cite them other than as "work in progress." | material or to cite them other than as "work in progress." | |||
This Internet-Draft will expire on May 27, 2016. | This Internet-Draft will expire on July 28, 2016. | |||
Copyright Notice | Copyright Notice | |||
Copyright (c) 2015 IETF Trust and the persons identified as the | Copyright (c) 2016 IETF Trust and the persons identified as the | |||
document authors. All rights reserved. | document authors. All rights reserved. | |||
This document is subject to BCP 78 and the IETF Trust's Legal | This document is subject to BCP 78 and the IETF Trust's Legal | |||
Provisions Relating to IETF Documents | Provisions Relating to IETF Documents | |||
(http://trustee.ietf.org/license-info) in effect on the date of | (http://trustee.ietf.org/license-info) in effect on the date of | |||
publication of this document. Please review these documents | publication of this document. Please review these documents | |||
carefully, as they describe your rights and restrictions with respect | carefully, as they describe your rights and restrictions with respect | |||
to this document. Code Components extracted from this document must | to this document. Code Components extracted from this document must | |||
include Simplified BSD License text as described in Section 4.e of | include Simplified BSD License text as described in Section 4.e of | |||
the Trust Legal Provisions and are provided without warranty as | the Trust Legal Provisions and are provided without warranty as | |||
skipping to change at page 2, line 15 | skipping to change at page 2, line 15 | |||
Table of Contents | Table of Contents | |||
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 | 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 | |||
2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 2 | 2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 2 | |||
3. The 'Padding' Option . . . . . . . . . . . . . . . . . . . . 3 | 3. The 'Padding' Option . . . . . . . . . . . . . . . . . . . . 3 | |||
4. Usage Considerations . . . . . . . . . . . . . . . . . . . . 3 | 4. Usage Considerations . . . . . . . . . . . . . . . . . . . . 3 | |||
5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 4 | 5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 4 | |||
6. Security Considerations . . . . . . . . . . . . . . . . . . . 4 | 6. Security Considerations . . . . . . . . . . . . . . . . . . . 4 | |||
7. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 4 | 7. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 4 | |||
8. Changes . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 | 8. Changes . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 | |||
8.1. draft-ietf-dprive-edns0-padding-01 . . . . . . . . . . . 4 | 8.1. draft-ietf-dprive-edns0-padding-02 . . . . . . . . . . . 4 | |||
8.2. draft-ieft-dprive-edns0-padding-00 . . . . . . . . . . . 5 | 8.2. draft-ietf-dprive-edns0-padding-01 . . . . . . . . . . . 5 | |||
8.3. draft-mayrhofer-edns0-padding-01 . . . . . . . . . . . . 5 | 8.3. draft-ieft-dprive-edns0-padding-00 . . . . . . . . . . . 5 | |||
8.4. draft-mayrhofer-edns0-padding-00 . . . . . . . . . . . . 5 | 8.4. draft-mayrhofer-edns0-padding-01 . . . . . . . . . . . . 5 | |||
8.5. draft-mayrhofer-edns0-padding-00 . . . . . . . . . . . . 5 | ||||
9. References . . . . . . . . . . . . . . . . . . . . . . . . . 5 | 9. References . . . . . . . . . . . . . . . . . . . . . . . . . 5 | |||
9.1. Normative References . . . . . . . . . . . . . . . . . . 5 | 9.1. Normative References . . . . . . . . . . . . . . . . . . 5 | |||
9.2. Informative References . . . . . . . . . . . . . . . . . 5 | 9.2. Informative References . . . . . . . . . . . . . . . . . 5 | |||
Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 5 | Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 6 | |||
1. Introduction | 1. Introduction | |||
The Domain Name System (DNS) [RFC1035] was specified to transport DNS | The Domain Name System (DNS) [RFC1035] was specified to transport DNS | |||
packets in clear text form. Since this can expose significant | messages in clear text form. Since this can expose significant | |||
amounts of information about the internet activities of an end user, | amounts of information about the internet activities of an end user, | |||
the IETF has undertaken work to provide confidentiality to DNS | the IETF has undertaken work to provide confidentiality to DNS | |||
transactions (see the DPRIVE WG). Encrypting the DNS transport is | transactions (see the DPRIVE WG). Encrypting the DNS transport is | |||
considered as one of the options to improve the situation. | considered as one of the options to improve the situation. | |||
However, even if both DNS query and response packets were encrypted, | However, even if both DNS query and response messages were encrypted, | |||
meta data of these packets could be used to correlate such packets | meta data of could still be used to correlate such messages with well | |||
with well known unencrypted packets, hence jeopardizing some of the | known unencrypted messages, hence jeopardizing some of the | |||
confidentiality gained by encryption. One such property is the | confidentiality gained by encryption. One such property is the | |||
message size. | message size. | |||
This document specifies the Extensions Mechanisms for DNS (EDNS(0)) | This document specifies the Extensions Mechanisms for DNS (EDNS(0)) | |||
"Padding" Option, which allows to artificially increase the size of a | "Padding" Option, which allows to artificially increase the size of a | |||
DNS message by a variable number of bytes, significantly hampering | DNS message by a variable number of bytes, significantly hampering | |||
size-based correlation of the encrypted packet. | size-based correlation of the encrypted message. | |||
2. Terminology | 2. Terminology | |||
The terms "Requestor", "Responder" are to be interpreted as specified | The terms "Requestor", "Responder" are to be interpreted as specified | |||
in [RFC6891]. | in [RFC6891]. | |||
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | |||
"SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and | "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and | |||
"OPTIONAL" in this document are to be interpreted as described in | "OPTIONAL" in this document are to be interpreted as described in | |||
[RFC2119]. | [RFC2119]. | |||
3. The 'Padding' Option | 3. The 'Padding' Option | |||
The EDNS(0) [RFC6891] specifies a mechanism to include new options in | The EDNS(0) [RFC6891] specifies a mechanism to include new options in | |||
DNS packets, contained in the RDATA of the OPT meta-RR. This | DNS packets, contained in the RDATA of the OPT meta-RR. This | |||
document specifies the 'Padding' option in order to allow clients and | document specifies the 'Padding' option in order to allow clients and | |||
servers pad DNS packets by a variable number of bytes. The 'Padding' | servers pad DNS packets by a variable number of bytes. The 'Padding' | |||
option MUST occur at most once per OPT meta-RR. | 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 | The figure below specifies the structure of the option in the RDATA | |||
of the OPT RR: | of the OPT RR: | |||
0 8 16 | 0 8 16 | |||
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ | +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ | |||
| OPTION-CODE | | | OPTION-CODE | | |||
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ | +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ | |||
| OPTION-LENGTH | | | OPTION-LENGTH | | |||
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ | +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ | |||
| (PADDING) ... (PADDING) ... / | | (PADDING) ... (PADDING) ... / | |||
+- - - - - - - - - - - - - - - - | +- - - - - - - - - - - - - - - - | |||
Figure 1 | Figure 1 | |||
The OPTION-CODE for the 'Padding' option is 12. | The OPTION-CODE for the 'Padding' option is 12. | |||
The OPTION-LENGTH for the 'Padding' option is the size (in octets) of | 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. The minimum number of padding octets is 0. | |||
The PADDING octets SHOULD be set to 0x00. Application developers who | The PADDING octets SHOULD be set to 0x00. Other values MAY be used; | |||
are concerned about misguided lower layer compression MAY instead | for example, in cases where there is a concern that the padded | |||
fill the PADDING octets with the output of a cryptographic random | message could be subject to compression before encryption. PADDING | |||
number generator. Responders MUST NOT reject messages containing | octets of any value MUST be accepted in messages received. | |||
non-0x00 PADDING octets. | ||||
4. Usage Considerations | 4. Usage Considerations | |||
This document does not specify the actual amount of padding to be | 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, since this depends on the situation in which the option is | |||
used. However, padded DNS messages MUST NOT exceed the number of | used. However, padded DNS messages MUST NOT exceed the number of | |||
octets specified in the Requestor's Payload Size field encoded in The | octets specified in the Requestor's Payload Size field encoded in The | |||
RR Class Field (see Section 6.2.3 and 6.2.4 of [RFC6891]). | RR Class Field (see Section 6.2.3 and 6.2.4 of [RFC6891]). | |||
Responders MUST pad DNS responses when the respective DNS query | Responders MUST pad DNS responses when the respective DNS query | |||
skipping to change at page 4, line 19 | skipping to change at page 4, line 22 | |||
IANA has assigned EDNS Option Code 12 for Padding. | IANA has assigned EDNS Option Code 12 for Padding. | |||
IANA is requested to update the respective registration record by | IANA is requested to update the respective registration record by | |||
changing the Reference field to [[THISRFC]] and the Status field to | changing the Reference field to [[THISRFC]] and the Status field to | |||
'Standard'. | 'Standard'. | |||
6. Security Considerations | 6. Security Considerations | |||
Padding DNS packets obviously increases their size, and will | Padding DNS packets obviously increases their size, and will | |||
therefore lead to increased traffic, can lead to increased number of | therefore lead to increased traffic. | |||
truncated packets when used over UDP-based transport. | ||||
The use of the EDNS(0) Padding provides only a benefit when DNS | The use of the EDNS(0) Padding provides only a benefit when DNS | |||
packets are not transported in clear text. Implementations therefore | packets are not transported in clear text. Implementations therefore | |||
SHOULD avoid using this option if the DNS transport is not encrypted. | SHOULD avoid using this option if the DNS transport is not encrypted. | |||
Padding length might be affected by lower-level compression. | Padding length might be affected by lower-level compression. | |||
Therefore (as described in Section 3.3 of [RFC7525]), implementations | Therefore (as described in Section 3.3 of [RFC7525]), implementations | |||
and deployments SHOULD disable TLS-level compression. | and deployments SHOULD disable TLS-level compression. | |||
The payload of the 'Padding' option could (like many other fields in | The payload of the 'Padding' option could (like many other fields in | |||
the DNS protocol) be used as a covert channel. | the DNS protocol) be used as a covert channel. | |||
7. Acknowledgements | 7. Acknowledgements | |||
This document was inspired by a discussion with Daniel Kahn Gillmor | This document was inspired by a discussion with Daniel Kahn Gillmor | |||
during IETF93, as an alternative to the proposed padding on the TLS | during IETF93, as an alternative to the proposed padding on the TLS | |||
layer. Allison Mankin and Christian Huitema suggested text for this | layer. Allison Mankin, Andreas Gustaffson, Christian Huitema and | |||
document. | Jinmei Tatuya suggested text for this document. | |||
8. Changes | 8. Changes | |||
8.1. draft-ietf-dprive-edns0-padding-01 | Note to RFC Editors: Please remove this whole section before | |||
publication | ||||
8.1. draft-ietf-dprive-edns0-padding-02 | ||||
Clarified that changes section is to be removed before publication. | ||||
Clarified that both Requestors and Responders are to ignore padding | ||||
contents. changed text about non-zero padding contents based on WGLC | ||||
comments. removed security considerations about truncation based on | ||||
WGLC comment. added more acknowledgements. replaced "packets" with | ||||
"messages" where appropriate. | ||||
8.2. draft-ietf-dprive-edns0-padding-01 | ||||
Fixed 'octects' typo. Changed 'covert channel' text to align with | Fixed 'octects' typo. Changed 'covert channel' text to align with | |||
allowing non-0x00 padding. changed IANA considerations - assigned | allowing non-0x00 padding. changed IANA considerations - assigned | |||
option code is 12. Changed field definitions to allow for non-0x00 | option code is 12. Changed field definitions to allow for non-0x00 | |||
padding, removed FORMERR requirement. referenced rfc7525 in security | padding, removed FORMERR requirement. referenced rfc7525 in security | |||
considerations. added acknowledgements. | considerations. added acknowledgements. | |||
8.2. draft-ieft-dprive-edns0-padding-00 | 8.3. draft-ieft-dprive-edns0-padding-00 | |||
Adopted by WG. Changed text about message size limit based on | Adopted by WG. Changed text about message size limit based on | |||
feedback. | feedback. | |||
8.3. draft-mayrhofer-edns0-padding-01 | 8.4. draft-mayrhofer-edns0-padding-01 | |||
Changed minimum padding size to 0, rewrote Usage Considerations | Changed minimum padding size to 0, rewrote Usage Considerations | |||
section, extended Security considerations section | section, extended Security considerations section | |||
8.4. draft-mayrhofer-edns0-padding-00 | 8.5. draft-mayrhofer-edns0-padding-00 | |||
Initial version | Initial version | |||
9. References | 9. References | |||
9.1. Normative References | 9.1. Normative References | |||
[RFC1035] Mockapetris, P., "Domain names - implementation and | [RFC1035] Mockapetris, P., "Domain names - implementation and | |||
specification", STD 13, RFC 1035, DOI 10.17487/RFC1035, | specification", STD 13, RFC 1035, DOI 10.17487/RFC1035, | |||
November 1987, <http://www.rfc-editor.org/info/rfc1035>. | November 1987, <http://www.rfc-editor.org/info/rfc1035>. | |||
End of changes. 17 change blocks. | ||||
29 lines changed or deleted | 41 lines changed or added | |||
This html diff was produced by rfcdiff 1.42. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ |