Improve GTK-DOC coverage.
[gnutls.git] / doc / protocol / draft-ietf-tls-psk-05.txt
bloba9e5403564409fc1a8a079e94b76ab13524dcdce
3 TLS Working Group                                         P. Eronen, Ed.
4 Internet-Draft                                                     Nokia
5 Expires: June 17, 2005                                H. Tschofenig, Ed.
6                                                                  Siemens
7                                                        December 17, 2004
10      Pre-Shared Key Ciphersuites for Transport Layer Security (TLS)
11                        draft-ietf-tls-psk-05.txt
13 Status of this Memo
15    This document is an Internet-Draft and is subject to all provisions
16    of section 3 of RFC 3667.  By submitting this Internet-Draft, each
17    author represents that any applicable patent or other IPR claims of
18    which he or she is aware have been or will be disclosed, and any of
19    which he or she become aware will be disclosed, in accordance with
20    RFC 3668.
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
25    Internet-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 as "work in progress."
32    The list of current Internet-Drafts can be accessed at
33    http://www.ietf.org/ietf/1id-abstracts.txt.
35    The list of Internet-Draft Shadow Directories can be accessed at
36    http://www.ietf.org/shadow.html.
38    This Internet-Draft will expire on June 17, 2005.
40 Copyright Notice
42    Copyright (C) The Internet Society (2004).
44 Abstract
46    This document specifies three sets of new ciphersuites for the
47    Transport Layer Security (TLS) protocol to support authentication
48    based on pre-shared keys.  These pre-shared keys are symmetric keys,
49    shared in advance among the communicating parties.  The first set of
50    ciphersuites uses only symmetric key operations for authentication.
51    The second set uses a Diffie-Hellman exchange authenticated with a
52    pre-shared key; and the third set combines public key authentication
53    of the server with pre-shared key authentication of the client.
58 Eronen & Tschofenig       Expires June 17, 2005                 [Page 1]
60 Internet-Draft          PSK Ciphersuites for TLS       November 24, 2004
63 1.  Introduction
65    Usually TLS uses public key certificates [3] or Kerberos [12] for
66    authentication.  This document describes how to use symmetric keys
67    (later called pre-shared keys or PSKs), shared in advance among the
68    communicating parties, to establish a TLS connection.
70    There are basically two reasons why one might want to do this:
72    o  First, TLS may be used in performance-constrained environments
73       where the CPU power needed for public key operations is not
74       available.
76    o  Second, pre-shared keys may be more convenient from a key
77       management point of view.  For instance, in closed environments
78       where the connections are mostly configured manually in advance,
79       it may be easier to configure a PSK than to use certificates.
80       Another case is when the parties already have a mechanism for
81       setting up a shared secret key, and that mechanism could be used
82       to "bootstrap" a key for authenticating a TLS connection.
84    This document specifies three sets of new ciphersuites for TLS.
85    These ciphersuites use new key exchange algorithms, and re-use
86    existing cipher and MAC algorithms from [3] and [2].  A summary of
87    these ciphersuites is shown below.
89       CipherSuite                        Key Exchange  Cipher       Hash
91       TLS_PSK_WITH_RC4_128_SHA           PSK           RC4_128       SHA
92       TLS_PSK_WITH_3DES_EDE_CBC_SHA      PSK           3DES_EDE_CBC  SHA
93       TLS_PSK_WITH_AES_128_CBC_SHA       PSK           AES_128_CBC   SHA
94       TLS_PSK_WITH_AES_256_CBC_SHA       PSK           AES_256_CBC   SHA
95       TLS_DHE_PSK_WITH_RC4_128_SHA       DHE_PSK       RC4_128       SHA
96       TLS_DHE_PSK_WITH_3DES_EDE_CBC_SHA  DHE_PSK       3DES_EDE_CBC  SHA
97       TLS_DHE_PSK_WITH_AES_128_CBC_SHA   DHE_PSK       AES_128_CBC   SHA
98       TLS_DHE_PSK_WITH_AES_256_CBC_SHA   DHE_PSK       AES_256_CBC   SHA
99       TLS_RSA_PSK_WITH_RC4_128_SHA       RSA_PSK       RC4_128       SHA
100       TLS_RSA_PSK_WITH_3DES_EDE_CBC_SHA  RSA_PSK       3DES_EDE_CBC  SHA
101       TLS_RSA_PSK_WITH_AES_128_CBC_SHA   RSA_PSK       AES_128_CBC   SHA
102       TLS_RSA_PSK_WITH_AES_256_CBC_SHA   RSA_PSK       AES_256_CBC   SHA
104    The first set of ciphersuites (with PSK key exchange algorithm),
105    defined in Section 2 use only symmetric key algorithms, and are thus
106    especially suitable for performance-constrained environments.
108    The ciphersuites in Section 3 (with DHE_PSK key exchange algorithm)
109    use a PSK to authenticate a Diffie-Hellman exchange.  These
110    ciphersuites protect against dictionary attacks by passive
114 Eronen & Tschofenig       Expires June 17, 2005                 [Page 2]
116 Internet-Draft          PSK Ciphersuites for TLS       November 24, 2004
119    eavesdroppers (but not active attackers), and also provide Perfect
120    Forward Secrecy (PFS).
122    The third set of ciphersuites (with RSA_PSK key exchange algorithm),
123    defined in Section 4, combine public key based authentication of the
124    server (using RSA and certificates) with mutual authentication using
125    a PSK.
127 1.1  Applicability statement
129    The ciphersuites defined in this document are intended for a rather
130    limited set of applications, usually involving only a very small
131    number of clients and servers.  Even in such environments, other
132    alternatives may be more appropriate.
134    If the main goal is to avoid PKIs, another possibility worth
135    considering is to use self-signed certificates with public key
136    fingerprints.  Instead of manually configuring a shared secret in,
137    for instance, some configuration file, a fingerprint (hash) of the
138    other party's public key (or certificate) could be placed there
139    instead.
141    It is also possible to use the SRP (Secure Remote Password)
142    ciphersuites for shared secret authentication [14].  SRP was designed
143    to be used with passwords, and incorporates protection against
144    dictionary attacks.  However, it is computationally more expensive
145    than the PSK ciphersuites in Section 2.
147 1.2  Conventions used in this document
149    The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
150    "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
151    document are to be interpreted as described in [1].
170 Eronen & Tschofenig       Expires June 17, 2005                 [Page 3]
172 Internet-Draft          PSK Ciphersuites for TLS       November 24, 2004
175 2.  PSK key exchange algorithm
177    This section defines the PSK key exchange algorithm and associated
178    ciphersuites.  These ciphersuites use only symmetric key algorithms.
180    It is assumed that the reader is familiar with ordinary TLS
181    handshake, shown below.  The elements in parenthesis are not included
182    when PSK key exchange algorithm is used, and "*" indicates a
183    situation-dependent message that is not always sent.
185       Client                                               Server
186       ------                                               ------
188       ClientHello                  -------->
189                                                       ServerHello
190                                                     (Certificate)
191                                                ServerKeyExchange*
192                                              (CertificateRequest)
193                                    <--------      ServerHelloDone
194       (Certificate)
195       ClientKeyExchange
196       (CertificateVerify)
197       ChangeCipherSpec
198       Finished                     -------->
199                                                  ChangeCipherSpec
200                                    <--------             Finished
201       Application Data             <------->     Application Data
204    The client indicates its willingness to use pre-shared key
205    authentication by including one or more PSK ciphersuites in the
206    ClientHello message.  If the TLS server also wants to use pre-shared
207    keys, it selects one of the PSK ciphersuites, places the selected
208    ciphersuite in the ServerHello message, and includes an appropriate
209    ServerKeyExchange message (see below).  The Certificate and
210    CertificateRequest payloads are omitted from the response.
212    Both clients and servers may have pre-shared keys with several
213    different parties.  The client indicates which key to use by
214    including a "PSK identity" in the ClientKeyExchange message (note
215    that unlike in [7], the session_id field in ClientHello message keeps
216    its usual meaning).  To help the client in selecting which identity
217    to use, the server can provide a "PSK identity hint" in the
218    ServerKeyExchange message.  If no hint is provided, the
219    ServerKeyExchange message is omitted.
221    It is expected that different types of identities are useful for
222    different applications running over TLS.  This document does not
226 Eronen & Tschofenig       Expires June 17, 2005                 [Page 4]
228 Internet-Draft          PSK Ciphersuites for TLS       November 24, 2004
231    therefore mandate the use of any particular type of identity (such as
232    IPv4 address or FQDN) or identity hint; neither is specified how
233    exactly the client uses the hint (if it uses it at all).
235    To increase the chances for successful interoperation between
236    applications that do agree on what type of identity is used, the
237    identity MUST be first converted to a character string, and then
238    encoded to octets using UTF-8 [5].  For instance,
240    o  IPv4 addresses are sent as dotted-decimal strings (e.g.,
241       "192.0.1.2"), not as 32-bit integers in network byte order.
243    o  Domain names are sent in their usual text form (e.g.,
244       "www.example.com" or "embedded\.dot.example.net"), not in DNS
245       protocol wire format.
247    o  X.500 Distinguished Names are sent in their string representation
248       [9], not as BER-encoded ASN.1.
250    In situations where the identity is entered by a person, processing
251    the character string with an appropriate stringprep [10] profile is
252    RECOMMENDED.
254    The format of the ServerKeyExchange and ClientKeyExchange messages is
255    shown below.
257       struct {
258           select (KeyExchangeAlgorithm) {
259               /* other cases for rsa, diffie_hellman, etc. */
260               case psk:  /* NEW */
261                   opaque psk_identity_hint<0..2^16-1>;
262           };
263       } ServerKeyExchange;
265       struct {
266           select (KeyExchangeAlgorithm) {
267               /* other cases for rsa, diffie_hellman, etc. */
268               case psk:   /* NEW */
269                   opaque psk_identity<0..2^16-1>;
270           } exchange_keys;
271       } ClientKeyExchange;
282 Eronen & Tschofenig       Expires June 17, 2005                 [Page 5]
284 Internet-Draft          PSK Ciphersuites for TLS       November 24, 2004
287    The premaster secret is formed as follows: if the PSK is N octets
288    long, concatenate an uint16 with the value N, N zero octets, a second
289    uint16 with the value N, and the PSK itself.
291       Note 1: All the ciphersuites in this document share the same
292       general structure for the premaster secret, namely
294          struct {
295              opaque other_secret<0..2^16-1>;
296              opaque psk<0..2^16-1>;
297          };
299       Here "other_secret" is either zeroes (plain PSK case), or comes
300       from the Diffie-Hellman or RSA exchange (DHE_PSK and RSA_PSK,
301       respectively).  See Sections 3 and 4 for a more detailed
302       description.
304       Note 2: Using zeroes for "other_secret" effectively means that
305       only the HMAC-SHA1 part (but not the HMAC-MD5 part) of the TLS PRF
306       is used when constructing the master secret.  See [8] for a more
307       detailed rationale.
309    The TLS handshake is authenticated using the Finished messages as
310    usual.
312    If the server does not recognize the PSK identity, it MAY respond
313    with an "unknown_psk_identity" alert message.  Alternatively, if the
314    server wishes to hide the fact that the PSK identity was not known,
315    it MAY continue the protocol as if the PSK identity existed but the
316    key was incorrect: that is, respond with a "decrypt_error" alert.
338 Eronen & Tschofenig       Expires June 17, 2005                 [Page 6]
340 Internet-Draft          PSK Ciphersuites for TLS       November 24, 2004
343 3.  DHE_PSK key exchange algorithm
345    This section defines additional ciphersuites that use a PSK to
346    authenticate a Diffie-Hellman exchange.  These ciphersuites give some
347    additional protection against dictionary attacks, and also provide
348    Perfect Forward Secrecy (PFS).  See Section 6 for discussion of
349    related security considerations.
351    When these ciphersuites are used, the ServerKeyExchange and
352    ClientKeyExchange messages also include the Diffie-Hellman
353    parameters.  The PSK identity and identity hint fields have the same
354    meaning as in the previous section (note that the ServerKeyExchange
355    message is always sent even if no PSK identity hint is provided).
357    The format of the ServerKeyExchange and ClientKeyExchange messages is
358    shown below.
360       struct {
361           select (KeyExchangeAlgorithm) {
362               /* other cases for rsa, diffie_hellman, etc. */
363               case diffie_hellman_psk:  /* NEW */
364                   opaque psk_identity_hint<0..2^16-1>;
365                   ServerDHParams params;
366           };
367       } ServerKeyExchange;
369       struct {
370           select (KeyExchangeAlgorithm) {
371               /* other cases for rsa, diffie_hellman, etc. */
372               case diffie_hellman_psk:   /* NEW */
373                   opaque psk_identity<0..2^16-1>;
374                   ClientDiffieHellmanPublic public;
375           } exchange_keys;
376       } ClientKeyExchange;
378    The premaster secret is formed as follows.  Let Z be the value
379    produced by the Diffie-Hellman exchange (with leading zero bytes
380    stripped as in other Diffie-Hellman based ciphersuites).  Concatenate
381    an uint16 containing the length of Z (in octets), Z itself, an uint16
382    containing the length of the PSK (in octets), and the PSK itself.
384    This corresponds to the general structure for the premaster secrets
385    (see Note 1 in Section 2) in this document, with "other_secret"
386    containing Z.
394 Eronen & Tschofenig       Expires June 17, 2005                 [Page 7]
396 Internet-Draft          PSK Ciphersuites for TLS       November 24, 2004
399 4.  RSA_PSK key exchange algorithm
401    The ciphersuites in this section use RSA and certificates to
402    authenticate the server, in addition to using a PSK.
404    As in normal RSA ciphersuites, the server must send a Certificate
405    message.  The format of the ServerKeyExchange and ClientKeyExchange
406    messages is shown below.  If no PSK identity hint is provided, the
407    ServerKeyExchange message is omitted.
409       struct {
410           select (KeyExchangeAlgorithm) {
411               /* other cases for rsa, diffie_hellman, etc. */
412               case rsa_psk:  /* NEW */
413                   opaque psk_identity_hint<0..2^16-1>;
414           };
415       } ServerKeyExchange;
417       struct {
418           select (KeyExchangeAlgorithm) {
419               /* other cases for rsa, diffie_hellman, etc. */
420               case rsa_psk:   /* NEW */
421                   opaque psk_identity<0..2^16-1>;
422                   EncryptedPreMasterSecret;
423           } exchange_keys;
424       } ClientKeyExchange;
426    The EncryptedPreMasterSecret field sent from the client to the server
427    contains a 2-byte version number and a 46-byte random value,
428    encrypted using the server's RSA public key as described in Section
429    7.4.7.1 of [3].  The actual premaster secret is formed by both
430    parties as follows: concatenate an uint16 with the value 48, the
431    2-byte version number and the 46-byte random value, an uint16
432    containing the length of the PSK (in octets), and the PSK itself.
434    This corresponds to the general structure for the premaster secrets
435    (see Note 1 in Section 2) in this document, with "other_secret"
436    containing both the 2-byte version number and the 46-byte random
437    value.
439    Neither the normal RSA ciphersuites nor these RSA_PSK ciphersuites
440    themselves specify what the certificates contain (in addition to the
441    RSA public key), or how the certificates are to be validated.  In
442    particular, it is possible to use the RSA_PSK ciphersuites with
443    unvalidated self-signed certificates to provide somewhat similar
444    protection against dictionary attacks as the DHE_PSK ciphersuites
445    defined in Section 3.
450 Eronen & Tschofenig       Expires June 17, 2005                 [Page 8]
452 Internet-Draft          PSK Ciphersuites for TLS       November 24, 2004
455 5.  IANA considerations
457    IANA does not currently have a registry for TLS-related numbers, so
458    there are no IANA actions associated with this document.
460    For easier reference in the future, the ciphersuite numbers defined
461    in this document are summarized below.
463       CipherSuite TLS_PSK_WITH_RC4_128_SHA          = { 0x00, 0x8A };
464       CipherSuite TLS_PSK_WITH_3DES_EDE_CBC_SHA     = { 0x00, 0x8B };
465       CipherSuite TLS_PSK_WITH_AES_128_CBC_SHA      = { 0x00, 0x8C };
466       CipherSuite TLS_PSK_WITH_AES_256_CBC_SHA      = { 0x00, 0x8D };
467       CipherSuite TLS_DHE_PSK_WITH_RC4_128_SHA      = { 0x00, 0x8E };
468       CipherSuite TLS_DHE_PSK_WITH_3DES_EDE_CBC_SHA = { 0x00, 0x8F };
469       CipherSuite TLS_DHE_PSK_WITH_AES_128_CBC_SHA  = { 0x00, 0x90 };
470       CipherSuite TLS_DHE_PSK_WITH_AES_256_CBC_SHA  = { 0x00, 0x91 };
471       CipherSuite TLS_RSA_PSK_WITH_RC4_128_SHA      = { 0x00, 0x92 };
472       CipherSuite TLS_RSA_PSK_WITH_3DES_EDE_CBC_SHA = { 0x00, 0x93 };
473       CipherSuite TLS_RSA_PSK_WITH_AES_128_CBC_SHA  = { 0x00, 0x94 };
474       CipherSuite TLS_RSA_PSK_WITH_AES_256_CBC_SHA  = { 0x00, 0x95 };
476    This document also defines a new TLS alert message,
477    unknown_psk_identity(115).
479 6.  Security Considerations
481    As with all schemes involving shared keys, special care should be
482    taken to protect the shared values and to limit their exposure over
483    time.
485 6.1  Perfect forward secrecy (PFS)
487    The PSK and RSA_PSK ciphersuites defined in this document do not
488    provide Perfect Forward Secrecy (PFS).  That is, if the shared secret
489    key (in PSK ciphersuites), or both the shared secret key and the RSA
490    private key (in RSA_PSK ciphersuites), is somehow compromised, an
491    attacker can decrypt old conversations.
493    The DHE_PSK ciphersuites provide Perfect Forward Secrecy if a fresh
494    DH private key is generated for each handshake.
496 6.2  Brute-force and dictionary attacks
498    Use of a fixed shared secret of limited entropy (for example, a PSK
499    that is relatively short, or was chosen by a human and thus may
500    contain less entropy than its length would imply) may allow an
501    attacker to perform a brute-force or dictionary attack to recover the
502    secret.  This may be either an off-line attack (against a captured
506 Eronen & Tschofenig       Expires June 17, 2005                 [Page 9]
508 Internet-Draft          PSK Ciphersuites for TLS       November 24, 2004
511    TLS handshake messages), or an on-line attack where the attacker
512    attempts to connect to the server and tries different keys.
514    For the PSK ciphersuites, an attacker can get the information
515    required for an off-line attack by eavesdropping a TLS handshake, or
516    by getting a valid client to attempt connection with the attacker (by
517    tricking the client to connect to wrong address, or intercepting a
518    connection attempt to the correct address, for instance).
520    For the DHE_PSK ciphersuites, an attacker can obtain the information
521    by getting a valid client to attempt connection with the attacker.
522    Passive eavesdropping alone is not sufficient.
524    For the RSA_PSK ciphersuites, only the server (authenticated using
525    RSA and certificates) can obtain sufficient information for an
526    off-line attack.
528    It is RECOMMENDED that implementations that allow the administrator
529    to manually configure the PSK also provide a functionality for
530    generating a new random PSK, taking [4] into account.
532 6.3  Identity privacy
534    The PSK identity is sent in cleartext.  While using a user name or
535    other similar string as the PSK identity is the most straightforward
536    option, it may lead to problems in some environments since an
537    eavesdropper is able to identify the communicating parties.  Even
538    when the identity does not reveal any information itself, reusing the
539    same identity over time may eventually allow an attacker to perform
540    traffic analysis to identify the parties.  It should be noted that
541    this is no worse than client certificates, since they are also sent
542    in cleartext.
544 6.4  Implementation notes
546    The implementation notes in [11] about correct implementation and use
547    of RSA (including Section 7.4.7.1) and Diffie-Hellman (including
548    Appendix F.1.1.3) apply to the DHE_PSK and RSA_PSK ciphersuites as
549    well.
551 7.  Acknowledgments
553    The protocol defined in this document is heavily based on work by Tim
554    Dierks and Peter Gutmann, and borrows some text from [7] and [2].
555    The DHE_PSK and RSA_PSK ciphersuites are based on earlier work in
556    [6].
558    Valuable feedback was also provided by Philip Ginzboorg, Peter
562 Eronen & Tschofenig       Expires June 17, 2005                [Page 10]
564 Internet-Draft          PSK Ciphersuites for TLS       November 24, 2004
567    Gutmann, David Jablon, Nikos Mavroyanopoulos, Bodo Moeller, Eric
568    Rescorla, and Mika Tervonen.
570    When the first version of this draft was almost ready, the authors
571    learned that something similar had been proposed already in 1996
572    [13].  However, this draft is not intended for web password
573    authentication, but rather for other uses of TLS.
575 8.  References
577 8.1  Normative References
579    [1]   Bradner, S., "Key words for use in RFCs to Indicate Requirement
580          Levels", RFC 2119, March 1997.
582    [2]   Chown, P., "Advanced Encryption Standard (AES) Ciphersuites
583          for Transport Layer Security (TLS)", RFC 3268, June 2002.
585    [3]   Dierks, T. and C. Allen, "The TLS Protocol Version 1.0", RFC
586          2246, January 1999.
588    [4]   Eastlake, D., Crocker, S. and J. Schiller, "Randomness
589          Recommendations for Security", RFC 1750, December 1994.
591    [5]   Yergeau, F., "UTF-8, a transformation format of ISO 10646", RFC
592          3629, November 2003.
594 8.2  Informative References
596    [6]   Badra, M., Cherkaoui, O., Hajjeh, I. and A. Serhrouchni,
597          "Pre-Shared-Key key Exchange methods for TLS",
598          draft-badra-tls-key-exchange-00 (work in progress), August
599          2004.
601    [7]   Gutmann, P., "Use of Shared Keys in the TLS Protocol",
602          draft-ietf-tls-sharedkeys-02 (expired), October 2003.
604    [8]   Krawczyk, H., "Re: TLS shared keys PRF",  message on
605          ietf-tls@lists.certicom.com mailing list 2004-01-13,
606          http://www.imc.org/ietf-tls/mail-archive/msg04098.html.
608    [9]   Zeilenga, K., "LDAP: String Representation of Distinguished
609          Names", draft-ietf-ldapbis-dn-15 (work in progress), October
610          2004.
612    [10]  Hoffman, P. and M. Blanchet, "Preparation of Internationalized
613          Strings ("stringprep")", RFC 3454, December 2002.
618 Eronen & Tschofenig       Expires June 17, 2005                [Page 11]
620 Internet-Draft          PSK Ciphersuites for TLS       November 24, 2004
623    [11]  Dierks, T. and E. Rescorla, "The TLS Protocol Version 1.1",
624          draft-ietf-tls-rfc2246-bis-09 (work in progress), December
625          2004.
627    [12]  Medvinsky, A. and M. Hur, "Addition of Kerberos Cipher Suites
628          to Transport Layer Security (TLS)", RFC 2712, October 1999.
630    [13]  Simon, D., "Addition of Shared Key Authentication to Transport
631          Layer Security (TLS)",  draft-ietf-tls-passauth-00 (expired),
632          November 1996.
634    [14]  Taylor, D., Wu, T., Mavroyanopoulos, N. and T. Perrin, "Using
635          SRP for TLS Authentication", draft-ietf-tls-srp-08 (work in
636          progress), August 2004.
674 Eronen & Tschofenig       Expires June 17, 2005                [Page 12]
676 Internet-Draft          PSK Ciphersuites for TLS       November 24, 2004
679 Authors' and Contributors' Addresses
681    Pasi Eronen
682    Nokia Research Center
683    P.O. Box 407
684    FIN-00045 Nokia Group
685    Finland
686    Email: pasi.eronen@nokia.com
689    Hannes Tschofenig
690    Siemens
691    Otto-Hahn-Ring 6
692    Munich, Bayern  81739
693    Germany
694    Email: Hannes.Tschofenig@siemens.com
697    Mohamad Badra
698    ENST Telecom
699    46 rue Barrault
700    75634 Paris
701    France
702    Email: Mohamad.Badra@enst.fr
705    Omar Cherkaoui
706    UQAM University
707    Montreal (Quebec)
708    Canada
709    Email: cherkaoui.omar@uqam.ca
712    Ibrahim Hajjeh
713    ENST Telecom
714    46 rue Barrault
715    75634 Paris
716    France
717    Email: Ibrahim.Hajjeh@enst.fr
720    Ahmed Serhrouchni
721    ENST Telecom
722    46 rue Barrault
723    75634 Paris
724    France
725    Email: Ahmed.Serhrouchni@enst.fr
730 Eronen & Tschofenig       Expires June 17, 2005                [Page 13]
732 Internet-Draft          PSK Ciphersuites for TLS       November 24, 2004
735 Appendix A.  Changelog
737    (This section should be removed by the RFC Editor before
738    publication.)
740    Changes from -04 to -05:
742    o  Omit ServerKeyExchange message (in PSK/RSA_PSK versions) if no
743       identity hint is provided.
745    Changes from -03 to -04:
747    o  Added a note about premaster secret "general structure" in
748       Sections 3 and 4.
750    o  Something in the I-D submission procedure had removed all
751          circumflexes from -03 version, turning e.g. "2^16" (two-to-
752          the sixteenth power) to "216" (two hundred and sixteen).
753          Let's try again.
755    Changes from -02 to -03:
757    o  Aligned the way the premaster secret is derived.
759    o  Specified that identities must be sent as human-readable UTF-8
760       strings, not in binary formats.  Changed reference to RFC 3629
761       from informative to normative.
763    o  Selected ciphersuite and alert numbers, and updated IANA
764       considerations section to match this.
766    o  Reworded some text about dictionary attacks in Section 6.2.
768    Changes from -01 to -02:
770    o  Clarified text about DHE_PSK ciphersuites in Section 1.
772    o  Clarified explanation of HMAC-SHA1/MD5 use of PRF in Section 2.
774    o  Added note about certificate validation and self-signed
775       certificates in Section 4.
777    o  Added Mohamad Badra et al. as contributors.
779    Changes from draft-ietf-tls-psk-00 to -01:
781    o  Added DHE_PSK and RSA_PSK key exchange algorithms, and updated
782       other text accordingly
786 Eronen & Tschofenig       Expires June 17, 2005                [Page 14]
788 Internet-Draft          PSK Ciphersuites for TLS       November 24, 2004
791    o  Removed SHA-1 hash from PSK key exchange premaster secret
792       construction (since premaster secret doesn't need to be 48 bytes).
794    o  Added unknown_psk_identity alert message.
796    o  Updated IANA considerations section.
798    Changes from draft-eronen-tls-psk-00 to draft-ietf-tls-psk-00:
800    o  Updated dictionary attack considerations based on comments from
801       David Jablon.
803    o  Added a recommendation about using UTF-8 in the identity field.
805    o  Removed Appendix A comparing this document with
806       draft-ietf-tls-sharedkeys-02.
808    o  Removed IPR comment about SPR.
810    o  Minor editorial changes.
842 Eronen & Tschofenig       Expires June 17, 2005                [Page 15]
844 Internet-Draft          PSK Ciphersuites for TLS       November 24, 2004
847 Intellectual Property Statement
849    The IETF takes no position regarding the validity or scope of any
850    Intellectual Property Rights or other rights that might be claimed to
851    pertain to the implementation or use of the technology described in
852    this document or the extent to which any license under such rights
853    might or might not be available; nor does it represent that it has
854    made any independent effort to identify any such rights.  Information
855    on the procedures with respect to rights in RFC documents can be
856    found in BCP 78 and BCP 79.
858    Copies of IPR disclosures made to the IETF Secretariat and any
859    assurances of licenses to be made available, or the result of an
860    attempt made to obtain a general license or permission for the use of
861    such proprietary rights by implementers or users of this
862    specification can be obtained from the IETF on-line IPR repository at
863    http://www.ietf.org/ipr.
865    The IETF invites any interested party to bring to its attention any
866    copyrights, patents or patent applications, or other proprietary
867    rights that may cover technology that may be required to implement
868    this standard.  Please address the information to the IETF at
869    ietf-ipr@ietf.org.
872 Disclaimer of Validity
874    This document and the information contained herein are provided on an
875    "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS
876    OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE INTERNET
877    ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED,
878    INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE
879    INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED
880    WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
883 Copyright Statement
885    Copyright (C) The Internet Society (2004).  This document is subject
886    to the rights, licenses and restrictions contained in BCP 78, and
887    except as set forth therein, the authors retain all their rights.
890 Acknowledgment
892    Funding for the RFC Editor function is currently provided by the
893    Internet Society.
898 Eronen & Tschofenig       Expires June 17, 2005                [Page 16]