Internet Engineering Task Force (IETF) A. Langley
Request for Comments: 7685 Google Inc
Updates: 5246 October 2015
Category: Standards Track
ISSN: 2070-1721
A Transport Layer Security (TLS) ClientHello Padding Extension
Langley Standards Track [Page 1]
RFC 7685 TLS ClientHello Padding Extension October 2015
Table of Contents
1. Introduction
Successive TLS [RFC5246] versions have added support for more cipher suites and, over time, more TLS extensions have been defined. This has caused the size of the TLS ClientHello to grow, and the additional size has caused some implementation bugs to come to light. At least one of these implementation bugs can be ameliorated by making the ClientHello even larger. This is desirable given that fully comprehensive patching of affected implementations is difficult to achieve.
2. Requirements Notation
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in RFC 2119 [RFC2119].
3. Padding Extension
A new extension type ("padding(21)") is defined and MAY be included by the client in its ClientHello message.
Langley Standards Track [Page 2]
RFC 7685 TLS ClientHello Padding Extension October 2015
00 15 00 06 00 00 00 00 00 00
|---| |---| |---------------|
| | |
| | \- extension_data: 6 zero bytes
| |
| \------------- 16-bit, extension_data length
|
\------------------- extension_type for padding extension
The client MUST fill the padding extension completely with zero bytes, although the padding extension_data field may be empty.
4. Example Usage
As an example, consider a client that wishes to avoid sending a ClientHello with a TLSCiphertext.length between 256 and 511 bytes (inclusive). This case is considered because at least one TLS implementation is known to hang the connection when such a ClientHello record is received.
5. Security Considerations
The contents of the padding extension could be used as a covert channel. In order to prevent this, the contents are required to be all zeros, although the length of the extension can still be used as a much smaller covert channel.
Langley Standards Track [Page 3]
RFC 7685 TLS ClientHello Padding Extension October 2015 6. IANA ConsiderationsIANA has permanently registered value 21 (padding) in the "ExtensionType Values" registry.
7. Normative References
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate