Guile: Fix `x509-certificate-dn-oid' and related functions.
[gnutls.git] / doc / protocol / draft-ietf-tls-psk-06.txt
blob3d6630ec7b3d0d82daab2970bf21e87bd0ade10f
3 TLS Working Group                                         P. Eronen, Ed.
4 Internet-Draft                                                     Nokia
5 Expires: August 22, 2005                              H. Tschofenig, Ed.
6                                                                  Siemens
7                                                        February 21, 2005
10      Pre-Shared Key Ciphersuites for Transport Layer Security (TLS)
11                        draft-ietf-tls-psk-06.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 August 22, 2005                [Page 1]
60 Internet-Draft          PSK Ciphersuites for TLS       February 21, 2005
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 August 22, 2005                [Page 2]
116 Internet-Draft          PSK Ciphersuites for TLS       February 21, 2005
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 August 22, 2005                [Page 3]
172 Internet-Draft          PSK Ciphersuites for TLS       February 21, 2005
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
203    The client indicates its willingness to use pre-shared key
204    authentication by including one or more PSK ciphersuites in the
205    ClientHello message.  If the TLS server also wants to use pre-shared
206    keys, it selects one of the PSK ciphersuites, places the selected
207    ciphersuite in the ServerHello message, and includes an appropriate
208    ServerKeyExchange message (see below).  The Certificate and
209    CertificateRequest payloads are omitted from the response.
211    Both clients and servers may have pre-shared keys with several
212    different parties.  The client indicates which key to use by
213    including a "PSK identity" in the ClientKeyExchange message (note
214    that unlike in [7], the session_id field in ClientHello message keeps
215    its usual meaning).  To help the client in selecting which identity
216    to use, the server can provide a "PSK identity hint" in the
217    ServerKeyExchange message.  If no hint is provided, the
218    ServerKeyExchange message is omitted.  See Section 5 for more
219    detailed description of these fields.
221    The format of the ServerKeyExchange and ClientKeyExchange messages is
222    shown below.
226 Eronen & Tschofenig      Expires August 22, 2005                [Page 4]
228 Internet-Draft          PSK Ciphersuites for TLS       February 21, 2005
231       struct {
232           select (KeyExchangeAlgorithm) {
233               /* other cases for rsa, diffie_hellman, etc. */
234               case psk:  /* NEW */
235                   opaque psk_identity_hint<0..2^16-1>;
236           };
237       } ServerKeyExchange;
239       struct {
240           select (KeyExchangeAlgorithm) {
241               /* other cases for rsa, diffie_hellman, etc. */
242               case psk:   /* NEW */
243                   opaque psk_identity<0..2^16-1>;
244           } exchange_keys;
245       } ClientKeyExchange;
247    The premaster secret is formed as follows: if the PSK is N octets
248    long, concatenate an uint16 with the value N, N zero octets, a second
249    uint16 with the value N, and the PSK itself.
251       Note 1: All the ciphersuites in this document share the same
252       general structure for the premaster secret, namely
254          struct {
255              opaque other_secret<0..2^16-1>;
256              opaque psk<0..2^16-1>;
257          };
259       Here "other_secret" is either zeroes (plain PSK case), or comes
260       from the Diffie-Hellman or RSA exchange (DHE_PSK and RSA_PSK,
261       respectively).  See Sections 3 and 4 for a more detailed
262       description.
264       Note 2: Using zeroes for "other_secret" effectively means that
265       only the HMAC-SHA1 part (but not the HMAC-MD5 part) of the TLS PRF
266       is used when constructing the master secret.  See [8] for a more
267       detailed rationale.
269    The TLS handshake is authenticated using the Finished messages as
270    usual.
272    If the server does not recognize the PSK identity, it MAY respond
273    with an "unknown_psk_identity" alert message.  Alternatively, if the
274    server wishes to hide the fact that the PSK identity was not known,
275    it MAY continue the protocol as if the PSK identity existed but the
276    key was incorrect: that is, respond with a "decrypt_error" alert.
282 Eronen & Tschofenig      Expires August 22, 2005                [Page 5]
284 Internet-Draft          PSK Ciphersuites for TLS       February 21, 2005
287 3.  DHE_PSK key exchange algorithm
289    This section defines additional ciphersuites that use a PSK to
290    authenticate a Diffie-Hellman exchange.  These ciphersuites give some
291    additional protection against dictionary attacks, and also provide
292    Perfect Forward Secrecy (PFS).  See Section 7 for discussion of
293    related security considerations.
295    When these ciphersuites are used, the ServerKeyExchange and
296    ClientKeyExchange messages also include the Diffie-Hellman
297    parameters.  The PSK identity and identity hint fields have the same
298    meaning as in the previous section (note that the ServerKeyExchange
299    message is always sent even if no PSK identity hint is provided).
301    The format of the ServerKeyExchange and ClientKeyExchange messages is
302    shown below.
304       struct {
305           select (KeyExchangeAlgorithm) {
306               /* other cases for rsa, diffie_hellman, etc. */
307               case diffie_hellman_psk:  /* NEW */
308                   opaque psk_identity_hint<0..2^16-1>;
309                   ServerDHParams params;
310           };
311       } ServerKeyExchange;
313       struct {
314           select (KeyExchangeAlgorithm) {
315               /* other cases for rsa, diffie_hellman, etc. */
316               case diffie_hellman_psk:   /* NEW */
317                   opaque psk_identity<0..2^16-1>;
318                   ClientDiffieHellmanPublic public;
319           } exchange_keys;
320       } ClientKeyExchange;
322    The premaster secret is formed as follows.  First, perform the
323    Diffie-Hellman computation in the same way as for other
324    Diffie-Hellman based ciphersuites in [3].  Let Z be the value
325    produced by this computation (with leading zero bytes stripped as in
326    other Diffie-Hellman based ciphersuites).  Concatenate an uint16
327    containing the length of Z (in octets), Z itself, an uint16
328    containing the length of the PSK (in octets), and the PSK itself.
330    This corresponds to the general structure for the premaster secrets
331    (see Note 1 in Section 2) in this document, with "other_secret"
332    containing Z.
338 Eronen & Tschofenig      Expires August 22, 2005                [Page 6]
340 Internet-Draft          PSK Ciphersuites for TLS       February 21, 2005
343 4.  RSA_PSK key exchange algorithm
345    The ciphersuites in this section use RSA and certificates to
346    authenticate the server, in addition to using a PSK.
348    As in normal RSA ciphersuites, the server must send a Certificate
349    message.  The format of the ServerKeyExchange and ClientKeyExchange
350    messages is shown below.  If no PSK identity hint is provided, the
351    ServerKeyExchange message is omitted.
353       struct {
354           select (KeyExchangeAlgorithm) {
355               /* other cases for rsa, diffie_hellman, etc. */
356               case rsa_psk:  /* NEW */
357                   opaque psk_identity_hint<0..2^16-1>;
358           };
359       } ServerKeyExchange;
361       struct {
362           select (KeyExchangeAlgorithm) {
363               /* other cases for rsa, diffie_hellman, etc. */
364               case rsa_psk:   /* NEW */
365                   opaque psk_identity<0..2^16-1>;
366                   EncryptedPreMasterSecret;
367           } exchange_keys;
368       } ClientKeyExchange;
370    The EncryptedPreMasterSecret field sent from the client to the server
371    contains a 2-byte version number and a 46-byte random value,
372    encrypted using the server's RSA public key as described in Section
373    7.4.7.1 of [3].  The actual premaster secret is formed by both
374    parties as follows: concatenate an uint16 with the value 48, the
375    2-byte version number and the 46-byte random value, an uint16
376    containing the length of the PSK (in octets), and the PSK itself.
377    (The premaster secret is thus 52 octets longer than the PSK.)
379    This corresponds to the general structure for the premaster secrets
380    (see Note 1 in Section 2) in this document, with "other_secret"
381    containing both the 2-byte version number and the 46-byte random
382    value.
384    Neither the normal RSA ciphersuites nor these RSA_PSK ciphersuites
385    themselves specify what the certificates contain (in addition to the
386    RSA public key), or how the certificates are to be validated.  In
387    particular, it is possible to use the RSA_PSK ciphersuites with
388    unvalidated self-signed certificates to provide somewhat similar
389    protection against dictionary attacks as the DHE_PSK ciphersuites
390    defined in Section 3.
394 Eronen & Tschofenig      Expires August 22, 2005                [Page 7]
396 Internet-Draft          PSK Ciphersuites for TLS       February 21, 2005
399 5.  Conformance requirements
401    It is expected that different types of identities are useful for
402    different applications running over TLS.  This document does not
403    therefore mandate the use of any particular type of identity (such as
404    IPv4 address or FQDN).
406    However, the TLS client and server clearly have to agree on the
407    identities and keys to be used.  To improve interoperability, this
408    document places requirements on how the identity is encoded on the
409    wire, and what kinds of identities and keys implementations have to
410    support.
412    The requirements for implementations are divided to two categories,
413    requirements for TLS implementations and management interfaces.  In
414    this context, "TLS implementation" refers to a TLS library or module
415    that is intended to be used for several different purposes, while
416    "management interface" would typically be implemented by a particular
417    application that uses TLS.
419 5.1  PSK identity encoding
421    The PSK identity MUST be first converted to a character string, and
422    then encoded to octets using UTF-8 [5].  For instance,
424    o  IPv4 addresses are sent as dotted-decimal strings (e.g.,
425       "192.0.1.2"), not as 32-bit integers in network byte order.
427    o  Domain names are sent in their usual text form (e.g.,
428       "www.example.com" or "embedded.dot.example.net"), not in DNS
429       protocol wire format.
431    o  X.500 Distinguished Names are sent in their string representation
432       [9], not as BER-encoded ASN.1.
434    This encoding is clearly not optimal for many types of identities.
435    It was chosen to avoid identity type specific parsing and encoding
436    code in implementations where the identity is configured by a person
437    using some kind of management interface.  Requiring such identity
438    type specific code would also increase the chances for
439    interoperability problems resulting from different implementations
440    supporting different identity types.
442 5.2  Identity hint
444    In the absence of an application profile specification specifying
445    otherwise, servers SHOULD NOT provide an identity hint and clients
446    MUST ignore the identity hint field.  Applications that do use this
450 Eronen & Tschofenig      Expires August 22, 2005                [Page 8]
452 Internet-Draft          PSK Ciphersuites for TLS       February 21, 2005
455    field MUST specify its contents, how the value is chosen by the TLS
456    server, and what the TLS client is expected to do with the value.
458 5.3  Requirements for TLS implementations
460    TLS implementations supporting these ciphersuites MUST support
461    arbitrary PSK identities up to 128 octets in length, and arbitrary
462    PSKs up to 64 octets in length.  Supporting longer identities and
463    keys is RECOMMENDED.
465 5.4  Requirements for management interfaces
467    In the absence of an application profile specification specifying
468    otherwise, a management interface for entering the PSK and/or PSK
469    identity MUST support entering PSK identities consisting of up to 128
470    printable ASCII characters, and MUST support entering PSKs up to 64
471    octets in length as ASCII strings and in hexadecimal encoding.
473    Supporting as wide character repertoire and as long identities and
474    keys as feasible is RECOMMENDED, as is processing the character
475    string with an appropriate stringprep [10] profile.
506 Eronen & Tschofenig      Expires August 22, 2005                [Page 9]
508 Internet-Draft          PSK Ciphersuites for TLS       February 21, 2005
511 6.  IANA considerations
513    IANA does not currently have a registry for TLS-related numbers, so
514    there are no IANA actions associated with this document.
516    For easier reference in the future, the ciphersuite numbers defined
517    in this document are summarized below.
519       CipherSuite TLS_PSK_WITH_RC4_128_SHA          = { 0x00, 0x8A };
520       CipherSuite TLS_PSK_WITH_3DES_EDE_CBC_SHA     = { 0x00, 0x8B };
521       CipherSuite TLS_PSK_WITH_AES_128_CBC_SHA      = { 0x00, 0x8C };
522       CipherSuite TLS_PSK_WITH_AES_256_CBC_SHA      = { 0x00, 0x8D };
523       CipherSuite TLS_DHE_PSK_WITH_RC4_128_SHA      = { 0x00, 0x8E };
524       CipherSuite TLS_DHE_PSK_WITH_3DES_EDE_CBC_SHA = { 0x00, 0x8F };
525       CipherSuite TLS_DHE_PSK_WITH_AES_128_CBC_SHA  = { 0x00, 0x90 };
526       CipherSuite TLS_DHE_PSK_WITH_AES_256_CBC_SHA  = { 0x00, 0x91 };
527       CipherSuite TLS_RSA_PSK_WITH_RC4_128_SHA      = { 0x00, 0x92 };
528       CipherSuite TLS_RSA_PSK_WITH_3DES_EDE_CBC_SHA = { 0x00, 0x93 };
529       CipherSuite TLS_RSA_PSK_WITH_AES_128_CBC_SHA  = { 0x00, 0x94 };
530       CipherSuite TLS_RSA_PSK_WITH_AES_256_CBC_SHA  = { 0x00, 0x95 };
532    This document also defines a new TLS alert message,
533    unknown_psk_identity(115).
535 7.  Security Considerations
537    As with all schemes involving shared keys, special care should be
538    taken to protect the shared values and to limit their exposure over
539    time.
541 7.1  Perfect forward secrecy (PFS)
543    The PSK and RSA_PSK ciphersuites defined in this document do not
544    provide Perfect Forward Secrecy (PFS).  That is, if the shared secret
545    key (in PSK ciphersuites), or both the shared secret key and the RSA
546    private key (in RSA_PSK ciphersuites), is somehow compromised, an
547    attacker can decrypt old conversations.
549    The DHE_PSK ciphersuites provide Perfect Forward Secrecy if a fresh
550    DH private key is generated for each handshake.
552 7.2  Brute-force and dictionary attacks
554    Use of a fixed shared secret of limited entropy (for example, a PSK
555    that is relatively short, or was chosen by a human and thus may
556    contain less entropy than its length would imply) may allow an
557    attacker to perform a brute-force or dictionary attack to recover the
558    secret.  This may be either an off-line attack (against a captured
562 Eronen & Tschofenig      Expires August 22, 2005               [Page 10]
564 Internet-Draft          PSK Ciphersuites for TLS       February 21, 2005
567    TLS handshake messages), or an on-line attack where the attacker
568    attempts to connect to the server and tries different keys.
570    For the PSK ciphersuites, an attacker can get the information
571    required for an off-line attack by eavesdropping a TLS handshake, or
572    by getting a valid client to attempt connection with the attacker (by
573    tricking the client to connect to wrong address, or intercepting a
574    connection attempt to the correct address, for instance).
576    For the DHE_PSK ciphersuites, an attacker can obtain the information
577    by getting a valid client to attempt connection with the attacker.
578    Passive eavesdropping alone is not sufficient.
580    For the RSA_PSK ciphersuites, only the server (authenticated using
581    RSA and certificates) can obtain sufficient information for an
582    off-line attack.
584    It is RECOMMENDED that implementations that allow the administrator
585    to manually configure the PSK also provide a functionality for
586    generating a new random PSK, taking [4] into account.
588 7.3  Identity privacy
590    The PSK identity is sent in cleartext.  While using a user name or
591    other similar string as the PSK identity is the most straightforward
592    option, it may lead to problems in some environments since an
593    eavesdropper is able to identify the communicating parties.  Even
594    when the identity does not reveal any information itself, reusing the
595    same identity over time may eventually allow an attacker to perform
596    traffic analysis to identify the parties.  It should be noted that
597    this is no worse than client certificates, since they are also sent
598    in cleartext.
600 7.4  Implementation notes
602    The implementation notes in [11] about correct implementation and use
603    of RSA (including Section 7.4.7.1) and Diffie-Hellman (including
604    Appendix F.1.1.3) apply to the DHE_PSK and RSA_PSK ciphersuites as
605    well.
607 8.  Acknowledgments
609    The protocol defined in this document is heavily based on work by Tim
610    Dierks and Peter Gutmann, and borrows some text from [7] and [2].
611    The DHE_PSK and RSA_PSK ciphersuites are based on earlier work in
612    [6].
614    Valuable feedback was also provided by Bernard Aboba, Philip
618 Eronen & Tschofenig      Expires August 22, 2005               [Page 11]
620 Internet-Draft          PSK Ciphersuites for TLS       February 21, 2005
623    Ginzboorg, Peter Gutmann, Russ Housley, David Jablon, Nikos
624    Mavroyanopoulos, Bodo Moeller, Eric Rescorla, and Mika Tervonen.
626    When the first version of this draft was almost ready, the authors
627    learned that something similar had been proposed already in 1996
628    [13].  However, this draft is not intended for web password
629    authentication, but rather for other uses of TLS.
631 9.  References
633 9.1  Normative References
635    [1]   Bradner, S., "Key words for use in RFCs to Indicate Requirement
636          Levels", RFC 2119, March 1997.
638    [2]   Chown, P., "Advanced Encryption Standard (AES) Ciphersuites
639          for Transport Layer Security (TLS)", RFC 3268, June 2002.
641    [3]   Dierks, T. and C. Allen, "The TLS Protocol Version 1.0", RFC
642          2246, January 1999.
644    [4]   Eastlake, D., Crocker, S. and J. Schiller, "Randomness
645          Recommendations for Security", RFC 1750, December 1994.
647    [5]   Yergeau, F., "UTF-8, a transformation format of ISO 10646", RFC
648          3629, November 2003.
650 9.2  Informative References
652    [6]   Badra, M., Cherkaoui, O., Hajjeh, I. and A. Serhrouchni,
653          "Pre-Shared-Key key Exchange methods for TLS",
654          draft-badra-tls-key-exchange-00 (work in progress), August
655          2004.
657    [7]   Gutmann, P., "Use of Shared Keys in the TLS Protocol",
658          draft-ietf-tls-sharedkeys-02 (expired), October 2003.
660    [8]   Krawczyk, H., "Re: TLS shared keys PRF",  message on
661          ietf-tls@lists.certicom.com mailing list 2004-01-13,
662          http://www.imc.org/ietf-tls/mail-archive/msg04098.html.
664    [9]   Zeilenga, K., "LDAP: String Representation of Distinguished
665          Names", draft-ietf-ldapbis-dn-15 (work in progress), October
666          2004.
668    [10]  Hoffman, P. and M. Blanchet, "Preparation of Internationalized
669          Strings ("stringprep")", RFC 3454, December 2002.
674 Eronen & Tschofenig      Expires August 22, 2005               [Page 12]
676 Internet-Draft          PSK Ciphersuites for TLS       February 21, 2005
679    [11]  Dierks, T. and E. Rescorla, "The TLS Protocol Version 1.1",
680          draft-ietf-tls-rfc2246-bis-09 (work in progress), December
681          2004.
683    [12]  Medvinsky, A. and M. Hur, "Addition of Kerberos Cipher Suites
684          to Transport Layer Security (TLS)", RFC 2712, October 1999.
686    [13]  Simon, D., "Addition of Shared Key Authentication to Transport
687          Layer Security (TLS)",  draft-ietf-tls-passauth-00 (expired),
688          November 1996.
690    [14]  Taylor, D., Wu, T., Mavroyanopoulos, N. and T. Perrin, "Using
691          SRP for TLS Authentication", draft-ietf-tls-srp-08 (work in
692          progress), August 2004.
730 Eronen & Tschofenig      Expires August 22, 2005               [Page 13]
732 Internet-Draft          PSK Ciphersuites for TLS       February 21, 2005
735 Authors' and Contributors' Addresses
737    Pasi Eronen
738    Nokia Research Center
739    P.O. Box 407
740    FIN-00045 Nokia Group
741    Finland
742    Email: pasi.eronen@nokia.com
745    Hannes Tschofenig
746    Siemens
747    Otto-Hahn-Ring 6
748    Munich, Bayern  81739
749    Germany
750    Email: Hannes.Tschofenig@siemens.com
753    Mohamad Badra
754    ENST Telecom
755    46 rue Barrault
756    75634 Paris
757    France
758    Email: Mohamad.Badra@enst.fr
761    Omar Cherkaoui
762    UQAM University
763    Montreal (Quebec)
764    Canada
765    Email: cherkaoui.omar@uqam.ca
768    Ibrahim Hajjeh
769    ENST Telecom
770    46 rue Barrault
771    75634 Paris
772    France
773    Email: Ibrahim.Hajjeh@enst.fr
776    Ahmed Serhrouchni
777    ENST Telecom
778    46 rue Barrault
779    75634 Paris
780    France
781    Email: Ahmed.Serhrouchni@enst.fr
786 Eronen & Tschofenig      Expires August 22, 2005               [Page 14]
788 Internet-Draft          PSK Ciphersuites for TLS       February 21, 2005
791 Appendix A.  Changelog
793    (This section should be removed by the RFC Editor before
794    publication.)
796    Changes from -05 to -06:
798    o  Small clarifications to how the premaster secret is formed.
800    o  Added a section about conformance requirements, and moved existing
801       text about identity formats there.
803    Changes from -04 to -05:
805    o  Omit ServerKeyExchange message (in PSK/RSA_PSK versions) if no
806       identity hint is provided.
808    Changes from -03 to -04:
810    o  Added a note about premaster secret "general structure" in
811       Sections 3 and 4.
813    o  Something in the I-D submission procedure had removed all
814          circumflexes from -03 version, turning e.g. "2^16" (two-to-
815          the sixteenth power) to "216" (two hundred and sixteen).
816          Let's try again.
818    Changes from -02 to -03:
820    o  Aligned the way the premaster secret is derived.
822    o  Specified that identities must be sent as human-readable UTF-8
823       strings, not in binary formats.  Changed reference to RFC 3629
824       from informative to normative.
826    o  Selected ciphersuite and alert numbers, and updated IANA
827       considerations section to match this.
829    o  Reworded some text about dictionary attacks in Section 6.2.
831    Changes from -01 to -02:
833    o  Clarified text about DHE_PSK ciphersuites in Section 1.
835    o  Clarified explanation of HMAC-SHA1/MD5 use of PRF in Section 2.
837    o  Added note about certificate validation and self-signed
838       certificates in Section 4.
842 Eronen & Tschofenig      Expires August 22, 2005               [Page 15]
844 Internet-Draft          PSK Ciphersuites for TLS       February 21, 2005
847    o  Added Mohamad Badra et al. as contributors.
849    Changes from draft-ietf-tls-psk-00 to -01:
851    o  Added DHE_PSK and RSA_PSK key exchange algorithms, and updated
852       other text accordingly
854    o  Removed SHA-1 hash from PSK key exchange premaster secret
855       construction (since premaster secret doesn't need to be 48 bytes).
857    o  Added unknown_psk_identity alert message.
859    o  Updated IANA considerations section.
861    Changes from draft-eronen-tls-psk-00 to draft-ietf-tls-psk-00:
863    o  Updated dictionary attack considerations based on comments from
864       David Jablon.
866    o  Added a recommendation about using UTF-8 in the identity field.
868    o  Removed Appendix A comparing this document with
869       draft-ietf-tls-sharedkeys-02.
871    o  Removed IPR comment about SPR.
873    o  Minor editorial changes.
898 Eronen & Tschofenig      Expires August 22, 2005               [Page 16]
900 Internet-Draft          PSK Ciphersuites for TLS       February 21, 2005
903 Intellectual Property Statement
905    The IETF takes no position regarding the validity or scope of any
906    Intellectual Property Rights or other rights that might be claimed to
907    pertain to the implementation or use of the technology described in
908    this document or the extent to which any license under such rights
909    might or might not be available; nor does it represent that it has
910    made any independent effort to identify any such rights.  Information
911    on the procedures with respect to rights in RFC documents can be
912    found in BCP 78 and BCP 79.
914    Copies of IPR disclosures made to the IETF Secretariat and any
915    assurances of licenses to be made available, or the result of an
916    attempt made to obtain a general license or permission for the use of
917    such proprietary rights by implementers or users of this
918    specification can be obtained from the IETF on-line IPR repository at
919    http://www.ietf.org/ipr.
921    The IETF invites any interested party to bring to its attention any
922    copyrights, patents or patent applications, or other proprietary
923    rights that may cover technology that may be required to implement
924    this standard.  Please address the information to the IETF at
925    ietf-ipr@ietf.org.
928 Disclaimer of Validity
930    This document and the information contained herein are provided on an
931    "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS
932    OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE INTERNET
933    ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED,
934    INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE
935    INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED
936    WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
939 Copyright Statement
941    Copyright (C) The Internet Society (2004).  This document is subject
942    to the rights, licenses and restrictions contained in BCP 78, and
943    except as set forth therein, the authors retain all their rights.
946 Acknowledgment
948    Funding for the RFC Editor function is currently provided by the
949    Internet Society.
954 Eronen & Tschofenig      Expires August 22, 2005               [Page 17]