3 TLS Working Group P. Eronen, Ed.
5 Expires: August 22, 2005 H. Tschofenig, Ed.
10 Pre-Shared Key Ciphersuites for Transport Layer Security (TLS)
11 draft-ietf-tls-psk-06.txt
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
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
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.
42 Copyright (C) The Internet Society (2004).
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
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
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
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
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.
188 ClientHello -------->
193 <-------- ServerHelloDone
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
226 Eronen & Tschofenig Expires August 22, 2005 [Page 4]
228 Internet-Draft PSK Ciphersuites for TLS February 21, 2005
232 select (KeyExchangeAlgorithm) {
233 /* other cases for rsa, diffie_hellman, etc. */
235 opaque psk_identity_hint<0..2^16-1>;
240 select (KeyExchangeAlgorithm) {
241 /* other cases for rsa, diffie_hellman, etc. */
243 opaque psk_identity<0..2^16-1>;
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
255 opaque other_secret<0..2^16-1>;
256 opaque psk<0..2^16-1>;
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
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
269 The TLS handshake is authenticated using the Finished messages as
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
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;
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;
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"
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.
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>;
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;
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
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
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.
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
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
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
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.
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
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
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
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.
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
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
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
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
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
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),
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
738 Nokia Research Center
740 FIN-00045 Nokia Group
742 Email: pasi.eronen@nokia.com
750 Email: Hannes.Tschofenig@siemens.com
758 Email: Mohamad.Badra@enst.fr
765 Email: cherkaoui.omar@uqam.ca
773 Email: Ibrahim.Hajjeh@enst.fr
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
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
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).
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
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
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.
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.
948 Funding for the RFC Editor function is currently provided by the
954 Eronen & Tschofenig Expires August 22, 2005 [Page 17]