rfc8449.txt | test8449.v2v3.txt | |||
---|---|---|---|---|
Internet Engineering Task Force (IETF) M. Thomson | Internet Engineering Task Force M. Thomson | |||
Request for Comments: 8449 Mozilla | Request for Comments: 8449 Mozilla | |||
Updates: 6066 August 2018 | Updates: 6066 August 2018 | |||
Category: Standards Track | Category: Standards Track | |||
ISSN: 2070-1721 | ISSN: 2070-1721 | |||
Record Size Limit Extension for TLS | Record Size Limit Extension for TLS | |||
Abstract | Abstract | |||
An extension to Transport Layer Security (TLS) is defined that allows | An extension to Transport Layer Security (TLS) is defined that allows | |||
skipping to change at page 1, line 31 | skipping to change at line 30 | |||
This is an Internet Standards Track document. | This is an Internet Standards Track document. | |||
This document is a product of the Internet Engineering Task Force | This document is a product of the Internet Engineering Task Force | |||
(IETF). It represents the consensus of the IETF community. It has | (IETF). It represents the consensus of the IETF community. It has | |||
received public review and has been approved for publication by the | received public review and has been approved for publication by the | |||
Internet Engineering Steering Group (IESG). Further information on | Internet Engineering Steering Group (IESG). Further information on | |||
Internet Standards is available in Section 2 of RFC 7841. | Internet Standards is available in Section 2 of RFC 7841. | |||
Information about the current status of this document, any errata, | Information about the current status of this document, any errata, | |||
and how to provide feedback on it may be obtained at | and how to provide feedback on it may be obtained at https://www.rfc- | |||
https://www.rfc-editor.org/info/rfc8449. | editor.org/info/rfc8449. | |||
Copyright Notice | Copyright Notice | |||
Copyright (c) 2018 IETF Trust and the persons identified as the | Copyright (c) 2018 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/ | |||
(https://trustee.ietf.org/license-info) in effect on the date of | license-info) in effect on the date of publication of this document. | |||
publication of this document. Please review these documents | Please review these documents carefully, as they describe your rights | |||
carefully, as they describe your rights and restrictions with respect | and restrictions with respect to this document. Code Components | |||
to this document. Code Components extracted from this document must | extracted from this document must include Simplified BSD License text | |||
include Simplified BSD License text as described in Section 4.e of | as described in Section 4.e of the Trust Legal Provisions and are | |||
the Trust Legal Provisions and are provided without warranty as | provided without warranty as described in the Simplified BSD License. | |||
described in the Simplified BSD License. | ||||
Table of Contents | Table of Contents | |||
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 | 1. Introduction | |||
2. Conventions and Definitions . . . . . . . . . . . . . . . . . 3 | 2. Conventions and Definitions | |||
3. Limitations of the "max_fragment_length" Extension . . . . . 3 | 3. Limitations of the "max_fragment_length" Extension | |||
4. The "record_size_limit" Extension . . . . . . . . . . . . . . 4 | 4. The "record_size_limit" Extension | |||
4.1. Record Expansion Limits . . . . . . . . . . . . . . . . . 6 | 4.1. Record Expansion Limits | |||
5. Deprecating "max_fragment_length" . . . . . . . . . . . . . . 6 | 5. Deprecating "max_fragment_length" | |||
6. Security Considerations . . . . . . . . . . . . . . . . . . . 7 | 6. Security Considerations | |||
7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 7 | 7. IANA Considerations | |||
8. References . . . . . . . . . . . . . . . . . . . . . . . . . 7 | 8. References | |||
8.1. Normative References . . . . . . . . . . . . . . . . . . 7 | 8.1. Normative References | |||
8.2. Informative References . . . . . . . . . . . . . . . . . 8 | 8.2. Informative References | |||
Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . . 8 | Acknowledgments | |||
Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 8 | Author's Address | |||
1. Introduction | 1. Introduction | |||
Implementing Transport Layer Security (TLS) [TLS] or Datagram TLS | Implementing Transport Layer Security (TLS) [TLS] or Datagram TLS | |||
(DTLS) [DTLS] for constrained devices can be challenging. However, | (DTLS) [DTLS] for constrained devices can be challenging. However, | |||
recent improvements to the design and implementation of cryptographic | recent improvements to the design and implementation of cryptographic | |||
algorithms have made TLS accessible to some highly limited devices | algorithms have made TLS accessible to some highly limited devices | |||
(see, for example, [RFC7925]). | (see, for example, [RFC7925]). | |||
Receiving large protected records can be particularly difficult for a | Receiving large protected records can be particularly difficult for a | |||
skipping to change at page 2, line 49 | skipping to change at line 91 | |||
and authenticate it. Similarly, other ciphers cannot produce | and authenticate it. Similarly, other ciphers cannot produce | |||
authenticated data until the entire record is present. Incremental | authenticated data until the entire record is present. Incremental | |||
processing of records exposes endpoints to the risk of forged data. | processing of records exposes endpoints to the risk of forged data. | |||
The "max_fragment_length" extension [RFC6066] was designed to enable | The "max_fragment_length" extension [RFC6066] was designed to enable | |||
constrained clients to negotiate a lower record size. However, | constrained clients to negotiate a lower record size. However, | |||
"max_fragment_length" suffers from several design problems (see | "max_fragment_length" suffers from several design problems (see | |||
Section 3). | Section 3). | |||
This document defines a "record_size_limit" extension (Section 4). | This document defines a "record_size_limit" extension (Section 4). | |||
This extension replaces "max_fragment_length" [RFC6066], which this | This extension replaces "max_fragment_length"[RFC6066], which this | |||
document deprecates. This extension is valid in all versions of TLS. | document deprecates. This extension is valid in all versions of TLS. | |||
A smaller protected record size is just one of many problems that a | A smaller protected record size is just one of many problems that a | |||
constrained implementation might need to address. The | constrained implementation might need to address. The | |||
"record_size_limit" extension only addresses the memory allocation | "record_size_limit" extension only addresses the memory allocation | |||
problem; it does not address limits of code size, processing | problem; it does not address limits of code size, processing | |||
capability, or bandwidth capacity. | capability, or bandwidth capacity. | |||
2. Conventions and Definitions | 2. Conventions and Definitions | |||
skipping to change at page 7, line 16 | skipping to change at line 292 | |||
Very small record sizes might generate additional work for senders | Very small record sizes might generate additional work for senders | |||
and receivers, limiting throughput and increasing exposure to denial | and receivers, limiting throughput and increasing exposure to denial | |||
of service. | of service. | |||
7. IANA Considerations | 7. IANA Considerations | |||
This document registers the "record_size_limit" extension in the "TLS | This document registers the "record_size_limit" extension in the "TLS | |||
ExtensionType Values" registry established in [RFC5246]. The | ExtensionType Values" registry established in [RFC5246]. The | |||
"record_size_limit" extension has been assigned a code point of 28. | "record_size_limit" extension has been assigned a code point of 28. | |||
The IANA registry [TLS-REGISTRY] lists this extension as | The IANA registry [TLS-REGISTRY] lists this extension as as | |||
"Recommended" (i.e., "Y") and indicates that it may appear in the | "Recommended" (i.e., "Y") and indicates that it may appear in the | |||
ClientHello (CH) or EncryptedExtensions (EE) messages in TLS 1.3 | ClientHello (CH) or EncryptedExtensions (EE) messages in TLS 1.3 | |||
[TLS]. | [TLS]. | |||
In the same registry, the "max_fragment_length" has been changed to | In the same registry, the "max_fragment_length" has been changed to | |||
not recommended (i.e., "N"). | not recommended (i.e., "N"). | |||
8. References | 8. References | |||
8.1. Normative References | 8.1. Normative References | |||
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | |||
Requirement Levels", BCP 14, RFC 2119, | Requirement Levels", BCP 14, RFC 2119, | |||
DOI 10.17487/RFC2119, March 1997, | DOI 10.17487/RFC2119, March 1997, <https://www.rfc- | |||
<https://www.rfc-editor.org/info/rfc2119>. | editor.org/info/rfc2119>. | |||
[RFC5246] Dierks, T. and E. Rescorla, "The Transport Layer Security | [RFC5246] Dierks, T. and E. Rescorla, "The Transport Layer Security | |||
(TLS) Protocol Version 1.2", RFC 5246, | (TLS) Protocol Version 1.2", RFC 5246, | |||
DOI 10.17487/RFC5246, August 2008, | DOI 10.17487/RFC5246, August 2008, <https://www.rfc- | |||
<https://www.rfc-editor.org/info/rfc5246>. | editor.org/info/rfc5246>. | |||
[RFC6066] Eastlake 3rd, D., "Transport Layer Security (TLS) | [RFC6066] Eastlake 3rd, D., "Transport Layer Security (TLS) | |||
Extensions: Extension Definitions", RFC 6066, | Extensions: Extension Definitions", RFC 6066, | |||
DOI 10.17487/RFC6066, January 2011, | DOI 10.17487/RFC6066, January 2011, <https://www.rfc- | |||
<https://www.rfc-editor.org/info/rfc6066>. | editor.org/info/rfc6066>. | |||
[RFC7366] Gutmann, P., "Encrypt-then-MAC for Transport Layer | [RFC7366] Gutmann, P., "Encrypt-then-MAC for Transport Layer | |||
Security (TLS) and Datagram Transport Layer Security | Security (TLS) and Datagram Transport Layer Security | |||
(DTLS)", RFC 7366, DOI 10.17487/RFC7366, September 2014, | (DTLS)", RFC 7366, DOI 10.17487/RFC7366, September 2014, | |||
<https://www.rfc-editor.org/info/rfc7366>. | <https://www.rfc-editor.org/info/rfc7366>. | |||
[RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC | [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC | |||
2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, | 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, | |||
May 2017, <https://www.rfc-editor.org/info/rfc8174>. | May 2017, <https://www.rfc-editor.org/info/rfc8174>. | |||
skipping to change at page 8, line 16 | skipping to change at line 339 | |||
Version 1.3", RFC 8446, DOI 10.17487/RFC8446, August 2018, | Version 1.3", RFC 8446, DOI 10.17487/RFC8446, August 2018, | |||
<https://www.rfc-editor.org/info/rfc8446>. | <https://www.rfc-editor.org/info/rfc8446>. | |||
8.2. Informative References | 8.2. Informative References | |||
[DTLS] Rescorla, E. and N. Modadugu, "Datagram Transport Layer | [DTLS] Rescorla, E. and N. Modadugu, "Datagram Transport Layer | |||
Security Version 1.2", RFC 6347, DOI 10.17487/RFC6347, | Security Version 1.2", RFC 6347, DOI 10.17487/RFC6347, | |||
January 2012, <https://www.rfc-editor.org/info/rfc6347>. | January 2012, <https://www.rfc-editor.org/info/rfc6347>. | |||
[PMTU] McCann, J., Deering, S., Mogul, J., and R. Hinden, Ed., | [PMTU] McCann, J., Deering, S., Mogul, J., and R. Hinden, Ed., | |||
"Path MTU Discovery for IP version 6", STD 87, RFC 8201, | "Path MTU Discovery for IP version 6", RFC 8201, | |||
DOI 10.17487/RFC8201, July 2017, | DOI 10.17487/RFC8201, STD 87, July 2017, <https://www.rfc- | |||
<https://www.rfc-editor.org/info/rfc8201>. | editor.org/info/rfc8201>. | |||
[RFC5116] McGrew, D., "An Interface and Algorithms for Authenticated | [RFC5116] McGrew, D., "An Interface and Algorithms for Authenticated | |||
Encryption", RFC 5116, DOI 10.17487/RFC5116, January 2008, | Encryption", RFC 5116, DOI 10.17487/RFC5116, January 2008, | |||
<https://www.rfc-editor.org/info/rfc5116>. | <https://www.rfc-editor.org/info/rfc5116>. | |||
[RFC7925] Tschofenig, H., Ed. and T. Fossati, "Transport Layer | [RFC7925] Tschofenig, H., Ed. and T. Fossati, "Transport Layer | |||
Security (TLS) / Datagram Transport Layer Security (DTLS) | Security (TLS) / Datagram Transport Layer Security (DTLS) | |||
Profiles for the Internet of Things", RFC 7925, | Profiles for the Internet of Things", RFC 7925, | |||
DOI 10.17487/RFC7925, July 2016, | DOI 10.17487/RFC7925, July 2016, <https://www.rfc- | |||
<https://www.rfc-editor.org/info/rfc7925>. | editor.org/info/rfc7925>. | |||
[TLS-REGISTRY] | [TLS-REGISTRY] | |||
Salowey, J. and S. Turner, "IANA Registry Updates for TLS | Salowey, J. and S. Turner, "IANA Registry Updates for TLS | |||
and DTLS", RFC 8447, DOI 10.17487/RFC8447, August 2018, | and DTLS", RFC 8447, DOI 10.17487/RFC8447, August 2018, | |||
<https://www.rfc-editor.org/info/rfc8447>. | <https://www.rfc-editor.org/info/rfc8447>. | |||
Acknowledgments | Acknowledgments | |||
Thomas Pornin and Hannes Tschofenig provided significant input to | Thomas Pornin and Hannes Tschofenig provided significant input to | |||
this document. Alan DeKok identified an issue with the interaction | this document. Alan DeKok identified an issue with the interaction | |||
between record size limits and PMTU. | between record size limits and PMTU. | |||
Author's Address | Author's Address | |||
Martin Thomson | Martin Thomson | |||
Mozilla | Mozilla | |||
EMail: martin.thomson@gmail.com | ||||
Email: martin.thomson@gmail.com | ||||
End of changes. 12 change blocks. | ||||
37 lines changed or deleted | 36 lines changed or added | |||
This html diff was produced by rfcdiff 1.41. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ |