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