the new makeinfo sets the FLOAT_NAME by default.
[gnutls.git] / doc / protocol / draft-ietf-tls-psk-03.txt
blob03683e63a570a51b7ba5e5385a12641cee6a469c
1 TLS Working Group                                         P. Eronen, Ed.
2 Internet-Draft                                                     Nokia
3 Expires: May 17, 2005                                 H. Tschofenig, Ed.
4                                                                  Siemens
5                                                        November 16, 2004
9      Pre-Shared Key Ciphersuites for Transport Layer Security (TLS)
10                        draft-ietf-tls-psk-03.txt
13 Status of this Memo
16    This document is an Internet-Draft and is subject to all provisions
17    of section 3 of RFC 3667.  By submitting this Internet-Draft, each
18    author represents that any applicable patent or other IPR claims of
19    which he or she is aware have been or will be disclosed, and any of
20    which he or she become aware will be disclosed, in accordance with
21    RFC 3668.
24    Internet-Drafts are working documents of the Internet Engineering
25    Task Force (IETF), its areas, and its working groups.  Note that
26    other groups may also distribute working documents as
27    Internet-Drafts.
30    Internet-Drafts are draft documents valid for a maximum of six months
31    and may be updated, replaced, or obsoleted by other documents at any
32    time.  It is inappropriate to use Internet-Drafts as reference
33    material or to cite them other than as "work in progress."
36    The list of current Internet-Drafts can be accessed at
37    http://www.ietf.org/ietf/1id-abstracts.txt.
40    The list of Internet-Draft Shadow Directories can be accessed at
41    http://www.ietf.org/shadow.html.
44    This Internet-Draft will expire on May 17, 2005.
47 Copyright Notice
50    Copyright (C) The Internet Society (2004).
53 Abstract
56    This document specifies three sets of new ciphersuites for the
57    Transport Layer Security (TLS) protocol to support authentication
58    based on pre-shared keys.  These pre-shared keys are symmetric keys,
59    shared in advance among the communicating parties.  The first set of
60    ciphersuites uses only symmetric key operations for authentication.
61    The second set uses a Diffie-Hellman exchange authenticated with a
62    pre-shared key; and the third set combines public key authentication
63    of the server with pre-shared key authentication of the client.
69 Eronen & Tschofenig       Expires May 17, 2005                  [Page 1]
70 Internet-Draft          PSK Ciphersuites for TLS       November 16, 2004
74 1.  Introduction
77    Usually TLS uses public key certificates [3] or Kerberos [12] for
78    authentication.  This document describes how to use symmetric keys
79    (later called pre-shared keys or PSKs), shared in advance among the
80    communicating parties, to establish a TLS connection.
83    There are basically two reasons why one might want to do this:
86    o  First, TLS may be used in performance-constrained environments
87       where the CPU power needed for public key operations is not
88       available.
91    o  Second, pre-shared keys may be more convenient from a key
92       management point of view.  For instance, in closed environments
93       where the connections are mostly configured manually in advance,
94       it may be easier to configure a PSK than to use certificates.
95       Another case is when the parties already have a mechanism for
96       setting up a shared secret key, and that mechanism could be used
97       to "bootstrap" a key for authenticating a TLS connection.
100    This document specifies three sets of new ciphersuites for TLS.
101    These ciphersuites use new key exchange algorithms, and re-use
102    existing cipher and MAC algorithms from [3] and [2].  A summary of
103    these ciphersuites is shown below.
106       CipherSuite                        Key Exchange  Cipher       Hash
109       TLS_PSK_WITH_RC4_128_SHA           PSK           RC4_128       SHA
110       TLS_PSK_WITH_3DES_EDE_CBC_SHA      PSK           3DES_EDE_CBC  SHA
111       TLS_PSK_WITH_AES_128_CBC_SHA       PSK           AES_128_CBC   SHA
112       TLS_PSK_WITH_AES_256_CBC_SHA       PSK           AES_256_CBC   SHA
113       TLS_DHE_PSK_WITH_RC4_128_SHA       DHE_PSK       RC4_128       SHA
114       TLS_DHE_PSK_WITH_3DES_EDE_CBC_SHA  DHE_PSK       3DES_EDE_CBC  SHA
115       TLS_DHE_PSK_WITH_AES_128_CBC_SHA   DHE_PSK       AES_128_CBC   SHA
116       TLS_DHE_PSK_WITH_AES_256_CBC_SHA   DHE_PSK       AES_256_CBC   SHA
117       TLS_RSA_PSK_WITH_RC4_128_SHA       RSA_PSK       RC4_128       SHA
118       TLS_RSA_PSK_WITH_3DES_EDE_CBC_SHA  RSA_PSK       3DES_EDE_CBC  SHA
119       TLS_RSA_PSK_WITH_AES_128_CBC_SHA   RSA_PSK       AES_128_CBC   SHA
120       TLS_RSA_PSK_WITH_AES_256_CBC_SHA   RSA_PSK       AES_256_CBC   SHA
123    The first set of ciphersuites (with PSK key exchange algorithm),
124    defined in Section 2 use only symmetric key algorithms, and are thus
125    especially suitable for performance-constrained environments.
128    The ciphersuites in Section 3 (with DHE_PSK key exchange algorithm)
129    use a PSK to authenticate a Diffie-Hellman exchange.  These
130    ciphersuites protect against dictionary attacks by passive
135 Eronen & Tschofenig       Expires May 17, 2005                  [Page 2]
136 Internet-Draft          PSK Ciphersuites for TLS       November 16, 2004
140    eavesdroppers (but not active attackers), and also provide Perfect
141    Forward Secrecy (PFS).
144    The third set of ciphersuites (with RSA_PSK key exchange algorithm),
145    defined in Section 4, combine public key based authentication of the
146    server (using RSA and certificates) with mutual authentication using
147    a PSK.
150 1.1  Applicability statement
153    The ciphersuites defined in this document are intended for a rather
154    limited set of applications, usually involving only a very small
155    number of clients and servers.  Even in such environments, other
156    alternatives may be more appropriate.
159    If the main goal is to avoid PKIs, another possibility worth
160    considering is to use self-signed certificates with public key
161    fingerprints.  Instead of manually configuring a shared secret in,
162    for instance, some configuration file, a fingerprint (hash) of the
163    other party's public key (or certificate) could be placed there
164    instead.
167    It is also possible to use the SRP (Secure Remote Password)
168    ciphersuites for shared secret authentication [14].  SRP was designed
169    to be used with passwords, and incorporates protection against
170    dictionary attacks.  However, it is computationally more expensive
171    than the PSK ciphersuites in Section 2.
174 1.2  Conventions used in this document
177    The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
178    "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
179    document are to be interpreted as described in [1].
199 Eronen & Tschofenig       Expires May 17, 2005                  [Page 3]
200 Internet-Draft          PSK Ciphersuites for TLS       November 16, 2004
204 2.  PSK key exchange algorithm
207    This section defines the PSK key exchange algorithm and associated
208    ciphersuites.  These ciphersuites use only symmetric key algorithms.
211    It is assumed that the reader is familiar with ordinary TLS
212    handshake, shown below.  The elements in parenthesis are not included
213    when PSK key exchange algorithm is used.
216       Client                                               Server
217       ------                                               ------
220       ClientHello                  -------->
221                                                       ServerHello
222                                                     (Certificate)
223                                                 ServerKeyExchange
224                                              (CertificateRequest)
225                                    <--------      ServerHelloDone
226       (Certificate)
227       ClientKeyExchange
228       (CertificateVerify)
229       ChangeCipherSpec
230       Finished                     -------->
231                                                  ChangeCipherSpec
232                                    <--------             Finished
233       Application Data             <------->     Application Data
237    The client indicates its willingness to use pre-shared key
238    authentication by including one or more PSK ciphersuites in the
239    ClientHello message.  If the TLS server also wants to use pre-shared
240    keys, it selects one of the PSK ciphersuites, places the selected
241    ciphersuite in the ServerHello message, and includes an appropriate
242    ServerKeyExchange message (see below).  The Certificate and
243    CertificateRequest payloads are omitted from the response.
246    Both clients and servers may have pre-shared keys with several
247    different parties.  The client indicates which key to use by
248    including a "PSK identity" in the ClientKeyExchange message (note
249    that unlike in [7], the session_id field in ClientHello message keeps
250    its usual meaning).  To help the client in selecting which identity
251    to use, the server can provide a "PSK identity hint" in the
252    ServerKeyExchange message (note that if no hint is provided, a
253    ServerKeyExchange message is still sent).
256    It is expected that different types of identities are useful for
257    different applications running over TLS.  This document does not
258    therefore mandate the use of any particular type of identity (such as
263 Eronen & Tschofenig       Expires May 17, 2005                  [Page 4]
264 Internet-Draft          PSK Ciphersuites for TLS       November 16, 2004
268    IPv4 address or FQDN) or identity hint; neither is specified how
269    exactly the client uses the hint (if it uses it at all).
272    To increase the chances for successful interoperation between
273    applications that do agree on what type of identity is used, the
274    identity MUST be first converted to a character string, and then
275    encoded to octets using UTF-8 [5].  For instance,
278    o  IPv4 addresses are sent as dotted-decimal strings (e.g.,
279       "192.0.1.2"), not as 32-bit integers in network byte order.
282    o  Domain names are sent in their usual text form (e.g.,
283       "www.example.com" or "embedded\.dot.example.net"), not in DNS
284       protocol wire format.
287    o  X.500 Distinguished Names are sent in their string representation
288       [9], not as BER-encoded ASN.1.
291    In situations where the identity is entered by a person, processing
292    the character string with an appropriate stringprep [10] profile is
293    RECOMMENDED.
296    The format of the ServerKeyExchange and ClientKeyExchange messages is
297    shown below.
300       struct {
301           select (KeyExchangeAlgorithm) {
302               /* other cases for rsa, diffie_hellman, etc. */
303               case psk:  /* NEW */
304                   opaque psk_identity_hint<0..2^16-1>;
305           };
306       } ServerKeyExchange;
309       struct {
310           select (KeyExchangeAlgorithm) {
311               /* other cases for rsa, diffie_hellman, etc. */
312               case psk:   /* NEW */
313                   opaque psk_identity<0..2^16-1>;
314           } exchange_keys;
315       } ClientKeyExchange;
328 Eronen & Tschofenig       Expires May 17, 2005                  [Page 5]
329 Internet-Draft          PSK Ciphersuites for TLS       November 16, 2004
333    The premaster secret is formed as follows: if the PSK is N octets
334    long, concatenate an uint16 with the value N, N zero octets, a second
335    uint16 with the value N, and the PSK itself.
338       Note 1: All the ciphersuites in this document share the same
339       general structure for the premaster secret, namely
342          struct {
343              opaque other_secret<0..2^16-1>;
344              opaque psk<0..2^16-1>;
345          };
348       Here "other_secret" is either zeroes (plain PSK case), or comes
349       from the Diffie-Hellman or RSA exchange (DHE_PSK and RSA_PSK,
350       respectively).  See Sections 3 and 4 for a more detailed
351       description.
354       Note 2: Using zeroes for "other_secret" effectively means that
355       only the HMAC-SHA1 part (but not the HMAC-MD5 part) of the TLS PRF
356       is used when constructing the master secret.  See [8] for a more
357       detailed rationale.
360    The TLS handshake is authenticated using the Finished messages as
361    usual.
364    If the server does not recognize the PSK identity, it MAY respond
365    with an "unknown_psk_identity" alert message.  Alternatively, if the
366    server wishes to hide the fact that the PSK identity was not known,
367    it MAY continue the protocol as if the PSK identity existed but the
368    key was incorrect: that is, respond with a "decrypt_error" alert.
391 Eronen & Tschofenig       Expires May 17, 2005                  [Page 6]
392 Internet-Draft          PSK Ciphersuites for TLS       November 16, 2004
396 3.  DHE_PSK key exchange algorithm
399    This section defines additional ciphersuites that use a PSK to
400    authenticate a Diffie-Hellman exchange.  These ciphersuites give some
401    additional protection against dictionary attacks, and also provide
402    Perfect Forward Secrecy (PFS).  See Section 6 for discussion of
403    related security considerations.
406    When these ciphersuites are used, the ServerKeyExchange and
407    ClientKeyExchange also include the Diffie-Hellman parameters.  The
408    PSK identity and identity hint fields have the same meaning as in the
409    previous section.
412    The format of the ServerKeyExchange and ClientKeyExchange messages is
413    shown below.
416       struct {
417           select (KeyExchangeAlgorithm) {
418               /* other cases for rsa, diffie_hellman, etc. */
419               case diffie_hellman_psk:  /* NEW */
420                   opaque psk_identity_hint<0..2^16-1>;
421                   ServerDHParams params;
422           };
423       } ServerKeyExchange;
426       struct {
427           select (KeyExchangeAlgorithm) {
428               /* other cases for rsa, diffie_hellman, etc. */
429               case diffie_hellman_psk:   /* NEW */
430                   opaque psk_identity<0..2^16-1>;
431                   ClientDiffieHellmanPublic public;
432           } exchange_keys;
433       } ClientKeyExchange;
436    The premaster secret is formed as follows.  Let Z be the value
437    produced by the Diffie-Hellman exchange (with leading zero bytes
438    stripped as in other Diffie-Hellman based ciphersuites).  Concatenate
439    an uint16 containing the length of Z (in octets), Z itself, an uint16
440    containing the length of the PSK (in octets), and the PSK itself.
454 Eronen & Tschofenig       Expires May 17, 2005                  [Page 7]
455 Internet-Draft          PSK Ciphersuites for TLS       November 16, 2004
459 4.  RSA_PSK key exchange algorithm
462    The ciphersuites in this section use RSA and certificates to
463    authenticate the server, in addition to using a PSK.
466    As in normal RSA ciphersuites, the server must send a Certificate
467    message.  The format of the ServerKeyExchange and ClientKeyExchange
468    messages is shown below.
471       struct {
472           select (KeyExchangeAlgorithm) {
473               /* other cases for rsa, diffie_hellman, etc. */
474               case rsa_psk:  /* NEW */
475                   opaque psk_identity_hint<0..2^16-1>;
476           };
477       } ServerKeyExchange;
480       struct {
481           select (KeyExchangeAlgorithm) {
482               /* other cases for rsa, diffie_hellman, etc. */
483               case rsa_psk:   /* NEW */
484                   opaque psk_identity<0..2^16-1>;
485                   EncryptedPreMasterSecret;
486           } exchange_keys;
487       } ClientKeyExchange;
490    The EncryptedPreMasterSecret field sent from the client to the server
491    contains a 2-byte version number and a 46-byte random value,
492    encrypted using the server's RSA public key as described in Section
493    7.4.7.1 of [3].  The actual premaster secret is formed by both
494    parties as follows: concatenate an uint16 with the value 48, the
495    2-byte version number and the 46-byte random value, an uint16
496    containing the length of the PSK (in octets), and the PSK itself.
499    Neither the normal RSA ciphersuites nor these RSA_PSK ciphersuites
500    themselves specify what the certificates contain (in addition to the
501    RSA public key), or how the certificates are to be validated.  In
502    particular, it is possible to use the RSA_PSK ciphersuites with
503    unvalidated self-signed certificates to provide somewhat similar
504    protection against dictionary attacks as the DHE_PSK ciphersuites
505    defined in Section 3.
517 Eronen & Tschofenig       Expires May 17, 2005                  [Page 8]
518 Internet-Draft          PSK Ciphersuites for TLS       November 16, 2004
522 5.  IANA considerations
525    IANA does not currently have a registry for TLS-related numbers, so
526    there are no IANA actions associated with this document.
529    For easier reference in the future, the ciphersuite numbers defined
530    in this document are summarized below.
533       CipherSuite TLS_PSK_WITH_RC4_128_SHA          = { 0x00, 0x8A };
534       CipherSuite TLS_PSK_WITH_3DES_EDE_CBC_SHA     = { 0x00, 0x8B };
535       CipherSuite TLS_PSK_WITH_AES_128_CBC_SHA      = { 0x00, 0x8C };
536       CipherSuite TLS_PSK_WITH_AES_256_CBC_SHA      = { 0x00, 0x8D };
537       CipherSuite TLS_DHE_PSK_WITH_RC4_128_SHA      = { 0x00, 0x8E };
538       CipherSuite TLS_DHE_PSK_WITH_3DES_EDE_CBC_SHA = { 0x00, 0x8F };
539       CipherSuite TLS_DHE_PSK_WITH_AES_128_CBC_SHA  = { 0x00, 0x90 };
540       CipherSuite TLS_DHE_PSK_WITH_AES_256_CBC_SHA  = { 0x00, 0x91 };
541       CipherSuite TLS_RSA_PSK_WITH_RC4_128_SHA      = { 0x00, 0x92 };
542       CipherSuite TLS_RSA_PSK_WITH_3DES_EDE_CBC_SHA = { 0x00, 0x93 };
543       CipherSuite TLS_RSA_PSK_WITH_AES_128_CBC_SHA  = { 0x00, 0x94 };
544       CipherSuite TLS_RSA_PSK_WITH_AES_256_CBC_SHA  = { 0x00, 0x95 };
547    This document also defines a new TLS alert message,
548    unknown_psk_identity(115).
551 6.  Security Considerations
554    As with all schemes involving shared keys, special care should be
555    taken to protect the shared values and to limit their exposure over
556    time.
559 6.1  Perfect forward secrecy (PFS)
562    The PSK and RSA_PSK ciphersuites defined in this document do not
563    provide Perfect Forward Secrecy (PFS).  That is, if the shared secret
564    key (in PSK ciphersuites), or both the shared secret key and the RSA
565    private key (in RSA_PSK ciphersuites), is somehow compromised, an
566    attacker can decrypt old conversations.
569    The DHE_PSK ciphersuites provide Perfect Forward Secrecy if a fresh
570    DH private key is generated for each handshake.
573 6.2  Brute-force and dictionary attacks
576    Use of a fixed shared secret of limited entropy (for example, a PSK
577    that is relatively short, or was chosen by a human and thus may
578    contain less entropy than its length would imply) may allow an
579    attacker to perform a brute-force or dictionary attack to recover the
580    secret.  This may be either an off-line attack (against a captured
585 Eronen & Tschofenig       Expires May 17, 2005                  [Page 9]
586 Internet-Draft          PSK Ciphersuites for TLS       November 16, 2004
590    TLS handshake messages), or an on-line attack where the attacker
591    attempts to connect to the server and tries different keys.
594    For the PSK ciphersuites, an attacker can get the information
595    required for an off-line attack by eavesdropping a TLS handshake, or
596    by getting a valid client to attempt connection with the attacker (by
597    tricking the client to connect to wrong address, or intercepting a
598    connection attempt to the correct address, for instance).
601    For the DHE_PSK ciphersuites, an attacker can obtain the information
602    by getting a valid client to attempt connection with the attacker.
603    Passive eavesdropping alone is not sufficient.
606    For the RSA_PSK ciphersuites, only the server (authenticated using
607    RSA and certificates) can obtain sufficient information for an
608    off-line attack.
611    It is RECOMMENDED that implementations that allow the administrator
612    to manually configure the PSK also provide a functionality for
613    generating a new random PSK, taking [4] into account.
616 6.3  Identity privacy
619    The PSK identity is sent in cleartext.  While using a user name or
620    other similar string as the PSK identity is the most straightforward
621    option, it may lead to problems in some environments since an
622    eavesdropper is able to identify the communicating parties.  Even
623    when the identity does not reveal any information itself, reusing the
624    same identity over time may eventually allow an attacker to perform
625    traffic analysis to identify the parties.  It should be noted that
626    this is no worse than client certificates, since they are also sent
627    in cleartext.
630 6.4  Implementation notes
633    The implementation notes in [11] about correct implementation and use
634    of RSA (including Section 7.4.7.1) and Diffie-Hellman (including
635    Appendix F.1.1.3) apply to the DHE_PSK and RSA_PSK ciphersuites as
636    well.
639 7.  Acknowledgments
642    The protocol defined in this document is heavily based on work by Tim
643    Dierks and Peter Gutmann, and borrows some text from [7] and [2].
644    The DHE_PSK and RSA_PSK ciphersuites are based on earlier work in
645    [6].
648    Valuable feedback was also provided by Philip Ginzboorg, Peter
653 Eronen & Tschofenig       Expires May 17, 2005                 [Page 10]
654 Internet-Draft          PSK Ciphersuites for TLS       November 16, 2004
658    Gutmann, David Jablon, Nikos Mavroyanopoulos, Bodo Moeller, Eric
659    Rescorla, and Mika Tervonen.
662    When the first version of this draft was almost ready, the authors
663    learned that something similar had been proposed already in 1996
664    [13].  However, this draft is not intended for web password
665    authentication, but rather for other uses of TLS.
668 8.  References
671 8.1  Normative References
674    [1]   Bradner, S., "Key words for use in RFCs to Indicate Requirement
675          Levels", RFC 2119, March 1997.
678    [2]   Chown, P., "Advanced Encryption Standard (AES) Ciphersuites
679          for Transport Layer Security (TLS)", RFC 3268, June 2002.
682    [3]   Dierks, T. and C. Allen, "The TLS Protocol Version 1.0", RFC
683          2246, January 1999.
686    [4]   Eastlake, D., Crocker, S. and J. Schiller, "Randomness
687          Recommendations for Security", RFC 1750, December 1994.
690    [5]   Yergeau, F., "UTF-8, a transformation format of ISO 10646", RFC
691          3629, November 2003.
694 8.2  Informative References
697    [6]   Badra, M., Cherkaoui, O., Hajjeh, I. and A. Serhrouchni,
698          "Pre-Shared-Key key Exchange methods for TLS",
699          draft-badra-tls-key-exchange-00 (work in progress), August
700          2004.
703    [7]   Gutmann, P., "Use of Shared Keys in the TLS Protocol",
704          draft-ietf-tls-sharedkeys-02 (expired), October 2003.
707    [8]   Krawczyk, H., "Re: TLS shared keys PRF",  message on
708          ietf-tls@lists.certicom.com mailing list 2004-01-13,
709          http://www.imc.org/ietf-tls/mail-archive/msg04098.html.
712    [9]   Zeilenga, K., "LDAP: String Representation of Distinguished
713          Names", draft-ietf-ldapbis-dn-15 (work in progress), October
714          2004.
717    [10]  Hoffman, P. and M. Blanchet, "Preparation of Internationalized
718          Strings ("stringprep")", RFC 3454, December 2002.
724 Eronen & Tschofenig       Expires May 17, 2005                 [Page 11]
725 Internet-Draft          PSK Ciphersuites for TLS       November 16, 2004
729    [11]  Dierks, T. and E. Rescorla, "The TLS Protocol Version 1.1",
730          draft-ietf-tls-rfc2246-bis-08 (work in progress), August 2004.
733    [12]  Medvinsky, A. and M. Hur, "Addition of Kerberos Cipher Suites
734          to Transport Layer Security (TLS)", RFC 2712, October 1999.
737    [13]  Simon, D., "Addition of Shared Key Authentication to Transport
738          Layer Security (TLS)",  draft-ietf-tls-passauth-00 (expired),
739          November 1996.
742    [14]  Taylor, D., Wu, T., Mavroyanopoulos, N. and T. Perrin, "Using
743          SRP for TLS Authentication", draft-ietf-tls-srp-08 (work in
744          progress), August 2004.
784 Eronen & Tschofenig       Expires May 17, 2005                 [Page 12]
785 Internet-Draft          PSK Ciphersuites for TLS       November 16, 2004
789 Authors' and Contributors' Addresses
792    Pasi Eronen
793    Nokia Research Center
794    P.O. Box 407
795    FIN-00045 Nokia Group
796    Finland
797    Email: pasi.eronen@nokia.com
801    Hannes Tschofenig
802    Siemens
803    Otto-Hahn-Ring 6
804    Munich, Bayern  81739
805    Germany
806    Email: Hannes.Tschofenig@siemens.com
810    Mohamad Badra
811    ENST Telecom
812    46 rue Barrault
813    75634 Paris
814    France
815    Email: Mohamad.Badra@enst.fr
819    Omar Cherkaoui
820    UQAM University
821    Montreal (Quebec)
822    Canada
823    Email: cherkaoui.omar@uqam.ca
827    Ibrahim Hajjeh
828    ENST Telecom
829    46 rue Barrault
830    75634 Paris
831    France
832    Email: Ibrahim.Hajjeh@enst.fr
836    Ahmed Serhrouchni
837    ENST Telecom
838    46 rue Barrault
839    75634 Paris
840    France
841    Email: Ahmed.Serhrouchni@enst.fr
847 Eronen & Tschofenig       Expires May 17, 2005                 [Page 13]
848 Internet-Draft          PSK Ciphersuites for TLS       November 16, 2004
852 Appendix A.  Changelog
855    (This section should be removed by the RFC Editor before
856    publication.)
859    Changes from -02 to -03:
862    o  Aligned the way the premaster secret is derived.
865    o  Specified that identities must be sent as human-readable UTF-8
866       strings, not in binary formats.  Changed reference to RFC 3629
867       from informative to normative.
870    o  Selected ciphersuite and alert numbers, and updated IANA
871       considerations section to match this.
874    o  Reworded some text about dictionary attacks in Section 6.2.
877    Changes from -01 to -02:
880    o  Clarified text about DHE_PSK ciphersuites in Section 1.
883    o  Clarified explanation of HMAC-SHA1/MD5 use of PRF in Section 2.
886    o  Added note about certificate validation and self-signed
887       certificates in Section 4.
890    o  Added Mohamad Badra et al. as contributors.
893    Changes from draft-ietf-tls-psk-00 to -01:
896    o  Added DHE_PSK and RSA_PSK key exchange algorithms, and updated
897       other text accordingly
900    o  Removed SHA-1 hash from PSK key exchange premaster secret
901       construction (since premaster secret doesn't need to be 48 bytes).
904    o  Added unknown_psk_identity alert message.
907    o  Updated IANA considerations section.
910    Changes from draft-eronen-tls-psk-00 to draft-ietf-tls-psk-00:
913    o  Updated dictionary attack considerations based on comments from
914       David Jablon.
917    o  Added a recommendation about using UTF-8 in the identity field.
923 Eronen & Tschofenig       Expires May 17, 2005                 [Page 14]
924 Internet-Draft          PSK Ciphersuites for TLS       November 16, 2004
928    o  Removed Appendix A comparing this document with
929       draft-ietf-tls-sharedkeys-02.
932    o  Removed IPR comment about SPR.
935    o  Minor editorial changes.
982 Eronen & Tschofenig       Expires May 17, 2005                 [Page 15]
983 Internet-Draft          PSK Ciphersuites for TLS       November 16, 2004
987 Intellectual Property Statement
990    The IETF takes no position regarding the validity or scope of any
991    Intellectual Property Rights or other rights that might be claimed to
992    pertain to the implementation or use of the technology described in
993    this document or the extent to which any license under such rights
994    might or might not be available; nor does it represent that it has
995    made any independent effort to identify any such rights.  Information
996    on the procedures with respect to rights in RFC documents can be
997    found in BCP 78 and BCP 79.
1000    Copies of IPR disclosures made to the IETF Secretariat and any
1001    assurances of licenses to be made available, or the result of an
1002    attempt made to obtain a general license or permission for the use of
1003    such proprietary rights by implementers or users of this
1004    specification can be obtained from the IETF on-line IPR repository at
1005    http://www.ietf.org/ipr.
1008    The IETF invites any interested party to bring to its attention any
1009    copyrights, patents or patent applications, or other proprietary
1010    rights that may cover technology that may be required to implement
1011    this standard.  Please address the information to the IETF at
1012    ietf-ipr@ietf.org.
1016 Disclaimer of Validity
1019    This document and the information contained herein are provided on an
1020    "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS
1021    OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE INTERNET
1022    ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED,
1023    INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE
1024    INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED
1025    WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
1029 Copyright Statement
1032    Copyright (C) The Internet Society (2004).  This document is subject
1033    to the rights, licenses and restrictions contained in BCP 78, and
1034    except as set forth therein, the authors retain all their rights.
1038 Acknowledgment
1041    Funding for the RFC Editor function is currently provided by the
1042    Internet Society.
1047 Eronen & Tschofenig       Expires May 17, 2005                 [Page 16]