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

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