Import autobuild from gnulib.
[gnutls.git] / doc / protocol / draft-santesson-tls-supp-00.txt
blob7c72a91a0eebe7f7f6c8a70a7560cfa86d9822e0
5 INTERNET-DRAFT                                  S. Santesson (Microsoft)
6 Updates: 2246, 4346
7 Intended Category: Standards track
8 Expires September 2006                                        March 2006
11               TLS Handshake Message for Supplemental Data
12                    <draft-santesson-tls-supp-00.txt>
15 Status of this Memo
17    By submitting this Internet-Draft, each author represents that any
18    applicable patent or other IPR claims of which he or she is aware
19    have been or will be disclosed, and any of which he or she becomes
20    aware will be disclosed, in accordance with Section 6 of BCP 79.
22    Internet-Drafts are working documents of the Internet Engineering
23    Task Force (IETF), its areas, and its working groups.  Note that
24    other groups may also distribute working documents as Internet-
25    Drafts.
27    Internet-Drafts are draft documents valid for a maximum of six months
28    and may be updated, replaced, or obsoleted by other documents at any
29    time.  It is inappropriate to use Internet-Drafts as reference
30    material or to cite them other than a "work in progress."
32    The list of current Internet-Drafts can be accessed at
33    http://www.ietf.org/1id-abstracts.html
35    The list of Internet-Draft Shadow Directories can be accessed at
36    http://www.ietf.org/shadow.html
39 Abstract
41    This specification specifies a TLS handshake message for exchange of
42    supplemental application data.  TLS hello message extensions are used
43    to determine which supplemental data types are supported by both the
44    TLS client and the TLS server.  Then, the supplemental data handshake
45    message is used to exchange the data.  Other documents will define
46    the syntax of these extensions and the syntax of the associated
47    supplemental data types.
56 Santesson                                                       [Page 1]
58 INTERNET DRAFT TLS Handshake Message for Supplemental Data    March 2006
61 1.  Introduction
63    Recent standards activities have proposed different mechanisms for
64    transmitting supplemental application data in the TLS handshake
65    message.  For example, recent proposals transfer data that is not
66    processed by the TLS protocol itself, but assist the TLS-protected
67    application in the authentication and authorization decisions.  One
68    proposal transfers user name hints for locating credentials, and
69    another proposal transfers attribute certificates and SAML assertions
70    for authorization checks.
72    In order to avoid definition of multiple handshake messages, one for
73    each new type of application specific supplemental data, this
74    specification defines a new handshake message type that bundles all
75    such data objects together and sends them in a single handshake
76    message.
78 1.1  Terminology
80    The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
81    "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
82    document are to be interpreted as described in RFC 2119 [STDWORDS].
84    The syntax for the supplemental_data handshake message is defined
85    using the TLS Presentation Language, which is specified in Section 4
86    of [N2].
88 2  Supplemental Data Handshake Message
90    The new supplemental_data handshake message type is defined to
91    accommodate communication of supplemental data objects as agreed
92    during the exchange of extensions in the client and server hello
93    messages.  See RFC 2246 (TLS 1.0) [N2] and RFC 4346 (TLS 1.1) [N3]
94    for other handshake message types.
97       enum {
98              supplemental_data(TBD), (255)
99          } HandshakeType;
101       struct {
102              HandshakeType msg_type;    /* handshake type */
103              uint24 length;             /* octets in message */
104              select (HandshakeType) {
105                     case supplemental_data:   SupplementalData;
106                } body;
107           } Handshake;
112 Santesson                                                       [Page 2]
114 INTERNET DRAFT TLS Handshake Message for Supplemental Data    March 2006
117       struct {
118             SupplementalDataEntry supp_data<1..2^24-1>;
119          } SupplementalData;
121       struct {
122             SupplementalDataType supp_data_type;
123             select(SupplementalDataType) { }
124          } SupplementalDataEntry;
126       enum {
127             (65535)
128         } SupplementalDataType;
131    If present, the SupplementalData handshake message MUST contain a non
132    empty SupplementalDataEntry structure carrying data associated with
133    at least one defined SupplementalDataType.  An explicit agreement
134    that governs presence of any associated data MUST be concluded
135    between client and server for each SupplementalDataType. This
136    agreement MUST be concluded through the use of TLS extensions in the
137    client and server hello messages.
139    Other documents will specify specific SupplementalDataType and their
140    associated data syntax and processing.  These same specifications
141    must also specify the client and server hello message extensions that
142    are used to negotiate the support for the specified supplemental data
143    type.  This document simply specifies the TLS Handshake Protocol
144    message that will carry the supplemental data objects.
146    Different situations require the transfer of supplemental data from
147    the client to the server, require the transfer of supplemental data
148    from server to the client, or require the transfer of supplemental
149    data from the client to the server as well as the transfer from the
150    server to the client.  All three situations are fully supported.
168 Santesson                                                       [Page 3]
170 INTERNET DRAFT TLS Handshake Message for Supplemental Data    March 2006
173 4  Message flow
175    The SupplementalData handshake message, if exchanged, MUST be sent as
176    the first handshake message as illustrated in Figure 1 below.
178       Client                                               Server
180       ClientHello (with extensions) -------->
182                                      ServerHello(with extensions)
183                                                 SupplementalData*
184                                                      Certificate*
185                                                ServerKeyExchange*
186                                               CertificateRequest*
187                                    <--------      ServerHelloDone
189       SupplementalData*
190       Certificate*
191       ClientKeyExchange
192       CertificateVerify*
193       [ChangeCipherSpec]
194       Finished                     -------->
195                                                [ChangeCipherSpec]
196                                    <--------             Finished
197       Application Data             <------->     Application Data
199         *  Indicates optional or situation-dependent messages.
201                Figure 1.  Message flow with SupplementalData
224 Santesson                                                       [Page 4]
226 INTERNET DRAFT TLS Handshake Message for Supplemental Data    March 2006
229 5  Security Considerations
231    Each SupplementalDataType included in the handshake message defined
232    in this specification introduces its own unique set of security
233    properties and related considerations.  Security considerations must
234    therefore be defined in each document that defines a supplemetal data
235    type.
280 Santesson                                                       [Page 5]
282 INTERNET DRAFT TLS Handshake Message for Supplemental Data    March 2006
285 6  Normative References
287    [N1]        S. Bradner, "Key words for use in RFCs to Indicate
288                Requirement Levels", BCP 14, RFC 2119, March 1997.
290    [N2]        T. Dierks, C. Allen, "The TLS Protocol Version 1.0",
291                RFC 2246, January 1999.
293    [N3]        T. Dierks, E. Rescorla, "The TLS Protocol Version 1.1",
294                RFC 4346, January 2006.
296    [N4]        S. Blake-Wilson, M. Nystrom, D. Hopwood, J. Mikkelsen,
297                T. Wright, "Transport Layer Security (TLS) Extensions",
298                RFC 4366, February 2006.
301 7 IANA Considerations
303    IANA needs to establish a registry for TLS Supplemental Data Formats.
304    TLS Authorization Data Format identifiers with values in the
305    inclusive range 0-16385 (decimal) are assigned via RFC 2434 [IANA]
306    Standards Action.  Values from the inclusive range 16385-65279
307    (decimal) are assigned via RFC 2434 Specification Required.  Values
308    from the inclusive range 65280-65535 (decimal) are reserved for RFC
309    2434 Private Use.
336 Santesson                                                       [Page 6]
338 INTERNET DRAFT TLS Handshake Message for Supplemental Data    March 2006
341 Author's Address
343    Stefan Santesson
344    Microsoft
345    Finlandsgatan 30
346    164 93 KISTA
347    Sweden
349    EMail: stefans(at)microsoft.com
352 Acknowledgements
354    The fundamental architectural idea for the supplemental data
355    handshake message was provided by Russ Housley and Eric Rescorla.
392 Santesson                                                       [Page 7]
394 INTERNET DRAFT TLS Handshake Message for Supplemental Data    March 2006
397 Disclaimer
399    This document and the information contained herein are provided on an
400    "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS
401    OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE INTERNET
402    ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED,
403    INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE
404    INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED
405    WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
408 Copyright Statement
410    Copyright (C) The Internet Society (2006).
412    This document is subject to the rights, licenses and restrictions
413    contained in BCP 78, and except as set forth therein, the authors
414    retain all their rights.
417 Expires September 2006
448 Santesson                                                       [Page 8]