3 Network Working Group D. Taylor
4 Internet-Draft Forge Research Pty Ltd
5 Expires: August 6, 2001 February 5, 2001
8 Using SRP for TLS Authentication
9 draft-ietf-tls-srp-00.txt
13 This document is an Internet-Draft and is in full conformance with
14 all provisions of Section 10 of RFC2026.
16 Internet-Drafts are working documents of the Internet Engineering
17 Task Force (IETF), its areas, and its working groups. Note that
18 other groups may also distribute working documents as
21 Internet-Drafts are draft documents valid for a maximum of six
22 months and may be updated, replaced, or obsoleted by other documents
23 at any time. It is inappropriate to use Internet-Drafts as reference
24 material or to cite them other than as "work in progress."
26 The list of current Internet-Drafts can be accessed at
27 http://www.ietf.org/ietf/1id-abstracts.txt.
29 The list of Internet-Draft Shadow Directories can be accessed at
30 http://www.ietf.org/shadow.html.
32 This Internet-Draft will expire on August 6, 2001.
36 Copyright (C) The Internet Society (2001). All Rights Reserved.
40 This memo presents a technique for using the SRP (Secure Remote
41 Password) protocol as an authentication method for the TLS
42 (Transport Layer Security) protocol.
55 Taylor Expires August 6, 2001 [Page 1]
57 Internet-Draft Using SRP for TLS Authentication February 2001
62 At the time of writing, TLS[1] uses public key certificiates with
63 RSA/DSA digital signatures, or Kerberos, for authentication.
65 These authentication methods do not seem well suited to the
66 applications now being adapted to use TLS (IMAP[3], FTP[4], or
67 TELNET[5], for example). Given these protocols (and others like
68 them) are designed to use the user name and password method of
69 authentication, being able to use user names and passwords to
70 authenticate the TLS connection seems to be a useful feature.
72 SRP[2] is an authentication method that allows the use of user names
73 and passwords in a safe manner.
75 This document describes the use of the SRP authentication method for
111 Taylor Expires August 6, 2001 [Page 2]
113 Internet-Draft Using SRP for TLS Authentication February 2001
116 2. SRP Authentication in TLS
118 2.1 Modifications to the TLS Handshake Sequence
120 The SRP protocol can not be implemented using the sequence of
121 handshake messages defined in [1] due to the sequence in which the
122 SRP messages must be sent.
124 This document proposes a new sequence of handshake messages for
125 handshakes using the SRP authentication method.
127 2.1.1 Message Sequence
129 Handshake Message Flow for SRP Authentication
133 Client Hello (U) ------------------------> |
134 | <---------------------------- Server Hello
135 | <---------------------------- Server Key Exchange (g, N, s)
136 Client Key Exchange (A) -----------------> |
137 | <---------------------------- Server Key Exchange (B)
138 | <---------------------------- Server Hello Done
140 Finished --------------------------------> |
142 | <---------------------------- Finished
145 The identifiers given after each message name refer to variables
146 defined in [2] that are sent in that message.
148 This new handshake sequence has a number of differences from the
149 standard TLS handshake sequence:
151 o The client hello message has the user name appended to the
152 message. This is allowable as stated in section 7.4.1.2 of [1].
154 o The client cannot generate its its public key (A) until after it
155 has received the (g) and (N) paramters from the server, and the
156 client must send its public key before it receives the servers
157 public key (B) (as stated in section 3 of [2]). This means the
158 client must wait for a server key exchange message containing (g)
159 and (N), send a client key exchange message containing (A), and
160 then wait for another server key exchange message containing (B).
162 o There is no server identification in this version of a TLS
163 handshake. If an attacker gets the SRP password file, they can
164 masquerade as the real system.
167 Taylor Expires August 6, 2001 [Page 3]
169 Internet-Draft Using SRP for TLS Authentication February 2001
172 2.2 Changes to the Handshake Message Contents
174 This section describes the changes to the TLS handshake message
175 contents when SRP is being used for authentication. The details of
176 the on-the-wire changes are given in Section 2.5.
178 2.2.1 The Client Hello Message
180 The user name is appended to the standard client hello message. The
181 extra data is included in the handshake message hashes.
183 2.2.2 The First Server Key Exchange Message
185 The server key exchange message in the first round contains the
186 generator (g), the prime (N), and the salt value (s) read from the
189 2.2.3 The Client Key Exchange Message
191 The client key exchange message carries the clients public key (A),
192 which is calculated using both information known locally, and
193 information received in the first server key exchange message. This
194 message MUST be sent between the first and second server key
197 2.2.4 The Second Server Key Exchange Message
199 The server key exchange message in the second round contains the
200 servers public key (B).
202 2.3 Calculating the Pre-master Secret
204 The shared secret resulting from the SRP calculations (S) is used as
205 the pre-master secret.
207 The finished messages perform the same function as the client and
208 server evidence messages specified in [2]. If either the client or
209 the server calculate an incorrect value, the finished messages will
210 not be understood, and the connection will be dropped as specified
213 2.4 Cipher Suite Definitions
215 The following cipher suites are added by this draft. The numbers
216 have been left blank until a suitable range has been selected.
218 CipherSuite TLS_SRP_WITH_3DES_EDE_CBC_SHA = { ?,? };
220 CipherSuite TLS_SRP_WITH_RC4_128_SHA = { ?,? };
223 Taylor Expires August 6, 2001 [Page 4]
225 Internet-Draft Using SRP for TLS Authentication February 2001
228 CipherSuite TLS_SRP_WITH_IDEA_CBC_SHA = { ?,? };
230 CipherSuite TLS_SRP_WITH_3DES_EDE_CBC_MD5 = { ?,? };
232 CipherSuite TLS_SRP_WITH_RC4_128_MD5 = { ?,? };
234 CipherSuite TLS_SRP_WITH_IDEA_CBC_MD5 = { ?,? };
236 2.5 New Message Structures
238 This section shows the structure of the messages passed during a
239 handshake that uses SRP for authentication. The representation
240 language used is that used in [1].
242 opaque Username<1..2^8-1>;
244 enum { non_srp, srp } CipherSuiteType;
247 ProtocolVersion client_version;
249 SessionID session_id;
250 CipherSuite cipher_suites<2..2^16-1>;
252 /* Need a better way to show the optional user_name field */
253 select (CipherSuiteType) {
255 CompressionMethod compression_methods<1..2^8-1>;
257 CompressionMethod compression_methods<1..2^8-1>;
258 Username user_name; /* new entry */
262 enum { rsa, diffie_hellman, srp } KeyExchangeAlgorithm;
264 enum { first, second } KeyExchangeRound;
267 select (KeyExchangeRound) {
269 opaque srp_s<1..2^8-1>
270 opaque srp_N<1..2^16-1>;
271 opaque srp_g<1..2^16-1>;
273 opaque srp_B<1..2^16-1>;
275 } ServerSRPParams; /* SRP parameters */
279 Taylor Expires August 6, 2001 [Page 5]
281 Internet-Draft Using SRP for TLS Authentication February 2001
285 select (KeyExchangeAlgorithm) {
287 ServerDHParams params;
288 Signature signed_params;
290 ServerRSAParams params;
291 Signature signed_params;
293 ServerSRPParams params; /* new entry */
298 opaque srp_A<1..2^16-1>;
299 } SRPClientEphemeralPublic;
302 select (KeyExchangeAlgorithm) {
303 case rsa: EncryptedPreMasterSecret;
304 case diffie_hellman: ClientDiffieHellmanPublic;
305 case srp: SRPClientEphemeralPublic; /* new entry */
335 Taylor Expires August 6, 2001 [Page 6]
337 Internet-Draft Using SRP for TLS Authentication February 2001
340 3. Security Considerations
342 There is no server identification in this version of a TLS
343 handshake. If an attacker gets the SRP password file, they can
344 masquerade as the real system.
346 What are the security issues of this new handshake sequence? Are the
347 SRP parameters passed in a safe order? Is it a problem having the
348 username appended to the client hello message?
391 Taylor Expires August 6, 2001 [Page 7]
393 Internet-Draft Using SRP for TLS Authentication February 2001
398 [1] Dierks, T. and C. Allen, "The TLS Protocol", RFC 2246, January
401 [2] Wu, T., "The SRP Authentication and Key Exchange System", RFC
402 2945, September 2000.
404 [3] Newman, C., "Using TLS with IMAP, POP3 and ACAP", RFC 2595,
407 [4] Ford-Hutchinson, P., Carpenter, M., Hudson, T., Murray, E. and
408 V. Wiegand, "Securing FTP with TLS",
409 draft-murray-auth-ftp-ssl-06 (work in progress), September 2000.
411 [5] Boe, M. and J. Altman, "TLS-based Telnet Security",
412 draft-ietf-tn3270e-telnet-tls-05 (work in progress), October
419 Forge Research Pty Ltd
421 EMail: DavidTaylor@forge.com.au
422 URI: http://www.protekt.com/
447 Taylor Expires August 6, 2001 [Page 8]
449 Internet-Draft Using SRP for TLS Authentication February 2001
452 Full Copyright Statement
454 Copyright (C) The Internet Society (2001). All Rights Reserved.
456 This document and translations of it may be copied and furnished to
457 others, and derivative works that comment on or otherwise explain it
458 or assist in its implementation may be prepared, copied, published
459 and distributed, in whole or in part, without restriction of any
460 kind, provided that the above copyright notice and this paragraph
461 are included on all such copies and derivative works. However, this
462 document itself may not be modified in any way, such as by removing
463 the copyright notice or references to the Internet Society or other
464 Internet organizations, except as needed for the purpose of
465 developing Internet standards in which case the procedures for
466 copyrights defined in the Internet Standards process must be
467 followed, or as required to translate it into languages other than
470 The limited permissions granted above are perpetual and will not be
471 revoked by the Internet Society or its successors or assigns.
473 This document and the information contained herein is provided on an
474 "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING
475 TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING
476 BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION
477 HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF
478 MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
482 Funding for the RFC editor function is currently provided by the
503 Taylor Expires August 6, 2001 [Page 9]