3 TLS Working Group M. Badra
4 Internet-Draft LIMOS Laboratory
5 Intended status: Standards Track I. Hajjeh
6 Expires: April 27, 2008 ESRGroups
10 MTLS: TLS Multiplexing
11 <draft-badra-hajjeh-mtls-03.txt>
15 By submitting this Internet-Draft, each author represents that any
16 applicable patent or other IPR claims of which he or she is aware
17 have been or will be disclosed, and any of which he or she becomes
18 aware will be disclosed, in accordance with Section 6 of BCP 79.
20 Internet-Drafts are working documents of the Internet Engineering
21 Task Force (IETF), its areas, and its working groups. Note that
22 other groups may also distribute working documents as Internet
25 Internet-Drafts are draft documents valid for a maximum of six
26 months and may be updated, replaced, or obsoleted by other documents
27 at any time. It is inappropriate to use Internet-Drafts as reference
28 material or to cite them other than as "work in progress."
30 The list of current Internet-Drafts can be accessed at
31 http://www.ietf.org/ietf/1id-abstracts.txt
33 The list of Internet-Draft Shadow Directories can be accessed at
34 http://www.ietf.org/shadow.html
36 This Internet-Draft will expire on April 27, 2008.
40 Copyright (C) The IETF Trust (2007).
44 The Transport Layer Security (TLS) standard provides connection
45 security with mutual authentication, data confidentiality and
46 integrity, key generation and distribution, and security parameters
47 negotiation. However, missing from the protocol is a way to
48 multiplex application data over a single TLS session.
50 This document defines MTLS, a new TLS sub-protocol running over TLS
51 (or DTLS) Record protocol. The MTLS design provides application
52 multiplexing over a single TLS (or DTLS) session. Therefore, instead
53 of associating a TLS connection with each application, MTLS allows
56 Badra & Hajjeh Expires April 2008 [Page 1]
\f
58 Internet-Draft TLS Multiplexing October 2007
60 several applications to protect their exchanges over a single TLS
65 HTTP over TLS [HTTPTLS], POP over TLS and IMAP over TLS [POPTLS] are
66 examples of securing, respectively HTTP, POP and IMAP data exchanges
67 using the TLS protocol [TLS].
69 TLS ([TLS], [DTLS]) is the most deployed security protocol for
70 securing exchanges, for authenticating entities and for generating
71 and distributing cryptographic keys. However, what is missing from
72 the protocol is the way to multiplex application data over the same
75 Actually, TLS (or DTLS) clients and servers MUST establish a TLS (or
76 DTLS) session for each application they want to run over a transport
77 layer. However, some applications may agree or be configured to use
78 the same security policies or parameters (e.g. authentication method
79 and cipher_suite) and then to share a single TLS session to protect
80 their exchanges. In this way, this document extends TLS to allow
81 application multiplexing over TLS.
83 The document motivations included:
85 o TLS is application protocol-independent. Higher-level protocol
86 can operate on top of the TLS protocol transparently.
88 o TLS is a protocol of a modular nature. Since TLS is developed in
89 four independent protocols, the approach defined in this
90 document can be added by extending the TLS protocol and with a
91 total reuse of pre-existing TLS infrastructures and
94 o It provides a secure VPN tunnel over a transport layer. Unlike
95 "ssh-connection" [SSHCON], MTLS can run over unreliable
96 transport protocols, such as UDP.
98 o Establishing a single session for a number of applications
99 -instead of establishing a session per application- reduces
100 resource consumption, latency and messages flow that are
101 associated with executing simultaneous TLS sessions.
103 o TLS can not forbid an intruder to analyze the traffic and cannot
104 protect data from inference. Thus, the intruder can know the
105 type of application data transmitted through the TLS session.
106 However, the extension defined in this document allows, by its
107 design, data protection against inference.
112 Badra & Hajjeh Expires April 2008 [Page 2]
\f
114 Internet-Draft TLS Multiplexing October 2007
116 1.2. Requirements language
118 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
119 "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
120 document are to be interpreted as described in [KEYWORDS].
122 2. TLS multiplexing overview and considerations
124 This document defines a new TLS sub-protocol called Multiplexing TLS
125 (MTLS) to handle data multiplexing, and it specifies the content
126 type mtls(TBA). It extends also TLS with a new extension type (TBA)
127 allowing the negotiation of data multiplexing features.
131 This document defines an extension of type "data_multiplexing". The
132 "extension_data" field of this extension is zero-length.
134 Based on the TLS Extensions [TLSEXT], a client and a server can, in
135 an ordinary TLS handshake, negotiate the future use of MTLS. If the
136 client does attempt to initiate a TLS connection using MTLS with a
137 server that does not support it, it will be automatically alerted.
138 For servers aware of MTLS but not wishing to use it, it will
139 gracefully revert to an ordinary TLS handshake or stop the
142 The negotiation usually starts with the client determining whether
143 the server is capable of and willing to use MTLS or not. In order to
144 allow a TLS client to negotiate the application multiplexing
145 functionality, a new extension type SHOULD be added to the Extended
146 Client and Extended Server Hello messages.
148 If the server is able of and willing to use the "data_multiplexing"
149 extension, it MUST reply with an empty extension of the same type.
150 Once the Handshake is complete, the client and the server SHOULD
151 establish and manage many application channels using the
152 requests/responses defined below.
154 2.1.1. Opening and closing connections
156 Once the Handshake is complete, both the client and the server can
157 start data multiplexing using a set of requests/responses defined
158 below. All requests/requests will pass through MTLS layer and are
159 formatted into MTLS packets, depending on each request/response.
161 The sender MAY request the opening of many channels. For each
162 channel, the MTLS layer generates and sends the following request:
168 Badra & Hajjeh Expires April 2008 [Page 3]
\f
170 Internet-Draft TLS Multiplexing October 2007
174 opaque sender_channel_id[2];
175 uint32 sender_window_length;
176 uint32 sender_max_packet_length;
177 opaque source_address_machine<4..7>;
178 opaque source_port[2];
179 opaque destination_address_machine<4..7>;
180 opaque destination_port[2];
181 } RequestEstablishmentChannel;
183 The field "type" specifies the MTLS packet type (types are
184 summarized below), the "max_packet_length" and the
185 "sender_channel_id" are used as described below. The
186 "source_address_machine" MAY carry either the numeric IP address or
187 the domain name of the host from where the application originates
188 the data multiplexing request and the "port" is the port on the host
189 from where the connection originated.
191 The sender initializes its "window_length" with the data length (in
192 octets), specifying how many bytes the receiver can maximally send
193 on the channel before receiving a new window length (available free
194 space). Each end of the channel establishes a "receive buffer" and a
197 The sender initializes its "max_packet_length" with the data length
198 (in octets), specifying the maximal packet's length in octets the
199 receiver can send on the channel.
201 The "destination_address_machine" and "destination_port" specify the
202 TCP/IP host and port where the recipient should connect the channel.
203 The "destination_address_machine" MAY be either a domain name or a
206 The receiver decides whether it can open the channel, and replies
207 with one of the following messages:
211 opaque sender_channel_id[2];
212 opaque receiver_channel_id[2];
213 uint32 receiver_window_length;
214 uint32 max_packet_length;
215 } RequestEstablishmentSuccess;
219 opaque sender_channel_id[2];
220 opaque error<0..2^16>;
221 } RequestEchecChannel;
224 Badra & Hajjeh Expires April 2008 [Page 4]
\f
226 Internet-Draft TLS Multiplexing October 2007
228 The field "error" conveys a description of the error.
230 If an error occurs at the MTLS layer, the established secure session
231 is still valid and no alert of any type is sent by the TLS Record.
233 Each MTLS channel has its identifier computed as:
235 channel_id = sender_channel_id" + "receiver_channel_id
237 Where "+" indicates concatenation.
239 The following packet MAY be sent to notify the receiver that the
240 sender will not send any more data on this channel and that any data
241 received after a closure request will be ignored. The sender of the
242 closure request MAY close its "receive buffer" without waiting for
243 the receiver's response. However, the receiver MUST respond with a
244 confirmation of the closure and close down the channel immediately,
245 discarding any pending writes.
249 opaque channel_id[4];
254 opaque channel_id[4];
255 } ConfirmationCloseChannel;
257 2.2. MTLS sub-protocol
259 The structure of the MTLS packet is described below. The
260 "sender_channel_id" and "receiver_channel_id" are the same gererated
261 during the connection establishment. The length conveys the data
262 length of the current packet.
264 Each entity maintains its "max_packet_length" (that is originally
265 initialized during the connection establishment) to a value not
266 bigger than the maximum size of this entity's "receive buffer". For
267 each received packet, the entity MUST subtract the packet's length
268 from the "max_packet_length". The result is always positive since
269 the packet's length is always less than or equal to the current
272 The free space of the "receive buffer" MAY increase in length.
273 Consequently, the entity MUST inform the other end about this
274 increase, allowing the other entity to send packet with length
275 bigger than the old "max_packet_length" but smaller or equal than
280 Badra & Hajjeh Expires April 2008 [Page 5]
\f
282 Internet-Draft TLS Multiplexing October 2007
284 The entity MAY indicate this increase by sending an Acknowledgment
285 packet. The Acknowledgment packet carries the available free space
286 ("free_space" field in octets) the receiver of that packet can send
287 on the channel before receiving a new window length.
289 If the length of the "receive buffer" does not change,
290 Acknowledgment packet will never be sent.
292 In the case where the "receive buffer" of an entity fills up, the
293 other entity MUST wait for an Acknowledgment packet before sending
294 any more MTLSPlaintext packets.
298 opaque channel_id[4];
300 opaque data[MTLSPlaintext.length];
305 opaque channel_id[4];
309 The TLS Record Layer receives data from MTLS, supposes it as
310 uninterpreted data and applies the fragmentation and the
311 cryptographic operations on it, as defined in [TLS]. The type is set
314 Note: multiple MTLS fragments MAY be coalesced into a single
317 Received data is decrypted, verified, decompressed, and reassembled,
318 then delivered to MTLS sub-protocol. Next, the MTLS sends data to
319 the appropriate application using the channel identifier and the
323 change_cipher_spec(20), alert(21), handshake(22),
324 application_data(23), mtls(TBA), (255)
327 2.3. MTLS Message Types
329 Additional message types can be supported by MTLS.
331 RequestEstablishmentChannel 0x01
332 RequestEstablishmentSuccess 0x02
333 RequestEchecChannel 0x03
336 Badra & Hajjeh Expires April 2008 [Page 6]
\f
338 Internet-Draft TLS Multiplexing October 2007
340 ConfirmationCloseChannel 0x05
344 3. Security Considerations
346 Security issues are discussed throughout this document, and in
347 [TLS], [DTLS] and [TLSEXT] documents.
349 If a fatal error related to any channel or a connection of an
350 arbitrary application occurs, the secure session MUST NOT be
351 resumed. This is logic since the Record protocol does not
352 distinguish between the MTLS channels. However, if an error occurs
353 at the MTLS layer, both parties immediately close the related
354 channels, but not the TLS session (no alert of any type is sent by
357 4. IANA Considerations
359 This section provides guidance to the IANA regarding registration of
360 values related to the TLS protocol.
362 There are name spaces that require registration: the mtls content
363 type, the data_multiplexing extension, and the MTLS message types.
367 5.1. Normative References
369 [TLS] Dierks, T., Rescorla, E., "The TLS Protocol Version 1.1",
370 RFC 4346, April 200P.
372 [TLSEXT] Blake-Wilson, S., et. al., "Transport Layer Security
373 (TLS) Extensions", RFC 4346, April 2006.
375 [DTLS] Rescorla, E., Modadugu, N., "Datagram Transport Layer
376 Security", RFC 4347, April 2006.
378 [KEYWORDS] Bradner, S., "Key words for use in RFCs to Indicate
379 Requirement Levels", RFC 2119, March 1997.
381 5.2. Informative References
383 [HTTPTLS] Rescorla, E., "HTTP Over TLS", RFC 2818, May 2000.
385 [POPTLS] Newman, C., "Using TLS with IMAP, POP3 and ACAP", RFC
388 [SSHCON] Lonvick, C., "SSH Connection Protocol", RFC 4254, January
392 Badra & Hajjeh Expires April 2008 [Page 7]
\f
394 Internet-Draft TLS Multiplexing October 2007
399 LIMOS Laboratory - UMR6158, CNRS
400 France Email: badra@isima.fr
403 ESRGroups, Security WG
404 France Email: Ibrahim.Hajjeh@esrgroups.org
406 Full Copyright Statement
408 Copyright (C) The IETF Trust (2007).
410 This document is subject to the rights, licenses and restrictions
411 contained in BCP 78, and except as set forth therein, the authors
412 retain all their rights.
414 This document and the information contained herein are provided on
415 an "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE
416 REPRESENTS OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY, THE
417 IETF TRUST AND THE INTERNET ENGINEERING TASK FORCE DISCLAIM ALL
418 WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY
419 WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE
420 ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS
421 FOR A PARTICULAR PURPOSE.
423 Intellectual Property
425 The IETF takes no position regarding the validity or scope of any
426 Intellectual Property Rights or other rights that might be claimed
427 to pertain to the implementation or use of the technology described
428 in this document or the extent to which any license under such might
429 or might not be available; nor does it represent that it has made
430 any independent effort to identify any such rights. Information on
431 the procedures with respect to rights in RFC documents can be found
432 in BCP 78 and BCP 79.
434 Copies of IPR disclosures made to the IETF Secretariat and any
435 assurances of licenses to be made available, or the result of an
436 attempt made to obtain a general license or permission for the use
437 of such proprietary rights by implementers or users of this
438 specification can be obtained from the IETF on-line IPR repository
439 at http://www.ietf.org/ipr.
441 The IETF invites any interested party to bring to its attention any
442 copyrights, patents or patent applications, or other proprietary
443 rights that may cover technology that may be required to implement
444 this standard. Please address the information to the IETF at ietf-
448 Badra & Hajjeh Expires April 2008 [Page 8]
\f
450 Internet-Draft TLS Multiplexing October 2007
454 Funding for the RFC Editor function is provided by the IETF
455 Administrative Support Activity (IASA).
504 Badra & Hajjeh Expires April 2008 [Page 9]
\f