| 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/ | ||||