1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
|
Internet Engineering Task Force M. Badra
INTERNET DRAFT ENST Paris
I. Hajjeh
ESRGroups
Expires: March 2006 October 10, 2005
TLS Multiplexing
<draft-badra-hajjeh-mtls-00.txt>
Status
By submitting this Internet-Draft, each author represents that any
applicable patent or other IPR claims of which he or she is aware
have been or will be disclosed, and any of which he or she becomes
aware will be disclosed, in accordance with Section 6 of BCP 79.
Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF), its areas, and its working groups. Note that
other groups may also distribute working documents as Internet
Drafts.
Internet-Drafts are draft documents valid for a maximum of six
months and may be updated, replaced, or obsoleted by other documents
at any time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress."
The list of current Internet-Drafts can be accessed at
http://www.ietf.org/ietf/1id-abstracts.txt
The list of Internet-Draft Shadow Directories can be accessed at
http://www.ietf.org/shadow.html
This Internet-Draft will expire on March 10, 2006.
Copyright Notice
Copyright (C) The Internet Society (2005).
Abstract
TLS is the famous protocol that provides authentication and data
protection for communication between two entities. However, missing
from the protocol is a way to multiplex application data over the
same TLS session.
This document defines a new TLS sub-protocol called MTLS running
over TLS (or DTLS) Record protocol. The MTLS design provides
application multiplexing over a single TLS session. Instead of
associating a TLS connection with each application, MTLS allows
Badra & Hajjeh Expires March 2006 [Page 1]
INTERNET-DRAFT TLS Multiplexing October 2005
several applications to protect their exchanges over a single TLS
session.
1 Introduction
SMTP over TLS [SMTPTLS], HTTP over TLS [HTTPTLS], POP over TLS and
IMAP over TLS [POPTLS] are examples of securing, respectively, SMTP,
HTTP, POP and IMAP data exchanges using the TLS protocol [TLS].
TLS ([TLS], [TLSv1.1]) is the most deployed security protocol for
securing exchanges, authenticating entities and for generating and
distributing cryptographic keys. However, what is missing from the
protocol is the way to multiplex application data over the same TLS
session.
Actually, TLS (or DTLS [DTLS]) clients and servers MUST establish a
TLS (or DTLS) session for each application they want to run over TCP
(or UDP). However, some applications may agree or be configured to
use the same security policies or parameters (f.g. authentication
method and cipher_suite) and then to share one and only one TLS
session to protect their exchanges. In this way, this document
extends TLS to allow an application multiplexing functionality over
TLS.
The document motivations included:
o TLS is application protocol-independent. Higher-level protocol
can operate on top of the TLS protocol transparently.
o TLS is a modular nature protocol. Since TLS is developed in four
independent protocols, the approach defined in this document can
be added by extending the TLS protocol and with a total
reuse of pre-existing TLS infrastructures and implementations.
o It provides a secure VPN tunnel over a transport layer.
o Establishing a single session for a number of applications
reduces resource consumption, latency and messages flow that are
associated with executing simultaneous TLS sessions.
o TLS can not forbid an intruder to analyze the traffic and cannot
protect data from inference. Thus, the intruder can know the
type of application data transmitted through the TLS session.
However, the extension defined in this document allows, by its
design, data protection against inference.
1.2 Requirements language
The key words "MUST", "SHALL", "SHOULD", and "MAY", in this document
are to be interpreted as described in RFC-2119.
Badra & Hajjeh Expires March 2006 [Page 2]
INTERNET-DRAFT TLS Multiplexing October 2005
2 TLS multiplexing overview and considerations
This document defines a new TLS sub-protocol called Multiplexing TLS
(MTLS) to handle data multiplexing, and it specifies the content
type mtls(26) for this sub-protocol.
MTLS communication can take place over TCP or UDP. The default port
is TBC, but other ports can be used.
2.1 Handshake
Based on the TLS Extensions [TLSExt], a client and a server can, in
an ordinary TLS handshake, negotiate the future use of MTLS. If the
client does attempt to initiate a TLS connection using MTLS with a
server that does not support it, it will be automatically alerted.
For servers aware of MTLS but not wishing to use it, it will
gracefully revert to an ordinary TLS handshake or stop the
negotiation.
The negotiation starts usually with the client determining whether
the server is capable of and willing to use MTLS or not. In order to
allow a TLS client to negotiate the application multiplexing
functionality, a new extension type SHOULD be added to the Extended
Client and Extended Server Hello messages.
This document defines an extension of type
"application_layer_protocol". The "extension_data" field of this
extension contains a "data_multiplexing", where:
Struct {
ApplicationLayerProtocol alp_list<0..2^20-1>;
} data_multiplexing;
struct {
ApplicationpProtocolName apn;
select (Version)
case { 3, 1 }:// TLS Version 1.0
TCPPort tcp_port;
case { 3, 2 }:// TLS Version 1.1
TCPPort tcp_port;
case { 254, 255 }:// Datagram TLS Version 1.0
UDPPort udp_port;
} ApplicationLayerProtocol;
opaque TCPPort[2];
opaque UDPPort[2];
Opaque ApplicationpProtocolName<1..16>;
tcp_port (respectively udp_port) is the application port number at
the server side. The client MUST use as destination ports, the TCP
(respectively UDP) port numbers that are assigned by IANA.
Badra & Hajjeh Expires March 2006 [Page 3]
INTERNET-DRAFT TLS Multiplexing October 2005
Application layer running on unreliable links MUST be negotiated in
a separate session using the DTLS Handshake [DTLS].
Note: if the server agrees, the client SHOULD establish a single TLS
(respectively DTLS) session for all applications it wishes to run
over TCP (respectively UDP). In this case, the client SHOULD send a
data multiplexing extension containing "ALL" as
ApplicationpProtocolName value and "NULL" as TCPPort (or UDPPort)
value. If the server is not able to negotiate such session, it
replays with a list of applications (names and ports) it can accept
to run through a single TLS session, falls back on an ordinary TLS
handshake or stops the negotiation.
2.1.1. Multi-connections during application session
Once the establishment is complete, the client MAY open many
connections related to an arbitrary application over the secure
session. In this case, the application client MUST locally reserve a
port number for each connection. Next, the client application sends
its request to the MTLS client which is listening on the TBC port
number. This latter will check if it has an established secure
session with the requested hostname (the server). If then it checks
if the application protocol name has been accepted to run over MTLS,
before sends the request to the MTLS server.
2.2 MTLS sub-protocol
The structure of MTLS packet is described below. The first 8 bytes
of the packet represent the source and the destination ports of the
connexion, and the length contains the length of the MTLS data.
enum {
change_cipher_spec(20), alert(21), handshake(22),
application_data(23), mtls(26), (255)
} ContentType;
struct {
uint32 SourcePort
uint32 DestinationPort
uint16 length;
opaque data[MTLSPlaintext.length];
} MTLSPlaintext;
The TLS Record Layer receives data from MTLS, supposes it as
uninterpreted data and applies the fragmentation and the
cryptographic operations on it, as defined in [TLS].
Note: multiple MTLS fragments MAY be coalesced into a single
TLSPlaintext record.
Badra & Hajjeh Expires March 2006 [Page 4]
INTERNET-DRAFT TLS Multiplexing October 2005
Received data is decrypted, verified, decompressed, and reassembled,
then delivered to MTLS sub-protocol. Next, the MTLS sends data to
the appropriate application using the source and destination port
numbers and the length value.
Security Considerations
Security issues are discussed throughout this document, and in
[TLS], [TLSv1.1], [DTLS] and [TLSEXT] documents.
If a fatal error related to a connexion of an arbitrary application
is occurred, the secure session MUST NOT be resumed.
IANA Considerations
This document requires IANA to allocate the TBC TCP and UDP port
numbers.
Acknowledgment
This document defined TLS Multiplexing for applications running over
IP. Beyond that definition, generic options may be added to future
versions of the current document.
References
[TLS] Dierks, T., et. al., "The TLS Protocol Version 1.0", RFC
2246, January 1999.
[TLSExt] Blake-Wilson, S., et. al., "Transport Layer Security
(TLS) Extensions", RFC 3546, June 2003.
[DTLS] Rescorla, E., Modadugu, N., "Datagram Transport Layer
Security", draft-rescorla-dtls-05.txt, June 2004.
[TLSv1.1] Dierks, T., Rescorla, E., "The TLS Protocol Version 1.1",
draft-ietf-tls-rfc2246-bis-13.txt, June 2005
[SMTPTLS] Hoffman, P., "SMTP Service Extension for Secure SMTP over
TLS", RFC 2487, January 1999.
[HTTPTLS] Rescorla, E., "HTTP Over TLS", RFC 2818, May 2000.
[POPTLS] Newman, C., "Using TLS with IMAP, POP3 and ACAP", RFC
2595, June 1999.
Author's Addresses
Mohamad Badra
ENST Paris
France Email: Mohamad.Badra@enst.fr
Badra & Hajjeh Expires March 2006 [Page 5]
INTERNET-DRAFT TLS Multiplexing October 2005
Ibrahim Hajjeh
ESRGroups, Security WG
France Email: Ibrahim.Hajjeh@esrgroups.org
Intellectual Property Statement
The IETF takes no position regarding the validity or scope of any
Intellectual Property Rights or other rights that might be claimed
to pertain to the implementation or use of the technology described
in this document or the extent to which any license under such
rights might or might not be available; nor does it represent that
it has made any independent effort to identify any such rights.
Information on the IETF's procedures with respect to rights in IETF
Documents can be found in BCP 78 and BCP 79.
Copies of IPR disclosures made to the IETF Secretariat and any
assurances of licenses to be made available, or the result of an
attempt made to obtain a general license or permission for the use
of such proprietary rights by implementers or users of this
specification can be obtained from the IETF on-line IPR repository
at http://www.ietf.org/ipr.
The IETF invites any interested party to bring to its attention any
copyrights, patents or patent applications, or other proprietary
rights that may cover technology that may be required to implement
this standard. Please address the information to the IETF at ietf-
ipr@ietf.org.
Disclaimer of Validity
This document and the information contained herein are provided on
an "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE
REPRESENTS OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE
INTERNET ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF
THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED
WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
Copyright Statement
Copyright (C) The Internet Society (2004). This document is subject
to the rights, licenses and restrictions contained in BCP 78, and
except as set forth therein, the authors retain all their rights.
Acknowledgment
Funding for the RFC Editor function is currently provided by the
Internet Society.
Badra & Hajjeh Expires March 2006 [Page 6]
|