home *** CD-ROM | disk | FTP | other *** search
/ Columbia Kermit / kermit.zip / protocol / rfc2839.txt < prev    next >
Text File  |  2020-01-01  |  43KB  |  1,124 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7. Network Working Group                                        F. da Cruz
  8. Request for Comments: 2839                                    J. Altman
  9. Category: Informational                             Columbia University
  10.                                                                May 2000
  11.  
  12.                         Internet Kermit Service
  13.  
  14. Status of this Memo
  15.  
  16.    This memo provides information for the Internet community.  It does
  17.    not specify an Internet standard of any kind.  Distribution of this
  18.    memo is unlimited.
  19.  
  20. Copyright Notice
  21.  
  22.    Copyright (C) The Internet Society (2000).  All Rights Reserved.
  23.  
  24. ABSTRACT
  25.  
  26.    This document describes a new file transfer service for the Internet
  27.    based on Telnet Protocol for option negotiation and Kermit Protocol
  28.    for file transfer and management.  The Internet Kermit Service
  29.    provides access to both authenticated and anonymous users.  The use
  30.    of Kermit protocol over a Telnet connection provides several
  31.    advantages over FTP, including easy traversal of firewalls, transfers
  32.    over multiple transports, and security via a combination of supported
  33.    Telnet authentication and encryption option negotiations, plus
  34.    significant functional benefits.  While this document describes a new
  35.    service for the Internet, the clients for this service already exist
  36.    on most platforms in the form of Telnet clients that support the
  37.    Kermit file transfer protocol.  These clients are available not only
  38.    from Columbia University's Kermit Project but also numerous third
  39.    parties.
  40.  
  41. TABLE OF CONTENTS
  42.  
  43.    1. INTRODUCTION ................................................ 2
  44.    2. BACKGROUND .................................................. 3
  45.    2.1. History ................................................... 3
  46.    2.2. Motivation ................................................ 4
  47.    3. THE INTERNET KERMIT SERVICE MODEL ........................... 7
  48.    3.1. Server-Side Kermit Server ................................. 7
  49.    3.2. Client-Side Kermit Server ................................. 8
  50.    3.3. Loosely Coupled Operation ................................. 9
  51.    4. SECURITY CONSIDERATIONS .....................................10
  52.    4.1. AUTHENTICATION ............................................10
  53.    4.1.1. Telnet Authentication ...................................10
  54.    4.1.2. Telnet over TLS option ..................................11
  55.  
  56.  
  57.  
  58. da Cruz & Altman             Informational                      [Page 1]
  59.  
  60. RFC 2839                Internet Kermit Service                 May 2000
  61.  
  62.  
  63.    4.1.3. Plaintext Authentication via Kermit REMOTE LOGIN ........11
  64.    4.1.4. Plaintext Authentication via Command Prompt .............11
  65.    4.1.5. Anonymous Login .........................................12
  66.    4.2. ENCRYPTION (PRIVACY) ......................................12
  67.    4.2.1  Telnet Encryption .......................................12
  68.    4.2.2  Telnet Start_TLS ........................................12
  69.    5. SERVICES ....................................................13
  70.    5.1. Features for System Administrators ........................13
  71.    5.2. Features for Users ........................................14
  72.    5.3. User Interface ............................................16
  73.    6. REFERENCES ..................................................18
  74.    7. AUTHORS' ADDRESSES ..........................................19
  75.    8. Full Copyright Statement ....................................20
  76.  
  77. PREFACE
  78.  
  79.    This document describes an Internet Kermit Service (IKS) which
  80.    provides an alternative to FTP for the transfer of files.  This
  81.    service is based upon both the TELNET protocol and the Kermit file
  82.    transfer protocol.
  83.  
  84. 1. INTRODUCTION
  85.  
  86.    The Internet Kermit Service:
  87.  
  88.    1. Provides direct access to Kermit file transfer and management
  89.       services without requiring the user to first login to a shell
  90.       account;
  91.  
  92.    2. Provides Kermit file transfer and management services to anonymous
  93.       users;
  94.  
  95.    3. Provides services to all Telnet clients that support Kermit file
  96.       transfer protocol via a simple, predictable, scriptable, and
  97.       well-documented textual interface;
  98.  
  99.    4. Provides direct and tightly-coupled access to a Kermit server when
  100.       requested via the Telnet Kermit Option [TKO].
  101.  
  102.    This memo assumes knowledge of Transmission Control Protocol, the
  103.    Telnet Protocol [TEL], the Kermit File Transfer Protocol [KER,PRF],
  104.    Telnet Kermit Option [TKO], and the commands and features of Kermit
  105.    software [CKB,CMG,K95].
  106.  
  107.    The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
  108.    "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
  109.    document are to be interpreted as described in RFC 2119 [BCP].
  110.  
  111.  
  112.  
  113.  
  114. da Cruz & Altman             Informational                      [Page 2]
  115.  
  116. RFC 2839                Internet Kermit Service                 May 2000
  117.  
  118.  
  119.    Definitions:
  120.  
  121.    Kermit server
  122.       A software program that is ready to accept and act upon commands
  123.       in the form of well-defined Kermit packets [KER].
  124.  
  125.    Kermit client
  126.       A software program that receives requests through its user
  127.       interface from a human user (or a script or other source) and
  128.       translates them to command packets, which it sends to a Kermit
  129.       server, thus initiating a Kermit protocol transaction such as the
  130.       transfer of one or more files.
  131.  
  132. 2. BACKGROUND
  133.  
  134. 2.1. History
  135.  
  136.    "Kermit" is the name of an extensible platform- and medium-
  137.    independent file transfer and management protocol [KER,PRF] and of a
  138.    suite of communications software programs that implement it and
  139.    integrate it with other communications functions [CMG,CKB,K95].
  140.  
  141.    The Kermit protocol was first developed at Columbia University in New
  142.    York City in 1981 for transferring files without errors between
  143.    diverse types of computers over potentially hostile communication
  144.    links.  Since 1981, the Kermit Project at Columbia University has
  145.    expanded the protocol, developed communications software that
  146.    implements it upon key platforms, and worked with volunteer
  147.    programmers at other sites adapting Kermit protocol to other
  148.    platforms or communication methods.  The Kermit Project also serves
  149.    as the central point of Kermit software development, support,
  150.    information, and distribution throughout the world.
  151.  
  152.    Kermit software is now available for nearly every computer and
  153.    operating system in existence.  The major features of the most
  154.    popular Kermit programs are:
  155.  
  156.    -  Connection establishment and maintenance for a variety of
  157.       connection methods including direct serial, dialup, TCP/IP, X.25,
  158.       DECnet, and NETBIOS.
  159.  
  160.    -  Terminal emulation.
  161.  
  162.    -  Error-free transfer of both text and binary files, individually or
  163.       in groups.
  164.  
  165.    -  Character-set translation during both terminal emulation and
  166.       text-mode file transfer -- a unique feature of Kermit software.
  167.  
  168.  
  169.  
  170. da Cruz & Altman             Informational                      [Page 3]
  171.  
  172. RFC 2839                Internet Kermit Service                 May 2000
  173.  
  174.  
  175.    -  Remote file management through the client/server protocol.
  176.  
  177.    -  A powerful and portable scripting language allowing complete
  178.       automation of any task that can be performed manually.
  179.  
  180.    Kermit's command and script language is consistent across all
  181.    platforms and communication methods, thus offering a unified method
  182.    for accomplishing a wide range of communication tasks manually or
  183.    under script control.
  184.  
  185.    A single Kermit program combines the functions of many different
  186.    programs such as uucp, cu, tip, telnet, rlogin, ftp, iconv, and
  187.    expect: it is a Telnet and Rlogin client that can also transfer
  188.    files; it is a file transfer program that can also convert character
  189.    sets; it is a dialout program that can use dialing directories and
  190.    understands country codes and area codes; it is fully scriptable; it
  191.    offers both client/server and interactive modes of operation.  In its
  192.    desktop versions (particularly for DOS, Windows, and OS/2) it offers
  193.    all the features of communications software that are usually lacking
  194.    from Internet client software (key mapping, colors, scrollback, mouse
  195.    functions, printer control, etc)
  196.  
  197.    Kermit software is widely used throughout the academic, government,
  198.    and corporate spheres, both in the USA and internationally.
  199.  
  200.    In addition to the Kermit software developed and/or distributed by
  201.    the Kermit Project at Columbia University, hundreds of other software
  202.    products -- commercial, shareware, and freeware -- also include some
  203.    level of support for the Kermit protocol.  Thus there are hundreds,
  204.    perhaps thousands, of independent and interoperable Kermit protocol
  205.    implementations based upon the open Kermit protocol specification
  206.    [KER].
  207.  
  208.    The Internet has formed the primary mechanism by which users and
  209.    developers of Kermit software have collaborated to produce feature
  210.    and command sets that continually evolve to meet their needs as
  211.    technology changes.
  212.  
  213. 2.2. Motivation.
  214.  
  215.    Kermit protocol and software makes connections from one computer to
  216.    another and transfers data between them.  Countless people "live" in
  217.    Kermit all day long; as a customizable Telnet or Rlogin (or serial
  218.    communication) client with a wide selection of terminal emulations
  219.    and convenience features, it is their window onto the Internet.
  220.  
  221.  
  222.  
  223.  
  224.  
  225.  
  226. da Cruz & Altman             Informational                      [Page 4]
  227.  
  228. RFC 2839                Internet Kermit Service                 May 2000
  229.  
  230.  
  231.    Others use it in more creative ways, including some that involve key
  232.    parts of the Internet, e.g. in batch or cron jobs that update news or
  233.    Web servers or fetch email, or to monitor routers, terminal servers,
  234.    and hubs and dial pagers when faults are detected.  It is used by
  235.    vendors of telecommunications equipment for remote diagnosis,
  236.    patching, and updates.  Telecom managers often use Kermit scripts to
  237.    configure PBXs, muxes, routers, or terminal servers.  In the world of
  238.    commerce, Kermit is widely used for financial transactions, EDI,
  239.    medical claim submission, and so forth.  It is used with mobile
  240.    barcode readers in warehousing and inventory applications.  It is
  241.    found in US Postal Service sorting and scanning equipment.  It
  242.    connects many of the logistics and supply systems throughout the
  243.    military.  It is found in fast-food restaurant cash registers,
  244.    milling and die-cutting machines, textile looms and cutters, printing
  245.    presses, and medical diagnostic equipment.  It was the communications
  246.    backbone of the 1994 Brazilian national election -- the largest in
  247.    history.
  248.  
  249.    And yet there has never been a strong, explicit connection of Kermit
  250.    with the Internet.  In the early years, Kermit acted as a kind of
  251.    do-it-yourself network, enabling ordinary users to make connections
  252.    that were not already there, and for some years was the predominant
  253.    method of connecting a personal computer to the ARPAnet (e.g. by
  254.    dialing a TAC).
  255.  
  256.    Nowadays, however, with so many of the world's computers on the
  257.    Internet, the role of Kermit software and protocol is changing.
  258.    Kermit users on the network would like to have the features,
  259.    functions, and interface they are accustomed to -- especially the
  260.    automation features -- available for use in settings where presently
  261.    only tools like FTP are available -- and even more so in situations
  262.    where standard software like FTP can't be used.
  263.  
  264.    An Internet Kermit Service can fill this role, and augment the data
  265.    transfer power and flexibility of other Internet applications such as
  266.    Web browsers:
  267.  
  268.    -  Like FTP, Kermit provides a service that can be accessed from many
  269.       different platforms with a consistent set of commands, but unlike
  270.       FTP, these commands include programming constructions such as
  271.       variables, arrays, looping and selection mechanisms, and local and
  272.       remote procedure calls.
  273.  
  274.    -  Like FTP, Kermit provides both text- and binary-mode data
  275.       transfer, as well as file management capabilities.  But Kermit
  276.       also offers numerous features lacking from FTP, such as
  277.  
  278.  
  279.  
  280.  
  281.  
  282. da Cruz & Altman             Informational                      [Page 5]
  283.  
  284. RFC 2839                Internet Kermit Service                 May 2000
  285.  
  286.  
  287.       character-set translation, flexible file selection mechanisms,
  288.       attribute preservation, and so on (see Section 5.3 for a longer
  289.       list).
  290.  
  291.    -  Unlike standard FTP, Kermit can transfer data through multiple
  292.       firewalls, proxies, and network address translators (NATs) on a
  293.       single port.
  294.  
  295.    -  Unlike FTP, Kermit can transfer data across a combination of
  296.       transports (e.g. dial-up to a terminal server and thence to an
  297.       Internet host).
  298.  
  299.    -  Authentication and data transfer can take place over secure
  300.       connections (mutually authenticated and encrypted) using
  301.       established Telnet authentication and encryption options.
  302.  
  303.    -  Unlike traditional Kermit use over Telnet, anonymous access is
  304.       possible, and the considerable overhead of the intervening Telnet
  305.       server and pseudoterminal service is eliminated.
  306.  
  307.    Until now the primary obstacles to an Internet Kermit Service have
  308.    been:
  309.  
  310.    -  Issues of authentication, privacy, and anonymous access.  These
  311.       have been addressed in our implementation, as described Section 4
  312.       of this document.
  313.  
  314.    -  Issues of coordination and control.  A Kermit software program can
  315.       be in any of several "modes": at its command prompt or menu,
  316.       awaiting commands from the user; in terminal mode, in which the
  317.       user's keystrokes are sent to the remote computer or service; or
  318.       in protocol mode, in which two Kermit programs communicate via
  319.       well-defined Kermit packets [KER].  Commands or operations valid
  320.       in one mode do not necessarily work in another.  Until now, it has
  321.       been the user's responsibility to switch modes at one or both ends
  322.       of the connection as needed.  A companion document [TKO] to this
  323.       one specifies a mechanism to closely couple the client and server
  324.       via Telnet protocol negotiations, allowing each to know the
  325.       other's state and to switch to the appropriate mode automatically
  326.       so a valid and useful relationship obtains at all times.
  327.  
  328.    -  Lack of a standard TCP port.  The "registered" port 1649 was
  329.       assigned by IANA for this purpose (27 September 1995) and is named
  330.       "Kermit". (renamed from "Inspect".)
  331.  
  332.  
  333.  
  334.  
  335.  
  336.  
  337.  
  338. da Cruz & Altman             Informational                      [Page 6]
  339.  
  340. RFC 2839                Internet Kermit Service                 May 2000
  341.  
  342.  
  343. 3. THE INTERNET KERMIT SERVICE MODEL
  344.  
  345.    The Internet Kermit Service (IKS) uses a standard Telnet [TEL]
  346.    connection, in which all Telnet rules apply.  Unlike FTP, which
  347.    requires additional TCP connections, IKS uses a single channel for
  348.    both signaling and data transfer.  The connection is multiplexed via
  349.    (a) Telnet options, and (b) Kermit protocol messages.  This allows
  350.    existing Telnet clients that also support the Kermit protocol,
  351.    whether or not they support the Telnet Kermit Option [TKO], to use
  352.    the IKS and take advantage of all relevant Telnet options including
  353.    authentication and encryption.
  354.  
  355.    The system Internet services daemon (e.g. inetd) waits for a
  356.    connection on the Kermit socket (1649) and then starts the IKS on the
  357.    new connection.  The IKS performs the familiar Telnet negotiations
  358.    including the Telnet Kermit option.  Unlike a standard Telnet server,
  359.    the IKS does not support the ability to present the user with an
  360.    interactive system shell.  The Kermit socket is used only for file
  361.    transfer and management functions provided by Kermit file transfer
  362.    protocol and the Kermit script language.
  363.  
  364.    Once the connection is established, the Telnet Kermit Option is
  365.    negotiated in both directions.  The results determine which of the
  366.    following configurations is used by the Telnet client and Server:
  367.  
  368.     . Server-side Kermit Server (SKS)
  369.     . Client-side Kermit Server (CKS)
  370.     . No Kermit Server (NKS)
  371.  
  372.    Different procedures and functions apply to each configuration.  The
  373.    configuration may be changed at any time by Telnet Kermit Option
  374.    subnegotiations, which assure that the Telnet client and server are
  375.    always in compatible states.
  376.  
  377.    The three configurations are described in the following sections.
  378.  
  379. 3.1. Server-Side Kermit Server
  380.  
  381.    In the Server-Side Kermit Server (SKS) configuration, the Telnet
  382.    server is the Kermit server and the Telnet client is the Kermit
  383.    client.  This configuration is used when both Telnet client and IKS
  384.    support the Telnet Kermit Option and the IKS sends WILL KERMIT to the
  385.    Telnet client and receives DO KERMIT from the Telnet client [TKO].
  386.  
  387.    In this case, the IKS immediately starts a Kermit server and reports
  388.    this to the Telnet client with a Telnet KERMIT START-SERVER
  389.    subnegotiation.
  390.  
  391.  
  392.  
  393.  
  394. da Cruz & Altman             Informational                      [Page 7]
  395.  
  396. RFC 2839                Internet Kermit Service                 May 2000
  397.  
  398.  
  399.    The SKS configuration is appropriate when the user wishes to interact
  400.    only with the Telnet client's commands or menus.
  401.  
  402.    If authentication was not performed with one of the Telnet
  403.    Authentication Option protocols, the Kermit server rejects all Kermit
  404.    protocol operations (except REMOTE LOGIN, REMOTE HELP, REMOTE EXIT,
  405.    BYE, or FINISH -- that is, the ones that request help, that log in,
  406.    that close the connection, or that change the status of the
  407.    connection) until:
  408.  
  409.    - A Kermit REMOTE LOGIN command successfully authenticates the user;
  410.  
  411.    -The login retry limit is reached;
  412.  
  413.    - A Kermit BYE or REMOTE EXIT command is received, which closes the
  414.       connection;
  415.  
  416.    - A Kermit FINISH command or a Telnet KERMIT REQ-KERMIT-STOP
  417.       subnegotiation is received to request the IKS exit from Kermit
  418.       server mode.  At this point, the IKS can either exit and close the
  419.       connection or issue an interactive login prompt, depending on how
  420.       it was started or configured by the system administrator.
  421.  
  422.    Once the user is authenticated:
  423.  
  424.    - The Telnet client configures itself for Kermit client/server
  425.       operation, with itself as the Kermit client, communicating with
  426.       the server only by Kermit packets, and optionally adjusting its
  427.       menus or commands to eliminate functions (such as terminal
  428.       emulation) that make no sense in this context.
  429.  
  430.    - The relationship persists until the Telnet client and IKS agree to
  431.       terminate the Kermit server via Kermit protocol commands (BYE,
  432.       FINISH, or REMOTE EXIT), or by Telnet Kermit Option
  433.       subnegotiation, or by closing the connection.
  434.  
  435. 3.2. Client-Side Kermit Server
  436.  
  437.    In the Client-Side Kermit Server (CKS) configuration, the Telnet
  438.    server is the Kermit client, and the Telnet client is the Kermit
  439.    server.  This configuration is used when the IKS has sent WONT KERMIT
  440.    or SB KERMIT STOP-SERVER, and the Telnet Client has sent WILL KERMIT
  441.    and SB KERMIT START-SERVER, indicating that it is prepared to accept
  442.    and process Kermit protocol packets.
  443.  
  444.    In the CKS configuration, the Telnet client assumes the role of
  445.    Kermit server by virtue of its ability to recognize and process
  446.    Kermit protocol packets in its terminal emulator.  Thus the Telnet
  447.  
  448.  
  449.  
  450. da Cruz & Altman             Informational                      [Page 8]
  451.  
  452. RFC 2839                Internet Kermit Service                 May 2000
  453.  
  454.  
  455.    client must not send WILL KERMIT or the KERMIT START-SERVER
  456.    subnegotiation unless its terminal emulator is capable of recognizing
  457.    Kermit packets.
  458.  
  459.    If the IKS is at top command level (as opposed to executing a
  460.    script), or when it reaches top level after finishing a script, it
  461.    issues its interactive command prompt.
  462.  
  463.    At the point, the user may type commands or send scripted commands to
  464.    the IKS command prompt.  When a data-transfer command (such as SEND)
  465.    is issued by the user at the IKS prompt, a Kermit packet is
  466.    transmitted and recognized by the Telnet client, causing it to
  467.    automatically perform the requested action (e.g. receive a file), and
  468.    then resume its previous mode (terminal emulation or script
  469.    execution) when the data transfer is complete.
  470.  
  471.    Thus, in the CKS configuration, data transfers are initiated by the
  472.    IKS rather than by the Telnet client.  This configuration is useful
  473.    when the user prefers the command interface or repertoire of the
  474.    server to that of the client.
  475.  
  476.    If the IKS sends a Telnet KERMIT START-SERVER subnegotiation, the
  477.    relationship switches automatically to Server-Side Kermit Server
  478.    (Section 3.1), in which the Telnet client is the Kermit client and
  479.    the Telnet server is the Kermit server.
  480.  
  481.    If the Telnet client sends a KERMIT STOP-SERVER subnegotiation, the
  482.    connection switches to No Kermit Server (Section 3.3) and the IKS
  483.    issues its command prompt.  At this point, neither side is a Kermit
  484.    server, and both sides may optionally disable Kermit protocol
  485.    commands.  Subsequent user action can designate one side or the other
  486.    as the Kermit server, as desired.
  487.  
  488. 3.3. No Kermit Server
  489.  
  490.    If both Telnet client and IKS send WONT KERMIT or SB KERMIT STOP-
  491.    SERVER, or if the Kermit client and server are connected across
  492.    multiple hosts or transports, thus precluding end-to-end Telnet
  493.    negotiation, a Kermit server is not known to be available.  In the
  494.    KERMIT STOP-SERVER case, the Kermit partners can later switch back to
  495.    SKS or CKS, but in the other two cases, there is no such signaling
  496.    and loose coupling characterizes the entire session.
  497.  
  498.    In the No Kermit Server (NKS) configuration, the IKS presents a
  499.    command prompt to the Telnet client.  As in the Client-Side Kermit
  500.    Server configuration, plain-text commands are issued to the IKS.
  501.  
  502.  
  503.  
  504.  
  505.  
  506. da Cruz & Altman             Informational                      [Page 9]
  507.  
  508. RFC 2839                Internet Kermit Service                 May 2000
  509.  
  510.  
  511.    In the loosely coupled NKS configuration, the Telnet client does not
  512.    know the state of the Telnet server, and so can not automatically
  513.    adjust its commands and menus to present only valid choices, or
  514.    automatically change its state to complement the server's; it is the
  515.    user's responsibility to assure that the "mode" (command prompt,
  516.    terminal emulation, server command wait) of each Kermit partner is
  517.    appropriate for each action.  Thus an Internet Kermit Server appears
  518.    as an ordinary remote Kermit program to any Telnet client that does
  519.    not implement the Telnet Kermit Option, or in which this feature is
  520.    disabled or can not be used.
  521.  
  522.    The NKS configuration allows successful manual operation of the IKS
  523.    through Telnet clients that do not support the Telnet Kermit Option.
  524.    The Telnet client might or might not support Kermit "autodownload"
  525.    and "autoupload"; if it does not, then the user is forced to manually
  526.    issue command on both sides of the connection in the traditional and
  527.    familiar manner [CKB,CMG,K95].
  528.  
  529. 4. SECURITY CONSIDERATIONS
  530.  
  531. 4.1. AUTHENTICATION
  532.  
  533.    Authentication is provided via one or more of the following methods:
  534.  
  535.     - The Telnet AUTHENTICATION option;
  536.  
  537.     - The Telnet START_TLS option;
  538.  
  539.     - Plaintext userid/password verification.
  540.  
  541. 4.1.1. Telnet Authentication option
  542.  
  543.    The use of one of the many Telnet authentication option methods
  544.    removes the need to transmit passwords in plaintext across public
  545.    networks.  In addition, the exchange of user authentication
  546.    information often provides a shared secret that can be used with the
  547.    Telnet Encryption Option protocols to encrypt the connection in one
  548.    or both directions.
  549.  
  550.    Telnet authentication may also be used in conjunction with the Telnet
  551.    START_TLS option to negotiate end user identity over the encrypted
  552.    and host authenticated TLS channel.
  553.  
  554.    The IKS currently supports Kerberos 4, Kerberos 5, Secure Remote
  555.    Password and Microsoft NTLM authentication methods via the Telnet
  556.    AUTH option.
  557.  
  558.  
  559.  
  560.  
  561.  
  562. da Cruz & Altman             Informational                     [Page 10]
  563.  
  564. RFC 2839                Internet Kermit Service                 May 2000
  565.  
  566.  
  567. 4.1.2. Telnet over TLS option
  568.  
  569.    The Telnet START_TLS option provides for the negotiation and
  570.    establishment of a TLS version 1 session after the initial telnet
  571.    connection.  The TLS connection provides host to client
  572.    authentication via the use and X.509 certificate chains.  TLS also
  573.    supports optional client to host authentication using host verified
  574.    X.509 certificates which may be used to authenticate a userid
  575.    provided by the client or be mapped to a userid based upon properties
  576.    of the certificate.
  577.  
  578. 4.1.3. Plaintext Authentication via Kermit REMOTE LOGIN
  579.  
  580.    In the Server-Side Kermit Server configuration, if the client is not
  581.    yet authenticated, the client must log in using a REMOTE LOGIN
  582.    command, in which a Kermit packet containing user ID and password in
  583.    clear text is sent from the Telnet client to the Telnet server, which
  584.    then calls upon local mechanisms to authenticate the user.  Any
  585.    packets other than login (or REMOTE HELP, REMOTE EXIT, FINISH, or
  586.    BYE) packets are rejected (returned with an error message) until the
  587.    user is authenticated.  If the number of unsuccessful login attempts
  588.    exceeds the limit, the connection is closed.  Many Kermit client
  589.    programs support this login method already.
  590.  
  591.    This method should be avoided whenever possible.  If plaintext
  592.    passwords are used, they should only be sent after the Telnet START-
  593.    TLS option has been negotiated. (see 4.2.2)  Otherwise, passwords are
  594.    open to packet sniffing.
  595.  
  596. 4.1.4. Plaintext Authentication via Command Prompt
  597.  
  598.    In the Client-Side Kermit Server and No Kermit Server configurations,
  599.    the server presents the user with a plain-text interactive interface
  600.    that begins with the server issuing "Username:" and "Password:"
  601.    prompts, just as if the user were logging in to a multiuser
  602.    timesharing system such as VMS or UNIX.  When a password is not
  603.    required an empty response can be given.  Invalid username-password
  604.    combinations result in a new series of prompts up to the login retry
  605.    limit, and then disconnection.
  606.  
  607.    This method should be avoided whenever possible.  If plaintext
  608.    passwords are used, they should only be sent after the Telnet START-
  609.    TLS option has been negotiated. (see 4.2.2)  Otherwise, passwords are
  610.    open to packet sniffing.
  611.  
  612.  
  613.  
  614.  
  615.  
  616.  
  617.  
  618. da Cruz & Altman             Informational                     [Page 11]
  619.  
  620. RFC 2839                Internet Kermit Service                 May 2000
  621.  
  622.  
  623. 4.1.5. Anonymous Login
  624.  
  625.    When the username is "anonymous" or "ftp", the IKS behaves like an
  626.    anonymous ftp server, in a manner appropriate to the underlying
  627.    platform.  In UNIX, for example, access is restricted to a designated
  628.    area of the file system.  A password might or might not be required,
  629.    according to the preference of the site administrator.
  630.  
  631.    If privacy is desired the Telnet START-TLS option should be used.
  632.    (see 4.2.2)
  633.  
  634. 4.2.  ENCRYPTION (PRIVACY)
  635.  
  636.    As the Internet becomes ever more public and susceptible to
  637.    eavesdropping, it becomes increasingly necessary to provide methods
  638.    for private access to services.  Telnet provides two such mechanisms:
  639.  
  640.     . Telnet Encryption option
  641.     . Telnet START-TLS option
  642.  
  643. 4.2.1.  Telnet Encryption option
  644.  
  645.    The Telnet Encryption option, although it has never achieved RFC
  646.    status, has been used for years in conjunction with the Telnet Auth
  647.    option in Telnet clients and servers that support Kerberos 4,
  648.    Kerberos 5, Secure Remote Password, and others.  The IKS currently
  649.    supports the following encryption methods under the Telnet Encryption
  650.    option:
  651.  
  652.     .  cast128_ofb64
  653.     .  cast5_40_ofb64
  654.     .  des_ofb64
  655.     .  cast128_cfb64
  656.     .  cast5_40_cfb64
  657.     .  des_cfb64
  658.  
  659. 4.2.2. Telnet over TLS option
  660.  
  661.    Transport Layer Security (TLS), the successor to Secure Sockets Layer
  662.    (SSL), provides methods to implement Server authentication, Client
  663.    authentication, and Transport Layer encryption.  Unlike Telnet
  664.    Encryption, Start-TLS does require the use of Telnet Authentication
  665.    in order to provide a private channel.  This means that it can be
  666.    used in conjunction with plaintext passwords and anonymous
  667.    connections.
  668.  
  669.  
  670.  
  671.  
  672.  
  673.  
  674. da Cruz & Altman             Informational                     [Page 12]
  675.  
  676. RFC 2839                Internet Kermit Service                 May 2000
  677.  
  678.  
  679. 5. SERVICES
  680.  
  681.    The Internet Kermit Service includes features for both users and
  682.    system administrators.  The IKS is incorporated into  the 7.0 release
  683.    of Columbia University's C-Kermit software, which is the "master"
  684.    Kermit software program in terms of features and command language.
  685.    An overview of C-Kermit can be found at:
  686.  
  687.      http://www.columbia.edu/kermit/ckermit.html
  688.      http://www.kermit-project.org/ckermit.html
  689.  
  690.    When C-Kermit is employed as an Internet Kermit Service, it may offer
  691.    all its functions to "real" users (those who are authenticated as
  692.    specific users), and a safe subset of its functions to anonymous
  693.    users.
  694.  
  695.    The Internet Kermit Service resembles an FTP server in that it
  696.    performs its own authentication and uses a well-defined protocol to
  697.    communicate with its client, but differs from the FTP server by also
  698.    offering (at the system manager's discretion) an interactive user
  699.    interface to the Telnet client when it is in terminal mode.  It also
  700.    differs from FTP in restricting all protocol messages and data
  701.    transfer to a single socket connection.
  702.  
  703.    An IKS has been deployed at Columbia University for worldwide public
  704.    access to the Kermit FTP site:
  705.  
  706.      telnet://kermit.columbia.edu:1649/
  707.      telnet://ftp.kermit-project.org:1649/
  708.  
  709. 5.1. Features for System Administrators
  710.  
  711.    The system administrator can supply IKS configuration parameters as
  712.    command-line options or in a configuration file, or both in
  713.    combination.  Such parameters include:
  714.  
  715.     . Whether anonymous logins are allowed.
  716.  
  717.     . The file system or root directory to which anonymous users are
  718.       restricted.
  719.  
  720.     . Specification of permissions and other attributes to be assigned
  721.       to files uploaded by anonymous users.
  722.  
  723.     . Whether to make session entries in system logs.
  724.  
  725.  
  726.  
  727.  
  728.  
  729.  
  730. da Cruz & Altman             Informational                     [Page 13]
  731.  
  732. RFC 2839                Internet Kermit Service                 May 2000
  733.  
  734.  
  735.     . Specific services to disable: reception of files, sending of
  736.       files, sending of email, printing, changing of directories,
  737.       getting directory listings, deleting files, etc (see next
  738.       section).
  739.  
  740.     . Whether access to the interactive command prompt is allowed.
  741.  
  742. 5.2. Features for Users
  743.  
  744.    The IKS supports a wide range of services, including, but not limited
  745.    to, the following:
  746.  
  747.     . Authentication as a real user or anonymously.
  748.  
  749.     . Transmission of files to which read access is allowed.
  750.  
  751.     . Reception of files into directories or devices to which write
  752.       access is allowed.
  753.  
  754.     . The ability to display a file on the client's screen.
  755.  
  756.     . Ability to list files.
  757.  
  758.     . Ability to change its working (default) directory.
  759.  
  760.     . Ability to delete files to which write or delete access is
  761.       allowed.
  762.  
  763.     . Ability to rename and copy files
  764.  
  765.     . Ability to create and remove directories.
  766.  
  767.     . The ability to route received files to a specified printer, or to
  768.       send them as email to a specified address list.
  769.  
  770.     . Client control of server parameter settings, within limits
  771.       established by the server system administrator.
  772.  
  773.     . Transmission of variables from client to server or vice versa.
  774.  
  775.     . Remote and local script execution.
  776.  
  777.     . Remote and local procedure execution.
  778.  
  779.    File transfer features include:
  780.  
  781.     . Kermit text-mode transfers incorporate not only record-format
  782.       conversion, but also character-set translation;
  783.  
  784.  
  785.  
  786. da Cruz & Altman             Informational                     [Page 14]
  787.  
  788. RFC 2839                Internet Kermit Service                 May 2000
  789.  
  790.  
  791.     . Kermit can switch automatically between text and binary mode on a
  792.       per-file basis when sending groups of files by matching each
  793.       file's name with a pattern list.
  794.  
  795.     . A selection of file collision options, including "make backup copy
  796.       of existing file and accept incoming file", "reject incoming
  797.       file", "accept incoming file only if newer than existing file",
  798.       etc.
  799.  
  800.     . Numerous methods for selecting the files to be transferred,
  801.       including pattern matching, lists of filenames (or patterns),
  802.       exception lists, date and/or size ranges, etc.
  803.  
  804.     . Filename conversion and file renaming.
  805.  
  806.     . Automatic directory creation if elected and enabled.
  807.  
  808.     . Standard mechanisms for directory traversal, allowing transmission
  809.       of entire directory trees or other file hierarchies even between
  810.       unlike file systems such as VMS, UNIX, and Windows.
  811.  
  812.     . Atomic file movement: optionally, the source file can be deleted
  813.       (or renamed, or moved) when and only when it has been transferred
  814.       successfully.
  815.  
  816.     . Kermit can retain file attributes including time stamps and
  817.       permissions (at the user's or system administrator's discretion),
  818.       even between unlike platforms;
  819.  
  820.     . Recovery of interrupted transfers from the point of failure.
  821.  
  822.     . File-transfer pipes and filters.
  823.  
  824.    Script programming features include:
  825.  
  826.     . Macros with parameter substitution.
  827.  
  828.     . Built-in and user-defined variables and arrays, with global or
  829.       local scope.
  830.  
  831.     . Built-in and user-defined functions.  Built-in functions include:
  832.  
  833.           - String functions
  834.           - Arithmetic functions
  835.           - Date / time functions
  836.           - File functions
  837.  
  838.     . Input search for multiple simultaneous targets.
  839.  
  840.  
  841.  
  842. da Cruz & Altman             Informational                     [Page 15]
  843.  
  844. RFC 2839                Internet Kermit Service                 May 2000
  845.  
  846.  
  847.     . IF-ELSE, WHILE, FOR, SWITCH, GOTO, C-like block structure.
  848.  
  849.     . Every command returns a completion status that may be tested and
  850.       used as a basis for subsequent actions.
  851.  
  852. 5.3. User Interface
  853.  
  854.    The Internet Kermit Service uses the Kermit command and script
  855.    language, as implemented in Columbia University's C-Kermit
  856.    communication software [CKB].  This program and its command language
  857.    are portable to all known varieties of UNIX, as well as to Windows
  858.    95/98/NT, OS/2, Digital (Open)VMS, Stratus VOS, Data General AOS/VS,
  859.    Plan 9, OS-9, QNX, the Commodore Amiga, and other platforms.  The C-
  860.    Kermit command language is a superset of that of other Kermit
  861.    software programs including MS-DOS Kermit for DOS and Windows 3.x,
  862.    IBM Mainframe Kermit for VM/CMS, MVS/TSO, CICS, and MUSIC, PDP-11
  863.    Kermit for RT-11, RSTS/E, RSX-11, and IAS, and dozens of other Kermit
  864.    programs.
  865.  
  866.    It is far beyond the scope of this document to enumerate, let alone
  867.    describe, the commands and services of C-Kermit; this is the subject
  868.    of a 600-page book [CKB], augmented by hundreds of pages of online
  869.    material.  A brief overview is included here.
  870.  
  871.    Commands are based on English words.  There is no plan at present to
  872.    support other natural languages (Italian, Portuguese, Norwegian,
  873.    Russian, Hebrew, Japanese, Cherokee, etc) as alternative bases for
  874.    command words, since this would reduce the portability of scripts.
  875.    However, since the command language includes a macro capability,
  876.    macros may be defined to provide selected commands in different
  877.    languages if desired.
  878.  
  879.    Certain commands can apply either locally or remotely, for example
  880.    "CD" (Change Directory).  The convention is to prefix the command
  881.    with the word REMOTE if it is to apply remotely.  Example: "cd foo"
  882.    changes to the "foo" directory on the computer where the command was
  883.    given; "remote cd foo" sends a Kermit packet to the Kermit server
  884.    requesting it to change its directory to "foo".  The commands in this
  885.    category include:
  886.  
  887.      ASSIGN <variable> <value>      Assign a value to a variable.
  888.      CD <directory>                 Change working directory.
  889.      COPY <files> <destination>     Copy file(s)
  890.      DELETE <files>                 Delete file(s)
  891.      DIRECTORY [ <pattern> ]        List file(s)
  892.      EXIT                           Exit
  893.      HELP [ <topic-or-command> ]    Display help text
  894.      MKDIR <directory>              Create a directory
  895.  
  896.  
  897.  
  898. da Cruz & Altman             Informational                     [Page 16]
  899.  
  900. RFC 2839                Internet Kermit Service                 May 2000
  901.  
  902.  
  903.      PRINT <files>                  Print file(s)
  904.      PWD                            Print working directory
  905.      RENAME <old> <new>             Rename file(s)
  906.      RMDIR <directory>              Remove a directory
  907.      SET <parameter> <value>        Change a parameter's value
  908.      TYPE <file>                    Display the contents of a file
  909.  
  910.    As a convenience, REMOTE commands also have short synonyms: RASSIGN,
  911.    RCD, RCOPY, RDELETE, and so forth.
  912.  
  913.    The basic file transfer commands are:
  914.  
  915.      SEND [ modifiers ] <files>    Send file(s) (to server)
  916.      GET [ modifiers ] <files>     Get file(s) (from server)
  917.  
  918.    These commands take a file name, pattern, or list, plus various
  919.    optional modifiers, including transfer mode specifiers (text,
  920.    binary), file selectors (date, size, exception list), aliasing, name
  921.    and path options, disposition specifiers, and so on.
  922.  
  923.    In addition to the commands listed above, the following commands are
  924.    sent by the client to the server:
  925.  
  926.      REMOTE QUERY                   Get value of variable or procedure
  927.      BYE                            Log out and close the connection
  928.      FINISH                         Request the server leave server mode
  929.  
  930.    Like all Kermit client/server commands, these can be disabled if
  931.    desired.
  932.  
  933.    Of course there are numerous other commands with purely local effect,
  934.    such as the many scripting commands.  These, plus all the commands
  935.    above, are fully documented in [CKB].  The repertoire grows over
  936.    time, but never in a way that invalidates existing scripts.
  937.  
  938.    The system administrator can allow or forbid access to any of these
  939.    features, and to the command language as a whole.  In the latter
  940.    case, the IKS may be accessed only as a Kermit server, by giving
  941.    commands to the client.
  942.  
  943.  
  944.  
  945.  
  946.  
  947.  
  948.  
  949.  
  950.  
  951.  
  952.  
  953.  
  954. da Cruz & Altman             Informational                     [Page 17]
  955.  
  956. RFC 2839                Internet Kermit Service                 May 2000
  957.  
  958.  
  959. 6. REFERENCES
  960.  
  961.    [TKO] Altman, J. and F. da Cruz, "Telnet Kermit Option", RFC 2840,
  962.          May 2000.
  963.  
  964.    [BCP] Bradner, S., "Key words for use in RFCs to Indicate Requirement
  965.          Levels", BCP 14, RFC 2119, March 1997.
  966.  
  967.    [KER] da Cruz, Frank, "Kermit, A File Transfer Protocol", Digital
  968.          Press/ Butterworth Heinemann, Newton, MA (1987).  379 pages,
  969.          ISBN 0-932376-88-6.
  970.  
  971.    [CKB] da Cruz, Frank, and Christine M. Gianone, "Using C-Kermit",
  972.          Second Edition, Digital Press / Butterworth-Heinemann, Woburn,
  973.          MA (1997).  622 pages, ISBN 1-55558-164-1.
  974.  
  975.    [CMG] Gianone, Christine M., "Using MS-DOS Kermit", Second Edition,
  976.          Digital Press / Butterworth-Heinemann, Woburn, MA (1992). 345
  977.          pages, ISBN 1-55558-082-3.
  978.  
  979.    [K95] Gianone, Christine M., and Frank da Cruz, "Kermit 95", Manning
  980.          Publications, Greenwich CT, (1996). 88 pages, ISBN 1-884777-
  981.          14-7.
  982.  
  983.    [PRF] Huggins, James K., "Kermit Protocol - Formal Specification and
  984.          Verification", in Boerger, E., "Specification and Validation
  985.          Methods", Oxford University Press (1995).  ISBN 0-19-853854-5.
  986.  
  987.    [FTP] Postel, J. and J. Reynolds, "File Transfer Protocol (FTP)", STD
  988.          9, RFC 959, October 1985.
  989.  
  990.    [TEL] Postel, J. and J. Reynolds, "Telnet Protocol Specification",
  991.          STD 8, RFC854, May 1983, et seq.; "Telnet Option
  992.          Specification", STD 8, RFC855, May 1983, et seq.
  993.  
  994.    [IAN] Internet Assigned Numbers Authority:
  995.          http://www.iana.org/numbers.html
  996.          http://www.iana.org/assignment/port-numbers
  997.  
  998.  
  999.  
  1000.  
  1001.  
  1002.  
  1003.  
  1004.  
  1005.  
  1006.  
  1007.  
  1008.  
  1009.  
  1010. da Cruz & Altman             Informational                     [Page 18]
  1011.  
  1012. RFC 2839                Internet Kermit Service                 May 2000
  1013.  
  1014.  
  1015. 7. AUTHORS' ADDRESSES
  1016.  
  1017.    Frank da Cruz
  1018.  
  1019.    EMail: fdc@columbia.edu
  1020.  
  1021.  
  1022.    Jeffrey E. Altman
  1023.  
  1024.    EMail:jaltman@columbia.edu
  1025.  
  1026.  
  1027.    The Kermit Project
  1028.    Columbia University
  1029.    612 West 115th Street
  1030.    New York NY 10025-7799
  1031.    USA
  1032.    http://www.columbia.edu/kermit/
  1033.    http://www.kermit-project.org/
  1034.  
  1035.  
  1036.  
  1037.  
  1038.  
  1039.  
  1040.  
  1041.  
  1042.  
  1043.  
  1044.  
  1045.  
  1046.  
  1047.  
  1048.  
  1049.  
  1050.  
  1051.  
  1052.  
  1053.  
  1054.  
  1055.  
  1056.  
  1057.  
  1058.  
  1059.  
  1060.  
  1061.  
  1062.  
  1063.  
  1064.  
  1065.  
  1066. da Cruz & Altman             Informational                     [Page 19]
  1067.  
  1068. RFC 2839                Internet Kermit Service                 May 2000
  1069.  
  1070.  
  1071. 8.  Full Copyright Statement
  1072.  
  1073.    Copyright (C) The Internet Society (2000).  All Rights Reserved.
  1074.  
  1075.    This document and translations of it may be copied and furnished to
  1076.    others, and derivative works that comment on or otherwise explain it
  1077.    or assist in its implementation may be prepared, copied, published
  1078.    and distributed, in whole or in part, without restriction of any
  1079.    kind, provided that the above copyright notice and this paragraph are
  1080.    included on all such copies and derivative works.  However, this
  1081.    document itself may not be modified in any way, such as by removing
  1082.    the copyright notice or references to the Internet Society or other
  1083.    Internet organizations, except as needed for the purpose of
  1084.    developing Internet standards in which case the procedures for
  1085.    copyrights defined in the Internet Standards process must be
  1086.    followed, or as required to translate it into languages other than
  1087.    English.
  1088.  
  1089.    The limited permissions granted above are perpetual and will not be
  1090.    revoked by the Internet Society or its successors or assigns.
  1091.  
  1092.    This document and the information contained herein is provided on an
  1093.    "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING
  1094.    TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING
  1095.    BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION
  1096.    HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF
  1097.    MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
  1098.  
  1099. Acknowledgement
  1100.  
  1101.    Funding for the RFC Editor function is currently provided by the
  1102.    Internet Society.
  1103.  
  1104.  
  1105.  
  1106.  
  1107.  
  1108.  
  1109.  
  1110.  
  1111.  
  1112.  
  1113.  
  1114.  
  1115.  
  1116.  
  1117.  
  1118.  
  1119.  
  1120.  
  1121.  
  1122. da Cruz & Altman             Informational                     [Page 20]
  1123.  
  1124.