[Search] [pdfized|bibtex] [Tracker] [Email] [Diff1] [Diff2] [Nits]
Versions: 00 01 02 03 04 05 rfc2944                      Standards Track
Network Working Group                                              T. Wu
Internet-Draft                                       Stanford University
draft-wu-telnet-auth-srp-05.txt                               April 2000

                       Telnet Authentication: SRP

Status of this Memo

     This document is an Internet-Draft and is in full conformance
     with all provisions of Section 10 of RFC2026.  Internet-Drafts
     are working documents of the Internet Engineering Task Force
     (IETF), its areas, and its working groups.  Note that other
     groups may also distribute working documents as Internet-Drafts.

     Internet-Drafts are draft documents valid for a maximum of six
     months and may be updated, replaced, or obsoleted by other
     documents at any time.  It is inappropriate to use Internet-
     Drafts as reference material or to cite them other than as
     "work in progress."

     The list of current Internet-Drafts can be accessed at

     The list of Internet-Draft Shadow Directories can be accessed at

     To view the entire list of current Internet-Drafts, please check
     the "1id-abstracts.txt" listing contained in the Internet-Drafts
     Shadow Directories on ftp.is.co.za (Africa), ftp.nordu.net
     (Europe), munnari.oz.au (Pacific Rim), ds.internic.net (US East
     Coast), or ftp.isi.edu (US West Coast).


   This document specifies an authentication scheme for the Telnet
   protocol under the framework described in [AUTH], using the
   SRP authentication mechanism.  The specific mechanism, SRP-SHA1,
   is described in [SRP-DRAFT].

1. Command Names and Codes

   Authentication Types

      SRP          5

   Suboption Commands

      AUTH         0
      REJECT       1
      ACCEPT       2
      CHALLENGE    3
      RESPONSE     4

      EXP          8
      PARAMS       9

                           Expires September 2000                [Page 1]

Internet-Draft         SRP Authentication for Telnet           April 2000

2. Command Meanings

   IAC SB AUTHENTICATION IS <authentication-type-pair> AUTH IAC SE

      This command indicates that the client has supplied the
      username and is ready to receive that user's field parameters.
      There is no authentication information to be sent to the remote
      side of the connection yet.  This should only be sent after the
      IAC SB AUTHENTICATION NAME command has been issued.  If the
      modifier byte (second byte of the authentication-type-pair)
      has any bits other than AUTH_WHO_MASK or AUTH_HOW_MASK set,
      both bytes are included in the session key hash described later.
      This ensures that the authentication type pair was correctly
      negotiated, while maintaining backward-compatibility with existing

   IAC SB AUTHENTICATION REPLY <authentication-type-pair> PARAMS
   <values of modulus, generator, and salt> IAC SE

      This command is used to pass the three parameter values used
      in the exponentiation to the client.  These values are often
      called n, g, and s.

   IAC SB AUTHENTICATION IS <authentication-type-pair> EXP
   <client's exponential residue> IAC SE

      This command is used to pass the client's exponential residue,
      otherwise known as A, computed against the parameters exchanged

   IAC SB AUTHENTICATION REPLY <authentication-type-pair> CHALLENGE
   <server's exponential residue> IAC SE

      This command is used to pass the server's exponential residue,
      computed against the same parameters.  This quantity is actually
      the sum of two residues, i.e. g^x + g^b.  For details see [SRP]
      and [SRP-DRAFT].

   IAC SB AUTHENTICATION IS <authentication-type-pair> RESPONSE
   <response from client> IAC SE

      This command gives the server proof of the client's authenticity
      with a 160-bit (20 byte) response.

   IAC SB AUTHENTICATION REPLY <authentication-type-pair> ACCEPT
   <server's response> IAC SE

      This command indicates that the authentication was successful.
      The server will construct its own proof of authenticity and
      include it as sub-option data.

   IAC SB AUTHENTICATION REPLY <authentication-type-pair> REJECT
   <optional reason for rejection> IAC SE

      This command indicates that the authentication was not successful,
      and if there is any more data in the sub-option, it is an ASCII
      text message of the reason for the rejection.

                           Expires September 2000                [Page 2]

Internet-Draft         SRP Authentication for Telnet           April 2000

   For the PARAMS command, since three pieces of data are being
   transmitted, each parameter is preceded by a 16-bit (two byte)
   length specifier in network byte order.  The EXP commands do not have
   a count in front of the data because there is only one piece of data
   in that suboption.  The CHALLENGE, RESPONSE, and ACCEPT data also
   do not have a count because they are all fixed in size.

3. Implementation Rules

   Currently, only AUTH_CLIENT_TO_SERVER mode is supported.
   Although the SRP protocol effectively performs implicit mutual
   authentication as a result of the two-way proofs, only the
   AUTH_HOW_ONE_WAY authentication mode is currently defined.
   The AUTH_HOW_MUTUAL setting is being reserved for an explicit
   mutual-authentication variant of the SRP protocol to be defined
   in future specifications.

   All large number data sent in the arguments of the PARAMS and
   EXP commands must be in network byte order, i.e. most significant
   byte first.  No padding is used.

   The SRP-SHA1 mechanism, as described in [SRP-DRAFT] generates a
   40-byte session key, which allows implementations to use different
   keys for incoming and outgoing traffic, increasing the security of
   the encrypted session.  It is recommended that the Telnet ENCRYPT
   method, if it is used, be able to take advantage of the longer
   session keys.

4. Examples

   User "tjw" may wish to log in on machine "foo".  The client would
   IS SRP AUTH IAC SE.  The server would look up the field and salt
   parameters for "tjw" from its password file and send them back
   to the client.  Client and server would then exchange exponential
   residues and calculate their session keys (after the client prompted
   "tjw" for his password).  Then, the client would send the server
   its proof that it knows the session key.  The server would either
   send back an ACCEPT or a REJECT.  If the server accepts
   authentication, it also sends its own proof that it knows the
   session key to the client.

                           Expires September 2000                [Page 3]

Internet-Draft         SRP Authentication for Telnet           April 2000

       Client                           Server
                                        IAC DO AUTHENTICATION

       [ The server is now free to request authentication information.
                                        IAC SB AUTHENTICATION SEND
                                        SRP CLIENT|ONE_WAY|
                                        SRP CLIENT|ONE_WAY
                                        IAC SE

       [ The server has requested SRP authentication.  It has indicated
         a preference for ENCRYPT_USING_TELOPT, which requires the
         Telnet ENCRYPT option to be negotiated once authentication
         succeeds.  If the client does not support this, the server
         is willing to fall back to an encryption-optional mode.

         The client will now respond with the name of the
         user that it wants to log in as. ]

       "tjw" IAC SE
       IAC SE

       [ The server looks up the appropriate information for "tjw" and
         sends back the parameters in a PARAMS command.  The parameters
         consist of the values N, g, and s, each preceded with a two-
         byte size parameter. ]

                                        IAC SB AUTHENTICATION REPLY
                                        SRP CLIENT|ONE_WAY|
                                        ENCRYPT_USING_TELOPT PARAMS
                                        ss ss nn nn nn nn ...
                                        ss ss gg gg gg gg ...
                                        ss ss tt tt tt tt ...
                                        IAC SE

       [ Both sides send their exponential residues.  The client
         sends its value A and the server sends its value B.  In SRP,
         the CHALLENGE message may be computed but not sent before
         the EXP command.  ]

       aa aa aa aa aa aa aa aa ...
       IAC SE
                                        IAC SB AUTHENTICATION REPLY
                                        SRP CLIENT|ONE_WAY|
                                        ENCRYPT_USING_TELOPT CHALLENGE
                                        bb bb bb bb bb bb bb bb ...
                                        IAC SE

       [ The client sends its response to the server.  This is the
         message M in the SRP protocol, which proves possession of
         the session key by the client.

                           Expires September 2000                [Page 4]

Internet-Draft         SRP Authentication for Telnet           April 2000

         Since ENCRYPT_USING_TELOPT is specified, the two octets
         of the authentication-type-pair are appended to the
         session key K before the hash for M is computed.  If
         the client and server had agreed upon a mode without
         the encryption flag set, nothing would be appended to K.

         Both this message and the server's response are as long as
         the output of the hash; the length is 20 bytes for SHA-1. ]

       xx xx xx xx xx xx xx xx ...
       IAC SE

       [ The server accepts the response and sends its own proof. ]

                                        IAC SB AUTHENTICATION REPLY
                                        SRP CLIENT|ONE_WAY|
                                        ENCRYPT_USING_TELOPT ACCEPT
                                        yy yy yy yy yy yy yy yy ...
                                        IAC SE

5. Security Considerations

   The ability to negotiate a common authentication mechanism between
   client and server is a feature of the authentication option that
   should be used with caution.  When the negotiation is performed, no
   authentication has yet occurred.  Therefore, each system has no way
   of knowing whether or not it is talking to the system it intends.  An
   intruder could attempt to negotiate the use of an authentication
   system which is either weak, or already compromised by the intruder.

   Since SRP relies on the security of the underlying public-key
   cryptosystem, the modulus "n" should be large enough to resist
   brute-force attack.  A length of at least 1024 bits is recommended,
   and implementations should reject attempts to use moduli that are
   shorter than 512 bits, or attempts to use invalid moduli and generator
   parameters (non-safe-prime "n" or non-primitive "g").

6. IANA Considerations

   The authentication type SRP and its associated suboption values
   are registered with IANA.  Any suboption values used to extend
   the protocol as described in this document must be registered
   with IANA before use.  IANA is instructed not to issue new suboption
   values without submission of documentation of their use.

7. References

   [AUTH]  T. Ts'o, "Telnet Authentication Option",
              draft-tso-telnet-auth-enc-02.txt, April 2000.

   [SRP]  T. Wu, "The Secure Remote Password Protocol", In Proceedings
          of the 1998 ISOC Network and Distributed System Security
          Symposium, San Diego, CA, pp. 97-111.

   [SRP-DRAFT]  T. Wu, "The SRP Authentication and Key Exchange System",
                draft-wu-srp-auth-03.txt, Stanford University.

8. Author's Address

   Thomas Wu
   Stanford University
   Stanford, CA 94305
   EMail: tjw@cs.Stanford.EDU

                           Expires September 2000                [Page 5]

    Jeffrey Altman * Sr.Software Designer * Kermit-95 for Win32 and OS/2
                 The Kermit Project * Columbia University
              612 West 115th St #716 * New York, NY * 10025
  http://www.kermit-project.org/k95.html * kermit-support@kermit-project.org