home *** CD-ROM | disk | FTP | other *** search
/ Handbook of Infosec Terms 2.0 / Handbook_of_Infosec_Terms_Version_2.0_ISSO.iso / text / rfcs / rfc1731.txt < prev    next >
Text File  |  1996-05-07  |  12KB  |  176 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7. Network Working Group                                           J. Myers Request for Comments: 1731                               Carnegie Mellon Category: Standards Track                                  December 1994 
  8.  
  9.                      IMAP4 Authentication Mechanisms 
  10.  
  11. Status of this Memo 
  12.  
  13.    This document specifies an Internet standards track protocol for the    Internet community, and requests discussion and suggestions for    improvements.  Please refer to the current edition of the "Internet    Official Protocol Standards" (STD 1) for the standardization state    and status of this protocol.  Distribution of this memo is unlimited. 
  14.  
  15.  1. Introduction 
  16.  
  17.    The Internet Message Access Protocol, Version 4 [IMAP4] contains the    AUTHENTICATE command, for identifying and authenticating a user to an    IMAP4 server and for optionally negotiating a protection mechanism    for subsequent protocol interactions.  This document describes    several authentication mechanisms for use by the IMAP4 AUTHENTICATE    command. 
  18.  
  19.  2. Kerberos version 4 authentication mechanism 
  20.  
  21.    The authentication type associated with Kerberos version 4 is    "KERBEROS_V4". 
  22.  
  23.    The data encoded in the first ready response contains a random 32-bit    number in network byte order.  The client should respond with a    Kerberos ticket and an authenticator for the principal    "imap.hostname@realm", where "hostname" is the first component of the    host name of the server with all letters in lower case and where    "realm" is the Kerberos realm of the server.  The encrypted checksum    field included within the Kerberos authenticator should contain the    server provided 32-bit number in network byte order. 
  24.  
  25.    Upon decrypting and verifying the ticket and authenticator, the    server should verify that the contained checksum field equals the    original server provided random 32-bit number.  Should the    verification be successful, the server must add one to the checksum    and construct 8 octets of data, with the first four octets containing    the incremented checksum in network byte order, the fifth octet    containing a bit-mask specifying the protection mechanisms supported    by the server, and the sixth through eighth octets containing, in 
  26.  
  27.  
  28.  
  29. Myers                                                           [Page 1] 
  30.  RFC 1731            IMAP4 Authentication Mechanisms        December 1994 
  31.  
  32.     network byte order, the maximum cipher-text buffer size the server is    able to receive.  The server must encrypt the 8 octets of data in the    session key and issue that encrypted data in a second ready response.    The client should consider the server authenticated if the first four    octets the un-encrypted data is equal to one plus the checksum it    previously sent. 
  33.  
  34.    The client must construct data with the first four octets containing    the original server-issued checksum in network byte order, the fifth    octet containing the bit-mask specifying the selected protection    mechanism, the sixth through eighth octets containing in network byte    order the maximum cipher-text buffer size the client is able to    receive, and the following octets containing a user name string.  The    client must then append from one to eight octets so that the length    of the data is a multiple of eight octets. The client must then PCBC    encrypt the data with the session key and respond to the second ready    response with the encrypted data.  The server decrypts the data and    verifies the contained checksum.  The username field identifies the    user for whom subsequent IMAP operations are to be performed; the    server must verify that the principal identified in the Kerberos    ticket is authorized to connect as that user.  After these    verifications, the authentication process is complete. 
  35.  
  36.    The protection mechanisms and their corresponding bit-masks are as    follows: 
  37.  
  38.       1 No protection mechanism       2 Integrity (krb_mk_safe) protection       4 Privacy (krb_mk_priv) protection 
  39.  
  40.     EXAMPLE: The following are two Kerberos version 4 login scenarios    (note that the line breaks in the sample authenticators are for    editorial clarity and are not in real authenticators) 
  41.  
  42.       S: * OK IMAP4 Server       C: A001 AUTHENTICATE KERBEROS_V4       S: + AmFYig==       C: BAcAQU5EUkVXLkNNVS5FRFUAOCAsho84kLN3/IJmrMG+25a4DT          +nZImJjnTNHJUtxAA+o0KPKfHEcAFs9a3CL5Oebe/ydHJUwYFd          WwuQ1MWiy6IesKvjL5rL9WjXUb9MwT9bpObYLGOKi1Qh       S: + or//EoAADZI=       C: DiAF5A4gA+oOIALuBkAAmw==       S: A001 OK Kerberos V4 authentication successful 
  43.  
  44.  
  45.  
  46.  
  47.  
  48.  
  49.  
  50. Myers                                                           [Page 2] 
  51.  RFC 1731            IMAP4 Authentication Mechanisms        December 1994 
  52.  
  53.        S: * OK IMAP4 Server       C: A001 AUTHENTICATE KERBEROS_V4       S: + gcfgCA==       C: BAcAQU5EUkVXLkNNVS5FRFUAOCAsho84kLN3/IJmrMG+25a4DT          +nZImJjnTNHJUtxAA+o0KPKfHEcAFs9a3CL5Oebe/ydHJUwYFd          WwuQ1MWiy6IesKvjL5rL9WjXUb9MwT9bpObYLGOKi1Qh       S: A001 NO Kerberos V4 authentication failed 
  54.  
  55.  3. GSSAPI authentication mechanism 
  56.  
  57.    The authentication type associated with all mechanisms employing the    GSSAPI [RFC1508] is "GSSAPI". 
  58.  
  59.    The first ready response issued by the server contains no data.  The    client should call GSS_Init_sec_context, passing in 0 for    input_context_handle (initially) and a targ_name equal to output_name    from GSS_Import_Name called with input_name_type of NULL and    input_name_string of "SERVICE:imap@hostname" where "hostname" is the    fully qualified host name of the server with all letters in lower    case.  The client must then respond with the resulting output_token.    If GSS_Init_sec_context returns GSS_CONTINUE_NEEDED, then the client    should expect the server to issue a token in a subsequent ready    response.  The client must pass the token to another call to    GSS_Init_sec_context. 
  60.  
  61.    If GSS_Init_sec_context returns GSS_COMPLETE, then the client should    respond with any resulting output_token.  If there is no    output_token, the client should respond with no data.  The client    should then expect the server to issue a token in a subsequent ready    response.  The client should pass this token to GSS_Unseal and    interpret the first octet of resulting cleartext as a bit-mask    specifying the protection mechanisms supported by the server and the    second through fourth octets as the maximum size output_message to    send to the server.  The client should construct data, with the first    octet containing the bit-mask specifying the selected protection    mechanism, the second through fourth octets containing in network    byte order the maximum size output_message the client is able to    receive, and the remaining octets containing a user name string.  The    client must pass the data to GSS_Seal with conf_flag set to FALSE,    and respond with the generated output_message.  The client can then    consider the server authenticated. 
  62.  
  63.    The server must issue a ready response with no data and pass the    resulting client supplied token to GSS_Accept_sec_context as    input_token, setting acceptor_cred_handle to NULL (for "use default    credentials"), and 0 for input_context_handle (initially).  If    GSS_Accept_sec_context returns GSS_CONTINUE_NEEDED, the server should 
  64.  
  65.  
  66.  
  67. Myers                                                           [Page 3] 
  68.  RFC 1731            IMAP4 Authentication Mechanisms        December 1994 
  69.  
  70.     return the generated output_token to the client in a ready response    and pass the resulting client supplied token to another call to    GSS_Accept_sec_context. 
  71.  
  72.    If GSS_Accept_sec_context returns GSS_COMPLETE, then if an    output_token is returned, the server should return it to the client    in a ready response and expect a reply from the client with no data.    Whether or not an output_token was returned, the server then should    then construct 4 octets of data, with the first octet containing a    bit-mask specifying the protection mechanisms supported by the server    and the second through fourth octets containing in network byte order    the maximum size output_token the server is able to receive.  The    server must then pass the plaintext to GSS_Seal with conf_flag set to    FALSE and issue the generated output_message to the client in a ready    response.  The server must then pass the resulting client supplied    token to GSS_Unseal and interpret the first octet of resulting    cleartext as the bit-mask for the selected protection mechanism, the    second through fourth octets as the maximum size output_message to    send to the client, and the remaining octets as the user name.  Upon    verifying the src_name is authorized to authenticate as the user    name, The server should then consider the client authenticated. 
  73.  
  74.    The protection mechanisms and their corresponding bit-masks are as    follows: 
  75.  
  76.       1 No protection mechanism       2 Integrity protection.         Sender calls GSS_Seal with conf_flag set to FALSE       4 Privacy protection.         Sender calls GSS_Seal with conf_flag set to TRUE 
  77.  
  78.  4. S/Key authentication mechanism 
  79.  
  80.    The authentication type associated with S/Key [SKEY] is "SKEY". 
  81.  
  82.    The first ready response issued by the server contains no data.  The    client responds with the user name string. 
  83.  
  84.    The data encoded in the second ready response contains the decimal    sequence number followed by a single space and the seed string for    the indicated user.  The client responds with the one-time-password,    as either a 64-bit value in network byte order or encoded in the "six    English words" format. 
  85.  
  86.    Upon successful verification of the one-time-password, the server    should consider the client authenticated. 
  87.  
  88.  
  89.  
  90.  Myers                                                           [Page 4] 
  91.  RFC 1731            IMAP4 Authentication Mechanisms        December 1994 
  92.  
  93.     S/Key authentication does not provide for any protection mechanisms. 
  94.  
  95.     EXAMPLE: The following are two S/Key login scenarios. 
  96.  
  97.       S: * OK IMAP4 Server       C: A001 AUTHENTICATE SKEY       S: +       C: bW9yZ2Fu       S: + OTUgUWE1ODMwOA==       C: Rk9VUiBNQU5OIFNPT04gRklSIFZBUlkgTUFTSA==       S: A001 OK S/Key authentication successful 
  98.  
  99.        S: * OK IMAP4 Server       C: A001 AUTHENTICATE SKEY       S: +       C: c21pdGg=       S: + OTUgUWE1ODMwOA==       C: BsAY3g4gBNo=       S: A001 NO S/Key authentication failed 
  100.  
  101.  5. References 
  102.  
  103.    [IMAP4] Crispin, M., "Internet Message Access Protocol - Version 4",    RFC 1730, University of Washington, December 1994. 
  104.  
  105.    [RFC1508] Linn, J., "Generic Security Service Application Program    Interface", RFC 1508, Geer Zolot Associates, September 1993. 
  106.  
  107.    [SKEY] Haller, Neil M. "The S/Key One-Time Password System",    Bellcore, Morristown, New Jersey, October 1993,    thumper.bellcore.com:pub/nmh/docs/ISOC.symp.ps 
  108.  
  109.  
  110.  
  111.  
  112.  
  113.  
  114.  
  115.  
  116.  
  117.  
  118.  
  119.  
  120.  
  121.  
  122.  
  123.  
  124.  
  125. Myers                                                           [Page 5] 
  126.  RFC 1731            IMAP4 Authentication Mechanisms        December 1994 
  127.  
  128.  6. Security Considerations 
  129.  
  130.    Security issues are discussed throughout this memo. 
  131.  
  132.  7. Author's Address 
  133.  
  134.    John G. Myers    Carnegie-Mellon University    5000 Forbes Ave.    Pittsburgh PA, 15213-3890 
  135.  
  136.    EMail: jgm+@cmu.edu 
  137.  
  138.  
  139.  
  140.  
  141.  
  142.  
  143.  
  144.  
  145.  
  146.  
  147.  
  148.  
  149.  
  150.  
  151.  
  152.  
  153.  
  154.  
  155.  
  156.  
  157.  
  158.  
  159.  
  160.  
  161.  
  162.  
  163.  
  164.  
  165.  
  166.  
  167.  
  168.  
  169.  
  170.  
  171.  
  172.  
  173.  
  174.  Myers                                                           [Page 6] 
  175.  
  176.