home *** CD-ROM | disk | FTP | other *** search
/ Columbia Kermit / kermit.zip / e / id-tas-03.txt < prev    next >
Text File  |  2020-01-01  |  12KB  |  293 lines

  1. Network Working Group                                              T. Wu
  2. Internet-Draft                                       Stanford University
  3. draft-wu-telnet-auth-srp-03.txt                                July 1999
  4.  
  5.                        Telnet Authentication: SRP
  6.  
  7. Status of this Memo
  8.  
  9.      This document is an Internet-Draft and is in full conformance
  10.      with all provisions of Section 10 of RFC2026.  Internet-Drafts
  11.      are working documents of the Internet Engineering Task Force
  12.      (IETF), its areas, and its working groups.  Note that other
  13.      groups may also distribute working documents as Internet-Drafts.
  14.  
  15.      Internet-Drafts are draft documents valid for a maximum of six
  16.      months and may be updated, replaced, or obsoleted by other
  17.      documents at any time.  It is inappropriate to use Internet-
  18.      Drafts as reference material or to cite them other than as
  19.      "work in progress."
  20.  
  21.      The list of current Internet-Drafts can be accessed at
  22.      http://www.ietf.org/ietf/1id-abstracts.txt
  23.  
  24.      The list of Internet-Draft Shadow Directories can be accessed at
  25.      http://www.ietf.org/shadow.html.
  26.  
  27.  
  28.      To view the entire list of current Internet-Drafts, please check
  29.      the "1id-abstracts.txt" listing contained in the Internet-Drafts
  30.      Shadow Directories on ftp.is.co.za (Africa), ftp.nordu.net
  31.      (Europe), munnari.oz.au (Pacific Rim), ds.internic.net (US East
  32.      Coast), or ftp.isi.edu (US West Coast).
  33.  
  34. Abstract
  35.  
  36.    This document specifies an authentication scheme for the Telnet
  37.    protocol under the framework described in [AUTH], using the
  38.    SRP authentication mechanism.  The specific mechanism, SRP-SHA1,
  39.    is described in [SRP-DRAFT].
  40.  
  41. 1. Command Names and Codes
  42.  
  43.    Authentication Types
  44.  
  45.       SRP          5
  46.  
  47.    Suboption Commands
  48.  
  49.       AUTH         0
  50.       REJECT       1
  51.       ACCEPT       2
  52.       CHALLENGE    3
  53.       RESPONSE     4
  54.  
  55.       EXP          8
  56.       PARAMS       9
  57.  
  58.                            Expires January 2000                 [Page 1]
  59.  
  60. Internet-Draft         SRP Authentication for Telnet           July 1999
  61.  
  62. 2. Command Meanings
  63.  
  64.    IAC SB AUTHENTICATION IS <authentication-type-pair> AUTH IAC SE
  65.  
  66.       This command indicates that the client has supplied the
  67.       username and is ready to receive that user's field parameters.
  68.       There is no authentication information to be sent to the remote
  69.       side of the connection yet.  This should only be sent after the
  70.       IAC SB AUTHENTICATION NAME command has been issued.  If the
  71.       modifier byte (second byte of the authentication-type-pair)
  72.       has any bits other than AUTH_WHO_MASK or AUTH_HOW_MASK set,
  73.       both bytes are included in the session key hash described later.
  74.       This ensures that the authentication type pair was correctly
  75.       negotiated, while maintaining backward-compatibility with existing
  76.       software.
  77.  
  78.    IAC SB AUTHENTICATION REPLY <authentication-type-pair> PARAMS
  79.    <values of modulus, generator, and salt> IAC SE
  80.  
  81.       This command is used to pass the three parameter values used
  82.       in the exponentiation to the client.  These values are often
  83.       called n, g, and s.
  84.  
  85.    IAC SB AUTHENTICATION IS <authentication-type-pair> EXP
  86.    <client's exponential residue> IAC SE
  87.  
  88.       This command is used to pass the client's exponential residue,
  89.       otherwise known as A, computed against the parameters exchanged
  90.       earlier.
  91.  
  92.    IAC SB AUTHENTICATION REPLY <authentication-type-pair> CHALLENGE
  93.    <server's exponential residue> IAC SE
  94.  
  95.       This command is used to pass the server's exponential residue,
  96.       computed against the same parameters.  This quantity is actually
  97.       the sum of two residues, i.e. g^x + g^b.  For details see [SRP]
  98.       and [SRP-DRAFT].
  99.  
  100.    IAC SB AUTHENTICATION IS <authentication-type-pair> RESPONSE
  101.    <response from client> IAC SE
  102.  
  103.       This command gives the server proof of the client's authenticity
  104.       with a 160-bit (20 byte) response.
  105.  
  106.    IAC SB AUTHENTICATION REPLY <authentication-type-pair> ACCEPT
  107.    <server's response> IAC SE
  108.  
  109.       This command indicates that the authentication was successful.
  110.       The server will construct its own proof of authenticity and
  111.       include it as sub-option data.
  112.  
  113.    IAC SB AUTHENTICATION REPLY <authentication-type-pair> REJECT
  114.    <optional reason for rejection> IAC SE
  115.  
  116.       This command indicates that the authentication was not successful,
  117.       and if there is any more data in the sub-option, it is an ASCII
  118.       text message of the reason for the rejection.
  119.  
  120.                            Expires January 2000                 [Page 2]
  121.  
  122. Internet-Draft         SRP Authentication for Telnet           July 1999
  123.  
  124.    For the PARAMS command, since three pieces of data are being
  125.    transmitted, each parameter is preceded by a 16-bit (two byte)
  126.    length specifier in network byte order.  The EXP commands do not have
  127.    a count in front of the data because there is only one piece of data
  128.    in that suboption.  The CHALLENGE, RESPONSE, and ACCEPT data also
  129.    do not have a count because they are all fixed in size.
  130.  
  131.  
  132. 3. Implementation Rules
  133.  
  134.    Currently, only AUTH_CLIENT_TO_SERVER mode is supported.
  135.    Although the SRP protocol effectively performs implicit mutual
  136.    authentication as a result of the two-way proofs, only the
  137.    AUTH_HOW_ONE_WAY authentication mode is currently defined.
  138.    The AUTH_HOW_MUTUAL setting is being reserved for an explicit
  139.    mutual-authentication variant of the SRP protocol to be defined
  140.    in future specifications.
  141.  
  142.    All large number data sent in the arguments of the PARAMS and
  143.    EXP commands must be in network byte order, i.e. most significant
  144.    byte first.  No padding is used.
  145.  
  146.    The SRP-SHA1 mechanism, as described in [SRP-DRAFT] generates a
  147.    40-byte session key, which allows implementations to use different
  148.    keys for incoming and outgoing traffic, increasing the security of
  149.    the encrypted session.  It is recommended that the Telnet ENCRYPT
  150.    method, if it is used, be able to take advantage of the longer
  151.    session keys.
  152.  
  153. 4. Examples
  154.  
  155.    User "tjw" may wish to log in on machine "foo".  The client would
  156.    send IAC SB AUTHENTICATION NAME "tjw" IAC SE IAC SB AUTHENTICATION
  157.    IS SRP AUTH IAC SE.  The server would look up the field and salt
  158.    parameters for "tjw" from its password file and send them back
  159.    to the client.  Client and server would then exchange exponential
  160.    residues and calculate their session keys (after the client prompted
  161.    "tjw" for his password).  Then, the client would send the server
  162.    its proof that it knows the session key.  The server would either
  163.    send back an ACCEPT or a REJECT.  If the server accepts
  164.    authentication, it also sends its own proof that it knows the
  165.    session key to the client.
  166.  
  167.                            Expires January 2000                 [Page 3]
  168.  
  169. Internet-Draft         SRP Authentication for Telnet           July 1999
  170.  
  171.        Client                           Server
  172.                                         IAC DO AUTHENTICATION
  173.        IAC WILL AUTHENTICATION
  174.  
  175.        [ The server is now free to request authentication information.
  176.          ]
  177.                                         IAC SB AUTHENTICATION SEND
  178.                                         SRP CLIENT|ONE_WAY|
  179.                                         ENCRYPT_USING_TELOPT
  180.                                         SRP CLIENT|ONE_WAY
  181.                                         IAC SE
  182.  
  183.        [ The server has requested SRP authentication.  It has indicated
  184.          a preference for ENCRYPT_USING_TELOPT, which requires the
  185.          Telnet ENCRYPT option to be negotiated once authentication
  186.          succeeds.  If the client does not support this, the server
  187.          is willing to fall back to an encryption-optional mode.
  188.  
  189.          The client will now respond with the name of the
  190.          user that it wants to log in as. ]
  191.  
  192.        IAC SB AUTHENTICATION NAME
  193.        "tjw" IAC SE
  194.        IAC SB AUTHENTICATION IS
  195.        SRP CLIENT|ONE_WAY|ENCRYPT_USING_TELOPT AUTH
  196.        IAC SE
  197.  
  198.        [ The server looks up the appropriate information for "tjw" and
  199.          sends back the parameters in a PARAMS command.  The parameters
  200.          consist of the values N, g, and s, each preceded with a two-
  201.          byte size parameter. ]
  202.  
  203.                                         IAC SB AUTHENTICATION REPLY
  204.                                         SRP CLIENT|ONE_WAY|
  205.                                         ENCRYPT_USING_TELOPT PARAMS
  206.                                         ss ss nn nn nn nn ...
  207.                                         ss ss gg gg gg gg ...
  208.                                         ss ss tt tt tt tt ...
  209.                                         IAC SE
  210.  
  211.        [ Both sides send their exponential residues.  The client
  212.          sends its value A and the server sends its value B.  In SRP,
  213.          the CHALLENGE message may be computed but not sent before
  214.          the EXP command.  ]
  215.  
  216.        IAC SB AUTHENTICATION IS
  217.        SRP CLIENT|ONE_WAY|ENCRYPT_USING_TELOPT EXP
  218.        aa aa aa aa aa aa aa aa ...
  219.        IAC SE
  220.                                         IAC SB AUTHENTICATION REPLY
  221.                                         SRP CLIENT|ONE_WAY|
  222.                                         ENCRYPT_USING_TELOPT CHALLENGE
  223.                                         bb bb bb bb bb bb bb bb ...
  224.                                         IAC SE
  225.  
  226.        [ The client sends its response to the server.  This is the
  227.          message M in the SRP protocol, which proves possession of
  228.          the session key by the client.
  229.  
  230.                            Expires January 2000                 [Page 4]
  231.  
  232. Internet-Draft         SRP Authentication for Telnet           July 1999
  233.  
  234.          Since ENCRYPT_USING_TELOPT is specified, the two octets
  235.          of the authentication-type-pair are appended to the
  236.          session key K before the hash for M is computed.  If
  237.          the client and server had agreed upon a mode without
  238.          the encryption flag set, nothing would be appended to K.
  239.  
  240.          Both this message and the server's response are as long as
  241.          the output of the hash; the length is 20 bytes for SHA-1. ]
  242.  
  243.        IAC SB AUTHENTICATION IS
  244.        SRP CLIENT|ONE_WAY|ENCRYPT_USING_TELOPT RESPONSE
  245.        xx xx xx xx xx xx xx xx ...
  246.        IAC SE
  247.  
  248.        [ The server accepts the response and sends its own proof. ]
  249.  
  250.                                         IAC SB AUTHENTICATION REPLY
  251.                                         SRP CLIENT|ONE_WAY|
  252.                                         ENCRYPT_USING_TELOPT ACCEPT
  253.                                         yy yy yy yy yy yy yy yy ...
  254.                                         IAC SE
  255.  
  256. 5. Security Considerations
  257.  
  258.    The ability to negotiate a common authentication mechanism between
  259.    client and server is a feature of the authentication option that
  260.    should be used with caution.  When the negotiation is performed, no
  261.    authentication has yet occurred.  Therefore, each system has no way
  262.    of knowing whether or not it is talking to the system it intends.  An
  263.    intruder could attempt to negotiate the use of an authentication
  264.    system which is either weak, or already compromised by the intruder.
  265.  
  266.    Since SRP relies on the security of the underlying public-key
  267.    cryptosystem, the modulus "n" should be large enough to resist
  268.    brute-force attack.  A length of at least 1024 bits is recommended,
  269.    and implementations should reject attempts to use moduli that are
  270.    shorter than 512 bits.
  271.  
  272. 6. References
  273.  
  274.    [AUTH]  T. Ts'o, "Telnet Authentication Option",
  275.               draft-tso-telnet-auth-enc-02.txt, July 1999.
  276.  
  277.    [SRP]  T. Wu, "The Secure Remote Password Protocol", In Proceedings
  278.           of the 1998 ISOC Network and Distributed System Security
  279.           Symposium, San Diego, CA, pp. 97-111.
  280.  
  281.    [SRP-DRAFT]  T. Wu, "The SRP Authentication and Key Exchange System",
  282.                 draft-wu-srp-auth-03.txt, Stanford University.
  283.  
  284. 7. Author's Address
  285.  
  286.    Thomas Wu
  287.    Stanford University
  288.    Stanford, CA 94305
  289.    EMail: tjw@cs.Stanford.EDU
  290.  
  291.                            Expires January 2000                 [Page 5]
  292.  
  293.